summaryrefslogtreecommitdiffhomepage
path: root/registry
diff options
context:
space:
mode:
authorJon Leech <[email protected]>2022-02-25 04:47:04 -0800
committerJon Leech <[email protected]>2022-02-25 04:47:04 -0800
commit787244e9a2af1693dd08395306e4cf8af4a091ef (patch)
tree2695fc982ac040245e132b0087d7ac9c206928bc /registry
parentaa18f182ebba65438b1cfdbd571f020bb2e34d04 (diff)
downloadVulkan-Headers-787244e9a2af1693dd08395306e4cf8af4a091ef.tar.gz
Vulkan-Headers-787244e9a2af1693dd08395306e4cf8af4a091ef.zip
Fork `main` branch to `sc_main` for initial public Vulkan SC specification release.
Remove the generated Vulkan headers. New Vulkan SC generated files will be added in the initial public release tag.
Diffstat (limited to 'registry')
-rw-r--r--registry/apiconventions.py11
-rw-r--r--registry/cgenerator.py424
-rw-r--r--registry/conventions.py358
-rw-r--r--registry/generator.py1225
-rwxr-xr-xregistry/genvk.py817
-rw-r--r--registry/reg.py1575
-rw-r--r--registry/spec_tools/util.py58
-rw-r--r--registry/validusage.json49336
-rw-r--r--registry/vk.xml20429
-rw-r--r--registry/vkconventions.py275
10 files changed, 0 insertions, 74508 deletions
diff --git a/registry/apiconventions.py b/registry/apiconventions.py
deleted file mode 100644
index 0b02f8f..0000000
--- a/registry/apiconventions.py
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/python3 -i
-#
-# Copyright 2021-2022 The Khronos Group Inc.
-# SPDX-License-Identifier: Apache-2.0
-
-# Generic alias for working group-specific API conventions interface.
-
-# This import should be changed at the repository / working group level to
-# specify the correct API's conventions.
-
-from vkconventions import VulkanConventions as APIConventions
diff --git a/registry/cgenerator.py b/registry/cgenerator.py
deleted file mode 100644
index 2efa081..0000000
--- a/registry/cgenerator.py
+++ /dev/null
@@ -1,424 +0,0 @@
-#!/usr/bin/python3 -i
-#
-# Copyright 2013-2022 The Khronos Group Inc.
-#
-# SPDX-License-Identifier: Apache-2.0
-
-import os
-import re
-from generator import (GeneratorOptions, OutputGenerator, noneStr,
- regSortFeatures, write)
-
-
-class CGeneratorOptions(GeneratorOptions):
- """CGeneratorOptions - subclass of GeneratorOptions.
-
- Adds options used by COutputGenerator objects during C language header
- generation."""
-
- def __init__(self,
- prefixText="",
- genFuncPointers=True,
- protectFile=True,
- protectFeature=True,
- protectProto=None,
- protectProtoStr=None,
- apicall='',
- apientry='',
- apientryp='',
- indentFuncProto=True,
- indentFuncPointer=False,
- alignFuncParam=0,
- genEnumBeginEndRange=False,
- genAliasMacro=False,
- aliasMacro='',
- misracstyle=False,
- misracppstyle=False,
- **kwargs
- ):
- """Constructor.
- Additional parameters beyond parent class:
-
- - prefixText - list of strings to prefix generated header with
- (usually a copyright statement + calling convention macros).
- - protectFile - True if multiple inclusion protection should be
- generated (based on the filename) around the entire header.
- - protectFeature - True if #ifndef..#endif protection should be
- generated around a feature interface in the header file.
- - genFuncPointers - True if function pointer typedefs should be
- generated
- - protectProto - If conditional protection should be generated
- around prototype declarations, set to either '#ifdef'
- to require opt-in (#ifdef protectProtoStr) or '#ifndef'
- to require opt-out (#ifndef protectProtoStr). Otherwise
- set to None.
- - protectProtoStr - #ifdef/#ifndef symbol to use around prototype
- declarations, if protectProto is set
- - apicall - string to use for the function declaration prefix,
- such as APICALL on Windows.
- - apientry - string to use for the calling convention macro,
- in typedefs, such as APIENTRY.
- - apientryp - string to use for the calling convention macro
- in function pointer typedefs, such as APIENTRYP.
- - indentFuncProto - True if prototype declarations should put each
- parameter on a separate line
- - indentFuncPointer - True if typedefed function pointers should put each
- parameter on a separate line
- - alignFuncParam - if nonzero and parameters are being put on a
- separate line, align parameter names at the specified column
- - genEnumBeginEndRange - True if BEGIN_RANGE / END_RANGE macros should
- be generated for enumerated types
- - genAliasMacro - True if the OpenXR alias macro should be generated
- for aliased types (unclear what other circumstances this is useful)
- - aliasMacro - alias macro to inject when genAliasMacro is True
- - misracstyle - generate MISRA C-friendly headers
- - misracppstyle - generate MISRA C++-friendly headers"""
-
- GeneratorOptions.__init__(self, **kwargs)
-
- self.prefixText = prefixText
- """list of strings to prefix generated header with (usually a copyright statement + calling convention macros)."""
-
- self.genFuncPointers = genFuncPointers
- """True if function pointer typedefs should be generated"""
-
- self.protectFile = protectFile
- """True if multiple inclusion protection should be generated (based on the filename) around the entire header."""
-
- self.protectFeature = protectFeature
- """True if #ifndef..#endif protection should be generated around a feature interface in the header file."""
-
- self.protectProto = protectProto
- """If conditional protection should be generated around prototype declarations, set to either '#ifdef' to require opt-in (#ifdef protectProtoStr) or '#ifndef' to require opt-out (#ifndef protectProtoStr). Otherwise set to None."""
-
- self.protectProtoStr = protectProtoStr
- """#ifdef/#ifndef symbol to use around prototype declarations, if protectProto is set"""
-
- self.apicall = apicall
- """string to use for the function declaration prefix, such as APICALL on Windows."""
-
- self.apientry = apientry
- """string to use for the calling convention macro, in typedefs, such as APIENTRY."""
-
- self.apientryp = apientryp
- """string to use for the calling convention macro in function pointer typedefs, such as APIENTRYP."""
-
- self.indentFuncProto = indentFuncProto
- """True if prototype declarations should put each parameter on a separate line"""
-
- self.indentFuncPointer = indentFuncPointer
- """True if typedefed function pointers should put each parameter on a separate line"""
-
- self.alignFuncParam = alignFuncParam
- """if nonzero and parameters are being put on a separate line, align parameter names at the specified column"""
-
- self.genEnumBeginEndRange = genEnumBeginEndRange
- """True if BEGIN_RANGE / END_RANGE macros should be generated for enumerated types"""
-
- self.genAliasMacro = genAliasMacro
- """True if the OpenXR alias macro should be generated for aliased types (unclear what other circumstances this is useful)"""
-
- self.aliasMacro = aliasMacro
- """alias macro to inject when genAliasMacro is True"""
-
- self.misracstyle = misracstyle
- """generate MISRA C-friendly headers"""
-
- self.misracppstyle = misracppstyle
- """generate MISRA C++-friendly headers"""
-
- self.codeGenerator = True
- """True if this generator makes compilable code"""
-
-
-class COutputGenerator(OutputGenerator):
- """Generates C-language API interfaces."""
-
- # This is an ordered list of sections in the header file.
- TYPE_SECTIONS = ['include', 'define', 'basetype', 'handle', 'enum',
- 'group', 'bitmask', 'funcpointer', 'struct']
- ALL_SECTIONS = TYPE_SECTIONS + ['commandPointer', 'command']
-
- def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
- # Internal state - accumulators for different inner block text
- self.sections = {section: [] for section in self.ALL_SECTIONS}
- self.feature_not_empty = False
- self.may_alias = None
-
- def beginFile(self, genOpts):
- OutputGenerator.beginFile(self, genOpts)
- # C-specific
- #
- # Multiple inclusion protection & C++ wrappers.
- if genOpts.protectFile and self.genOpts.filename:
- headerSym = re.sub(r'\.h', '_h_',
- os.path.basename(self.genOpts.filename)).upper()
- write('#ifndef', headerSym, file=self.outFile)
- write('#define', headerSym, '1', file=self.outFile)
- self.newline()
-
- # User-supplied prefix text, if any (list of strings)
- if genOpts.prefixText:
- for s in genOpts.prefixText:
- write(s, file=self.outFile)
-
- # C++ extern wrapper - after prefix lines so they can add includes.
- self.newline()
- write('#ifdef __cplusplus', file=self.outFile)
- write('extern "C" {', file=self.outFile)
- write('#endif', file=self.outFile)
- self.newline()
-
- def endFile(self):
- # C-specific
- # Finish C++ wrapper and multiple inclusion protection
- self.newline()
- write('#ifdef __cplusplus', file=self.outFile)
- write('}', file=self.outFile)
- write('#endif', file=self.outFile)
- if self.genOpts.protectFile and self.genOpts.filename:
- self.newline()
- write('#endif', file=self.outFile)
- # Finish processing in superclass
- OutputGenerator.endFile(self)
-
- def beginFeature(self, interface, emit):
- # Start processing in superclass
- OutputGenerator.beginFeature(self, interface, emit)
- # C-specific
- # Accumulate includes, defines, types, enums, function pointer typedefs,
- # end function prototypes separately for this feature. They are only
- # printed in endFeature().
- self.sections = {section: [] for section in self.ALL_SECTIONS}
- self.feature_not_empty = False
-
- def endFeature(self):
- "Actually write the interface to the output file."
- # C-specific
- if self.emit:
- if self.feature_not_empty:
- if self.genOpts.conventions.writeFeature(self.featureExtraProtect, self.genOpts.filename):
- self.newline()
- if self.genOpts.protectFeature:
- write('#ifndef', self.featureName, file=self.outFile)
- # If type declarations are needed by other features based on
- # this one, it may be necessary to suppress the ExtraProtect,
- # or move it below the 'for section...' loop.
- if self.featureExtraProtect is not None:
- write('#ifdef', self.featureExtraProtect, file=self.outFile)
- self.newline()
- write('#define', self.featureName, '1', file=self.outFile)
- for section in self.TYPE_SECTIONS:
- contents = self.sections[section]
- if contents:
- write('\n'.join(contents), file=self.outFile)
- if self.genOpts.genFuncPointers and self.sections['commandPointer']:
- write('\n'.join(self.sections['commandPointer']), file=self.outFile)
- self.newline()
- if self.sections['command']:
- if self.genOpts.protectProto:
- write(self.genOpts.protectProto,
- self.genOpts.protectProtoStr, file=self.outFile)
- write('\n'.join(self.sections['command']), end='', file=self.outFile)
- if self.genOpts.protectProto:
- write('#endif', file=self.outFile)
- else:
- self.newline()
- if self.featureExtraProtect is not None:
- write('#endif /*', self.featureExtraProtect, '*/', file=self.outFile)
- if self.genOpts.protectFeature:
- write('#endif /*', self.featureName, '*/', file=self.outFile)
- # Finish processing in superclass
- OutputGenerator.endFeature(self)
-
- def appendSection(self, section, text):
- "Append a definition to the specified section"
-
- if section is None:
- self.logMsg('error', 'Missing section in appendSection (probably a <type> element missing its \'category\' attribute. Text:', text)
- exit(1)
-
- self.sections[section].append(text)
- self.feature_not_empty = True
-
- def genType(self, typeinfo, name, alias):
- "Generate type."
- OutputGenerator.genType(self, typeinfo, name, alias)
- typeElem = typeinfo.elem
-
- # Vulkan:
- # Determine the category of the type, and the type section to add
- # its definition to.
- # 'funcpointer' is added to the 'struct' section as a workaround for
- # internal issue #877, since structures and function pointer types
- # can have cross-dependencies.
- category = typeElem.get('category')
- if category == 'funcpointer':
- section = 'struct'
- else:
- section = category
-
- if category in ('struct', 'union'):
- # If the type is a struct type, generate it using the
- # special-purpose generator.
- self.genStruct(typeinfo, name, alias)
- else:
- # OpenXR: this section was not under 'else:' previously, just fell through
- if alias:
- # If the type is an alias, just emit a typedef declaration
- body = 'typedef ' + alias + ' ' + name + ';\n'
- else:
- # Replace <apientry /> tags with an APIENTRY-style string
- # (from self.genOpts). Copy other text through unchanged.
- # If the resulting text is an empty string, do not emit it.
- body = noneStr(typeElem.text)
- for elem in typeElem:
- if elem.tag == 'apientry':
- body += self.genOpts.apientry + noneStr(elem.tail)
- else:
- body += noneStr(elem.text) + noneStr(elem.tail)
- if body:
- # Add extra newline after multi-line entries.
- if '\n' in body[0:-1]:
- body += '\n'
- self.appendSection(section, body)
-
- def genProtectString(self, protect_str):
- """Generate protection string.
-
- Protection strings are the strings defining the OS/Platform/Graphics
- requirements for a given OpenXR command. When generating the
- language header files, we need to make sure the items specific to a
- graphics API or OS platform are properly wrapped in #ifs."""
- protect_if_str = ''
- protect_end_str = ''
- if not protect_str:
- return (protect_if_str, protect_end_str)
-
- if ',' in protect_str:
- protect_list = protect_str.split(",")
- protect_defs = ('defined(%s)' % d for d in protect_list)
- protect_def_str = ' && '.join(protect_defs)
- protect_if_str = '#if %s\n' % protect_def_str
- protect_end_str = '#endif // %s\n' % protect_def_str
- else:
- protect_if_str = '#ifdef %s\n' % protect_str
- protect_end_str = '#endif // %s\n' % protect_str
-
- return (protect_if_str, protect_end_str)
-
- def typeMayAlias(self, typeName):
- if not self.may_alias:
- # First time we have asked if a type may alias.
- # So, populate the set of all names of types that may.
-
- # Everyone with an explicit mayalias="true"
- self.may_alias = set(typeName
- for typeName, data in self.registry.typedict.items()
- if data.elem.get('mayalias') == 'true')
-
- # Every type mentioned in some other type's parentstruct attribute.
- parent_structs = (otherType.elem.get('parentstruct')
- for otherType in self.registry.typedict.values())
- self.may_alias.update(set(x for x in parent_structs
- if x is not None))
- return typeName in self.may_alias
-
- def genStruct(self, typeinfo, typeName, alias):
- """Generate struct (e.g. C "struct" type).
-
- This is a special case of the <type> tag where the contents are
- interpreted as a set of <member> tags instead of freeform C
- C type declarations. The <member> tags are just like <param>
- tags - they are a declaration of a struct or union member.
- Only simple member declarations are supported (no nested
- structs etc.)
-
- If alias is not None, then this struct aliases another; just
- generate a typedef of that alias."""
- OutputGenerator.genStruct(self, typeinfo, typeName, alias)
-
- typeElem = typeinfo.elem
-
- if alias:
- body = 'typedef ' + alias + ' ' + typeName + ';\n'
- else:
- body = ''
- (protect_begin, protect_end) = self.genProtectString(typeElem.get('protect'))
- if protect_begin:
- body += protect_begin
- body += 'typedef ' + typeElem.get('category')
-
- # This is an OpenXR-specific alternative where aliasing refers
- # to an inheritance hierarchy of types rather than C-level type
- # aliases.
- if self.genOpts.genAliasMacro and self.typeMayAlias(typeName):
- body += ' ' + self.genOpts.aliasMacro
-
- body += ' ' + typeName + ' {\n'
-
- targetLen = self.getMaxCParamTypeLength(typeinfo)
- for member in typeElem.findall('.//member'):
- body += self.makeCParamDecl(member, targetLen + 4)
- body += ';\n'
- body += '} ' + typeName + ';\n'
- if protect_end:
- body += protect_end
-
- self.appendSection('struct', body)
-
- def genGroup(self, groupinfo, groupName, alias=None):
- """Generate groups (e.g. C "enum" type).
-
- These are concatenated together with other types.
-
- If alias is not None, it is the name of another group type
- which aliases this type; just generate that alias."""
- OutputGenerator.genGroup(self, groupinfo, groupName, alias)
- groupElem = groupinfo.elem
-
- # After either enumerated type or alias paths, add the declaration
- # to the appropriate section for the group being defined.
- if groupElem.get('type') == 'bitmask':
- section = 'bitmask'
- else:
- section = 'group'
-
- if alias:
- # If the group name is aliased, just emit a typedef declaration
- # for the alias.
- body = 'typedef ' + alias + ' ' + groupName + ';\n'
- self.appendSection(section, body)
- else:
- (section, body) = self.buildEnumCDecl(self.genOpts.genEnumBeginEndRange, groupinfo, groupName)
- self.appendSection(section, "\n" + body)
-
- def genEnum(self, enuminfo, name, alias):
- """Generate the C declaration for a constant (a single <enum> value)."""
-
- OutputGenerator.genEnum(self, enuminfo, name, alias)
-
- body = self.buildConstantCDecl(enuminfo, name, alias)
- self.appendSection('enum', body)
-
- def genCmd(self, cmdinfo, name, alias):
- "Command generation"
- OutputGenerator.genCmd(self, cmdinfo, name, alias)
-
- # if alias:
- # prefix = '// ' + name + ' is an alias of command ' + alias + '\n'
- # else:
- # prefix = ''
-
- prefix = ''
- decls = self.makeCDecls(cmdinfo.elem)
- self.appendSection('command', prefix + decls[0] + '\n')
- if self.genOpts.genFuncPointers:
- self.appendSection('commandPointer', decls[1])
-
- def misracstyle(self):
- return self.genOpts.misracstyle;
-
- def misracppstyle(self):
- return self.genOpts.misracppstyle;
diff --git a/registry/conventions.py b/registry/conventions.py
deleted file mode 100644
index 8ecfb15..0000000
--- a/registry/conventions.py
+++ /dev/null
@@ -1,358 +0,0 @@
-#!/usr/bin/python3 -i
-#
-# Copyright 2013-2022 The Khronos Group Inc.
-#
-# SPDX-License-Identifier: Apache-2.0
-
-# Base class for working-group-specific style conventions,
-# used in generation.
-
-from enum import Enum
-
-# Type categories that respond "False" to isStructAlwaysValid
-# basetype is home to typedefs like ..Bool32
-CATEGORIES_REQUIRING_VALIDATION = set(('handle',
- 'enum',
- 'bitmask',
- 'basetype',
- None))
-
-# These are basic C types pulled in via openxr_platform_defines.h
-TYPES_KNOWN_ALWAYS_VALID = set(('char',
- 'float',
- 'int8_t', 'uint8_t',
- 'int32_t', 'uint32_t',
- 'int64_t', 'uint64_t',
- 'size_t',
- 'uintptr_t',
- 'int',
- ))
-
-
-class ProseListFormats(Enum):
- """A connective, possibly with a quantifier."""
- AND = 0
- EACH_AND = 1
- OR = 2
- ANY_OR = 3
-
- @classmethod
- def from_string(cls, s):
- if s == 'or':
- return cls.OR
- if s == 'and':
- return cls.AND
- return None
-
- @property
- def connective(self):
- if self in (ProseListFormats.OR, ProseListFormats.ANY_OR):
- return 'or'
- return 'and'
-
- def quantifier(self, n):
- """Return the desired quantifier for a list of a given length."""
- if self == ProseListFormats.ANY_OR:
- if n > 1:
- return 'any of '
- elif self == ProseListFormats.EACH_AND:
- if n > 2:
- return 'each of '
- if n == 2:
- return 'both of '
- return ''
-
-
-class ConventionsBase:
- """WG-specific conventions."""
-
- def __init__(self):
- self._command_prefix = None
- self._type_prefix = None
-
- def formatExtension(self, name):
- """Mark up an extension name as a link the spec."""
- return '`apiext:{}`'.format(name)
-
- @property
- def null(self):
- """Preferred spelling of NULL."""
- raise NotImplementedError
-
- def makeProseList(self, elements, fmt=ProseListFormats.AND, with_verb=False, *args, **kwargs):
- """Make a (comma-separated) list for use in prose.
-
- Adds a connective (by default, 'and')
- before the last element if there are more than 1.
-
- Adds the right one of "is" or "are" to the end if with_verb is true.
-
- Optionally adds a quantifier (like 'any') before a list of 2 or more,
- if specified by fmt.
-
- Override with a different method or different call to
- _implMakeProseList if you want to add a comma for two elements,
- or not use a serial comma.
- """
- return self._implMakeProseList(elements, fmt, with_verb, *args, **kwargs)
-
- @property
- def struct_macro(self):
- """Get the appropriate format macro for a structure.
-
- May override.
- """
- return 'slink:'
-
- @property
- def external_macro(self):
- """Get the appropriate format macro for an external type like uint32_t.
-
- May override.
- """
- return 'code:'
-
- def makeStructName(self, name):
- """Prepend the appropriate format macro for a structure to a structure type name.
-
- Uses struct_macro, so just override that if you want to change behavior.
- """
- return self.struct_macro + name
-
- def makeExternalTypeName(self, name):
- """Prepend the appropriate format macro for an external type like uint32_t to a type name.
-
- Uses external_macro, so just override that if you want to change behavior.
- """
- return self.external_macro + name
-
- def _implMakeProseList(self, elements, fmt, with_verb, comma_for_two_elts=False, serial_comma=True):
- """Internal-use implementation to make a (comma-separated) list for use in prose.
-
- Adds a connective (by default, 'and')
- before the last element if there are more than 1,
- and only includes commas if there are more than 2
- (if comma_for_two_elts is False).
-
- Adds the right one of "is" or "are" to the end if with_verb is true.
-
- Optionally adds a quantifier (like 'any') before a list of 2 or more,
- if specified by fmt.
-
- Do not edit these defaults, override self.makeProseList().
- """
- assert(serial_comma) # did not implement what we did not need
- if isinstance(fmt, str):
- fmt = ProseListFormats.from_string(fmt)
-
- my_elts = list(elements)
- if len(my_elts) > 1:
- my_elts[-1] = '{} {}'.format(fmt.connective, my_elts[-1])
-
- if not comma_for_two_elts and len(my_elts) <= 2:
- prose = ' '.join(my_elts)
- else:
- prose = ', '.join(my_elts)
-
- quantifier = fmt.quantifier(len(my_elts))
-
- parts = [quantifier, prose]
-
- if with_verb:
- if len(my_elts) > 1:
- parts.append(' are')
- else:
- parts.append(' is')
- return ''.join(parts)
-
- @property
- def file_suffix(self):
- """Return suffix of generated Asciidoctor files"""
- raise NotImplementedError
-
- def api_name(self, spectype=None):
- """Return API or specification name for citations in ref pages.
-
- spectype is the spec this refpage is for.
- 'api' (the default value) is the main API Specification.
- If an unrecognized spectype is given, returns None.
-
- Must implement."""
- raise NotImplementedError
-
- def should_insert_may_alias_macro(self, genOpts):
- """Return true if we should insert a "may alias" macro in this file.
-
- Only used by OpenXR right now."""
- return False
-
- @property
- def command_prefix(self):
- """Return the expected prefix of commands/functions.
-
- Implemented in terms of api_prefix."""
- if not self._command_prefix:
- self._command_prefix = self.api_prefix[:].replace('_', '').lower()
- return self._command_prefix
-
- @property
- def type_prefix(self):
- """Return the expected prefix of type names.
-
- Implemented in terms of command_prefix (and in turn, api_prefix)."""
- if not self._type_prefix:
- self._type_prefix = ''.join(
- (self.command_prefix[0:1].upper(), self.command_prefix[1:]))
- return self._type_prefix
-
- @property
- def api_prefix(self):
- """Return API token prefix.
-
- Typically two uppercase letters followed by an underscore.
-
- Must implement."""
- raise NotImplementedError
-
- @property
- def api_version_prefix(self):
- """Return API core version token prefix.
-
- Implemented in terms of api_prefix.
-
- May override."""
- return self.api_prefix + 'VERSION_'
-
- @property
- def KHR_prefix(self):
- """Return extension name prefix for KHR extensions.
-
- Implemented in terms of api_prefix.
-
- May override."""
- return self.api_prefix + 'KHR_'
-
- @property
- def EXT_prefix(self):
- """Return extension name prefix for EXT extensions.
-
- Implemented in terms of api_prefix.
-
- May override."""
- return self.api_prefix + 'EXT_'
-
- def writeFeature(self, featureExtraProtect, filename):
- """Return True if OutputGenerator.endFeature should write this feature.
-
- Defaults to always True.
- Used in COutputGenerator.
-
- May override."""
- return True
-
- def requires_error_validation(self, return_type):
- """Return True if the return_type element is an API result code
- requiring error validation.
-
- Defaults to always False.
-
- May override."""
- return False
-
- @property
- def required_errors(self):
- """Return a list of required error codes for validation.
-
- Defaults to an empty list.
-
- May override."""
- return []
-
- def is_voidpointer_alias(self, tag, text, tail):
- """Return True if the declaration components (tag,text,tail) of an
- element represents a void * type.
-
- Defaults to a reasonable implementation.
-
- May override."""
- return tag == 'type' and text == 'void' and tail.startswith('*')
-
- def make_voidpointer_alias(self, tail):
- """Reformat a void * declaration to include the API alias macro.
-
- Defaults to a no-op.
-
- Must override if you actually want to use this feature in your project."""
- return tail
-
- def category_requires_validation(self, category):
- """Return True if the given type 'category' always requires validation.
-
- Defaults to a reasonable implementation.
-
- May override."""
- return category in CATEGORIES_REQUIRING_VALIDATION
-
- def type_always_valid(self, typename):
- """Return True if the given type name is always valid (never requires validation).
-
- This is for things like integers.
-
- Defaults to a reasonable implementation.
-
- May override."""
- return typename in TYPES_KNOWN_ALWAYS_VALID
-
- @property
- def should_skip_checking_codes(self):
- """Return True if more than the basic validation of return codes should
- be skipped for a command."""
-
- return False
-
- @property
- def generate_index_terms(self):
- """Return True if asiidoctor index terms should be generated as part
- of an API interface from the docgenerator."""
-
- return False
-
- @property
- def generate_enum_table(self):
- """Return True if asciidoctor tables describing enumerants in a
- group should be generated as part of group generation."""
- return False
-
- @property
- def generate_max_enum_in_docs(self):
- """Return True if MAX_ENUM tokens should be generated in
- documentation includes."""
- return False
-
-
- def extension_include_string(self, ext):
- """Return format string for include:: line for an extension appendix
- file. ext is an object with the following members:
- - name - extension string string
- - vendor - vendor portion of name
- - barename - remainder of name
-
- Must implement."""
- raise NotImplementedError
-
- @property
- def refpage_generated_include_path(self):
- """Return path relative to the generated reference pages, to the
- generated API include files.
-
- Must implement."""
- raise NotImplementedError
-
- def valid_flag_bit(self, bitpos):
- """Return True if bitpos is an allowed numeric bit position for
- an API flag.
-
- Behavior depends on the data type used for flags (which may be 32
- or 64 bits), and may depend on assumptions about compiler
- handling of sign bits in enumerated types, as well."""
- return True
diff --git a/registry/generator.py b/registry/generator.py
deleted file mode 100644
index 1b7e265..0000000
--- a/registry/generator.py
+++ /dev/null
@@ -1,1225 +0,0 @@
-#!/usr/bin/python3 -i
-#
-# Copyright 2013-2022 The Khronos Group Inc.
-#
-# SPDX-License-Identifier: Apache-2.0
-"""Base class for source/header/doc generators, as well as some utility functions."""
-
-from __future__ import unicode_literals
-
-import io
-import os
-import pdb
-import re
-import shutil
-import sys
-import tempfile
-try:
- from pathlib import Path
-except ImportError:
- from pathlib2 import Path
-
-from spec_tools.util import getElemName, getElemType
-
-
-def write(*args, **kwargs):
- file = kwargs.pop('file', sys.stdout)
- end = kwargs.pop('end', '\n')
- file.write(' '.join(str(arg) for arg in args))
- file.write(end)
-
-
-def noneStr(s):
- """Return string argument, or "" if argument is None.
-
- Used in converting etree Elements into text.
- s - string to convert"""
- if s:
- return s
- return ""
-
-
-def enquote(s):
- """Return string argument with surrounding quotes,
- for serialization into Python code."""
- if s:
- if isinstance(s, str):
- return "'{}'".format(s)
- else:
- return s
- return None
-
-
-def regSortCategoryKey(feature):
- """Sort key for regSortFeatures.
- Sorts by category of the feature name string:
-
- - Core API features (those defined with a `<feature>` tag)
- - (sort VKSC after VK)
- - ARB/KHR/OES (Khronos extensions)
- - other (EXT/vendor extensions)"""
-
- if feature.elem.tag == 'feature':
- if feature.name.startswith('VKSC'):
- return 0.5
- return 0
- if (feature.category == 'ARB'
- or feature.category == 'KHR'
- or feature.category == 'OES'):
- return 1
-
- return 2
-
-
-def regSortOrderKey(feature):
- """Sort key for regSortFeatures - key is the sortorder attribute."""
-
- # print("regSortOrderKey {} -> {}".format(feature.name, feature.sortorder))
- return feature.sortorder
-
-
-def regSortFeatureVersionKey(feature):
- """Sort key for regSortFeatures - key is the feature version.
- `<extension>` elements all have version number 0."""
-
- return float(feature.versionNumber)
-
-
-def regSortExtensionNumberKey(feature):
- """Sort key for regSortFeatures - key is the extension number.
- `<feature>` elements all have extension number 0."""
-
- return int(feature.number)
-
-
-def regSortFeatures(featureList):
- """Default sort procedure for features.
-
- - Sorts by explicit sort order (default 0) relative to other features
- - then by feature category ('feature' or 'extension'),
- - then by version number (for features)
- - then by extension number (for extensions)"""
- featureList.sort(key=regSortExtensionNumberKey)
- featureList.sort(key=regSortFeatureVersionKey)
- featureList.sort(key=regSortCategoryKey)
- featureList.sort(key=regSortOrderKey)
-
-
-class GeneratorOptions:
- """Base class for options used during header/documentation production.
-
- These options are target language independent, and used by
- Registry.apiGen() and by base OutputGenerator objects."""
-
- def __init__(self,
- conventions=None,
- filename=None,
- directory='.',
- genpath=None,
- apiname=None,
- profile=None,
- versions='.*',
- emitversions='.*',
- defaultExtensions=None,
- addExtensions=None,
- removeExtensions=None,
- emitExtensions=None,
- emitSpirv=None,
- emitFormats=None,
- reparentEnums=True,
- sortProcedure=regSortFeatures,
- requireCommandAliases=False,
- ):
- """Constructor.
-
- Arguments:
-
- - conventions - may be mandatory for some generators:
- an object that implements ConventionsBase
- - filename - basename of file to generate, or None to write to stdout.
- - directory - directory in which to generate files
- - genpath - path to previously generated files, such as api.py
- - apiname - string matching `<api>` 'apiname' attribute, e.g. 'gl'.
- - profile - string specifying API profile , e.g. 'core', or None.
- - versions - regex matching API versions to process interfaces for.
- Normally `'.*'` or `'[0-9][.][0-9]'` to match all defined versions.
- - emitversions - regex matching API versions to actually emit
- interfaces for (though all requested versions are considered
- when deciding which interfaces to generate). For GL 4.3 glext.h,
- this might be `'1[.][2-5]|[2-4][.][0-9]'`.
- - defaultExtensions - If not None, a string which must in its
- entirety match the pattern in the "supported" attribute of
- the `<extension>`. Defaults to None. Usually the same as apiname.
- - addExtensions - regex matching names of additional extensions
- to include. Defaults to None.
- - removeExtensions - regex matching names of extensions to
- remove (after defaultExtensions and addExtensions). Defaults
- to None.
- - emitExtensions - regex matching names of extensions to actually emit
- interfaces for (though all requested versions are considered when
- deciding which interfaces to generate).
- to None.
- - emitSpirv - regex matching names of extensions and capabilities
- to actually emit interfaces for.
- - emitFormats - regex matching names of formats to actually emit
- interfaces for.
- - reparentEnums - move <enum> elements which extend an enumerated
- type from <feature> or <extension> elements to the target <enums>
- element. This is required for almost all purposes, but the
- InterfaceGenerator relies on the list of interfaces in the <feature>
- or <extension> being complete. Defaults to True.
- - sortProcedure - takes a list of FeatureInfo objects and sorts
- them in place to a preferred order in the generated output.
- Default is core API versions, ARB/KHR/OES extensions, all other
- extensions, by core API version number or extension number in each
- group.
-
- The regex patterns can be None or empty, in which case they match
- nothing."""
- self.conventions = conventions
- """may be mandatory for some generators:
- an object that implements ConventionsBase"""
-
- self.filename = filename
- "basename of file to generate, or None to write to stdout."
-
- self.genpath = genpath
- """path to previously generated files, such as api.py"""
-
- self.directory = directory
- "directory in which to generate filename"
-
- self.apiname = apiname
- "string matching `<api>` 'apiname' attribute, e.g. 'gl'."
-
- self.profile = profile
- "string specifying API profile , e.g. 'core', or None."
-
- self.versions = self.emptyRegex(versions)
- """regex matching API versions to process interfaces for.
- Normally `'.*'` or `'[0-9][.][0-9]'` to match all defined versions."""
-
- self.emitversions = self.emptyRegex(emitversions)
- """regex matching API versions to actually emit
- interfaces for (though all requested versions are considered
- when deciding which interfaces to generate). For GL 4.3 glext.h,
- this might be `'1[.][2-5]|[2-4][.][0-9]'`."""
-
- self.defaultExtensions = defaultExtensions
- """If not None, a string which must in its
- entirety match the pattern in the "supported" attribute of
- the `<extension>`. Defaults to None. Usually the same as apiname."""
-
- self.addExtensions = self.emptyRegex(addExtensions)
- """regex matching names of additional extensions
- to include. Defaults to None."""
-
- self.removeExtensions = self.emptyRegex(removeExtensions)
- """regex matching names of extensions to
- remove (after defaultExtensions and addExtensions). Defaults
- to None."""
-
- self.emitExtensions = self.emptyRegex(emitExtensions)
- """regex matching names of extensions to actually emit
- interfaces for (though all requested versions are considered when
- deciding which interfaces to generate)."""
-
- self.emitSpirv = self.emptyRegex(emitSpirv)
- """regex matching names of extensions and capabilities
- to actually emit interfaces for."""
-
- self.emitFormats = self.emptyRegex(emitFormats)
- """regex matching names of formats
- to actually emit interfaces for."""
-
- self.reparentEnums = reparentEnums
- """boolean specifying whether to remove <enum> elements from
- <feature> or <extension> when extending an <enums> type."""
-
- self.sortProcedure = sortProcedure
- """takes a list of FeatureInfo objects and sorts
- them in place to a preferred order in the generated output.
- Default is core API versions, ARB/KHR/OES extensions, all
- other extensions, alphabetically within each group."""
-
- self.codeGenerator = False
- """True if this generator makes compilable code"""
-
- self.requireCommandAliases = requireCommandAliases
- """True if alias= attributes of <command> tags are transitively
- required."""
-
- def emptyRegex(self, pat):
- """Substitute a regular expression which matches no version
- or extension names for None or the empty string."""
- if not pat:
- return '_nomatch_^'
-
- return pat
-
-
-class OutputGenerator:
- """Generate specified API interfaces in a specific style, such as a C header.
-
- Base class for generating API interfaces.
- Manages basic logic, logging, and output file control.
- Derived classes actually generate formatted output.
- """
-
- # categoryToPath - map XML 'category' to include file directory name
- categoryToPath = {
- 'bitmask': 'flags',
- 'enum': 'enums',
- 'funcpointer': 'funcpointers',
- 'handle': 'handles',
- 'define': 'defines',
- 'basetype': 'basetypes',
- }
-
- def breakName(self, name, msg):
- """Break into debugger if this is a special name"""
-
- # List of string names to break on
- bad = (
- )
-
- if name in bad and True:
- print('breakName {}: {}'.format(name, msg))
- pdb.set_trace()
-
- def __init__(self, errFile=sys.stderr, warnFile=sys.stderr, diagFile=sys.stdout):
- """Constructor
-
- - errFile, warnFile, diagFile - file handles to write errors,
- warnings, diagnostics to. May be None to not write."""
- self.outFile = None
- self.errFile = errFile
- self.warnFile = warnFile
- self.diagFile = diagFile
- # Internal state
- self.featureName = None
- self.genOpts = None
- self.registry = None
- self.featureDictionary = {}
- # Used for extension enum value generation
- self.extBase = 1000000000
- self.extBlockSize = 1000
- self.madeDirs = {}
-
- # API dictionary, which may be loaded by the beginFile method of
- # derived generators.
- self.apidict = None
-
- def logMsg(self, level, *args):
- """Write a message of different categories to different
- destinations.
-
- - `level`
- - 'diag' (diagnostic, voluminous)
- - 'warn' (warning)
- - 'error' (fatal error - raises exception after logging)
-
- - `*args` - print()-style arguments to direct to corresponding log"""
- if level == 'error':
- strfile = io.StringIO()
- write('ERROR:', *args, file=strfile)
- if self.errFile is not None:
- write(strfile.getvalue(), file=self.errFile)
- raise UserWarning(strfile.getvalue())
- elif level == 'warn':
- if self.warnFile is not None:
- write('WARNING:', *args, file=self.warnFile)
- elif level == 'diag':
- if self.diagFile is not None:
- write('DIAG:', *args, file=self.diagFile)
- else:
- raise UserWarning(
- '*** FATAL ERROR in Generator.logMsg: unknown level:' + level)
-
- def enumToValue(self, elem, needsNum, bitwidth = 32, forceSuffix = False):
- """Parse and convert an `<enum>` tag into a value.
-
- Returns a list:
-
- - first element - integer representation of the value, or None
- if needsNum is False. The value must be a legal number
- if needsNum is True.
- - second element - string representation of the value
-
- There are several possible representations of values.
-
- - A 'value' attribute simply contains the value.
- - A 'bitpos' attribute defines a value by specifying the bit
- position which is set in that value.
- - An 'offset','extbase','extends' triplet specifies a value
- as an offset to a base value defined by the specified
- 'extbase' extension name, which is then cast to the
- typename specified by 'extends'. This requires probing
- the registry database, and imbeds knowledge of the
- API extension enum scheme in this function.
- - An 'alias' attribute contains the name of another enum
- which this is an alias of. The other enum must be
- declared first when emitting this enum."""
- name = elem.get('name')
- numVal = None
- if 'value' in elem.keys():
- value = elem.get('value')
- # print('About to translate value =', value, 'type =', type(value))
- if needsNum:
- numVal = int(value, 0)
- # If there is a non-integer, numeric 'type' attribute (e.g. 'u' or
- # 'ull'), append it to the string value.
- # t = enuminfo.elem.get('type')
- # if t is not None and t != '' and t != 'i' and t != 's':
- # value += enuminfo.type
- if forceSuffix:
- if bitwidth == 64:
- value = value + 'ULL'
- else:
- value = value + 'U'
- self.logMsg('diag', 'Enum', name, '-> value [', numVal, ',', value, ']')
- return [numVal, value]
- if 'bitpos' in elem.keys():
- value = elem.get('bitpos')
- bitpos = int(value, 0)
- numVal = 1 << bitpos
- value = '0x%08x' % numVal
- if bitwidth == 64:
- value = value + 'ULL'
- elif forceSuffix:
- value = value + 'U'
- self.logMsg('diag', 'Enum', name, '-> bitpos [', numVal, ',', value, ']')
- return [numVal, value]
- if 'offset' in elem.keys():
- # Obtain values in the mapping from the attributes
- enumNegative = False
- offset = int(elem.get('offset'), 0)
- extnumber = int(elem.get('extnumber'), 0)
- extends = elem.get('extends')
- if 'dir' in elem.keys():
- enumNegative = True
- self.logMsg('diag', 'Enum', name, 'offset =', offset,
- 'extnumber =', extnumber, 'extends =', extends,
- 'enumNegative =', enumNegative)
- # Now determine the actual enumerant value, as defined
- # in the "Layers and Extensions" appendix of the spec.
- numVal = self.extBase + (extnumber - 1) * self.extBlockSize + offset
- if enumNegative:
- numVal *= -1
- value = '%d' % numVal
- # More logic needed!
- self.logMsg('diag', 'Enum', name, '-> offset [', numVal, ',', value, ']')
- return [numVal, value]
- if 'alias' in elem.keys():
- return [None, elem.get('alias')]
- return [None, None]
-
- def checkDuplicateEnums(self, enums):
- """Check enumerated values for duplicates.
-
- - enums - list of `<enum>` Elements
-
- returns the list with duplicates stripped"""
- # Dictionaries indexed by name and numeric value.
- # Entries are [ Element, numVal, strVal ] matching name or value
-
- nameMap = {}
- valueMap = {}
-
- stripped = []
- for elem in enums:
- name = elem.get('name')
- (numVal, strVal) = self.enumToValue(elem, True)
-
- if name in nameMap:
- # Duplicate name found; check values
- (name2, numVal2, strVal2) = nameMap[name]
-
- # Duplicate enum values for the same name are benign. This
- # happens when defining the same enum conditionally in
- # several extension blocks.
- if (strVal2 == strVal or (numVal is not None
- and numVal == numVal2)):
- True
- # self.logMsg('info', 'checkDuplicateEnums: Duplicate enum (' + name +
- # ') found with the same value:' + strVal)
- else:
- self.logMsg('warn', 'checkDuplicateEnums: Duplicate enum (' + name
- + ') found with different values:' + strVal
- + ' and ' + strVal2)
-
- # Do not add the duplicate to the returned list
- continue
- elif numVal in valueMap:
- # Duplicate value found (such as an alias); report it, but
- # still add this enum to the list.
- (name2, numVal2, strVal2) = valueMap[numVal]
-
- msg = 'Two enums found with the same value: {} = {} = {}'.format(
- name, name2.get('name'), strVal)
- self.logMsg('error', msg)
-
- # Track this enum to detect followon duplicates
- nameMap[name] = [elem, numVal, strVal]
- if numVal is not None:
- valueMap[numVal] = [elem, numVal, strVal]
-
- # Add this enum to the list
- stripped.append(elem)
-
- # Return the list
- return stripped
-
- def misracstyle(self):
- return False;
-
- def misracppstyle(self):
- return False;
-
- def buildEnumCDecl(self, expand, groupinfo, groupName):
- """Generate the C declaration for an enum"""
- groupElem = groupinfo.elem
-
- # Determine the required bit width for the enum group.
- # 32 is the default, which generates C enum types for the values.
- bitwidth = 32
-
- # If the constFlagBits preference is set, 64 is the default for bitmasks
- if self.genOpts.conventions.constFlagBits and groupElem.get('type') == 'bitmask':
- bitwidth = 64
-
- # Check for an explicitly defined bitwidth, which will override any defaults.
- if groupElem.get('bitwidth'):
- try:
- bitwidth = int(groupElem.get('bitwidth'))
- except ValueError as ve:
- self.logMsg('error', 'Invalid value for bitwidth attribute (', groupElem.get('bitwidth'), ') for ', groupName, ' - must be an integer value\n')
- exit(1)
-
- usebitmask = False
- usedefine = False
-
- # Bitmask flags can be generated as either "static const uint{32,64}_t" values,
- # or as 32-bit C enums. 64-bit types must use uint64_t values.
- if groupElem.get('type') == 'bitmask':
- if bitwidth > 32 or self.misracppstyle():
- usebitmask = True
- if self.misracstyle():
- usedefine = True
-
- if usedefine or usebitmask:
- # Validate the bitwidth and generate values appropriately
- if bitwidth > 64:
- self.logMsg('error', 'Invalid value for bitwidth attribute (', groupElem.get('bitwidth'), ') for bitmask type ', groupName, ' - must be less than or equal to 64\n')
- exit(1)
- else:
- return self.buildEnumCDecl_BitmaskOrDefine(groupinfo, groupName, bitwidth, usedefine)
- else:
- # Validate the bitwidth and generate values appropriately
- if bitwidth > 32:
- self.logMsg('error', 'Invalid value for bitwidth attribute (', groupElem.get('bitwidth'), ') for enum type ', groupName, ' - must be less than or equal to 32\n')
- exit(1)
- else:
- return self.buildEnumCDecl_Enum(expand, groupinfo, groupName)
-
- def buildEnumCDecl_BitmaskOrDefine(self, groupinfo, groupName, bitwidth, usedefine):
- """Generate the C declaration for an "enum" that is actually a
- set of flag bits"""
- groupElem = groupinfo.elem
- flagTypeName = groupElem.get('name')
-
- # Prefix
- body = "// Flag bits for " + flagTypeName + "\n"
-
- if bitwidth == 64:
- body += "typedef VkFlags64 %s;\n" % flagTypeName;
- else:
- body += "typedef VkFlags %s;\n" % flagTypeName;
-
- # Maximum allowable value for a flag (unsigned 64-bit integer)
- maxValidValue = 2**(64) - 1
- minValidValue = 0
-
- # Get a list of nested 'enum' tags.
- enums = groupElem.findall('enum')
-
- # Check for and report duplicates, and return a list with them
- # removed.
- enums = self.checkDuplicateEnums(enums)
-
- # Accumulate non-numeric enumerant values separately and append
- # them following the numeric values, to allow for aliases.
- # NOTE: this does not do a topological sort yet, so aliases of
- # aliases can still get in the wrong order.
- aliasText = ''
-
- # Loop over the nested 'enum' tags.
- for elem in enums:
- # Convert the value to an integer and use that to track min/max.
- # Values of form -(number) are accepted but nothing more complex.
- # Should catch exceptions here for more complex constructs. Not yet.
- (numVal, strVal) = self.enumToValue(elem, True, bitwidth, True)
- name = elem.get('name')
-
- # Range check for the enum value
- if numVal is not None and (numVal > maxValidValue or numVal < minValidValue):
- self.logMsg('error', 'Allowable range for flag types in C is [', minValidValue, ',', maxValidValue, '], but', name, 'flag has a value outside of this (', strVal, ')\n')
- exit(1)
-
- decl = self.genRequirements(name, mustBeFound = False)
-
- if self.isEnumRequired(elem):
- protect = elem.get('protect')
- if protect is not None:
- body += '#ifdef {}\n'.format(protect)
-
- if usedefine:
- decl += "#define {} {}\n".format(name, strVal)
- elif self.misracppstyle():
- decl += "static constexpr {} {} {{{}}};\n".format(flagTypeName, name, strVal)
- else:
- # Some C compilers only allow initializing a 'static const' variable with a literal value.
- # So initializing an alias from another 'static const' value would fail to compile.
- # Work around this by chasing the aliases to get the actual value.
- while numVal is None:
- alias = self.registry.tree.find("enums/enum[@name='" + strVal + "']")
- if alias is not None:
- (numVal, strVal) = self.enumToValue(alias, True, bitwidth, True)
- else:
- self.logMsg('error', 'No such alias {} for enum {}'.format(strVal, name))
- decl += "static const {} {} = {};\n".format(flagTypeName, name, strVal)
-
- if numVal is not None:
- body += decl
- else:
- aliasText += decl
-
- if protect is not None:
- body += '#endif\n'
-
- # Now append the non-numeric enumerant values
- body += aliasText
-
- # Postfix
-
- return ("bitmask", body)
-
- def buildEnumCDecl_Enum(self, expand, groupinfo, groupName):
- """Generate the C declaration for an enumerated type"""
- groupElem = groupinfo.elem
-
- # Break the group name into prefix and suffix portions for range
- # enum generation
- expandName = re.sub(r'([0-9]+|[a-z_])([A-Z0-9])', r'\1_\2', groupName).upper()
- expandPrefix = expandName
- expandSuffix = ''
- expandSuffixMatch = re.search(r'[A-Z][A-Z]+$', groupName)
- if expandSuffixMatch:
- expandSuffix = '_' + expandSuffixMatch.group()
- # Strip off the suffix from the prefix
- expandPrefix = expandName.rsplit(expandSuffix, 1)[0]
-
- # Prefix
- body = ["typedef enum %s {" % groupName]
-
- # @@ Should use the type="bitmask" attribute instead
- isEnum = ('FLAG_BITS' not in expandPrefix)
-
- # Allowable range for a C enum - which is that of a signed 32-bit integer
- maxValidValue = 2**(32 - 1) - 1
- minValidValue = (maxValidValue * -1) - 1
-
-
- # Get a list of nested 'enum' tags.
- enums = groupElem.findall('enum')
-
- # Check for and report duplicates, and return a list with them
- # removed.
- enums = self.checkDuplicateEnums(enums)
-
- # Loop over the nested 'enum' tags. Keep track of the minimum and
- # maximum numeric values, if they can be determined; but only for
- # core API enumerants, not extension enumerants. This is inferred
- # by looking for 'extends' attributes.
- minName = None
-
- # Accumulate non-numeric enumerant values separately and append
- # them following the numeric values, to allow for aliases.
- # NOTE: this does not do a topological sort yet, so aliases of
- # aliases can still get in the wrong order.
- aliasText = []
-
- for elem in enums:
- # Convert the value to an integer and use that to track min/max.
- # Values of form -(number) are accepted but nothing more complex.
- # Should catch exceptions here for more complex constructs. Not yet.
- (numVal, strVal) = self.enumToValue(elem, True)
- name = elem.get('name')
-
- # Extension enumerants are only included if they are required
- if self.isEnumRequired(elem):
- decl = ''
-
- protect = elem.get('protect')
- if protect is not None:
- decl += '#ifdef {}\n'.format(protect)
-
- # Indent requirements comment, if there is one
- requirements = self.genRequirements(name, mustBeFound = False)
- if requirements != '':
- requirements = ' ' + requirements
- decl += requirements
- decl += ' {} = {},'.format(name, strVal)
-
- if protect is not None:
- decl += '\n#endif'
-
- if numVal is not None:
- body.append(decl)
- else:
- aliasText.append(decl)
-
- # Range check for the enum value
- if numVal is not None and (numVal > maxValidValue or numVal < minValidValue):
- self.logMsg('error', 'Allowable range for C enum types is [', minValidValue, ',', maxValidValue, '], but', name, 'has a value outside of this (', strVal, ')\n')
- exit(1)
-
- # Do not track min/max for non-numbers (numVal is None)
- if isEnum and numVal is not None and elem.get('extends') is None:
- if minName is None:
- minName = maxName = name
- minValue = maxValue = numVal
- elif numVal < minValue:
- minName = name
- minValue = numVal
- elif numVal > maxValue:
- maxName = name
- maxValue = numVal
-
- # Now append the non-numeric enumerant values
- body.extend(aliasText)
-
- # Generate min/max value tokens - legacy use case.
- if isEnum and expand:
- body.extend((" {}_BEGIN_RANGE{} = {},".format(expandPrefix, expandSuffix, minName),
- " {}_END_RANGE{} = {},".format(
- expandPrefix, expandSuffix, maxName),
- " {}_RANGE_SIZE{} = ({} - {} + 1),".format(expandPrefix, expandSuffix, maxName, minName)))
-
- # Generate a range-padding value to ensure the enum is 32 bits, but
- # only in code generators, so it does not appear in documentation
- if (self.genOpts.codeGenerator or
- self.conventions.generate_max_enum_in_docs):
- body.append(" {}_MAX_ENUM{} = 0x7FFFFFFF".format(
- expandPrefix, expandSuffix))
-
- # Postfix
- body.append("} %s;" % groupName)
-
- # Determine appropriate section for this declaration
- if groupElem.get('type') == 'bitmask':
- section = 'bitmask'
- else:
- section = 'group'
-
- return (section, '\n'.join(body))
-
- def buildConstantCDecl(self, enuminfo, name, alias):
- """Generate the C declaration for a constant (a single <enum>
- value).
-
- <enum> tags may specify their values in several ways, but are
- usually just integers or floating-point numbers."""
-
- (_, strVal) = self.enumToValue(enuminfo.elem, False)
-
- if self.misracppstyle() and enuminfo.elem.get('type') and not alias:
- # Generate e.g.: static constexpr uint32_t x = ~static_cast<uint32_t>(1U);
- # This appeases MISRA "underlying type" rules.
- typeStr = enuminfo.elem.get('type');
- invert = '~' in strVal
- number = strVal.strip("()~UL")
- if typeStr != "float":
- number += 'U'
- strVal = "~" if invert else ""
- strVal += "static_cast<" + typeStr + ">(" + number + ")"
- body = 'static constexpr ' + typeStr.ljust(9) + name.ljust(33) + ' {' + strVal + '};'
- elif enuminfo.elem.get('type') and not alias:
- # Generate e.g.: #define x (~0ULL)
- typeStr = enuminfo.elem.get('type');
- invert = '~' in strVal
- paren = '(' in strVal
- number = strVal.strip("()~UL")
- if typeStr != "float":
- if typeStr == "uint64_t":
- number += 'ULL'
- else:
- number += 'U'
- strVal = "~" if invert else ""
- strVal += number
- if paren:
- strVal = "(" + strVal + ")";
- body = '#define ' + name.ljust(33) + ' ' + strVal;
- else:
- body = '#define ' + name.ljust(33) + ' ' + strVal
-
- return body
-
- def makeDir(self, path):
- """Create a directory, if not already done.
-
- Generally called from derived generators creating hierarchies."""
- self.logMsg('diag', 'OutputGenerator::makeDir(' + path + ')')
- if path not in self.madeDirs:
- # This can get race conditions with multiple writers, see
- # https://stackoverflow.com/questions/273192/
- if not os.path.exists(path):
- os.makedirs(path)
- self.madeDirs[path] = None
-
- def beginFile(self, genOpts):
- """Start a new interface file
-
- - genOpts - GeneratorOptions controlling what is generated and how"""
- self.genOpts = genOpts
- self.should_insert_may_alias_macro = \
- self.genOpts.conventions.should_insert_may_alias_macro(self.genOpts)
-
- # Try to import the API dictionary, api.py, if it exists. Nothing in
- # api.py cannot be extracted directly from the XML, and in the
- # future we should do that.
- if self.genOpts.genpath is not None:
- try:
- sys.path.insert(0, self.genOpts.genpath)
- import api
- self.apidict = api
- except ImportError:
- self.apidict = None
-
- self.conventions = genOpts.conventions
-
- # Open a temporary file for accumulating output.
- if self.genOpts.filename is not None:
- self.outFile = tempfile.NamedTemporaryFile(mode='w', encoding='utf-8', newline='\n', delete=False)
- else:
- self.outFile = sys.stdout
-
- def endFile(self):
- if self.errFile:
- self.errFile.flush()
- if self.warnFile:
- self.warnFile.flush()
- if self.diagFile:
- self.diagFile.flush()
- if self.outFile != sys.stdout and self.outFile != sys.stderr:
- self.outFile.close()
-
- # On successfully generating output, move the temporary file to the
- # target file.
- if self.genOpts.filename is not None:
- if sys.platform == 'win32':
- directory = Path(self.genOpts.directory)
- if not Path.exists(directory):
- os.makedirs(directory)
- shutil.copy(self.outFile.name, self.genOpts.directory + '/' + self.genOpts.filename)
- os.remove(self.outFile.name)
- self.genOpts = None
-
- def beginFeature(self, interface, emit):
- """Write interface for a feature and tag generated features as having been done.
-
- - interface - element for the `<version>` / `<extension>` to generate
- - emit - actually write to the header only when True"""
- self.emit = emit
- self.featureName = interface.get('name')
- # If there is an additional 'protect' attribute in the feature, save it
- self.featureExtraProtect = interface.get('protect')
-
- def endFeature(self):
- """Finish an interface file, closing it when done.
-
- Derived classes responsible for emitting feature"""
- self.featureName = None
- self.featureExtraProtect = None
-
- def genRequirements(self, name, mustBeFound = True):
- """Generate text showing what core versions and extensions introduce
- an API. This exists in the base Generator class because it is used by
- the shared enumerant-generating interfaces (buildEnumCDecl, etc.).
- Here it returns an empty string for most generators, but can be
- overridden by e.g. DocGenerator.
-
- - name - name of the API
- - mustBeFound - If True, when requirements for 'name' cannot be
- determined, a warning comment is generated.
- """
-
- return ''
-
- def validateFeature(self, featureType, featureName):
- """Validate we are generating something only inside a `<feature>` tag"""
- if self.featureName is None:
- raise UserWarning('Attempt to generate', featureType,
- featureName, 'when not in feature')
-
- def genType(self, typeinfo, name, alias):
- """Generate interface for a type
-
- - typeinfo - TypeInfo for a type
-
- Extend to generate as desired in your derived class."""
- self.validateFeature('type', name)
-
- def genStruct(self, typeinfo, typeName, alias):
- """Generate interface for a C "struct" type.
-
- - typeinfo - TypeInfo for a type interpreted as a struct
-
- Extend to generate as desired in your derived class."""
- self.validateFeature('struct', typeName)
-
- # The mixed-mode <member> tags may contain no-op <comment> tags.
- # It is convenient to remove them here where all output generators
- # will benefit.
- for member in typeinfo.elem.findall('.//member'):
- for comment in member.findall('comment'):
- member.remove(comment)
-
- def genGroup(self, groupinfo, groupName, alias):
- """Generate interface for a group of enums (C "enum")
-
- - groupinfo - GroupInfo for a group.
-
- Extend to generate as desired in your derived class."""
-
- self.validateFeature('group', groupName)
-
- def genEnum(self, enuminfo, typeName, alias):
- """Generate interface for an enum (constant).
-
- - enuminfo - EnumInfo for an enum
- - name - enum name
-
- Extend to generate as desired in your derived class."""
- self.validateFeature('enum', typeName)
-
- def genCmd(self, cmd, cmdinfo, alias):
- """Generate interface for a command.
-
- - cmdinfo - CmdInfo for a command
-
- Extend to generate as desired in your derived class."""
- self.validateFeature('command', cmdinfo)
-
- def genSpirv(self, spirv, spirvinfo, alias):
- """Generate interface for a spirv element.
-
- - spirvinfo - SpirvInfo for a command
-
- Extend to generate as desired in your derived class."""
- return
-
- def genFormat(self, format, formatinfo, alias):
- """Generate interface for a format element.
-
- - formatinfo - FormatInfo
-
- Extend to generate as desired in your derived class."""
- return
-
- def makeProtoName(self, name, tail):
- """Turn a `<proto>` `<name>` into C-language prototype
- and typedef declarations for that name.
-
- - name - contents of `<name>` tag
- - tail - whatever text follows that tag in the Element"""
- return self.genOpts.apientry + name + tail
-
- def makeTypedefName(self, name, tail):
- """Make the function-pointer typedef name for a command."""
- return '(' + self.genOpts.apientryp + 'PFN_' + name + tail + ')'
-
- def makeCParamDecl(self, param, aligncol):
- """Return a string which is an indented, formatted
- declaration for a `<param>` or `<member>` block (e.g. function parameter
- or structure/union member).
-
- - param - Element (`<param>` or `<member>`) to format
- - aligncol - if non-zero, attempt to align the nested `<name>` element
- at this column"""
- indent = ' '
- paramdecl = indent
- prefix = noneStr(param.text)
-
- for elem in param:
- text = noneStr(elem.text)
- tail = noneStr(elem.tail)
-
- if self.should_insert_may_alias_macro and self.genOpts.conventions.is_voidpointer_alias(elem.tag, text, tail):
- # OpenXR-specific macro insertion - but not in apiinc for the spec
- tail = self.genOpts.conventions.make_voidpointer_alias(tail)
- if elem.tag == 'name' and aligncol > 0:
- self.logMsg('diag', 'Aligning parameter', elem.text, 'to column', self.genOpts.alignFuncParam)
- # Align at specified column, if possible
- paramdecl = paramdecl.rstrip()
- oldLen = len(paramdecl)
- # This works around a problem where very long type names -
- # longer than the alignment column - would run into the tail
- # text.
- paramdecl = paramdecl.ljust(aligncol - 1) + ' '
- newLen = len(paramdecl)
- self.logMsg('diag', 'Adjust length of parameter decl from', oldLen, 'to', newLen, ':', paramdecl)
-
- if (self.misracppstyle() and prefix.find('const ') != -1):
- # Change pointer type order from e.g. "const void *" to "void const *".
- # If the string starts with 'const', reorder it to be after the first type.
- paramdecl += prefix.replace('const ', '') + text + ' const' + tail
- else:
- paramdecl += prefix + text + tail
-
- # Clear prefix for subsequent iterations
- prefix = ''
-
- paramdecl = paramdecl + prefix
-
- if aligncol == 0:
- # Squeeze out multiple spaces other than the indentation
- paramdecl = indent + ' '.join(paramdecl.split())
- return paramdecl
-
- def getCParamTypeLength(self, param):
- """Return the length of the type field is an indented, formatted
- declaration for a `<param>` or `<member>` block (e.g. function parameter
- or structure/union member).
-
- - param - Element (`<param>` or `<member>`) to identify"""
-
- # Allow for missing <name> tag
- newLen = 0
- paramdecl = ' ' + noneStr(param.text)
- for elem in param:
- text = noneStr(elem.text)
- tail = noneStr(elem.tail)
-
- if self.should_insert_may_alias_macro and self.genOpts.conventions.is_voidpointer_alias(elem.tag, text, tail):
- # OpenXR-specific macro insertion
- tail = self.genOpts.conventions.make_voidpointer_alias(tail)
- if elem.tag == 'name':
- # Align at specified column, if possible
- newLen = len(paramdecl.rstrip())
- self.logMsg('diag', 'Identifying length of', elem.text, 'as', newLen)
- paramdecl += text + tail
-
- return newLen
-
- def getMaxCParamTypeLength(self, info):
- """Return the length of the longest type field for a member/parameter.
-
- - info - TypeInfo or CommandInfo.
- """
- lengths = (self.getCParamTypeLength(member)
- for member in info.getMembers())
- return max(lengths)
-
- def getHandleParent(self, typename):
- """Get the parent of a handle object."""
- info = self.registry.typedict.get(typename)
- if info is None:
- return None
-
- elem = info.elem
- if elem is not None:
- return elem.get('parent')
-
- return None
-
- def iterateHandleAncestors(self, typename):
- """Iterate through the ancestors of a handle type."""
- current = self.getHandleParent(typename)
- while current is not None:
- yield current
- current = self.getHandleParent(current)
-
- def getHandleAncestors(self, typename):
- """Get the ancestors of a handle object."""
- return list(self.iterateHandleAncestors(typename))
-
- def getTypeCategory(self, typename):
- """Get the category of a type."""
- info = self.registry.typedict.get(typename)
- if info is None:
- return None
-
- elem = info.elem
- if elem is not None:
- return elem.get('category')
- return None
-
- def isStructAlwaysValid(self, structname):
- """Try to do check if a structure is always considered valid (i.e. there is no rules to its acceptance)."""
- # A conventions object is required for this call.
- if not self.conventions:
- raise RuntimeError("To use isStructAlwaysValid, be sure your options include a Conventions object.")
-
- if self.conventions.type_always_valid(structname):
- return True
-
- category = self.getTypeCategory(structname)
- if self.conventions.category_requires_validation(category):
- return False
-
- info = self.registry.typedict.get(structname)
- if info is None:
- self.logMsg('error', f'isStructAlwaysValid({structname}) - structure not found in typedict')
-
- members = info.getMembers()
-
- for member in members:
- member_name = getElemName(member)
- if member_name in (self.conventions.structtype_member_name,
- self.conventions.nextpointer_member_name):
- return False
-
- if member.get('noautovalidity'):
- return False
-
- member_type = getElemType(member)
-
- if member_type in ('void', 'char') or self.paramIsArray(member) or self.paramIsPointer(member):
- return False
-
- if self.conventions.type_always_valid(member_type):
- continue
-
- member_category = self.getTypeCategory(member_type)
-
- if self.conventions.category_requires_validation(member_category):
- return False
-
- if member_category in ('struct', 'union'):
- if self.isStructAlwaysValid(member_type) is False:
- return False
-
- return True
-
- def isEnumRequired(self, elem):
- """Return True if this `<enum>` element is
- required, False otherwise
-
- - elem - `<enum>` element to test"""
- required = elem.get('required') is not None
- self.logMsg('diag', 'isEnumRequired:', elem.get('name'),
- '->', required)
- return required
-
- # @@@ This code is overridden by equivalent code now run in
- # @@@ Registry.generateFeature
-
- required = False
-
- extname = elem.get('extname')
- if extname is not None:
- # 'supported' attribute was injected when the <enum> element was
- # moved into the <enums> group in Registry.parseTree()
- if self.genOpts.defaultExtensions == elem.get('supported'):
- required = True
- elif re.match(self.genOpts.addExtensions, extname) is not None:
- required = True
- elif elem.get('version') is not None:
- required = re.match(self.genOpts.emitversions, elem.get('version')) is not None
- else:
- required = True
-
- return required
-
- def makeCDecls(self, cmd):
- """Return C prototype and function pointer typedef for a
- `<command>` Element, as a two-element list of strings.
-
- - cmd - Element containing a `<command>` tag"""
- proto = cmd.find('proto')
- params = cmd.findall('param')
- # Begin accumulating prototype and typedef strings
- pdecl = self.genOpts.apicall
- tdecl = 'typedef '
-
- # Insert the function return type/name.
- # For prototypes, add APIENTRY macro before the name
- # For typedefs, add (APIENTRY *<name>) around the name and
- # use the PFN_cmdnameproc naming convention.
- # Done by walking the tree for <proto> element by element.
- # etree has elem.text followed by (elem[i], elem[i].tail)
- # for each child element and any following text
- # Leading text
- pdecl += noneStr(proto.text)
- tdecl += noneStr(proto.text)
- # For each child element, if it is a <name> wrap in appropriate
- # declaration. Otherwise append its contents and tail contents.
- for elem in proto:
- text = noneStr(elem.text)
- tail = noneStr(elem.tail)
- if elem.tag == 'name':
- pdecl += self.makeProtoName(text, tail)
- tdecl += self.makeTypedefName(text, tail)
- else:
- pdecl += text + tail
- tdecl += text + tail
-
- if self.genOpts.alignFuncParam == 0:
- # Squeeze out multiple spaces - there is no indentation
- pdecl = ' '.join(pdecl.split())
- tdecl = ' '.join(tdecl.split())
-
- # Now add the parameter declaration list, which is identical
- # for prototypes and typedefs. Concatenate all the text from
- # a <param> node without the tags. No tree walking required
- # since all tags are ignored.
- # Uses: self.indentFuncProto
- # self.indentFuncPointer
- # self.alignFuncParam
- n = len(params)
- # Indented parameters
- if n > 0:
- indentdecl = '(\n'
- indentdecl += ',\n'.join(self.makeCParamDecl(p, self.genOpts.alignFuncParam)
- for p in params)
- indentdecl += ');'
- else:
- indentdecl = '(void);'
- # Non-indented parameters
- paramdecl = '('
- if n > 0:
- paramnames = []
- if self.misracppstyle():
- for p in params:
- param = ''
- firstIter = True;
- for t in p.itertext():
- if (firstIter):
- prefix = t
- firstIter = False
- else:
- # Change pointer type order from e.g. "const void *" to "void const *".
- # If the string starts with 'const', reorder it to be after the first type.
- if (prefix.find('const ') != -1):
- param += prefix.replace('const ', '') + t + ' const '
- else:
- param += prefix + t
- # Clear prefix for subsequent iterations
- prefix = ''
- paramnames.append(param);
- else:
- paramnames = (''.join(t for t in p.itertext())
- for p in params)
- paramdecl += ', '.join(paramnames)
- else:
- paramdecl += 'void'
- paramdecl += ");"
- return [pdecl + indentdecl, tdecl + paramdecl]
-
- def newline(self):
- """Print a newline to the output file (utility function)"""
- write('', file=self.outFile)
-
- def setRegistry(self, registry):
- self.registry = registry
diff --git a/registry/genvk.py b/registry/genvk.py
deleted file mode 100755
index d785763..0000000
--- a/registry/genvk.py
+++ /dev/null
@@ -1,817 +0,0 @@
-#!/usr/bin/python3
-#
-# Copyright 2013-2022 The Khronos Group Inc.
-#
-# SPDX-License-Identifier: Apache-2.0
-
-import argparse
-import pdb
-import re
-import sys
-import time
-import xml.etree.ElementTree as etree
-
-from cgenerator import CGeneratorOptions, COutputGenerator
-from docgenerator import DocGeneratorOptions, DocOutputGenerator
-from extensionmetadocgenerator import (ExtensionMetaDocGeneratorOptions,
- ExtensionMetaDocOutputGenerator)
-from interfacedocgenerator import InterfaceDocGenerator
-from generator import write
-from spirvcapgenerator import SpirvCapabilityOutputGenerator
-from hostsyncgenerator import HostSynchronizationOutputGenerator
-from formatsgenerator import FormatsOutputGenerator
-from pygenerator import PyOutputGenerator
-from rubygenerator import RubyOutputGenerator
-from reflib import logDiag, logWarn, setLogFile
-from reg import Registry
-from validitygenerator import ValidityOutputGenerator
-from apiconventions import APIConventions
-
-
-# Simple timer functions
-startTime = None
-
-
-def startTimer(timeit):
- global startTime
- if timeit:
- startTime = time.process_time()
-
-
-def endTimer(timeit, msg):
- global startTime
- if timeit:
- endTime = time.process_time()
- logDiag(msg, endTime - startTime)
- startTime = None
-
-
-def makeREstring(strings, default=None, strings_are_regex=False):
- """Turn a list of strings into a regexp string matching exactly those strings."""
- if strings or default is None:
- if not strings_are_regex:
- strings = (re.escape(s) for s in strings)
- return '^(' + '|'.join(strings) + ')$'
- return default
-
-
-def makeGenOpts(args):
- """Returns a directory of [ generator function, generator options ] indexed
- by specified short names. The generator options incorporate the following
- parameters:
-
- args is an parsed argument object; see below for the fields that are used."""
- global genOpts
- genOpts = {}
-
- # Default class of extensions to include, or None
- defaultExtensions = args.defaultExtensions
-
- # Additional extensions to include (list of extensions)
- extensions = args.extension
-
- # Extensions to remove (list of extensions)
- removeExtensions = args.removeExtensions
-
- # Extensions to emit (list of extensions)
- emitExtensions = args.emitExtensions
-
- # SPIR-V capabilities / features to emit (list of extensions & capabilities)
- emitSpirv = args.emitSpirv
-
- # Vulkan Formats to emit
- emitFormats = args.emitFormats
-
- # Features to include (list of features)
- features = args.feature
-
- # Whether to disable inclusion protect in headers
- protect = args.protect
-
- # Output target directory
- directory = args.directory
-
- # Path to generated files, particularly api.py
- genpath = args.genpath
-
- # Generate MISRA C-friendly headers
- misracstyle = args.misracstyle;
-
- # Generate MISRA C++-friendly headers
- misracppstyle = args.misracppstyle;
-
- # Descriptive names for various regexp patterns used to select
- # versions and extensions
- allFormats = allSpirv = allFeatures = allExtensions = r'.*'
-
- # Turn lists of names/patterns into matching regular expressions
- addExtensionsPat = makeREstring(extensions, None)
- removeExtensionsPat = makeREstring(removeExtensions, None)
- emitExtensionsPat = makeREstring(emitExtensions, allExtensions)
- emitSpirvPat = makeREstring(emitSpirv, allSpirv)
- emitFormatsPat = makeREstring(emitFormats, allFormats)
- featuresPat = makeREstring(features, allFeatures)
-
- # Copyright text prefixing all headers (list of strings).
- # The SPDX formatting below works around constraints of the 'reuse' tool
- prefixStrings = [
- '/*',
- '** Copyright 2015-2022 The Khronos Group Inc.',
- '**',
- '** SPDX' + '-License-Identifier: Apache-2.0',
- '*/',
- ''
- ]
-
- # Text specific to Vulkan headers
- vkPrefixStrings = [
- '/*',
- '** This header is generated from the Khronos Vulkan XML API Registry.',
- '**',
- '*/',
- ''
- ]
-
- # Defaults for generating re-inclusion protection wrappers (or not)
- protectFile = protect
-
- # An API style conventions object
- conventions = APIConventions()
-
- defaultAPIName = conventions.xml_api_name
-
- # 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
- # macros (apientry etc.), unlike the header files.
- # Because the 1.0 core branch includes ref pages for extensions,
- # all the extension interfaces need to be generated, even though
- # none are used by the core spec itself.
- genOpts['apiinc'] = [
- DocOutputGenerator,
- DocGeneratorOptions(
- conventions = conventions,
- filename = 'timeMarker',
- directory = directory,
- genpath = genpath,
- apiname = defaultAPIName,
- profile = None,
- versions = featuresPat,
- emitversions = featuresPat,
- defaultExtensions = None,
- addExtensions = addExtensionsPat,
- removeExtensions = removeExtensionsPat,
- emitExtensions = emitExtensionsPat,
- prefixText = prefixStrings + vkPrefixStrings,
- apicall = '',
- apientry = '',
- apientryp = '*',
- alignFuncParam = 48,
- expandEnumerants = False)
- ]
-
- # Python and Ruby representations of API information, used by scripts
- # that do not need to load the full XML.
- genOpts['api.py'] = [
- PyOutputGenerator,
- DocGeneratorOptions(
- conventions = conventions,
- filename = 'api.py',
- directory = directory,
- genpath = None,
- apiname = defaultAPIName,
- profile = None,
- versions = featuresPat,
- emitversions = featuresPat,
- defaultExtensions = None,
- addExtensions = addExtensionsPat,
- removeExtensions = removeExtensionsPat,
- emitExtensions = emitExtensionsPat,
- reparentEnums = False)
- ]
-
- genOpts['api.rb'] = [
- RubyOutputGenerator,
- DocGeneratorOptions(
- conventions = conventions,
- filename = 'api.rb',
- directory = directory,
- genpath = None,
- apiname = defaultAPIName,
- profile = None,
- versions = featuresPat,
- emitversions = featuresPat,
- defaultExtensions = None,
- addExtensions = addExtensionsPat,
- removeExtensions = removeExtensionsPat,
- emitExtensions = emitExtensionsPat,
- reparentEnums = False)
- ]
-
-
- # API validity files for spec
- #
- # requireCommandAliases is set to True because we need validity files
- # for the command something is promoted to even when the promoted-to
- # feature is not included. This avoids wordy includes of validity files.
- genOpts['validinc'] = [
- ValidityOutputGenerator,
- DocGeneratorOptions(
- conventions = conventions,
- filename = 'timeMarker',
- directory = directory,
- genpath = None,
- apiname = defaultAPIName,
- profile = None,
- versions = featuresPat,
- emitversions = featuresPat,
- defaultExtensions = None,
- addExtensions = addExtensionsPat,
- removeExtensions = removeExtensionsPat,
- emitExtensions = emitExtensionsPat,
- requireCommandAliases = True,
- )
- ]
-
- # API host sync table files for spec
- genOpts['hostsyncinc'] = [
- HostSynchronizationOutputGenerator,
- DocGeneratorOptions(
- conventions = conventions,
- filename = 'timeMarker',
- directory = directory,
- genpath = None,
- apiname = defaultAPIName,
- profile = None,
- versions = featuresPat,
- emitversions = featuresPat,
- defaultExtensions = None,
- addExtensions = addExtensionsPat,
- removeExtensions = removeExtensionsPat,
- emitExtensions = emitExtensionsPat,
- reparentEnums = False)
- ]
-
- # Extension metainformation for spec extension appendices
- # Includes all extensions by default, but only so that the generated
- # 'promoted_extensions_*' files refer to all extensions that were
- # promoted to a core version.
- genOpts['extinc'] = [
- ExtensionMetaDocOutputGenerator,
- ExtensionMetaDocGeneratorOptions(
- conventions = conventions,
- filename = 'timeMarker',
- directory = directory,
- genpath = None,
- apiname = defaultAPIName,
- profile = None,
- versions = featuresPat,
- emitversions = None,
- defaultExtensions = defaultExtensions,
- addExtensions = addExtensionsPat,
- removeExtensions = None,
- emitExtensions = emitExtensionsPat)
- ]
-
- # Version and extension interface docs for version/extension appendices
- # Includes all extensions by default.
- genOpts['interfaceinc'] = [
- InterfaceDocGenerator,
- DocGeneratorOptions(
- conventions = conventions,
- filename = 'timeMarker',
- directory = directory,
- genpath = None,
- apiname = defaultAPIName,
- profile = None,
- versions = featuresPat,
- emitversions = featuresPat,
- defaultExtensions = None,
- addExtensions = addExtensionsPat,
- removeExtensions = removeExtensionsPat,
- emitExtensions = emitExtensionsPat,
- reparentEnums = False)
- ]
-
- genOpts['spirvcapinc'] = [
- SpirvCapabilityOutputGenerator,
- DocGeneratorOptions(
- conventions = conventions,
- filename = 'timeMarker',
- directory = directory,
- genpath = None,
- apiname = defaultAPIName,
- profile = None,
- versions = featuresPat,
- emitversions = featuresPat,
- defaultExtensions = None,
- addExtensions = addExtensionsPat,
- removeExtensions = removeExtensionsPat,
- emitExtensions = emitExtensionsPat,
- emitSpirv = emitSpirvPat,
- reparentEnums = False)
- ]
-
- # Used to generate various format chapter tables
- genOpts['formatsinc'] = [
- FormatsOutputGenerator,
- DocGeneratorOptions(
- conventions = conventions,
- filename = 'timeMarker',
- directory = directory,
- genpath = None,
- apiname = defaultAPIName,
- profile = None,
- versions = featuresPat,
- emitversions = featuresPat,
- defaultExtensions = None,
- addExtensions = addExtensionsPat,
- removeExtensions = removeExtensionsPat,
- emitExtensions = emitExtensionsPat,
- emitFormats = emitFormatsPat,
- reparentEnums = False)
- ]
-
- # Platform extensions, in their own header files
- # Each element of the platforms[] array defines information for
- # generating a single platform:
- # [0] is the generated header file name
- # [1] is the set of platform extensions to generate
- # [2] is additional extensions whose interfaces should be considered,
- # but suppressed in the output, to avoid duplicate definitions of
- # dependent types like VkDisplayKHR and VkSurfaceKHR which come from
- # non-platform extensions.
-
- # Track all platform extensions, for exclusion from vulkan_core.h
- allPlatformExtensions = []
-
- # Extensions suppressed for all WSI platforms (WSI extensions required
- # by all platforms)
- commonSuppressExtensions = [ 'VK_KHR_display', 'VK_KHR_swapchain' ]
-
- # Extensions required and suppressed for beta "platform". This can
- # probably eventually be derived from the requires= attributes of
- # the extension blocks.
- betaRequireExtensions = [
- 'VK_KHR_portability_subset',
- 'VK_KHR_video_queue',
- 'VK_KHR_video_decode_queue',
- 'VK_KHR_video_encode_queue',
- 'VK_EXT_video_decode_h264',
- 'VK_EXT_video_decode_h265',
- 'VK_EXT_video_encode_h264',
- 'VK_EXT_video_encode_h265',
- ]
-
- betaSuppressExtensions = []
-
- platforms = [
- [ 'vulkan_android.h', [ 'VK_KHR_android_surface',
- 'VK_ANDROID_external_memory_android_hardware_buffer'
- ], commonSuppressExtensions +
- [ 'VK_KHR_format_feature_flags2',
- ] ],
- [ 'vulkan_fuchsia.h', [ 'VK_FUCHSIA_imagepipe_surface',
- 'VK_FUCHSIA_external_memory',
- 'VK_FUCHSIA_external_semaphore',
- 'VK_FUCHSIA_buffer_collection' ], commonSuppressExtensions ],
- [ 'vulkan_ggp.h', [ 'VK_GGP_stream_descriptor_surface',
- 'VK_GGP_frame_token' ], commonSuppressExtensions ],
- [ 'vulkan_ios.h', [ 'VK_MVK_ios_surface' ], commonSuppressExtensions ],
- [ 'vulkan_macos.h', [ 'VK_MVK_macos_surface' ], commonSuppressExtensions ],
- [ 'vulkan_vi.h', [ 'VK_NN_vi_surface' ], commonSuppressExtensions ],
- [ 'vulkan_wayland.h', [ 'VK_KHR_wayland_surface' ], commonSuppressExtensions ],
- [ 'vulkan_win32.h', [ 'VK_.*_win32(|_.*)', 'VK_EXT_full_screen_exclusive' ],
- commonSuppressExtensions +
- [ 'VK_KHR_external_semaphore',
- 'VK_KHR_external_memory_capabilities',
- 'VK_KHR_external_fence',
- 'VK_KHR_external_fence_capabilities',
- 'VK_KHR_get_surface_capabilities2',
- 'VK_NV_external_memory_capabilities',
- ] ],
- [ 'vulkan_xcb.h', [ 'VK_KHR_xcb_surface' ], commonSuppressExtensions ],
- [ 'vulkan_xlib.h', [ 'VK_KHR_xlib_surface' ], commonSuppressExtensions ],
- [ 'vulkan_directfb.h', [ 'VK_EXT_directfb_surface' ], commonSuppressExtensions ],
- [ 'vulkan_xlib_xrandr.h', [ 'VK_EXT_acquire_xlib_display' ], commonSuppressExtensions ],
- [ 'vulkan_metal.h', [ 'VK_EXT_metal_surface' ], commonSuppressExtensions ],
- [ 'vulkan_screen.h', [ 'VK_QNX_screen_surface' ], commonSuppressExtensions ],
- [ 'vulkan_beta.h', betaRequireExtensions, betaSuppressExtensions ],
- ]
-
- for platform in platforms:
- headername = platform[0]
-
- allPlatformExtensions += platform[1]
-
- addPlatformExtensionsRE = makeREstring(
- platform[1] + platform[2], strings_are_regex=True)
- emitPlatformExtensionsRE = makeREstring(
- platform[1], strings_are_regex=True)
-
- opts = CGeneratorOptions(
- conventions = conventions,
- filename = headername,
- directory = directory,
- genpath = None,
- apiname = defaultAPIName,
- profile = None,
- versions = featuresPat,
- emitversions = None,
- defaultExtensions = None,
- addExtensions = addPlatformExtensionsRE,
- removeExtensions = None,
- emitExtensions = emitPlatformExtensionsRE,
- 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[headername] = [ COutputGenerator, opts ]
-
- # Header for core API + extensions.
- # To generate just the core API,
- # change to 'defaultExtensions = None' below.
- #
- # By default this adds all enabled, non-platform extensions.
- # It removes all platform extensions (from the platform headers options
- # constructed above) as well as any explicitly specified removals.
-
- removeExtensionsPat = makeREstring(
- allPlatformExtensions + removeExtensions, None, strings_are_regex=True)
-
- genOpts['vulkan_core.h'] = [
- COutputGenerator,
- CGeneratorOptions(
- conventions = conventions,
- filename = 'vulkan_core.h',
- directory = directory,
- genpath = None,
- apiname = defaultAPIName,
- profile = None,
- versions = featuresPat,
- emitversions = featuresPat,
- defaultExtensions = defaultExtensions,
- 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)
- ]
-
- # 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
- # are now defined in terms of the 1.1 interfaces, such a header is very
- # similar to vulkan_core.h.
- genOpts['vulkan10.h'] = [
- COutputGenerator,
- CGeneratorOptions(
- conventions = conventions,
- filename = 'vulkan10.h',
- directory = directory,
- genpath = None,
- apiname = defaultAPIName,
- profile = None,
- versions = 'VK_VERSION_1_0',
- emitversions = 'VK_VERSION_1_0',
- defaultExtensions = None,
- addExtensions = None,
- removeExtensions = None,
- emitExtensions = None,
- 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)
- ]
-
- # Video header target - combines all video extension dependencies into a
- # single header, at present.
- genOpts['vk_video.h'] = [
- COutputGenerator,
- CGeneratorOptions(
- conventions = conventions,
- filename = 'vk_video.h',
- directory = directory,
- genpath = None,
- apiname = 'vulkan',
- profile = None,
- versions = None,
- emitversions = None,
- defaultExtensions = defaultExtensions,
- addExtensions = addExtensionsPat,
- removeExtensions = removeExtensionsPat,
- emitExtensions = emitExtensionsPat,
- prefixText = prefixStrings + vkPrefixStrings,
- genFuncPointers = True,
- protectFile = protectFile,
- protectFeature = False,
- protectProto = '#ifndef',
- protectProtoStr = 'VK_NO_PROTOTYPES',
- apicall = '',
- apientry = '',
- apientryp = '',
- alignFuncParam = 48,
- misracstyle = misracstyle,
- misracppstyle = misracppstyle)
- ]
-
- # Video extension 'Std' interfaces, each in its own header files
- # These are not Vulkan extensions, or a part of the Vulkan API at all,
- # but are treated in a similar fashion for generation purposes.
- #
- # Each element of the videoStd[] array is an 'extension' name defining
- # an iterface, and is also the basis for the generated header file name.
-
- videoStd = [
- 'vulkan_video_codecs_common',
- 'vulkan_video_codec_h264std',
- 'vulkan_video_codec_h264std_decode',
- 'vulkan_video_codec_h264std_encode',
- 'vulkan_video_codec_h265std',
- 'vulkan_video_codec_h265std_decode',
- 'vulkan_video_codec_h265std_encode',
- ]
-
- addExtensionRE = makeREstring(videoStd)
- for codec in videoStd:
- headername = f'{codec}.h'
-
- # Consider all of the codecs 'extensions', but only emit this one
- emitExtensionRE = makeREstring([codec])
-
- opts = CGeneratorOptions(
- conventions = conventions,
- filename = headername,
- directory = directory,
- genpath = None,
- apiname = defaultAPIName,
- profile = None,
- versions = None,
- emitversions = None,
- defaultExtensions = None,
- addExtensions = addExtensionRE,
- removeExtensions = None,
- emitExtensions = emitExtensionRE,
- prefixText = prefixStrings + vkPrefixStrings,
- genFuncPointers = False,
- protectFile = protectFile,
- protectFeature = False,
- alignFuncParam = 48,
- )
-
- genOpts[headername] = [ COutputGenerator, opts ]
-
- # Unused - vulkan11.h target.
- # It is possible to generate a header with just the Vulkan 1.0 +
- # extension interfaces defined, but since the promoted KHR extensions
- # are now defined in terms of the 1.1 interfaces, such a header is very
- # similar to vulkan_core.h.
- genOpts['vulkan11.h'] = [
- COutputGenerator,
- CGeneratorOptions(
- conventions = conventions,
- filename = 'vulkan11.h',
- directory = directory,
- genpath = None,
- apiname = defaultAPIName,
- profile = None,
- versions = '^VK_VERSION_1_[01]$',
- emitversions = '^VK_VERSION_1_[01]$',
- defaultExtensions = None,
- addExtensions = None,
- removeExtensions = None,
- emitExtensions = None,
- 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['alias.h'] = [
- COutputGenerator,
- CGeneratorOptions(
- conventions = conventions,
- filename = 'alias.h',
- directory = directory,
- genpath = None,
- apiname = defaultAPIName,
- profile = None,
- versions = featuresPat,
- emitversions = featuresPat,
- defaultExtensions = defaultExtensions,
- addExtensions = None,
- removeExtensions = removeExtensionsPat,
- emitExtensions = emitExtensionsPat,
- prefixText = None,
- genFuncPointers = False,
- protectFile = False,
- protectFeature = False,
- protectProto = '',
- protectProtoStr = '',
- apicall = '',
- apientry = '',
- apientryp = '',
- alignFuncParam = 36)
- ]
-
-
-def genTarget(args):
- """Create an API generator and corresponding generator options based on
- the requested target and command line options.
-
- This is encapsulated in a function so it can be profiled and/or timed.
- The args parameter is an parsed argument object containing the following
- fields that are used:
-
- - target - target to generate
- - directory - directory to generate it in
- - protect - True if re-inclusion wrappers should be created
- - extensions - list of additional extensions to include in generated interfaces"""
-
- # Create generator options with parameters specified on command line
- makeGenOpts(args)
-
- # pdb.set_trace()
-
- # Select a generator matching the requested target
- if args.target in genOpts:
- createGenerator = genOpts[args.target][0]
- options = genOpts[args.target][1]
-
- logDiag('* Building', options.filename)
- logDiag('* options.versions =', options.versions)
- logDiag('* options.emitversions =', options.emitversions)
- logDiag('* options.defaultExtensions =', options.defaultExtensions)
- logDiag('* options.addExtensions =', options.addExtensions)
- logDiag('* options.removeExtensions =', options.removeExtensions)
- logDiag('* options.emitExtensions =', options.emitExtensions)
- logDiag('* options.emitSpirv =', options.emitSpirv)
- logDiag('* options.emitFormats =', options.emitFormats)
-
- gen = createGenerator(errFile=errWarn,
- warnFile=errWarn,
- diagFile=diag)
- return (gen, options)
- else:
- logErr('No generator options for unknown target:', args.target)
- return None
-
-
-# -feature name
-# -extension name
-# For both, "name" may be a single name, or a space-separated list
-# of names, or a regular expression.
-if __name__ == '__main__':
- parser = argparse.ArgumentParser()
-
- parser.add_argument('-defaultExtensions', action='store',
- default=APIConventions().xml_api_name,
- help='Specify a single class of extensions to add to targets')
- parser.add_argument('-extension', action='append',
- default=[],
- help='Specify an extension or extensions to add to targets')
- parser.add_argument('-removeExtensions', action='append',
- default=[],
- help='Specify an extension or extensions to remove from targets')
- parser.add_argument('-emitExtensions', action='append',
- default=[],
- help='Specify an extension or extensions to emit in targets')
- parser.add_argument('-emitSpirv', action='append',
- default=[],
- help='Specify a SPIR-V extension or capability to emit in targets')
- parser.add_argument('-emitFormats', action='append',
- default=[],
- help='Specify Vulkan Formats to emit in targets')
- parser.add_argument('-feature', action='append',
- default=[],
- help='Specify a core API feature name or names to add to targets')
- parser.add_argument('-debug', action='store_true',
- help='Enable debugging')
- parser.add_argument('-dump', action='store_true',
- help='Enable dump to stderr')
- parser.add_argument('-diagfile', action='store',
- default=None,
- help='Write diagnostics to specified file')
- parser.add_argument('-errfile', action='store',
- default=None,
- help='Write errors and warnings to specified file instead of stderr')
- parser.add_argument('-noprotect', dest='protect', action='store_false',
- help='Disable inclusion protection in output headers')
- parser.add_argument('-profile', action='store_true',
- help='Enable profiling')
- parser.add_argument('-registry', action='store',
- default='vk.xml',
- help='Use specified registry file instead of vk.xml')
- parser.add_argument('-time', action='store_true',
- help='Enable timing')
- parser.add_argument('-validate', action='store_true',
- help='Validate the registry properties and exit')
- parser.add_argument('-genpath', action='store', default='gen',
- help='Path to generated files')
- parser.add_argument('-o', action='store', dest='directory',
- default='.',
- help='Create target and related files in specified directory')
- parser.add_argument('target', metavar='target', nargs='?',
- help='Specify target')
- parser.add_argument('-quiet', action='store_true', default=True,
- 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('-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')
-
- args = parser.parse_args()
-
- # This splits arguments which are space-separated lists
- args.feature = [name for arg in args.feature for name in arg.split()]
- args.extension = [name for arg in args.extension for name in arg.split()]
-
- # create error/warning & diagnostic files
- if args.errfile:
- errWarn = open(args.errfile, 'w', encoding='utf-8')
- else:
- errWarn = sys.stderr
-
- if args.diagfile:
- diag = open(args.diagfile, 'w', encoding='utf-8')
- else:
- diag = None
-
- if args.time:
- # Log diagnostics and warnings
- setLogFile(setDiag = True, setWarn = True, filename = '-')
-
- (gen, options) = (None, None)
- if not args.validate:
- # Create the API generator & generator options
- (gen, options) = genTarget(args)
-
- # Create the registry object with the specified generator and generator
- # options. The options are set before XML loading as they may affect it.
- reg = Registry(gen, options)
-
- # Parse the specified registry XML into an ElementTree object
- startTimer(args.time)
- tree = etree.parse(args.registry)
- endTimer(args.time, '* Time to make ElementTree =')
-
- # Load the XML tree into the registry object
- startTimer(args.time)
- reg.loadElementTree(tree)
- endTimer(args.time, '* Time to parse ElementTree =')
-
- if args.validate:
- success = reg.validateRegistry()
- sys.exit(0 if success else 1)
-
- if args.dump:
- logDiag('* Dumping registry to regdump.txt')
- reg.dumpReg(filehandle=open('regdump.txt', 'w', encoding='utf-8'))
-
- # Finally, use the output generator to create the requested target
- if args.debug:
- pdb.run('reg.apiGen()')
- else:
- startTimer(args.time)
- reg.apiGen()
- endTimer(args.time, '* Time to generate ' + options.filename + ' =')
-
- if not args.quiet:
- logDiag('* Generated', options.filename)
diff --git a/registry/reg.py b/registry/reg.py
deleted file mode 100644
index 79b80c3..0000000
--- a/registry/reg.py
+++ /dev/null
@@ -1,1575 +0,0 @@
-#!/usr/bin/python3 -i
-#
-# Copyright 2013-2022 The Khronos Group Inc.
-#
-# SPDX-License-Identifier: Apache-2.0
-
-"""Types and classes for manipulating an API registry."""
-
-import copy
-import re
-import sys
-import xml.etree.ElementTree as etree
-from collections import defaultdict, deque, namedtuple
-from generator import OutputGenerator, GeneratorOptions, write
-from apiconventions import APIConventions
-
-def apiNameMatch(str, supported):
- """Return whether a required api name matches a pattern specified for an
- XML <feature> 'api' attribute or <extension> 'supported' attribute.
-
- - str - API name such as 'vulkan' or 'openxr'. May be None, in which
- case it never matches (this should not happen).
- - supported - comma-separated list of XML API names. May be None, in
- which case str always matches (this is the usual case)."""
-
- if str is not None:
- return supported is None or str in supported.split(',')
-
- # Fallthrough case - either str is None or the test failed
- return False
-
-def matchAPIProfile(api, profile, elem):
- """Return whether an API and profile
- being generated matches an element's profile
-
- - api - string naming the API to match
- - profile - string naming the profile to match
- - elem - Element which (may) have 'api' and 'profile'
- attributes to match to.
-
- If a tag is not present in the Element, the corresponding API
- or profile always matches.
-
- Otherwise, the tag must exactly match the API or profile.
-
- Thus, if 'profile' = core:
-
- - `<remove>` with no attribute will match
- - `<remove profile="core">` will match
- - `<remove profile="compatibility">` will not match
-
- Possible match conditions:
-
- ```
- Requested Element
- Profile Profile
- --------- --------
- None None Always matches
- 'string' None Always matches
- None 'string' Does not match. Cannot generate multiple APIs
- or profiles, so if an API/profile constraint
- is present, it must be asked for explicitly.
- 'string' 'string' Strings must match
- ```
-
- ** In the future, we will allow regexes for the attributes,
- not just strings, so that `api="^(gl|gles2)"` will match. Even
- this is not really quite enough, we might prefer something
- like `"gl(core)|gles1(common-lite)"`."""
- # Match 'api', if present
- elem_api = elem.get('api')
- if elem_api:
- if api is None:
- raise UserWarning("No API requested, but 'api' attribute is present with value '"
- + elem_api + "'")
- elif api != elem_api:
- # Requested API does not match attribute
- return False
- elem_profile = elem.get('profile')
- if elem_profile:
- if profile is None:
- raise UserWarning("No profile requested, but 'profile' attribute is present with value '"
- + elem_profile + "'")
- elif profile != elem_profile:
- # Requested profile does not match attribute
- return False
- return True
-
-
-def stripNonmatchingAPIs(tree, apiName, actuallyDelete = True):
- """Remove tree Elements with 'api' attributes matching apiName.
-
- tree - Element at the root of the hierarchy to strip. Only its
- children can actually be removed, not the tree itself.
- apiName - string which much match a command-separated component of
- the 'api' attribute.
- actuallyDelete - only delete matching elements if True."""
-
- stack = deque()
- stack.append(tree)
-
- while len(stack) > 0:
- parent = stack.pop()
-
- for child in parent.findall('*'):
- api = child.get('api')
-
- if apiNameMatch(apiName, api):
- # Add child to the queue
- stack.append(child)
- elif not apiNameMatch(apiName, api):
- # Child does not match requested api. Remove it.
- if actuallyDelete:
- parent.remove(child)
-
-
-class BaseInfo:
- """Base class for information about a registry feature
- (type/group/enum/command/API/extension).
-
- Represents the state of a registry feature, used during API generation.
- """
-
- def __init__(self, elem):
- self.required = False
- """should this feature be defined during header generation
- (has it been removed by a profile or version)?"""
-
- self.declared = False
- "has this feature been defined already?"
-
- self.elem = elem
- "etree Element for this feature"
-
- def resetState(self):
- """Reset required/declared to initial values. Used
- prior to generating a new API interface."""
- self.required = False
- self.declared = False
-
- def compareKeys(self, info, key, required = False):
- """Return True if self.elem and info.elem have the same attribute
- value for key.
- If 'required' is not True, also returns True if neither element
- has an attribute value for key."""
-
- if required and key not in self.elem.keys():
- return False
- return self.elem.get(key) == info.elem.get(key)
-
- def compareElem(self, info, infoName):
- """Return True if self.elem and info.elem have the same definition.
- info - the other object
- infoName - 'type' / 'group' / 'enum' / 'command' / 'feature' /
- 'extension'"""
-
- if infoName == 'enum':
- if self.compareKeys(info, 'extends'):
- # Either both extend the same type, or no type
- if (self.compareKeys(info, 'value', required = True) or
- self.compareKeys(info, 'bitpos', required = True)):
- # If both specify the same value or bit position,
- # they are equal
- return True
- elif (self.compareKeys(info, 'extnumber') and
- self.compareKeys(info, 'offset') and
- self.compareKeys(info, 'dir')):
- # If both specify the same relative offset, they are equal
- return True
- elif (self.compareKeys(info, 'alias')):
- # If both are aliases of the same value
- return True
- else:
- return False
- else:
- # The same enum cannot extend two different types
- return False
- else:
- # Non-<enum>s should never be redefined
- return False
-
-
-class TypeInfo(BaseInfo):
- """Registry information about a type. No additional state
- beyond BaseInfo is required."""
-
- def __init__(self, elem):
- BaseInfo.__init__(self, elem)
- self.additionalValidity = []
- self.removedValidity = []
-
- def getMembers(self):
- """Get a collection of all member elements for this type, if any."""
- return self.elem.findall('member')
-
- def resetState(self):
- BaseInfo.resetState(self)
- self.additionalValidity = []
- self.removedValidity = []
-
-
-class GroupInfo(BaseInfo):
- """Registry information about a group of related enums
- in an <enums> block, generally corresponding to a C "enum" type."""
-
- def __init__(self, elem):
- BaseInfo.__init__(self, elem)
-
-
-class EnumInfo(BaseInfo):
- """Registry information about an enum"""
-
- def __init__(self, elem):
- BaseInfo.__init__(self, elem)
- self.type = elem.get('type')
- """numeric type of the value of the <enum> tag
- ( '' for GLint, 'u' for GLuint, 'ull' for GLuint64 )"""
- if self.type is None:
- self.type = ''
-
-
-class CmdInfo(BaseInfo):
- """Registry information about a command"""
-
- def __init__(self, elem):
- BaseInfo.__init__(self, elem)
- self.additionalValidity = []
- self.removedValidity = []
-
- def getParams(self):
- """Get a collection of all param elements for this command, if any."""
- return self.elem.findall('param')
-
- def resetState(self):
- BaseInfo.resetState(self)
- self.additionalValidity = []
- self.removedValidity = []
-
-
-class FeatureInfo(BaseInfo):
- """Registry information about an API <feature>
- or <extension>."""
-
- def __init__(self, elem):
- BaseInfo.__init__(self, elem)
- self.name = elem.get('name')
- "feature name string (e.g. 'VK_KHR_surface')"
-
- self.emit = False
- "has this feature been defined already?"
-
- self.sortorder = int(elem.get('sortorder', 0))
- """explicit numeric sort key within feature and extension groups.
- Defaults to 0."""
-
- # Determine element category (vendor). Only works
- # for <extension> elements.
- if elem.tag == 'feature':
- # Element category (vendor) is meaningless for <feature>
- self.category = 'VERSION'
- """category, e.g. VERSION or khr/vendor tag"""
-
- self.version = elem.get('name')
- """feature name string"""
-
- self.versionNumber = elem.get('number')
- """versionNumber - API version number, taken from the 'number'
- attribute of <feature>. Extensions do not have API version
- numbers and are assigned number 0."""
-
- self.number = "0"
- self.supported = None
- else:
- # Extract vendor portion of <APIprefix>_<vendor>_<name>
- self.category = self.name.split('_', 2)[1]
- self.version = "0"
- self.versionNumber = "0"
- self.number = elem.get('number')
- """extension number, used for ordering and for assigning
- enumerant offsets. <feature> features do not have extension
- numbers and are assigned number 0."""
-
- # If there is no 'number' attribute, use 0, so sorting works
- if self.number is None:
- self.number = 0
- self.supported = elem.get('supported')
-
-class SpirvInfo(BaseInfo):
- """Registry information about an API <spirvextensions>
- or <spirvcapability>."""
-
- def __init__(self, elem):
- BaseInfo.__init__(self, elem)
-
-class FormatInfo(BaseInfo):
- """Registry information about an API <format>."""
-
- def __init__(self, elem):
- BaseInfo.__init__(self, elem)
-
-class Registry:
- """Object representing an API registry, loaded from an XML file."""
-
- def __init__(self, gen=None, genOpts=None):
- if gen is None:
- # If not specified, give a default object so messaging will work
- self.gen = OutputGenerator()
- else:
- self.gen = gen
- "Output generator used to write headers / messages"
-
- if genOpts is None:
- # If no generator is provided, we may still need the XML API name
- # (for example, in genRef.py).
- self.genOpts = GeneratorOptions(apiname = APIConventions().xml_api_name)
- else:
- self.genOpts = genOpts
- "Options controlling features to write and how to format them"
-
- self.gen.registry = self
- self.gen.genOpts = self.genOpts
- self.gen.genOpts.registry = self
-
- self.tree = None
- "ElementTree containing the root `<registry>`"
-
- self.typedict = {}
- "dictionary of TypeInfo objects keyed by type name"
-
- self.groupdict = {}
- "dictionary of GroupInfo objects keyed by group name"
-
- self.enumdict = {}
- "dictionary of EnumInfo objects keyed by enum name"
-
- self.cmddict = {}
- "dictionary of CmdInfo objects keyed by command name"
-
- self.apidict = {}
- "dictionary of FeatureInfo objects for `<feature>` elements keyed by API name"
-
- self.extensions = []
- "list of `<extension>` Elements"
-
- self.extdict = {}
- "dictionary of FeatureInfo objects for `<extension>` elements keyed by extension name"
-
- self.spirvextdict = {}
- "dictionary of FeatureInfo objects for `<spirvextension>` elements keyed by spirv extension name"
-
- self.spirvcapdict = {}
- "dictionary of FeatureInfo objects for `<spirvcapability>` elements keyed by spirv capability name"
-
- self.formatsdict = {}
- "dictionary of FeatureInfo objects for `<format>` elements keyed by VkFormat name"
-
- self.emitFeatures = False
- """True to actually emit features for a version / extension,
- or False to just treat them as emitted"""
-
- self.breakPat = None
- "regexp pattern to break on when generating names"
- # self.breakPat = re.compile('VkFenceImportFlagBits.*')
-
- self.requiredextensions = [] # Hack - can remove it after validity generator goes away
-
- # ** Global types for automatic source generation **
- # Length Member data
- self.commandextensiontuple = namedtuple('commandextensiontuple',
- ['command', # The name of the command being modified
- 'value', # The value to append to the command
- 'extension']) # The name of the extension that added it
- self.validextensionstructs = defaultdict(list)
- self.commandextensionsuccesses = []
- self.commandextensionerrors = []
-
- self.filename = None
-
- def loadElementTree(self, tree):
- """Load ElementTree into a Registry object and parse it."""
- self.tree = tree
- self.parseTree()
-
- def loadFile(self, file):
- """Load an API registry XML file into a Registry object and parse it"""
- self.filename = file
- self.tree = etree.parse(file)
- self.parseTree()
-
- def setGenerator(self, gen):
- """Specify output generator object.
-
- `None` restores the default generator."""
- self.gen = gen
- self.gen.setRegistry(self)
-
- def addElementInfo(self, elem, info, infoName, dictionary):
- """Add information about an element to the corresponding dictionary.
-
- Intended for internal use only.
-
- - elem - `<type>`/`<enums>`/`<enum>`/`<command>`/`<feature>`/`<extension>`/`<spirvextension>`/`<spirvcapability>`/`<format>` Element
- - info - corresponding {Type|Group|Enum|Cmd|Feature|Spirv}Info object
- - infoName - 'type' / 'group' / 'enum' / 'command' / 'feature' / 'extension' / 'spirvextension' / 'spirvcapability' / 'format'
- - dictionary - self.{type|group|enum|cmd|api|ext|format|spirvext|spirvcap}dict
-
- The dictionary key is the element 'name' attribute."""
-
- # self.gen.logMsg('diag', 'Adding ElementInfo.required =',
- # info.required, 'name =', elem.get('name'))
- key = elem.get('name')
- if key in dictionary:
- if not dictionary[key].compareElem(info, infoName):
- self.gen.logMsg('warn', 'Attempt to redefine', key,
- '(this should not happen)')
- else:
- dictionary[key] = info
-
- def lookupElementInfo(self, fname, dictionary):
- """Find a {Type|Enum|Cmd}Info object by name.
-
- Intended for internal use only.
-
- If an object qualified by API name exists, use that.
-
- - fname - name of type / enum / command
- - dictionary - self.{type|enum|cmd}dict"""
- key = (fname, self.genOpts.apiname)
- if key in dictionary:
- # self.gen.logMsg('diag', 'Found API-specific element for feature', fname)
- return dictionary[key]
- if fname in dictionary:
- # self.gen.logMsg('diag', 'Found generic element for feature', fname)
- return dictionary[fname]
-
- return None
-
- def breakOnName(self, regexp):
- """Specify a feature name regexp to break on when generating features."""
- self.breakPat = re.compile(regexp)
-
- def parseTree(self):
- """Parse the registry Element, once created"""
- # This must be the Element for the root <registry>
- self.reg = self.tree.getroot()
-
- # Preprocess the tree by removing all elements with non-matching
- # 'api' attributes by breadth-first tree traversal.
- # This is a blunt hammer, but eliminates the need to track and test
- # the apis deeper in processing to select the correct elements and
- # avoid duplicates.
- # Schema validation should prevent duplicate elements with
- # overlapping api attributes, or where one element has an api
- # attribute and the other does not.
-
- stripNonmatchingAPIs(self.reg, self.genOpts.apiname, actuallyDelete = True)
-
- # Create dictionary of registry types from toplevel <types> tags
- # and add 'name' attribute to each <type> tag (where missing)
- # based on its <name> element.
- #
- # There is usually one <types> block; more are OK
- # Required <type> attributes: 'name' or nested <name> tag contents
- self.typedict = {}
- for type_elem in self.reg.findall('types/type'):
- # If the <type> does not already have a 'name' attribute, set
- # it from contents of its <name> tag.
- if type_elem.get('name') is None:
- type_elem.set('name', type_elem.find('name').text)
- self.addElementInfo(type_elem, TypeInfo(type_elem), 'type', self.typedict)
-
- # Create dictionary of registry enum groups from <enums> tags.
- #
- # Required <enums> attributes: 'name'. If no name is given, one is
- # generated, but that group cannot be identified and turned into an
- # enum type definition - it is just a container for <enum> tags.
- self.groupdict = {}
- for group in self.reg.findall('enums'):
- self.addElementInfo(group, GroupInfo(group), 'group', self.groupdict)
-
- # Create dictionary of registry enums from <enum> tags
- #
- # <enums> tags usually define different namespaces for the values
- # defined in those tags, but the actual names all share the
- # same dictionary.
- # Required <enum> attributes: 'name', 'value'
- # For containing <enums> which have type="enum" or type="bitmask",
- # tag all contained <enum>s are required. This is a stopgap until
- # a better scheme for tagging core and extension enums is created.
- self.enumdict = {}
- for enums in self.reg.findall('enums'):
- required = (enums.get('type') is not None)
- for enum in enums.findall('enum'):
- enumInfo = EnumInfo(enum)
- enumInfo.required = required
- self.addElementInfo(enum, enumInfo, 'enum', self.enumdict)
-
- # Create dictionary of registry commands from <command> tags
- # and add 'name' attribute to each <command> tag (where missing)
- # based on its <proto><name> element.
- #
- # There is usually only one <commands> block; more are OK.
- # Required <command> attributes: 'name' or <proto><name> tag contents
- self.cmddict = {}
- # List of commands which alias others. Contains
- # [ aliasName, element ]
- # for each alias
- cmdAlias = []
- for cmd in self.reg.findall('commands/command'):
- # If the <command> does not already have a 'name' attribute, set
- # it from contents of its <proto><name> tag.
- name = cmd.get('name')
- if name is None:
- name = cmd.set('name', cmd.find('proto/name').text)
- ci = CmdInfo(cmd)
- self.addElementInfo(cmd, ci, 'command', self.cmddict)
- alias = cmd.get('alias')
- if alias:
- cmdAlias.append([name, alias, cmd])
-
- # Now loop over aliases, injecting a copy of the aliased command's
- # Element with the aliased prototype name replaced with the command
- # name - if it exists.
- for (name, alias, cmd) in cmdAlias:
- if alias in self.cmddict:
- aliasInfo = self.cmddict[alias]
- cmdElem = copy.deepcopy(aliasInfo.elem)
- cmdElem.find('proto/name').text = name
- cmdElem.set('name', name)
- cmdElem.set('alias', alias)
- ci = CmdInfo(cmdElem)
- # Replace the dictionary entry for the CmdInfo element
- self.cmddict[name] = ci
-
- # @ newString = etree.tostring(base, encoding="unicode").replace(aliasValue, aliasName)
- # @elem.append(etree.fromstring(replacement))
- else:
- self.gen.logMsg('warn', 'No matching <command> found for command',
- cmd.get('name'), 'alias', alias)
-
- # Create dictionaries of API and extension interfaces
- # from toplevel <api> and <extension> tags.
- self.apidict = {}
- for feature in self.reg.findall('feature'):
- featureInfo = FeatureInfo(feature)
- self.addElementInfo(feature, featureInfo, 'feature', self.apidict)
-
- # Add additional enums defined only in <feature> tags
- # to the corresponding enumerated type.
- # When seen here, the <enum> element, processed to contain the
- # numeric enum value, is added to the corresponding <enums>
- # element, as well as adding to the enum dictionary. It is no
- # longer removed from the <require> element it is introduced in.
- # Instead, generateRequiredInterface ignores <enum> elements
- # that extend enumerated types.
- #
- # For <enum> tags which are actually just constants, if there is
- # no 'extends' tag but there is a 'value' or 'bitpos' tag, just
- # add an EnumInfo record to the dictionary. That works because
- # output generation of constants is purely dependency-based, and
- # does not need to iterate through the XML tags.
- for elem in feature.findall('require'):
- for enum in elem.findall('enum'):
- addEnumInfo = False
- groupName = enum.get('extends')
- if groupName is not None:
- # self.gen.logMsg('diag', 'Found extension enum',
- # enum.get('name'))
- # Add version number attribute to the <enum> element
- enum.set('version', featureInfo.version)
- # Look up the GroupInfo with matching groupName
- if groupName in self.groupdict:
- # self.gen.logMsg('diag', 'Matching group',
- # groupName, 'found, adding element...')
- gi = self.groupdict[groupName]
- gi.elem.append(copy.deepcopy(enum))
- else:
- self.gen.logMsg('warn', 'NO matching group',
- groupName, 'for enum', enum.get('name'), 'found.')
- addEnumInfo = True
- elif enum.get('value') or enum.get('bitpos') or enum.get('alias'):
- # self.gen.logMsg('diag', 'Adding extension constant "enum"',
- # enum.get('name'))
- addEnumInfo = True
- if addEnumInfo:
- enumInfo = EnumInfo(enum)
- self.addElementInfo(enum, enumInfo, 'enum', self.enumdict)
-
- self.extensions = self.reg.findall('extensions/extension')
- self.extdict = {}
- for feature in self.extensions:
- featureInfo = FeatureInfo(feature)
- self.addElementInfo(feature, featureInfo, 'extension', self.extdict)
-
- # Add additional enums defined only in <extension> tags
- # to the corresponding core type.
- # Algorithm matches that of enums in a "feature" tag as above.
- #
- # This code also adds a 'extnumber' attribute containing the
- # extension number, used for enumerant value calculation.
- for elem in feature.findall('require'):
- for enum in elem.findall('enum'):
- addEnumInfo = False
- groupName = enum.get('extends')
- if groupName is not None:
- # self.gen.logMsg('diag', 'Found extension enum',
- # enum.get('name'))
-
- # Add <extension> block's extension number attribute to
- # the <enum> element unless specified explicitly, such
- # as when redefining an enum in another extension.
- extnumber = enum.get('extnumber')
- if not extnumber:
- enum.set('extnumber', featureInfo.number)
-
- enum.set('extname', featureInfo.name)
- enum.set('supported', featureInfo.supported)
- # Look up the GroupInfo with matching groupName
- if groupName in self.groupdict:
- # self.gen.logMsg('diag', 'Matching group',
- # groupName, 'found, adding element...')
- gi = self.groupdict[groupName]
- gi.elem.append(copy.deepcopy(enum))
- else:
- self.gen.logMsg('warn', 'NO matching group',
- groupName, 'for enum', enum.get('name'), 'found.')
- addEnumInfo = True
- elif enum.get('value') or enum.get('bitpos') or enum.get('alias'):
- # self.gen.logMsg('diag', 'Adding extension constant "enum"',
- # enum.get('name'))
- addEnumInfo = True
- if addEnumInfo:
- enumInfo = EnumInfo(enum)
- self.addElementInfo(enum, enumInfo, 'enum', self.enumdict)
-
- # Construct a "validextensionstructs" list for parent structures
- # based on "structextends" tags in child structures
- disabled_types = []
- for disabled_ext in self.reg.findall('extensions/extension[@supported="disabled"]'):
- for type_elem in disabled_ext.findall("*/type"):
- disabled_types.append(type_elem.get('name'))
- for type_elem in self.reg.findall('types/type'):
- if type_elem.get('name') not in disabled_types:
- parentStructs = type_elem.get('structextends')
- if parentStructs is not None:
- for parent in parentStructs.split(','):
- # self.gen.logMsg('diag', type.get('name'), 'extends', parent)
- self.validextensionstructs[parent].append(type_elem.get('name'))
- # Sort the lists so they do not depend on the XML order
- for parent in self.validextensionstructs:
- self.validextensionstructs[parent].sort()
-
- # Parse out all spirv tags in dictionaries
- # Use addElementInfo to catch duplicates
- for spirv in self.reg.findall('spirvextensions/spirvextension'):
- spirvInfo = SpirvInfo(spirv)
- self.addElementInfo(spirv, spirvInfo, 'spirvextension', self.spirvextdict)
- for spirv in self.reg.findall('spirvcapabilities/spirvcapability'):
- spirvInfo = SpirvInfo(spirv)
- self.addElementInfo(spirv, spirvInfo, 'spirvcapability', self.spirvcapdict)
-
- for format in self.reg.findall('formats/format'):
- formatInfo = FormatInfo(format)
- self.addElementInfo(format, formatInfo, 'format', self.formatsdict)
-
- def dumpReg(self, maxlen=120, filehandle=sys.stdout):
- """Dump all the dictionaries constructed from the Registry object.
-
- Diagnostic to dump the dictionaries to specified file handle (default stdout).
- Truncates type / enum / command elements to maxlen characters (default 120)"""
- write('***************************************', file=filehandle)
- write(' ** Dumping Registry contents **', file=filehandle)
- write('***************************************', file=filehandle)
- write('// Types', file=filehandle)
- for name in self.typedict:
- tobj = self.typedict[name]
- write(' Type', name, '->', etree.tostring(tobj.elem)[0:maxlen], file=filehandle)
- write('// Groups', file=filehandle)
- for name in self.groupdict:
- gobj = self.groupdict[name]
- write(' Group', name, '->', etree.tostring(gobj.elem)[0:maxlen], file=filehandle)
- write('// Enums', file=filehandle)
- for name in self.enumdict:
- eobj = self.enumdict[name]
- write(' Enum', name, '->', etree.tostring(eobj.elem)[0:maxlen], file=filehandle)
- write('// Commands', file=filehandle)
- for name in self.cmddict:
- cobj = self.cmddict[name]
- write(' Command', name, '->', etree.tostring(cobj.elem)[0:maxlen], file=filehandle)
- write('// APIs', file=filehandle)
- for key in self.apidict:
- write(' API Version ', key, '->',
- etree.tostring(self.apidict[key].elem)[0:maxlen], file=filehandle)
- write('// Extensions', file=filehandle)
- for key in self.extdict:
- write(' Extension', key, '->',
- etree.tostring(self.extdict[key].elem)[0:maxlen], file=filehandle)
- write('// SPIR-V', file=filehandle)
- for key in self.spirvextdict:
- write(' SPIR-V Extension', key, '->',
- etree.tostring(self.spirvextdict[key].elem)[0:maxlen], file=filehandle)
- for key in self.spirvcapdict:
- write(' SPIR-V Capability', key, '->',
- etree.tostring(self.spirvcapdict[key].elem)[0:maxlen], file=filehandle)
- write('// VkFormat', file=filehandle)
- for key in self.formatsdict:
- write(' VkFormat', key, '->',
- etree.tostring(self.formatsdict[key].elem)[0:maxlen], file=filehandle)
-
- def markTypeRequired(self, typename, required):
- """Require (along with its dependencies) or remove (but not its dependencies) a type.
-
- - typename - name of type
- - required - boolean (to tag features as required or not)
- """
- self.gen.logMsg('diag', 'tagging type:', typename, '-> required =', required)
-
- # Get TypeInfo object for <type> tag corresponding to typename
- typeinfo = self.lookupElementInfo(typename, self.typedict)
- if typeinfo is not None:
- if required:
- # Tag type dependencies in 'alias' and 'required' attributes as
- # required. This does not un-tag dependencies in a <remove>
- # tag. See comments in markRequired() below for the reason.
- for attrib_name in ['requires', 'alias']:
- depname = typeinfo.elem.get(attrib_name)
- if depname:
- self.gen.logMsg('diag', 'Generating dependent type',
- depname, 'for', attrib_name, 'type', typename)
- # Do not recurse on self-referential structures.
- if typename != depname:
- self.markTypeRequired(depname, required)
- else:
- self.gen.logMsg('diag', 'type', typename, 'is self-referential')
- # Tag types used in defining this type (e.g. in nested
- # <type> tags)
- # Look for <type> in entire <command> tree,
- # not just immediate children
- for subtype in typeinfo.elem.findall('.//type'):
- self.gen.logMsg('diag', 'markRequired: type requires dependent <type>', subtype.text)
- if typename != subtype.text:
- self.markTypeRequired(subtype.text, required)
- else:
- self.gen.logMsg('diag', 'type', typename, 'is self-referential')
- # Tag enums used in defining this type, for example in
- # <member><name>member</name>[<enum>MEMBER_SIZE</enum>]</member>
- for subenum in typeinfo.elem.findall('.//enum'):
- self.gen.logMsg('diag', 'markRequired: type requires dependent <enum>', subenum.text)
- self.markEnumRequired(subenum.text, required)
- # Tag type dependency in 'bitvalues' attributes as
- # required. This ensures that the bit values for a flag
- # are emitted
- depType = typeinfo.elem.get('bitvalues')
- if depType:
- self.gen.logMsg('diag', 'Generating bitflag type',
- depType, 'for type', typename)
- self.markTypeRequired(depType, required)
- group = self.lookupElementInfo(depType, self.groupdict)
- if group is not None:
- group.flagType = typeinfo
-
- typeinfo.required = required
- elif '.h' not in typename:
- self.gen.logMsg('warn', 'type:', typename, 'IS NOT DEFINED')
-
- def markEnumRequired(self, enumname, required):
- """Mark an enum as required or not.
-
- - enumname - name of enum
- - required - boolean (to tag features as required or not)"""
-
- self.gen.logMsg('diag', 'markEnumRequired: tagging enum:', enumname, '-> required =', required)
- enum = self.lookupElementInfo(enumname, self.enumdict)
- if enum is not None:
- # If the enum is part of a group, and is being removed, then
- # look it up in that <enums> tag and remove the Element there,
- # so that it is not visible to generators (which traverse the
- # <enums> tag elements rather than using the dictionaries).
- if not required:
- groupName = enum.elem.get('extends')
- if groupName is not None:
- self.gen.logMsg('diag', f'markEnumRequired: Removing extending enum {enum.elem.get("name")}')
-
- # Look up the Info with matching groupName
- if groupName in self.groupdict:
- gi = self.groupdict[groupName]
- gienum = gi.elem.find("enum[@name='" + enumname + "']")
- if gienum is not None:
- # Remove copy of this enum from the group
- gi.elem.remove(gienum)
- else:
- self.gen.logMsg('warn', 'markEnumRequired: Cannot remove enum',
- enumname, 'not found in group',
- groupName)
- else:
- self.gen.logMsg('warn', 'markEnumRequired: Cannot remove enum',
- enumname, 'from nonexistent group',
- groupName)
- else:
- # This enum is not an extending enum.
- # The XML tree must be searched for all <enums> that
- # might have it, so we know the parent to delete from.
-
- enumName = enum.elem.get('name')
-
- self.gen.logMsg('diag', f'markEnumRequired: Removing non-extending enum {enumName}')
-
- count = 0
- for enums in self.reg.findall('enums'):
- for thisEnum in enums.findall('enum'):
- if thisEnum.get('name') == enumName:
- # Actually remove it
- count = count + 1
- enums.remove(thisEnum)
-
- if count == 0:
- self.gen.logMsg('warn', f'markEnumRequired: {enumName}) not found in any <enums> tag')
-
- enum.required = required
- # Tag enum dependencies in 'alias' attribute as required
- depname = enum.elem.get('alias')
- if depname:
- self.gen.logMsg('diag', 'markEnumRequired: Generating dependent enum',
- depname, 'for alias', enumname, 'required =', enum.required)
- self.markEnumRequired(depname, required)
- else:
- self.gen.logMsg('warn', f'markEnumRequired: {enumname} IS NOT DEFINED')
-
- def markCmdRequired(self, cmdname, required):
- """Mark a command as required or not.
-
- - cmdname - name of command
- - required - boolean (to tag features as required or not)"""
- self.gen.logMsg('diag', 'tagging command:', cmdname, '-> required =', required)
- cmd = self.lookupElementInfo(cmdname, self.cmddict)
- if cmd is not None:
- cmd.required = required
-
- # Tag command dependencies in 'alias' attribute as required
- #
- # This is usually not done, because command 'aliases' are not
- # actual C language aliases like type and enum aliases. Instead
- # they are just duplicates of the function signature of the
- # alias. This means that there is no dependency of a command
- # alias on what it aliases. One exception is validity includes,
- # where the spec markup needs the promoted-to validity include
- # even if only the promoted-from command is being built.
- if self.genOpts.requireCommandAliases:
- depname = cmd.elem.get('alias')
- if depname:
- self.gen.logMsg('diag', 'Generating dependent command',
- depname, 'for alias', cmdname)
- self.markCmdRequired(depname, required)
-
- # Tag all parameter types of this command as required.
- # This DOES NOT remove types of commands in a <remove>
- # tag, because many other commands may use the same type.
- # We could be more clever and reference count types,
- # instead of using a boolean.
- if required:
- # Look for <type> in entire <command> tree,
- # not just immediate children
- for type_elem in cmd.elem.findall('.//type'):
- self.gen.logMsg('diag', 'markRequired: command implicitly requires dependent type', type_elem.text)
- self.markTypeRequired(type_elem.text, required)
- else:
- self.gen.logMsg('warn', 'command:', cmdname, 'IS NOT DEFINED')
-
- def markRequired(self, featurename, feature, required):
- """Require or remove features specified in the Element.
-
- - featurename - name of the feature
- - feature - Element for `<require>` or `<remove>` tag
- - required - boolean (to tag features as required or not)"""
- self.gen.logMsg('diag', 'markRequired (feature = <too long to print>, required =', required, ')')
-
- # Loop over types, enums, and commands in the tag
- # @@ It would be possible to respect 'api' and 'profile' attributes
- # in individual features, but that is not done yet.
- for typeElem in feature.findall('type'):
- 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)
-
- # Extensions may need to extend existing commands or other items in the future.
- # So, look for extend tags.
- for extendElem in feature.findall('extend'):
- extendType = extendElem.get('type')
- if extendType == 'command':
- commandName = extendElem.get('name')
- successExtends = extendElem.get('successcodes')
- if successExtends is not None:
- for success in successExtends.split(','):
- self.commandextensionsuccesses.append(self.commandextensiontuple(command=commandName,
- value=success,
- extension=featurename))
- errorExtends = extendElem.get('errorcodes')
- if errorExtends is not None:
- for error in errorExtends.split(','):
- self.commandextensionerrors.append(self.commandextensiontuple(command=commandName,
- value=error,
- extension=featurename))
- else:
- self.gen.logMsg('warn', 'extend type:', extendType, 'IS NOT SUPPORTED')
-
- def getAlias(self, elem, dict):
- """Check for an alias in the same require block.
-
- - elem - Element to check for an alias"""
-
- # Try to find an alias
- alias = elem.get('alias')
- if alias is None:
- name = elem.get('name')
- typeinfo = self.lookupElementInfo(name, dict)
- alias = typeinfo.elem.get('alias')
-
- return alias
-
- def checkForCorrectionAliases(self, alias, require, tag):
- """Check for an alias in the same require block.
-
- - alias - String name of the alias
- - require - `<require>` block from the registry
- - tag - tag to look for in the require block"""
-
- # For the time being, the code below is bypassed. It has the effect
- # of excluding "spelling aliases" created to comply with the style
- # guide, but this leaves references out of the specification and
- # causes broken internal links.
- #
- # if alias and require.findall(tag + "[@name='" + alias + "']"):
- # return True
-
- return False
-
- def fillFeatureDictionary(self, interface, featurename, api, profile):
- """Capture added interfaces for a `<version>` or `<extension>`.
-
- - interface - Element for `<version>` or `<extension>`, containing
- `<require>` and `<remove>` tags
- - featurename - name of the feature
- - api - string specifying API name being generated
- - profile - string specifying API profile being generated"""
-
- # Explicitly initialize known types - errors for unhandled categories
- self.gen.featureDictionary[featurename] = {
- "enumconstant": {},
- "command": {},
- "enum": {},
- "struct": {},
- "handle": {},
- "basetype": {},
- "include": {},
- "define": {},
- "bitmask": {},
- "union": {},
- "funcpointer": {},
- }
-
- # <require> marks things that are required by this version/profile
- for require in interface.findall('require'):
- if matchAPIProfile(api, profile, require):
-
- # Determine the required extension or version needed for a require block
- # Assumes that only one of these is specified
- required_key = require.get('feature')
- if required_key is None:
- required_key = require.get('extension')
-
- # Loop over types, enums, and commands in the tag
- for typeElem in require.findall('type'):
- typename = typeElem.get('name')
- typeinfo = self.lookupElementInfo(typename, self.typedict)
-
- if typeinfo:
- # Remove aliases in the same extension/feature; these are always added as a correction. Do not need the original to be visible.
- alias = self.getAlias(typeElem, self.typedict)
- if not self.checkForCorrectionAliases(alias, require, 'type'):
- # Resolve the type info to the actual type, so we get an accurate read for 'structextends'
- while alias:
- typeinfo = self.lookupElementInfo(alias, self.typedict)
- alias = typeinfo.elem.get('alias')
-
- typecat = typeinfo.elem.get('category')
- typeextends = typeinfo.elem.get('structextends')
- if not required_key in self.gen.featureDictionary[featurename][typecat]:
- self.gen.featureDictionary[featurename][typecat][required_key] = {}
- if not typeextends in self.gen.featureDictionary[featurename][typecat][required_key]:
- self.gen.featureDictionary[featurename][typecat][required_key][typeextends] = []
- self.gen.featureDictionary[featurename][typecat][required_key][typeextends].append(typename)
- else:
- self.gen.logMsg('warn', 'fillFeatureDictionary: NOT filling for {}'.format(typename))
-
-
- for enumElem in require.findall('enum'):
- enumname = enumElem.get('name')
- typeinfo = self.lookupElementInfo(enumname, self.enumdict)
-
- # Remove aliases in the same extension/feature; these are always added as a correction. Do not need the original to be visible.
- alias = self.getAlias(enumElem, self.enumdict)
- if not self.checkForCorrectionAliases(alias, require, 'enum'):
- enumextends = enumElem.get('extends')
- if not required_key in self.gen.featureDictionary[featurename]['enumconstant']:
- self.gen.featureDictionary[featurename]['enumconstant'][required_key] = {}
- if not enumextends in self.gen.featureDictionary[featurename]['enumconstant'][required_key]:
- self.gen.featureDictionary[featurename]['enumconstant'][required_key][enumextends] = []
- self.gen.featureDictionary[featurename]['enumconstant'][required_key][enumextends].append(enumname)
- else:
- self.gen.logMsg('warn', 'fillFeatureDictionary: NOT filling for {}'.format(typename))
-
- for cmdElem in require.findall('command'):
- # Remove aliases in the same extension/feature; these are always added as a correction. Do not need the original to be visible.
- alias = self.getAlias(cmdElem, self.cmddict)
- if not self.checkForCorrectionAliases(alias, require, 'command'):
- if not required_key in self.gen.featureDictionary[featurename]['command']:
- self.gen.featureDictionary[featurename]['command'][required_key] = []
- self.gen.featureDictionary[featurename]['command'][required_key].append(cmdElem.get('name'))
- else:
- self.gen.logMsg('warn', 'fillFeatureDictionary: NOT filling for {}'.format(typename))
-
- def requireFeatures(self, interface, featurename, api, profile):
- """Process `<require>` tags for a `<version>` or `<extension>`.
-
- - interface - Element for `<version>` or `<extension>`, containing
- `<require>` tags
- - featurename - name of the feature
- - api - string specifying API name being generated
- - profile - string specifying API profile being generated"""
-
- # <require> marks things that are required by this version/profile
- for feature in interface.findall('require'):
- if matchAPIProfile(api, profile, feature):
- self.markRequired(featurename, feature, True)
-
- def removeFeatures(self, interface, featurename, api, profile):
- """Process `<remove>` tags for a `<version>` or `<extension>`.
-
- - interface - Element for `<version>` or `<extension>`, containing
- `<remove>` tags
- - featurename - name of the feature
- - api - string specifying API name being generated
- - profile - string specifying API profile being generated"""
-
- # <remove> marks things that are removed by this version/profile
- for feature in interface.findall('remove'):
- if matchAPIProfile(api, profile, feature):
- self.markRequired(featurename, feature, False)
-
- def assignAdditionalValidity(self, interface, api, profile):
- # Loop over all usage inside all <require> tags.
- for feature in interface.findall('require'):
- if matchAPIProfile(api, profile, feature):
- for v in feature.findall('usage'):
- if v.get('command'):
- self.cmddict[v.get('command')].additionalValidity.append(copy.deepcopy(v))
- if v.get('struct'):
- self.typedict[v.get('struct')].additionalValidity.append(copy.deepcopy(v))
-
- def removeAdditionalValidity(self, interface, api, profile):
- # Loop over all usage inside all <remove> tags.
- for feature in interface.findall('remove'):
- if matchAPIProfile(api, profile, feature):
- for v in feature.findall('usage'):
- if v.get('command'):
- self.cmddict[v.get('command')].removedValidity.append(copy.deepcopy(v))
- if v.get('struct'):
- self.typedict[v.get('struct')].removedValidity.append(copy.deepcopy(v))
-
- def generateFeature(self, fname, ftype, dictionary):
- """Generate a single type / enum group / enum / command,
- and all its dependencies as needed.
-
- - fname - name of feature (`<type>`/`<enum>`/`<command>`)
- - ftype - type of feature, 'type' | 'enum' | 'command'
- - dictionary - of *Info objects - self.{type|enum|cmd}dict"""
-
- self.gen.logMsg('diag', 'generateFeature: generating', ftype, fname)
- f = self.lookupElementInfo(fname, dictionary)
- if f is None:
- # No such feature. This is an error, but reported earlier
- self.gen.logMsg('diag', 'No entry found for feature', fname,
- 'returning!')
- return
-
- # If feature is not required, or has already been declared, return
- if not f.required:
- self.gen.logMsg('diag', 'Skipping', ftype, fname, '(not required)')
- return
- if f.declared:
- self.gen.logMsg('diag', 'Skipping', ftype, fname, '(already declared)')
- return
- # Always mark feature declared, as though actually emitted
- f.declared = True
-
- # Determine if this is an alias, and of what, if so
- alias = f.elem.get('alias')
- if alias:
- self.gen.logMsg('diag', fname, 'is an alias of', alias)
-
- # Pull in dependent declaration(s) of the feature.
- # For types, there may be one type in the 'requires' attribute of
- # the element, one in the 'alias' attribute, and many in
- # embedded <type> and <enum> tags within the element.
- # For commands, there may be many in <type> tags within the element.
- # For enums, no dependencies are allowed (though perhaps if you
- # have a uint64 enum, it should require that type).
- genProc = None
- followupFeature = None
- if ftype == 'type':
- genProc = self.gen.genType
-
- # Generate type dependencies in 'alias' and 'requires' attributes
- if alias:
- self.generateFeature(alias, 'type', self.typedict)
- requires = f.elem.get('requires')
- if requires:
- self.gen.logMsg('diag', 'Generating required dependent type',
- requires)
- self.generateFeature(requires, 'type', self.typedict)
-
- # Generate types used in defining this type (e.g. in nested
- # <type> tags)
- # Look for <type> in entire <command> tree,
- # not just immediate children
- for subtype in f.elem.findall('.//type'):
- self.gen.logMsg('diag', 'Generating required dependent <type>',
- subtype.text)
- self.generateFeature(subtype.text, 'type', self.typedict)
-
- # Generate enums used in defining this type, for example in
- # <member><name>member</name>[<enum>MEMBER_SIZE</enum>]</member>
- for subtype in f.elem.findall('.//enum'):
- self.gen.logMsg('diag', 'Generating required dependent <enum>',
- subtype.text)
- self.generateFeature(subtype.text, 'enum', self.enumdict)
-
- # If the type is an enum group, look up the corresponding
- # group in the group dictionary and generate that instead.
- if f.elem.get('category') == 'enum':
- self.gen.logMsg('diag', 'Type', fname, 'is an enum group, so generate that instead')
- group = self.lookupElementInfo(fname, self.groupdict)
- if alias is not None:
- # An alias of another group name.
- # Pass to genGroup with 'alias' parameter = aliased name
- self.gen.logMsg('diag', 'Generating alias', fname,
- 'for enumerated type', alias)
- # Now, pass the *aliased* GroupInfo to the genGroup, but
- # with an additional parameter which is the alias name.
- genProc = self.gen.genGroup
- f = self.lookupElementInfo(alias, self.groupdict)
- elif group is None:
- self.gen.logMsg('warn', 'Skipping enum type', fname,
- ': No matching enumerant group')
- return
- else:
- genProc = self.gen.genGroup
- f = group
-
- # @ The enum group is not ready for generation. At this
- # @ point, it contains all <enum> tags injected by
- # @ <extension> tags without any verification of whether
- # @ they are required or not. It may also contain
- # @ duplicates injected by multiple consistent
- # @ definitions of an <enum>.
-
- # @ Pass over each enum, marking its enumdict[] entry as
- # @ required or not. Mark aliases of enums as required,
- # @ too.
-
- enums = group.elem.findall('enum')
-
- self.gen.logMsg('diag', 'generateFeature: checking enums for group', fname)
-
- # Check for required enums, including aliases
- # LATER - Check for, report, and remove duplicates?
- enumAliases = []
- for elem in enums:
- name = elem.get('name')
-
- required = False
-
- extname = elem.get('extname')
- version = elem.get('version')
- if extname is not None:
- # 'supported' attribute was injected when the <enum> element was
- # moved into the <enums> group in Registry.parseTree()
- supported_list = elem.get('supported').split(",")
- if self.genOpts.defaultExtensions in supported_list:
- required = True
- elif re.match(self.genOpts.addExtensions, extname) is not None:
- required = True
- elif version is not None:
- required = re.match(self.genOpts.emitversions, version) is not None
- else:
- required = True
-
- self.gen.logMsg('diag', '* required =', required, 'for', name)
- if required:
- # Mark this element as required (in the element, not the EnumInfo)
- elem.set('required', 'true')
- # If it is an alias, track that for later use
- enumAlias = elem.get('alias')
- if enumAlias:
- enumAliases.append(enumAlias)
- for elem in enums:
- name = elem.get('name')
- if name in enumAliases:
- elem.set('required', 'true')
- self.gen.logMsg('diag', '* also need to require alias', name)
- if f.elem.get('category') == 'bitmask':
- followupFeature = f.elem.get('bitvalues')
- elif ftype == 'command':
- # Generate command dependencies in 'alias' attribute
- if alias:
- self.generateFeature(alias, 'command', self.cmddict)
-
- genProc = self.gen.genCmd
- for type_elem in f.elem.findall('.//type'):
- depname = type_elem.text
- self.gen.logMsg('diag', 'Generating required parameter type',
- depname)
- self.generateFeature(depname, 'type', self.typedict)
- elif ftype == 'enum':
- # Generate enum dependencies in 'alias' attribute
- if alias:
- self.generateFeature(alias, 'enum', self.enumdict)
- genProc = self.gen.genEnum
-
- # Actually generate the type only if emitting declarations
- if self.emitFeatures:
- self.gen.logMsg('diag', 'Emitting', ftype, 'decl for', fname)
- genProc(f, fname, alias)
- else:
- self.gen.logMsg('diag', 'Skipping', ftype, fname,
- '(should not be emitted)')
-
- if followupFeature:
- self.gen.logMsg('diag', 'Generating required bitvalues <enum>',
- followupFeature)
- self.generateFeature(followupFeature, "type", self.typedict)
-
- def generateRequiredInterface(self, interface):
- """Generate all interfaces required by an API version or extension.
-
- - interface - Element for `<version>` or `<extension>`"""
-
- # Loop over all features inside all <require> tags.
- for features in interface.findall('require'):
- for t in features.findall('type'):
- self.generateFeature(t.get('name'), 'type', self.typedict)
- for e in features.findall('enum'):
- # If this is an enum extending an enumerated type, do not
- # generate it - this has already been done in reg.parseTree,
- # by copying this element into the enumerated type.
- enumextends = e.get('extends')
- if not enumextends:
- self.generateFeature(e.get('name'), 'enum', self.enumdict)
- for c in features.findall('command'):
- self.generateFeature(c.get('name'), 'command', self.cmddict)
-
- def generateSpirv(self, spirv, dictionary):
- if spirv is None:
- self.gen.logMsg('diag', 'No entry found for element', name,
- 'returning!')
- return
-
- name = spirv.elem.get('name')
- # No known alias for spirv elements
- alias = None
- if spirv.emit:
- genProc = self.gen.genSpirv
- genProc(spirv, name, alias)
-
- def stripUnsupportedAPIs(self, dictionary, attribute, supportedDictionary):
- """Strip unsupported APIs from attributes of APIs.
- dictionary - *Info dictionary of APIs to be updated
- attribute - attribute name to look for in each API
- supportedDictionary - dictionary in which to look for supported
- API elements in the attribute"""
-
- for key in dictionary:
- eleminfo = dictionary[key]
- attribstring = eleminfo.elem.get(attribute)
- if attribstring is not None:
- apis = []
- stripped = False
- for api in attribstring.split(','):
- ##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:
- eleminfo.elem.set(attribute, ','.join(apis))
-
- def generateFormat(self, format, dictionary):
- if format is None:
- self.gen.logMsg('diag', 'No entry found for format element',
- 'returning!')
- return
-
- name = format.elem.get('name')
- # No known alias for VkFormat elements
- alias = None
- if format.emit:
- genProc = self.gen.genFormat
- genProc(format, name, alias)
-
- def apiGen(self):
- """Generate interface for specified versions using the current
- generator and generator options"""
-
- self.gen.logMsg('diag', '*******************************************')
- self.gen.logMsg('diag', ' Registry.apiGen file:', self.genOpts.filename,
- 'api:', self.genOpts.apiname,
- 'profile:', self.genOpts.profile)
- self.gen.logMsg('diag', '*******************************************')
-
- # Could reset required/declared flags for all features here.
- # This has been removed as never used. The initial motivation was
- # the idea of calling apiGen() repeatedly for different targets, but
- # this has never been done. The 20% or so build-time speedup that
- # might result is not worth the effort to make it actually work.
- #
- # self.apiReset()
-
- # Compile regexps used to select versions & extensions
- regVersions = re.compile(self.genOpts.versions)
- regEmitVersions = re.compile(self.genOpts.emitversions)
- regAddExtensions = re.compile(self.genOpts.addExtensions)
- regRemoveExtensions = re.compile(self.genOpts.removeExtensions)
- regEmitExtensions = re.compile(self.genOpts.emitExtensions)
- regEmitSpirv = re.compile(self.genOpts.emitSpirv)
- regEmitFormats = re.compile(self.genOpts.emitFormats)
-
- # Get all matching API feature names & add to list of FeatureInfo
- # Note we used to select on feature version attributes, not names.
- features = []
- apiMatch = False
- for key in self.apidict:
- fi = self.apidict[key]
- api = fi.elem.get('api')
- if apiNameMatch(self.genOpts.apiname, api):
- apiMatch = True
- if regVersions.match(fi.name):
- # Matches API & version #s being generated. Mark for
- # emission and add to the features[] list .
- # @@ Could use 'declared' instead of 'emit'?
- fi.emit = (regEmitVersions.match(fi.name) is not None)
- features.append(fi)
- if not fi.emit:
- self.gen.logMsg('diag', 'NOT tagging feature api =', api,
- 'name =', fi.name, 'version =', fi.version,
- 'for emission (does not match emitversions pattern)')
- else:
- self.gen.logMsg('diag', 'Including feature api =', api,
- 'name =', fi.name, 'version =', fi.version,
- 'for emission (matches emitversions pattern)')
- else:
- self.gen.logMsg('diag', 'NOT including feature api =', api,
- 'name =', fi.name, 'version =', fi.version,
- '(does not match requested versions)')
- else:
- self.gen.logMsg('diag', 'NOT including feature api =', api,
- 'name =', fi.name,
- '(does not match requested API)')
- if not apiMatch:
- self.gen.logMsg('warn', 'No matching API versions found!')
-
- # Get all matching extensions, in order by their extension number,
- # and add to the list of features.
- # Start with extensions whose 'supported' attributes match the API
- # being generated. Add extensions matching the pattern specified in
- # regExtensions, then remove extensions matching the pattern
- # specified in regRemoveExtensions
- for (extName, ei) in sorted(self.extdict.items(), key=lambda x: x[1].number if x[1].number is not None else '0'):
- extName = ei.name
- include = False
-
- # Include extension if defaultExtensions is not None and is
- # exactly matched by the 'supported' attribute.
- if apiNameMatch(self.genOpts.defaultExtensions,
- ei.elem.get('supported')):
- self.gen.logMsg('diag', 'Including extension',
- extName, "(defaultExtensions matches the 'supported' attribute)")
- include = True
-
- # Include additional extensions if the extension name matches
- # the regexp specified in the generator options. This allows
- # forcing extensions into an interface even if they are not
- # tagged appropriately in the registry.
- # However we still respect the 'supported' attribute.
- if regAddExtensions.match(extName) is not None:
- if not apiNameMatch(self.genOpts.apiname, ei.elem.get('supported')):
- self.gen.logMsg('diag', 'NOT including extension',
- extName, '(matches explicitly requested, but does not match the \'supported\' attribute)')
- include = False
- else:
- self.gen.logMsg('diag', 'Including extension',
- extName, '(matches explicitly requested extensions to add)')
- include = True
- # Remove extensions if the name matches the regexp specified
- # in generator options. This allows forcing removal of
- # extensions from an interface even if they are tagged that
- # way in the registry.
- if regRemoveExtensions.match(extName) is not None:
- self.gen.logMsg('diag', 'Removing extension',
- extName, '(matches explicitly requested extensions to remove)')
- include = False
-
- # If the extension is to be included, add it to the
- # extension features list.
- if include:
- ei.emit = (regEmitExtensions.match(extName) is not None)
- features.append(ei)
- if not ei.emit:
- self.gen.logMsg('diag', 'NOT tagging extension',
- extName,
- 'for emission (does not match emitextensions pattern)')
-
- # Hack - can be removed when validity generator goes away
- # (Jon) I am not sure what this does, or if it should
- # respect the ei.emit flag above.
- self.requiredextensions.append(extName)
- else:
- self.gen.logMsg('diag', 'NOT including extension',
- extName, '(does not match api attribute or explicitly requested extensions)')
-
- # Add all spirv elements to list
- # generators decide to emit them all or not
- # Currently no filtering as no client of these elements needs filtering
- spirvexts = []
- for key in self.spirvextdict:
- si = self.spirvextdict[key]
- si.emit = (regEmitSpirv.match(key) is not None)
- spirvexts.append(si)
- spirvcaps = []
- for key in self.spirvcapdict:
- si = self.spirvcapdict[key]
- si.emit = (regEmitSpirv.match(key) is not None)
- spirvcaps.append(si)
-
- formats = []
- for key in self.formatsdict:
- si = self.formatsdict[key]
- si.emit = (regEmitFormats.match(key) is not None)
- formats.append(si)
-
- # Sort the features list, if a sort procedure is defined
- if self.genOpts.sortProcedure:
- self.genOpts.sortProcedure(features)
- # print('sortProcedure ->', [f.name for f in features])
-
- # Passes 1+2: loop over requested API versions and extensions tagging
- # types/commands/features as required (in an <require> block) or no
- # longer required (in an <remove> block). <remove>s are processed
- # after all <require>s, so removals win.
- # If a profile other than 'None' is being generated, it must
- # match the profile attribute (if any) of the <require> and
- # <remove> tags.
- self.gen.logMsg('diag', 'PASS 1: TAG FEATURES')
- for f in features:
- self.gen.logMsg('diag', 'PASS 1: Tagging required and features for', f.name)
- self.fillFeatureDictionary(f.elem, f.name, self.genOpts.apiname, self.genOpts.profile)
- self.requireFeatures(f.elem, f.name, self.genOpts.apiname, self.genOpts.profile)
- self.assignAdditionalValidity(f.elem, self.genOpts.apiname, self.genOpts.profile)
-
- for f in features:
- self.gen.logMsg('diag', 'PASS 2: Tagging removed features for', f.name)
- self.removeFeatures(f.elem, f.name, self.genOpts.apiname, self.genOpts.profile)
- self.removeAdditionalValidity(f.elem, self.genOpts.apiname, self.genOpts.profile)
-
- # Now, strip references to APIs that are not required.
- # At present such references may occur in:
- # Structs in <type category="struct"> 'structextends' attributes
- # Enums in <command> 'successcodes' and 'errorcodes' attributes
- self.stripUnsupportedAPIs(self.typedict, 'structextends', self.typedict)
- self.stripUnsupportedAPIs(self.cmddict, 'successcodes', self.enumdict)
- self.stripUnsupportedAPIs(self.cmddict, 'errorcodes', self.enumdict)
-
- # @@May need to strip <spirvcapability> / <spirvextension> <enable>
- # tags of these forms:
- # <enable version="VK_API_VERSION_1_0"/>
- # <enable struct="VkPhysicalDeviceFeatures" feature="geometryShader" requires="VK_VERSION_1_0"/>
- # <enable extension="VK_KHR_shader_draw_parameters"/>
- # <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderDenormPreserveFloat16" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
-
- # Pass 3: loop over specified API versions and extensions printing
- # declarations for required things which have not already been
- # generated.
- self.gen.logMsg('diag', 'PASS 3: GENERATE INTERFACES FOR FEATURES')
- self.gen.beginFile(self.genOpts)
- for f in features:
- self.gen.logMsg('diag', 'PASS 3: Generating interface for',
- f.name)
- emit = self.emitFeatures = f.emit
- if not emit:
- self.gen.logMsg('diag', 'PASS 3: NOT declaring feature',
- f.elem.get('name'), 'because it is not tagged for emission')
- # Generate the interface (or just tag its elements as having been
- # emitted, if they have not been).
- self.gen.beginFeature(f.elem, emit)
- self.generateRequiredInterface(f.elem)
- self.gen.endFeature()
- # Generate spirv elements
- for s in spirvexts:
- self.generateSpirv(s, self.spirvextdict)
- for s in spirvcaps:
- self.generateSpirv(s, self.spirvcapdict)
- for s in formats:
- self.generateFormat(s, self.formatsdict)
- self.gen.endFile()
-
- def apiReset(self):
- """Reset type/enum/command dictionaries before generating another API.
-
- Use between apiGen() calls to reset internal state."""
- for datatype in self.typedict:
- self.typedict[datatype].resetState()
- for enum in self.enumdict:
- self.enumdict[enum].resetState()
- for cmd in self.cmddict:
- self.cmddict[cmd].resetState()
- for cmd in self.apidict:
- self.apidict[cmd].resetState()
-
- def __validateStructLimittypes(self, struct):
- """Validate 'limittype' attributes for a single struct."""
- limittypeDiags = namedtuple('limittypeDiags', ['missing', 'invalid'])
- badFields = defaultdict(lambda : limittypeDiags(missing=[], invalid=[]))
- validLimittypes = { 'min', 'max', 'bitmask', 'range', 'struct', 'noauto' }
- for member in struct.getMembers():
- memberName = member.findtext('name')
- if memberName in ['sType', 'pNext']:
- continue
- limittype = member.get('limittype')
- if not limittype:
- badFields[struct.elem.get('name')].missing.append(memberName)
- elif limittype == 'struct':
- typeName = member.findtext('type')
- memberType = self.typedict[typeName]
- badFields.update(self.__validateStructLimittypes(memberType))
- elif limittype not in validLimittypes:
- badFields[struct.elem.get('name')].invalid.append(memberName)
- return badFields
-
- def __validateLimittype(self):
- """Validate 'limittype' attributes."""
- badFields = self.__validateStructLimittypes(self.typedict['VkPhysicalDeviceProperties2'])
- for featStructName in self.validextensionstructs['VkPhysicalDeviceProperties2']:
- featStruct = self.typedict[featStructName]
- badFields.update(self.__validateStructLimittypes(featStruct))
-
- if badFields:
- self.gen.logMsg('diag', 'SUMMARY OF FIELDS WITH INCORRECT LIMITTYPES')
- for key in sorted(badFields.keys()):
- diags = badFields[key]
- if diags.missing:
- self.gen.logMsg('diag', ' ', key, 'missing limittype:', ', '.join(badFields[key].missing))
- if diags.invalid:
- self.gen.logMsg('diag', ' ', key, 'invalid limittype:', ', '.join(badFields[key].invalid))
- return False
- return True
-
- def validateRegistry(self):
- """Validate properties of the registry."""
- return self.__validateLimittype()
diff --git a/registry/spec_tools/util.py b/registry/spec_tools/util.py
deleted file mode 100644
index 051f1ea..0000000
--- a/registry/spec_tools/util.py
+++ /dev/null
@@ -1,58 +0,0 @@
-"""Utility functions not closely tied to other spec_tools types."""
-# Copyright 2018-2019 Collabora, Ltd.
-# Copyright 2013-2022 The Khronos Group Inc.
-#
-# SPDX-License-Identifier: Apache-2.0
-
-
-def getElemName(elem, default=None):
- """Get the name associated with an element, either a name child or name attribute."""
- name_elem = elem.find('name')
- if name_elem is not None:
- return name_elem.text
- # Fallback if there is no child.
- return elem.get('name', default)
-
-
-def getElemType(elem, default=None):
- """Get the type associated with an element, either a type child or type attribute."""
- type_elem = elem.find('type')
- if type_elem is not None:
- return type_elem.text
- # Fallback if there is no child.
- return elem.get('type', default)
-
-
-def findFirstWithPredicate(collection, pred):
- """Return the first element that satisfies the predicate, or None if none exist.
-
- NOTE: Some places where this is used might be better served by changing to a dictionary.
- """
- for elt in collection:
- if pred(elt):
- return elt
- return None
-
-
-def findNamedElem(elems, name):
- """Traverse a collection of elements with 'name' nodes or attributes, looking for and returning one with the right name.
-
- NOTE: Many places where this is used might be better served by changing to a dictionary.
- """
- return findFirstWithPredicate(elems, lambda elem: getElemName(elem) == name)
-
-
-def findTypedElem(elems, typename):
- """Traverse a collection of elements with 'type' nodes or attributes, looking for and returning one with the right typename.
-
- NOTE: Many places where this is used might be better served by changing to a dictionary.
- """
- return findFirstWithPredicate(elems, lambda elem: getElemType(elem) == typename)
-
-
-def findNamedObject(collection, name):
- """Traverse a collection of elements with 'name' attributes, looking for and returning one with the right name.
-
- NOTE: Many places where this is used might be better served by changing to a dictionary.
- """
- return findFirstWithPredicate(collection, lambda elt: elt.name == name)
diff --git a/registry/validusage.json b/registry/validusage.json
deleted file mode 100644
index 7fd9ce4..0000000
--- a/registry/validusage.json
+++ /dev/null
@@ -1,49336 +0,0 @@
-{
- "version info": {
- "schema version": 2,
- "api version": "1.3.206",
- "comment": "from git branch: github-main commit: d80b6159f6d69398dbeae52aa1080e47ae96fe47",
- "date": "2022-02-17 16:04:58Z"
- },
- "validation": {
- "vkGetInstanceProcAddr": {
- "core": [
- {
- "vuid": "VUID-vkGetInstanceProcAddr-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"
- },
- {
- "vuid": "VUID-vkGetInstanceProcAddr-pName-parameter",
- "text": " <code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- }
- ]
- },
- "vkGetDeviceProcAddr": {
- "core": [
- {
- "vuid": "VUID-vkGetDeviceProcAddr-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceProcAddr-pName-parameter",
- "text": " <code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- }
- ]
- },
- "vkEnumerateInstanceVersion": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkEnumerateInstanceVersion-pApiVersion-parameter",
- "text": " <code>pApiVersion</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- }
- ]
- },
- "vkCreateInstance": {
- "core": [
- {
- "vuid": "VUID-vkCreateInstance-ppEnabledExtensionNames-01388",
- "text": " All <a href=\"#extendingvulkan-extensions-extensiondependencies\">required extensions</a> for each extension in the <a href=\"#VkInstanceCreateInfo\">VkInstanceCreateInfo</a>::<code>ppEnabledExtensionNames</code> list <strong class=\"purple\">must</strong> also be present in that list"
- },
- {
- "vuid": "VUID-vkCreateInstance-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkInstanceCreateInfo\">VkInstanceCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateInstance-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"
- },
- {
- "vuid": "VUID-vkCreateInstance-pInstance-parameter",
- "text": " <code>pInstance</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkInstance\">VkInstance</a> handle"
- }
- ]
- },
- "VkInstanceCreateInfo": {
- "(VK_EXT_debug_report,VK_EXT_debug_utils)+(VK_EXT_debug_report)": [
- {
- "vuid": "VUID-VkInstanceCreateInfo-pNext-04925",
- "text": " If the <code>pNext</code> chain of <code>VkInstanceCreateInfo</code> includes a <code>VkDebugReportCallbackCreateInfoEXT</code> structure, the list of enabled extensions in <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> contain <a href=\"#VK_EXT_debug_report\">VK_EXT_debug_report</a>"
- }
- ],
- "(VK_EXT_debug_report,VK_EXT_debug_utils)+(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-VkInstanceCreateInfo-pNext-04926",
- "text": " If the <code>pNext</code> chain of <code>VkInstanceCreateInfo</code> includes a <code>VkDebugUtilsMessengerCreateInfoEXT</code> structure, the list of enabled extensions in <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> contain <a href=\"#VK_EXT_debug_utils\">VK_EXT_debug_utils</a>"
- }
- ],
- "core": [
- {
- "vuid": "VUID-VkInstanceCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkInstanceCreateInfo-pNext-pNext",
- "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=\"#VkDebugReportCallbackCreateInfoEXT\">VkDebugReportCallbackCreateInfoEXT</a>, <a href=\"#VkDebugUtilsMessengerCreateInfoEXT\">VkDebugUtilsMessengerCreateInfoEXT</a>, <a href=\"#VkValidationFeaturesEXT\">VkValidationFeaturesEXT</a>, or <a href=\"#VkValidationFlagsEXT\">VkValidationFlagsEXT</a>"
- },
- {
- "vuid": "VUID-VkInstanceCreateInfo-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkDebugUtilsMessengerCreateInfoEXT\">VkDebugUtilsMessengerCreateInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkInstanceCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkInstanceCreateInfo-pApplicationInfo-parameter",
- "text": " If <code>pApplicationInfo</code> is not <code>NULL</code>, <code>pApplicationInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkApplicationInfo\">VkApplicationInfo</a> structure"
- },
- {
- "vuid": "VUID-VkInstanceCreateInfo-ppEnabledLayerNames-parameter",
- "text": " If <code>enabledLayerCount</code> is not <code>0</code>, <code>ppEnabledLayerNames</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledLayerCount</code> null-terminated UTF-8 strings"
- },
- {
- "vuid": "VUID-VkInstanceCreateInfo-ppEnabledExtensionNames-parameter",
- "text": " If <code>enabledExtensionCount</code> is not <code>0</code>, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledExtensionCount</code> null-terminated UTF-8 strings"
- }
- ]
- },
- "VkValidationFlagsEXT": {
- "(VK_EXT_validation_flags)": [
- {
- "vuid": "VUID-VkValidationFlagsEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT</code>"
- },
- {
- "vuid": "VUID-VkValidationFlagsEXT-pDisabledValidationChecks-parameter",
- "text": " <code>pDisabledValidationChecks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>disabledValidationCheckCount</code> valid <a href=\"#VkValidationCheckEXT\">VkValidationCheckEXT</a> values"
- },
- {
- "vuid": "VUID-VkValidationFlagsEXT-disabledValidationCheckCount-arraylength",
- "text": " <code>disabledValidationCheckCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkValidationFeaturesEXT": {
- "(VK_EXT_validation_features)": [
- {
- "vuid": "VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02967",
- "text": " If the <code>pEnabledValidationFeatures</code> array contains <code>VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT</code>, then it <strong class=\"purple\">must</strong> also contain <code>VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT</code>"
- },
- {
- "vuid": "VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02968",
- "text": " If the <code>pEnabledValidationFeatures</code> array contains <code>VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT</code>, then it <strong class=\"purple\">must</strong> not contain <code>VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT</code>"
- },
- {
- "vuid": "VUID-VkValidationFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT</code>"
- },
- {
- "vuid": "VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-parameter",
- "text": " If <code>enabledValidationFeatureCount</code> is not <code>0</code>, <code>pEnabledValidationFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledValidationFeatureCount</code> valid <a href=\"#VkValidationFeatureEnableEXT\">VkValidationFeatureEnableEXT</a> values"
- },
- {
- "vuid": "VUID-VkValidationFeaturesEXT-pDisabledValidationFeatures-parameter",
- "text": " If <code>disabledValidationFeatureCount</code> is not <code>0</code>, <code>pDisabledValidationFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>disabledValidationFeatureCount</code> valid <a href=\"#VkValidationFeatureDisableEXT\">VkValidationFeatureDisableEXT</a> values"
- }
- ]
- },
- "VkApplicationInfo": {
- "core": [
- {
- "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>"
- },
- {
- "vuid": "VUID-VkApplicationInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_APPLICATION_INFO</code>"
- },
- {
- "vuid": "VUID-VkApplicationInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkApplicationInfo-pApplicationName-parameter",
- "text": " If <code>pApplicationName</code> is not <code>NULL</code>, <code>pApplicationName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- },
- {
- "vuid": "VUID-VkApplicationInfo-pEngineName-parameter",
- "text": " If <code>pEngineName</code> is not <code>NULL</code>, <code>pEngineName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- }
- ]
- },
- "vkDestroyInstance": {
- "core": [
- {
- "vuid": "VUID-vkDestroyInstance-instance-00629",
- "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"
- },
- {
- "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"
- }
- ]
- },
- "vkEnumeratePhysicalDevices": {
- "core": [
- {
- "vuid": "VUID-vkEnumeratePhysicalDevices-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkEnumeratePhysicalDevices-pPhysicalDeviceCount-parameter",
- "text": " <code>pPhysicalDeviceCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkEnumeratePhysicalDevices-pPhysicalDevices-parameter",
- "text": " If the value referenced by <code>pPhysicalDeviceCount</code> is not <code>0</code>, and <code>pPhysicalDevices</code> is not <code>NULL</code>, <code>pPhysicalDevices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPhysicalDeviceCount</code> <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handles"
- }
- ]
- },
- "vkGetPhysicalDeviceProperties": {
- "core": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceProperties-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceProperties-pProperties-parameter",
- "text": " <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a> structure"
- }
- ]
- },
- "vkGetPhysicalDeviceProperties2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceProperties2-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceProperties2-pProperties-parameter",
- "text": " <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceProperties2\">VkPhysicalDeviceProperties2</a> structure"
- }
- ]
- },
- "VkPhysicalDeviceProperties2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceProperties2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceProperties2-pNext-pNext",
- "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=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesNV\">VkPhysicalDeviceCooperativeMatrixPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorPropertiesEXT\">VkPhysicalDeviceCustomBorderColorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingProperties\">VkPhysicalDeviceDescriptorIndexingProperties</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDriverProperties\">VkPhysicalDeviceDriverProperties</a>, <a href=\"#VkPhysicalDeviceDrmPropertiesEXT\">VkPhysicalDeviceDrmPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFloatControlsProperties\">VkPhysicalDeviceFloatControlsProperties</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2PropertiesEXT\">VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapPropertiesEXT\">VkPhysicalDeviceFragmentDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV\">VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRatePropertiesKHR\">VkPhysicalDeviceFragmentShadingRatePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockProperties\">VkPhysicalDeviceInlineUniformBlockProperties</a>, <a href=\"#VkPhysicalDeviceLineRasterizationPropertiesEXT\">VkPhysicalDeviceLineRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance4Properties\">VkPhysicalDeviceMaintenance4Properties</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawPropertiesEXT\">VkPhysicalDeviceMultiDrawPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDevicePCIBusInfoPropertiesEXT\">VkPhysicalDevicePCIBusInfoPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetPropertiesKHR\">VkPhysicalDevicePortabilitySubsetPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDeviceProvokingVertexPropertiesEXT\">VkPhysicalDeviceProvokingVertexPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2PropertiesEXT\">VkPhysicalDeviceRobustness2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxProperties\">VkPhysicalDeviceSamplerFilterMinmaxProperties</a>, <a href=\"#VkPhysicalDeviceShaderCoreProperties2AMD\">VkPhysicalDeviceShaderCoreProperties2AMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductProperties\">VkPhysicalDeviceShaderIntegerDotProductProperties</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsPropertiesNV\">VkPhysicalDeviceShaderSMBuiltinsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceShadingRateImagePropertiesNV\">VkPhysicalDeviceShadingRateImagePropertiesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlProperties\">VkPhysicalDeviceSubgroupSizeControlProperties</a>, <a href=\"#VkPhysicalDeviceSubpassShadingPropertiesHUAWEI\">VkPhysicalDeviceSubpassShadingPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreProperties\">VkPhysicalDeviceTimelineSemaphoreProperties</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVulkan11Properties\">VkPhysicalDeviceVulkan11Properties</a>, <a href=\"#VkPhysicalDeviceVulkan12Properties\">VkPhysicalDeviceVulkan12Properties</a>, or <a href=\"#VkPhysicalDeviceVulkan13Properties\">VkPhysicalDeviceVulkan13Properties</a>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceProperties2-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
- }
- ]
- },
- "VkPhysicalDeviceVulkan11Properties": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceVulkan11Properties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceVulkan12Properties": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceVulkan12Properties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceVulkan13Properties": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-VkPhysicalDeviceVulkan13Properties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceIDProperties": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_external_memory_capabilities,VK_KHR_external_semaphore_capabilities,VK_KHR_external_fence_capabilities)": [
- {
- "vuid": "VUID-VkPhysicalDeviceIDProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceDriverProperties": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2,VK_KHR_driver_properties)": [
- {
- "vuid": "VUID-VkPhysicalDeviceDriverProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDevicePCIBusInfoPropertiesEXT": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_pci_bus_info)": [
- {
- "vuid": "VUID-VkPhysicalDevicePCIBusInfoPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceDrmPropertiesEXT": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_physical_device_drm)": [
- {
- "vuid": "VUID-VkPhysicalDeviceDrmPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderIntegerDotProductProperties": {
- "(VK_VERSION_1_3,VK_KHR_shader_integer_dot_product)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderIntegerDotProductProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceQueueFamilyProperties": {
- "core": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyPropertyCount-parameter",
- "text": " <code>pQueueFamilyPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyProperties-parameter",
- "text": " If the value referenced by <code>pQueueFamilyPropertyCount</code> is not <code>0</code>, and <code>pQueueFamilyProperties</code> is not <code>NULL</code>, <code>pQueueFamilyProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pQueueFamilyPropertyCount</code> <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a> structures"
- }
- ]
- },
- "vkGetPhysicalDeviceQueueFamilyProperties2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyPropertyCount-parameter",
- "text": " <code>pQueueFamilyPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyProperties-parameter",
- "text": " If the value referenced by <code>pQueueFamilyPropertyCount</code> is not <code>0</code>, and <code>pQueueFamilyProperties</code> is not <code>NULL</code>, <code>pQueueFamilyProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pQueueFamilyPropertyCount</code> <a href=\"#VkQueueFamilyProperties2\">VkQueueFamilyProperties2</a> structures"
- }
- ]
- },
- "VkQueueFamilyProperties2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-VkQueueFamilyProperties2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2</code>"
- },
- {
- "vuid": "VUID-VkQueueFamilyProperties2-pNext-pNext",
- "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=\"#VkQueueFamilyCheckpointProperties2NV\">VkQueueFamilyCheckpointProperties2NV</a>, <a href=\"#VkQueueFamilyCheckpointPropertiesNV\">VkQueueFamilyCheckpointPropertiesNV</a>, <a href=\"#VkQueueFamilyGlobalPriorityPropertiesKHR\">VkQueueFamilyGlobalPriorityPropertiesKHR</a>, <a href=\"#VkQueueFamilyQueryResultStatusProperties2KHR\">VkQueueFamilyQueryResultStatusProperties2KHR</a>, or <a href=\"#VkVideoQueueFamilyProperties2KHR\">VkVideoQueueFamilyProperties2KHR</a>"
- },
- {
- "vuid": "VUID-VkQueueFamilyProperties2-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
- }
- ]
- },
- "VkQueueFamilyGlobalPriorityPropertiesKHR": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_global_priority_query,VK_KHR_global_priority)": [
- {
- "vuid": "VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR</code>"
- },
- {
- "vuid": "VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-priorities-parameter",
- "text": " Any given element of <code>priorities</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueueGlobalPriorityKHR\">VkQueueGlobalPriorityKHR</a> value"
- }
- ]
- },
- "VkQueueFamilyCheckpointProperties2NV": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_NV_device_diagnostic_checkpoints)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkQueueFamilyCheckpointProperties2NV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV</code>"
- }
- ]
- },
- "VkQueueFamilyCheckpointPropertiesNV": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_NV_device_diagnostic_checkpoints)": [
- {
- "vuid": "VUID-VkQueueFamilyCheckpointPropertiesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV</code>"
- }
- ]
- },
- "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR": {
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterCount-parameter",
- "text": " <code>pCounterCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounters-parameter",
- "text": " If the value referenced by <code>pCounterCount</code> is not <code>0</code>, and <code>pCounters</code> is not <code>NULL</code>, <code>pCounters</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCounterCount</code> <a href=\"#VkPerformanceCounterKHR\">VkPerformanceCounterKHR</a> structures"
- },
- {
- "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterDescriptions-parameter",
- "text": " If the value referenced by <code>pCounterCount</code> is not <code>0</code>, and <code>pCounterDescriptions</code> is not <code>NULL</code>, <code>pCounterDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCounterCount</code> <a href=\"#VkPerformanceCounterDescriptionKHR\">VkPerformanceCounterDescriptionKHR</a> structures"
- }
- ]
- },
- "VkPerformanceCounterKHR": {
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-VkPerformanceCounterKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR</code>"
- },
- {
- "vuid": "VUID-VkPerformanceCounterKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkPerformanceCounterDescriptionKHR": {
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-VkPerformanceCounterDescriptionKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR</code>"
- },
- {
- "vuid": "VUID-VkPerformanceCounterDescriptionKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkEnumeratePhysicalDeviceGroups": {
- "(VK_VERSION_1_1,VK_KHR_device_group_creation)": [
- {
- "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupCount-parameter",
- "text": " <code>pPhysicalDeviceGroupCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupProperties-parameter",
- "text": " If the value referenced by <code>pPhysicalDeviceGroupCount</code> is not <code>0</code>, and <code>pPhysicalDeviceGroupProperties</code> is not <code>NULL</code>, <code>pPhysicalDeviceGroupProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPhysicalDeviceGroupCount</code> <a href=\"#VkPhysicalDeviceGroupProperties\">VkPhysicalDeviceGroupProperties</a> structures"
- }
- ]
- },
- "VkPhysicalDeviceGroupProperties": {
- "(VK_VERSION_1_1,VK_KHR_device_group_creation)": [
- {
- "vuid": "VUID-VkPhysicalDeviceGroupProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceGroupProperties-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkCreateDevice": {
- "core": [
- {
- "vuid": "VUID-vkCreateDevice-ppEnabledExtensionNames-01387",
- "text": " All <a href=\"#extendingvulkan-extensions-extensiondependencies\">required device extensions</a> for each extension in the <a href=\"#VkDeviceCreateInfo\">VkDeviceCreateInfo</a>::<code>ppEnabledExtensionNames</code> list <strong class=\"purple\">must</strong> also be present in that list"
- },
- {
- "vuid": "VUID-vkCreateDevice-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateDevice-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceCreateInfo\">VkDeviceCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateDevice-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"
- },
- {
- "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"
- }
- ]
- },
- "VkDeviceCreateInfo": {
- "!(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-queueFamilyIndex-00372",
- "text": " The <code>queueFamilyIndex</code> member of each element of <code>pQueueCreateInfos</code> <strong class=\"purple\">must</strong> be unique within <code>pQueueCreateInfos</code>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-queueFamilyIndex-02802",
- "text": " The <code>queueFamilyIndex</code> member of each element of <code>pQueueCreateInfos</code> <strong class=\"purple\">must</strong> be unique within <code>pQueueCreateInfos</code>, except that two members can share the same <code>queueFamilyIndex</code> if one is a protected-capable queue and one is not a protected-capable queue"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-pNext-00373",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a> structure, then <code>pEnabledFeatures</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ],
- "(VK_AMD_negative_viewport_height)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840",
- "text": " <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain <code><a href=\"#VK_AMD_negative_viewport_height\">VK_AMD_negative_viewport_height</a></code>"
- }
- ],
- "(VK_AMD_negative_viewport_height)+!(VK_VERSION_1_1)+(VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374",
- "text": " <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain both <code><a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a></code> and <code><a href=\"#VK_AMD_negative_viewport_height\">VK_AMD_negative_viewport_height</a></code>"
- }
- ],
- "(VK_EXT_buffer_device_address+VK_KHR_buffer_device_address)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-03328",
- "text": " <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain both <code><a href=\"#VK_KHR_buffer_device_address\">VK_KHR_buffer_device_address</a></code> and <code><a href=\"#VK_EXT_buffer_device_address\">VK_EXT_buffer_device_address</a></code>"
- }
- ],
- "(VK_VERSION_1_2)+(VK_EXT_buffer_device_address)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-pNext-04748",
- "text": " if the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure and <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>::<code>bufferDeviceAddress</code> is <code>VK_TRUE</code>, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> not contain <code><a href=\"#VK_EXT_buffer_device_address\">VK_EXT_buffer_device_address</a></code>"
- }
- ],
- "(VK_VERSION_1_2)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-pNext-02829",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a> structure, then it <strong class=\"purple\">must</strong> not include a <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, or <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a> structure"
- },
- {
- "vuid": "VUID-VkDeviceCreateInfo-pNext-02830",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then it <strong class=\"purple\">must</strong> not include a <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, or <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a> structure"
- }
- ],
- "(VK_VERSION_1_2)+(VK_KHR_shader_draw_parameters)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-04476",
- "text": " If <code>ppEnabledExtensionNames</code> contains <code>\"VK_KHR_shader_draw_parameters\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a> structure, then <code>VkPhysicalDeviceVulkan11Features</code>::<code>shaderDrawParameters</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
- }
- ],
- "(VK_VERSION_1_2)+(VK_KHR_draw_indirect_count)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02831",
- "text": " If <code>ppEnabledExtensionNames</code> contains <code>\"VK_KHR_draw_indirect_count\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>drawIndirectCount</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
- }
- ],
- "(VK_VERSION_1_2)+(VK_KHR_sampler_mirror_clamp_to_edge)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02832",
- "text": " If <code>ppEnabledExtensionNames</code> contains <code>\"VK_KHR_sampler_mirror_clamp_to_edge\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>samplerMirrorClampToEdge</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
- }
- ],
- "(VK_VERSION_1_2)+(VK_EXT_descriptor_indexing)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02833",
- "text": " If <code>ppEnabledExtensionNames</code> contains <code>\"VK_EXT_descriptor_indexing\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>descriptorIndexing</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
- }
- ],
- "(VK_VERSION_1_2)+(VK_EXT_sampler_filter_minmax)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02834",
- "text": " If <code>ppEnabledExtensionNames</code> contains <code>\"VK_EXT_sampler_filter_minmax\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>samplerFilterMinmax</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
- }
- ],
- "(VK_VERSION_1_2)+(VK_EXT_shader_viewport_index_layer)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02835",
- "text": " If <code>ppEnabledExtensionNames</code> contains <code>\"VK_EXT_shader_viewport_index_layer\"</code> and the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a> structure, then <code>VkPhysicalDeviceVulkan12Features</code>::<code>shaderOutputViewportIndex</code> and <code>VkPhysicalDeviceVulkan12Features</code>::<code>shaderOutputLayer</code> <strong class=\"purple\">must</strong> both be <code>VK_TRUE</code>"
- }
- ],
- "(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-pNext-06532",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkPhysicalDeviceVulkan13Features\">VkPhysicalDeviceVulkan13Features</a> structure, then it <strong class=\"purple\">must</strong> not include a <a href=\"#VkPhysicalDeviceDynamicRenderingFeatures\">VkPhysicalDeviceDynamicRenderingFeatures</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeatures\">VkPhysicalDeviceImageRobustnessFeatures</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>, <a href=\"#VkPhysicalDeviceMaintenance4Features\">VkPhysicalDeviceMaintenance4Features</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeatures\">VkPhysicalDevicePipelineCreationCacheControlFeatures</a>, <a href=\"#VkPhysicalDevicePrivateDataFeatures\">VkPhysicalDevicePrivateDataFeatures</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeatures\">VkPhysicalDeviceShaderIntegerDotProductFeatures</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeatures\">VkPhysicalDeviceShaderTerminateInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeatures\">VkPhysicalDeviceSubgroupSizeControlFeatures</a>, <a href=\"#VkPhysicalDeviceSynchronization2Features\">VkPhysicalDeviceSynchronization2Features</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeatures\">VkPhysicalDeviceTextureCompressionASTCHDRFeatures</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</a> structure"
- }
- ],
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-pProperties-04451",
- "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is included in <code>pProperties</code> of <a href=\"#vkEnumerateDeviceExtensionProperties\">vkEnumerateDeviceExtensionProperties</a>, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> include <code>\"VK_KHR_portability_subset\"</code>"
- }
- ],
- "(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-shadingRateImage-04478",
- "text": " If <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> is enabled, <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> <strong class=\"purple\">must</strong> not be enabled"
- },
- {
- "vuid": "VUID-VkDeviceCreateInfo-shadingRateImage-04479",
- "text": " If <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> is enabled, <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a> <strong class=\"purple\">must</strong> not be enabled"
- },
- {
- "vuid": "VUID-VkDeviceCreateInfo-shadingRateImage-04480",
- "text": " If <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> is enabled, <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> <strong class=\"purple\">must</strong> not be enabled"
- }
- ],
- "(VK_KHR_fragment_shading_rate,VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-fragmentDensityMap-04481",
- "text": " If <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> is enabled, <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> <strong class=\"purple\">must</strong> not be enabled"
- },
- {
- "vuid": "VUID-VkDeviceCreateInfo-fragmentDensityMap-04482",
- "text": " If <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> is enabled, <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a> <strong class=\"purple\">must</strong> not be enabled"
- },
- {
- "vuid": "VUID-VkDeviceCreateInfo-fragmentDensityMap-04483",
- "text": " If <a href=\"#features-fragmentDensityMap\"><code>fragmentDensityMap</code></a> is enabled, <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> <strong class=\"purple\">must</strong> not be enabled"
- }
- ],
- "(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-None-04896",
- "text": " If <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> is enabled, <a href=\"#features-shaderImageInt64Atomics\"><code>shaderImageInt64Atomics</code></a> <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_EXT_shader_atomic_float)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-None-04897",
- "text": " If <a href=\"#features-sparseImageFloat32Atomics\"><code>sparseImageFloat32Atomics</code></a> is enabled, <a href=\"#features-shaderImageFloat32Atomics\"><code>shaderImageFloat32Atomics</code></a> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkDeviceCreateInfo-None-04898",
- "text": " If <a href=\"#features-sparseImageFloat32AtomicAdd\"><code>sparseImageFloat32AtomicAdd</code></a> is enabled, <a href=\"#features-shaderImageFloat32AtomicAdd\"><code>shaderImageFloat32AtomicAdd</code></a> <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_EXT_shader_atomic_float2)": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-sparseImageFloat32AtomicMinMax-04975",
- "text": " If <a href=\"#features-sparseImageFloat32AtomicMinMax\"><code>sparseImageFloat32AtomicMinMax</code></a> is enabled, <a href=\"#features-shaderImageFloat32AtomicMinMax\"><code>shaderImageFloat32AtomicMinMax</code></a> <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "core": [
- {
- "vuid": "VUID-VkDeviceCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkDeviceCreateInfo-pNext-pNext",
- "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=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a>, <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkDevicePrivateDataCreateInfo\">VkDevicePrivateDataCreateInfo</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBorderColorSwizzleFeaturesEXT\">VkPhysicalDeviceBorderColorSwizzleFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesNV\">VkPhysicalDeviceComputeShaderDerivativesFeaturesNV</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthClipControlFeaturesEXT\">VkPhysicalDeviceDepthClipControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceMemoryReportFeaturesEXT\">VkPhysicalDeviceDeviceMemoryReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingFeatures\">VkPhysicalDeviceDynamicRenderingFeatures</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExternalMemoryRDMAFeaturesNV\">VkPhysicalDeviceExternalMemoryRDMAFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2FeaturesEXT\">VkPhysicalDeviceFragmentDensityMap2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV\">VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR\">VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeatures\">VkPhysicalDeviceImageRobustnessFeatures</a>, <a href=\"#VkPhysicalDeviceImageViewMinLodFeaturesEXT\">VkPhysicalDeviceImageViewMinLodFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesEXT\">VkPhysicalDeviceIndexTypeUint8FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceInheritedViewportScissorFeaturesNV\">VkPhysicalDeviceInheritedViewportScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>, <a href=\"#VkPhysicalDeviceInvocationMaskFeaturesHUAWEI\">VkPhysicalDeviceInvocationMaskFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesEXT\">VkPhysicalDeviceLineRasterizationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLinearColorAttachmentFeaturesNV\">VkPhysicalDeviceLinearColorAttachmentFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMaintenance4Features\">VkPhysicalDeviceMaintenance4Features</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawFeaturesEXT\">VkPhysicalDeviceMultiDrawFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE\">VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE</a>, <a href=\"#VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT\">VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeatures\">VkPhysicalDevicePipelineCreationCacheControlFeatures</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentIdFeaturesKHR\">VkPhysicalDevicePresentIdFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentWaitFeaturesKHR\">VkPhysicalDevicePresentWaitFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT\">VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrivateDataFeatures\">VkPhysicalDevicePrivateDataFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceProvokingVertexFeaturesEXT\">VkPhysicalDeviceProvokingVertexFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT\">VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM\">VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM</a>, <a href=\"#VkPhysicalDeviceRayQueryFeaturesKHR\">VkPhysicalDeviceRayQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingMotionBlurFeaturesNV\">VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT\">VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeatures\">VkPhysicalDeviceShaderIntegerDotProductFeatures</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR\">VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeatures\">VkPhysicalDeviceShaderTerminateInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeatures\">VkPhysicalDeviceSubgroupSizeControlFeatures</a>, <a href=\"#VkPhysicalDeviceSubpassShadingFeaturesHUAWEI\">VkPhysicalDeviceSubpassShadingFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceSynchronization2Features\">VkPhysicalDeviceSynchronization2Features</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeatures\">VkPhysicalDeviceTextureCompressionASTCHDRFeatures</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT\">VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkan13Features\">VkPhysicalDeviceVulkan13Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR\">VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</a>"
- },
- {
- "vuid": "VUID-VkDeviceCreateInfo-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a> or <a href=\"#VkDevicePrivateDataCreateInfo\">VkDevicePrivateDataCreateInfo</a>"
- },
- {
- "vuid": "VUID-VkDeviceCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkDeviceCreateInfo-pQueueCreateInfos-parameter",
- "text": " <code>pQueueCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueCreateInfoCount</code> valid <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a> structures"
- },
- {
- "vuid": "VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameter",
- "text": " If <code>enabledLayerCount</code> is not <code>0</code>, <code>ppEnabledLayerNames</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledLayerCount</code> null-terminated UTF-8 strings"
- },
- {
- "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-parameter",
- "text": " If <code>enabledExtensionCount</code> is not <code>0</code>, <code>ppEnabledExtensionNames</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>enabledExtensionCount</code> null-terminated UTF-8 strings"
- },
- {
- "vuid": "VUID-VkDeviceCreateInfo-pEnabledFeatures-parameter",
- "text": " If <code>pEnabledFeatures</code> is not <code>NULL</code>, <code>pEnabledFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceFeatures\">VkPhysicalDeviceFeatures</a> structure"
- },
- {
- "vuid": "VUID-VkDeviceCreateInfo-queueCreateInfoCount-arraylength",
- "text": " <code>queueCreateInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkDeviceGroupDeviceCreateInfo": {
- "(VK_VERSION_1_1,VK_KHR_device_group_creation)": [
- {
- "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00375",
- "text": " Each element of <code>pPhysicalDevices</code> <strong class=\"purple\">must</strong> be unique"
- },
- {
- "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00376",
- "text": " All elements of <code>pPhysicalDevices</code> <strong class=\"purple\">must</strong> be in the same device group as enumerated by <a href=\"#vkEnumeratePhysicalDeviceGroups\">vkEnumeratePhysicalDeviceGroups</a>"
- },
- {
- "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-physicalDeviceCount-00377",
- "text": " If <code>physicalDeviceCount</code> is not <code>0</code>, the <code>physicalDevice</code> parameter of <a href=\"#vkCreateDevice\">vkCreateDevice</a> <strong class=\"purple\">must</strong> be an element of <code>pPhysicalDevices</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-parameter",
- "text": " If <code>physicalDeviceCount</code> is not <code>0</code>, <code>pPhysicalDevices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>physicalDeviceCount</code> valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handles"
- }
- ]
- },
- "VkDeviceMemoryOverallocationCreateInfoAMD": {
- "(VK_AMD_memory_overallocation_behavior)": [
- {
- "vuid": "VUID-VkDeviceMemoryOverallocationCreateInfoAMD-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD</code>"
- },
- {
- "vuid": "VUID-VkDeviceMemoryOverallocationCreateInfoAMD-overallocationBehavior-parameter",
- "text": " <code>overallocationBehavior</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMemoryOverallocationBehaviorAMD\">VkMemoryOverallocationBehaviorAMD</a> value"
- }
- ]
- },
- "VkDeviceDiagnosticsConfigCreateInfoNV": {
- "(VK_NV_device_diagnostics_config)": [
- {
- "vuid": "VUID-VkDeviceDiagnosticsConfigCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkDeviceDiagnosticsConfigCreateInfoNV-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDeviceDiagnosticsConfigFlagBitsNV\">VkDeviceDiagnosticsConfigFlagBitsNV</a> values"
- }
- ]
- },
- "VkDeviceDeviceMemoryReportCreateInfoEXT": {
- "(VK_EXT_device_memory_report)": [
- {
- "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pfnUserCallback-parameter",
- "text": " <code>pfnUserCallback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#PFN_vkDeviceMemoryReportCallbackEXT\">PFN_vkDeviceMemoryReportCallbackEXT</a> value"
- },
- {
- "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pUserData-parameter",
- "text": " <code>pUserData</code> <strong class=\"purple\">must</strong> be a pointer value"
- }
- ]
- },
- "VkDeviceMemoryReportCallbackDataEXT": {
- "(VK_EXT_device_memory_report)": [
- {
- "vuid": "VUID-VkDeviceMemoryReportCallbackDataEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT</code>"
- },
- {
- "vuid": "VUID-VkDeviceMemoryReportCallbackDataEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkDevicePrivateDataCreateInfo": {
- "(VK_VERSION_1_3,VK_EXT_private_data)": [
- {
- "vuid": "VUID-VkDevicePrivateDataCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO</code>"
- }
- ]
- },
- "vkDestroyDevice": {
- "core": [
- {
- "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>"
- },
- {
- "vuid": "VUID-vkDestroyDevice-device-00379",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>device</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "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>"
- },
- {
- "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"
- },
- {
- "vuid": "VUID-vkDestroyDevice-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"
- }
- ]
- },
- "VkDeviceQueueCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkDeviceQueueCreateInfo-queueFamilyIndex-00381",
- "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code>"
- },
- {
- "vuid": "VUID-VkDeviceQueueCreateInfo-queueCount-00382",
- "text": " <code>queueCount</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>queueCount</code> member of the <code>VkQueueFamilyProperties</code> structure, as returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> in the <code>pQueueFamilyProperties</code>[queueFamilyIndex]"
- },
- {
- "vuid": "VUID-VkDeviceQueueCreateInfo-pQueuePriorities-00383",
- "text": " Each element of <code>pQueuePriorities</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code> inclusive"
- },
- {
- "vuid": "VUID-VkDeviceQueueCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkDeviceQueueCreateInfo-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=\"#VkDeviceQueueGlobalPriorityCreateInfoKHR\">VkDeviceQueueGlobalPriorityCreateInfoKHR</a>"
- },
- {
- "vuid": "VUID-VkDeviceQueueCreateInfo-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-VkDeviceQueueCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDeviceQueueCreateFlagBits\">VkDeviceQueueCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkDeviceQueueCreateInfo-pQueuePriorities-parameter",
- "text": " <code>pQueuePriorities</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueCount</code> <code>float</code> values"
- },
- {
- "vuid": "VUID-VkDeviceQueueCreateInfo-queueCount-arraylength",
- "text": " <code>queueCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkDeviceQueueCreateInfo-flags-02861",
- "text": " If the <a href=\"#features-protectedMemory\">protected memory</a> feature is not enabled, the <code>VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT</code> bit of <code>flags</code> <strong class=\"purple\">must</strong> not be set"
- },
- {
- "vuid": "VUID-VkDeviceQueueCreateInfo-flags-06449",
- "text": " If <code>flags</code> includes <code>VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT</code>, <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be the index of a queue family that includes the <code>VK_QUEUE_PROTECTED_BIT</code> capability"
- }
- ]
- },
- "VkDeviceQueueGlobalPriorityCreateInfoKHR": {
- "(VK_EXT_global_priority,VK_KHR_global_priority)": [
- {
- "vuid": "VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-globalPriority-parameter",
- "text": " <code>globalPriority</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueueGlobalPriorityKHR\">VkQueueGlobalPriorityKHR</a> value"
- }
- ]
- },
- "vkGetDeviceQueue": {
- "core": [
- {
- "vuid": "VUID-vkGetDeviceQueue-queueFamilyIndex-00384",
- "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be one of the queue family indices specified when <code>device</code> was created, via the <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkGetDeviceQueue-queueIndex-00385",
- "text": " <code>queueIndex</code> <strong class=\"purple\">must</strong> be less than the value of <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a>::<code>queueCount</code> for the queue family indicated by <code>queueFamilyIndex</code> when <code>device</code> was created"
- },
- {
- "vuid": "VUID-vkGetDeviceQueue-flags-01841",
- "text": " <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a>::<code>flags</code> <strong class=\"purple\">must</strong> have been set to zero when <code>device</code> was created"
- },
- {
- "vuid": "VUID-vkGetDeviceQueue-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceQueue-pQueue-parameter",
- "text": " <code>pQueue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkQueue\">VkQueue</a> handle"
- }
- ]
- },
- "vkGetDeviceQueue2": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkGetDeviceQueue2-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceQueue2-pQueueInfo-parameter",
- "text": " <code>pQueueInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceQueueInfo2\">VkDeviceQueueInfo2</a> structure"
- },
- {
- "vuid": "VUID-vkGetDeviceQueue2-pQueue-parameter",
- "text": " <code>pQueue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkQueue\">VkQueue</a> handle"
- }
- ]
- },
- "VkDeviceQueueInfo2": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkDeviceQueueInfo2-queueFamilyIndex-01842",
- "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be one of the queue family indices specified when <code>device</code> was created, via the <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkDeviceQueueInfo2-flags-06225",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a>::<code>flags</code> for a <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a> structure for the queue family indicated by <code>queueFamilyIndex</code> when <code>device</code> was created"
- },
- {
- "vuid": "VUID-VkDeviceQueueInfo2-queueIndex-01843",
- "text": " <code>queueIndex</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkDeviceQueueCreateInfo\">VkDeviceQueueCreateInfo</a>::<code>queueCount</code> for the corresponding queue family and flags indicated by <code>queueFamilyIndex</code> and <code>flags</code> when <code>device</code> was created"
- },
- {
- "vuid": "VUID-VkDeviceQueueInfo2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2</code>"
- },
- {
- "vuid": "VUID-VkDeviceQueueInfo2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDeviceQueueInfo2-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDeviceQueueCreateFlagBits\">VkDeviceQueueCreateFlagBits</a> values"
- }
- ]
- },
- "vkCreateCommandPool": {
- "core": [
- {
- "vuid": "VUID-vkCreateCommandPool-queueFamilyIndex-01937",
- "text": " <code>pCreateInfo-&gt;queueFamilyIndex</code> <strong class=\"purple\">must</strong> be the index of a queue family available in the logical device <code>device</code>"
- },
- {
- "vuid": "VUID-vkCreateCommandPool-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateCommandPool-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateCommandPool-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"
- },
- {
- "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"
- }
- ]
- },
- "VkCommandPoolCreateInfo": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkCommandPoolCreateInfo-flags-02860",
- "text": " If the protected memory 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"
- }
- ],
- "core": [
- {
- "vuid": "VUID-VkCommandPoolCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkCommandPoolCreateInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCommandPoolCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCommandPoolCreateFlagBits\">VkCommandPoolCreateFlagBits</a> values"
- }
- ]
- },
- "vkTrimCommandPool": {
- "(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"
- },
- {
- "vuid": "VUID-vkTrimCommandPool-commandPool-parameter",
- "text": " <code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle"
- },
- {
- "vuid": "VUID-vkTrimCommandPool-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-vkTrimCommandPool-commandPool-parent",
- "text": " <code>commandPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkResetCommandPool": {
- "core": [
- {
- "vuid": "VUID-vkResetCommandPool-commandPool-00040",
- "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>"
- },
- {
- "vuid": "VUID-vkResetCommandPool-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkResetCommandPool-commandPool-parameter",
- "text": " <code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle"
- },
- {
- "vuid": "VUID-vkResetCommandPool-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCommandPoolResetFlagBits\">VkCommandPoolResetFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkResetCommandPool-commandPool-parent",
- "text": " <code>commandPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkDestroyCommandPool": {
- "core": [
- {
- "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>"
- },
- {
- "vuid": "VUID-vkDestroyCommandPool-commandPool-00042",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>commandPool</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyCommandPool-commandPool-00043",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>commandPool</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-vkDestroyCommandPool-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyCommandPool-commandPool-parameter",
- "text": " If <code>commandPool</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyCommandPool-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"
- },
- {
- "vuid": "VUID-vkDestroyCommandPool-commandPool-parent",
- "text": " If <code>commandPool</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkAllocateCommandBuffers": {
- "core": [
- {
- "vuid": "VUID-vkAllocateCommandBuffers-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkAllocateCommandBuffers-pAllocateInfo-parameter",
- "text": " <code>pAllocateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCommandBufferAllocateInfo\">VkCommandBufferAllocateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkAllocateCommandBuffers-pCommandBuffers-parameter",
- "text": " <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pAllocateInfo-&gt;commandBufferCount</code> <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handles"
- },
- {
- "vuid": "VUID-vkAllocateCommandBuffers-pAllocateInfo::commandBufferCount-arraylength",
- "text": " <code>pAllocateInfo-&gt;commandBufferCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkCommandBufferAllocateInfo": {
- "core": [
- {
- "vuid": "VUID-VkCommandBufferAllocateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferAllocateInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferAllocateInfo-commandPool-parameter",
- "text": " <code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle"
- },
- {
- "vuid": "VUID-VkCommandBufferAllocateInfo-level-parameter",
- "text": " <code>level</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBufferLevel\">VkCommandBufferLevel</a> value"
- }
- ]
- },
- "vkResetCommandBuffer": {
- "core": [
- {
- "vuid": "VUID-vkResetCommandBuffer-commandBuffer-00045",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
- },
- {
- "vuid": "VUID-vkResetCommandBuffer-commandBuffer-00046",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been allocated from a pool that was created with the <code>VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT</code>"
- },
- {
- "vuid": "VUID-vkResetCommandBuffer-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "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"
- }
- ]
- },
- "vkFreeCommandBuffers": {
- "core": [
- {
- "vuid": "VUID-vkFreeCommandBuffers-pCommandBuffers-00047",
- "text": " All elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
- },
- {
- "vuid": "VUID-vkFreeCommandBuffers-pCommandBuffers-00048",
- "text": " <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferCount</code> <code>VkCommandBuffer</code> handles, each element of which <strong class=\"purple\">must</strong> either be a valid handle or <code>NULL</code>"
- },
- {
- "vuid": "VUID-vkFreeCommandBuffers-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkFreeCommandBuffers-commandPool-parameter",
- "text": " <code>commandPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandPool\">VkCommandPool</a> handle"
- },
- {
- "vuid": "VUID-vkFreeCommandBuffers-commandBufferCount-arraylength",
- "text": " <code>commandBufferCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkFreeCommandBuffers-commandPool-parent",
- "text": " <code>commandPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- },
- {
- "vuid": "VUID-vkFreeCommandBuffers-pCommandBuffers-parent",
- "text": " Each element of <code>pCommandBuffers</code> that is a valid handle <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>commandPool</code>"
- }
- ]
- },
- "vkBeginCommandBuffer": {
- "core": [
- {
- "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00049",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">recording or pending state</a>"
- },
- {
- "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00050",
- "text": " If <code>commandBuffer</code> was allocated from a <a href=\"#VkCommandPool\">VkCommandPool</a> which did not have the <code>VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT</code> flag set, <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">initial state</a>"
- },
- {
- "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00051",
- "text": " If <code>commandBuffer</code> is a secondary command buffer, the <code>pInheritanceInfo</code> member of <code>pBeginInfo</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBufferInheritanceInfo</code> structure"
- },
- {
- "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00052",
- "text": " If <code>commandBuffer</code> is a secondary command buffer and either the <code>occlusionQueryEnable</code> member of the <code>pInheritanceInfo</code> member of <code>pBeginInfo</code> is <code>VK_FALSE</code>, or the precise occlusion queries feature is not enabled, then <code>pBeginInfo-&gt;pInheritanceInfo-&gt;queryFlags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_CONTROL_PRECISE_BIT</code>"
- },
- {
- "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-02840",
- "text": " If <code>commandBuffer</code> is a primary command buffer, then <code>pBeginInfo-&gt;flags</code> <strong class=\"purple\">must</strong> not set both the <code>VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT</code> and the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code> flags"
- },
- {
- "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "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"
- }
- ]
- },
- "VkCommandBufferBeginInfo": {
- "!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-VkCommandBufferBeginInfo-flags-00053",
- "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> <strong class=\"purple\">must</strong> be a valid <code>VkRenderPass</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferBeginInfo-flags-00054",
- "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": [
- {
- "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>"
- },
- {
- "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"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-VkCommandBufferBeginInfo-flags-06000",
- "text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code> and the <code>renderPass</code> member of <code>pInheritanceInfo</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <code>VkRenderPass</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferBeginInfo-flags-06001",
- "text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code> and the <code>renderPass</code> member of <code>pInheritanceInfo</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, 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>"
- },
- {
- "vuid": "VUID-VkCommandBufferBeginInfo-flags-06002",
- "text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code> and the <code>renderPass</code> member of <code>pInheritanceInfo</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>pNext</code> chain of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "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>"
- }
- ]
- },
- "VkCommandBufferInheritanceInfo": {
- "core": [
- {
- "vuid": "VUID-VkCommandBufferInheritanceInfo-occlusionQueryEnable-00056",
- "text": " If the <a href=\"#features-inheritedQueries\">inherited queries</a> feature is not enabled, <code>occlusionQueryEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceInfo-queryFlags-00057",
- "text": " If the <a href=\"#features-inheritedQueries\">inherited queries</a> feature is enabled, <code>queryFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryControlFlagBits\">VkQueryControlFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceInfo-queryFlags-02788",
- "text": " If the <a href=\"#features-inheritedQueries\">inherited queries</a> feature is not enabled, <code>queryFlags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-02789",
- "text": " If the <a href=\"#features-pipelineStatisticsQuery\">pipeline statistics queries</a> feature is enabled, <code>pipelineStatistics</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryPipelineStatisticFlagBits\">VkQueryPipelineStatisticFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058",
- "text": " If the <a href=\"#features-pipelineStatisticsQuery\">pipeline statistics queries</a> feature is not enabled, <code>pipelineStatistics</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceInfo-pNext-pNext",
- "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=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a>, <a href=\"#VkCommandBufferInheritanceConditionalRenderingInfoEXT\">VkCommandBufferInheritanceConditionalRenderingInfoEXT</a>, <a href=\"#VkCommandBufferInheritanceRenderPassTransformInfoQCOM\">VkCommandBufferInheritanceRenderPassTransformInfoQCOM</a>, <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>, <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, or <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceInfo-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-VkCommandBufferInheritanceInfo-commonparent",
- "text": " Both of <code>framebuffer</code>, and <code>renderPass</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>"
- }
- ]
- },
- "VkCommandBufferInheritanceConditionalRenderingInfoEXT": {
- "(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977",
- "text": " If the <a href=\"#features-inheritedConditionalRendering\">inherited conditional rendering</a> feature is not enabled, <code>conditionalRenderingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT</code>"
- }
- ]
- },
- "VkCommandBufferInheritanceRenderPassTransformInfoQCOM": {
- "(VK_QCOM_render_pass_transform)": [
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-transform-02864",
- "text": " <code>transform</code> <strong class=\"purple\">must</strong> be <code>VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR</code>, or <code>VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM</code>"
- }
- ]
- },
- "VkCommandBufferInheritanceViewportScissorInfoNV": {
- "(VK_NV_inherited_viewport_scissor)": [
- {
- "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04782",
- "text": " If the <a href=\"#features-inheritedViewportScissor2D\">inherited viewport scissor</a> feature is not enabled, <code>viewportScissor2D</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04783",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled and <code>viewportScissor2D</code> is <code>VK_TRUE</code>, then <code>viewportDepthCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04784",
- "text": " If <code>viewportScissor2D</code> is <code>VK_TRUE</code>, then <code>viewportDepthCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04785",
- "text": " If <code>viewportScissor2D</code> is <code>VK_TRUE</code>, then <code>pViewportDepths</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportDepthCount</code> valid <code>VkViewport</code> structures, except any requirements on <code>x</code>, <code>y</code>, <code>width</code>, and <code>height</code> do not apply"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04786",
- "text": " If <code>viewportScissor2D</code> is <code>VK_TRUE</code>, then the command buffer <strong class=\"purple\">must</strong> be recorded with the <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceViewportScissorInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV</code>"
- }
- ]
- },
- "VkCommandBufferInheritanceRenderingInfo": {
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-colorAttachmentCount-06004",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-variableMultisampleRate-06005",
- "text": " If the <a href=\"#features-variableMultisampleRate\"><code>variableMultisampleRate</code></a> feature is not enabled, <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-06006",
- "text": " If any element of <code>pColorAttachmentFormats</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06540",
- "text": " If <code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a depth aspect"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06007",
- "text": " If <code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06541",
- "text": " If <code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a stencil aspect"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06199",
- "text": " If <code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06200",
- "text": " If <code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code> and <code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, <code>depthAttachmentFormat</code> <strong class=\"purple\">must</strong> equal <code>stencilAttachmentFormat</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-multiview-06008",
- "text": " If the <a href=\"#features-multiview\"><code>multiview</code></a> feature is not enabled, <code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkRenderingFlagBits\">VkRenderingFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-parameter",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, <code>pColorAttachmentFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkFormat\">VkFormat</a> values"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-parameter",
- "text": " <code>depthAttachmentFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-parameter",
- "text": " <code>stencilAttachmentFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-rasterizationSamples-parameter",
- "text": " If <code>rasterizationSamples</code> is not <code>0</code>, <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_NV_linear_color_attachment)": [
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfoKHR-pColorAttachmentFormats-06492",
- "text": " When rendering to a <a href=\"#glossary\">Linear Color attachment</a>, if any element of <code>pColorAttachmentFormats</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkCommandBufferInheritanceRenderingInfo-viewMask-06009",
- "text": " The index of the most significant bit in <code>viewMask</code> <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxMultiviewViewCount\"><code>maxMultiviewViewCount</code></a>"
- }
- ]
- },
- "VkAttachmentSampleCountInfoAMD": {
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-VkAttachmentSampleCountInfoAMD-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD</code>"
- },
- {
- "vuid": "VUID-VkAttachmentSampleCountInfoAMD-pColorAttachmentSamples-parameter",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, <code>pColorAttachmentSamples</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkAttachmentSampleCountInfoAMD-depthStencilAttachmentSamples-parameter",
- "text": " If <code>depthStencilAttachmentSamples</code> is not <code>0</code>, <code>depthStencilAttachmentSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
- }
- ]
- },
- "vkEndCommandBuffer": {
- "core": [
- {
- "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00059",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00060",
- "text": " If <code>commandBuffer</code> is a primary command buffer, there <strong class=\"purple\">must</strong> not be an active render pass instance"
- },
- {
- "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00061",
- "text": " All queries made <a href=\"#queries-operation-active\">active</a> during the recording of <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been made inactive"
- },
- {
- "vuid": "VUID-vkEndCommandBuffer-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- }
- ],
- "(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-vkEndCommandBuffer-None-01978",
- "text": " Conditional rendering <strong class=\"purple\">must</strong> not be <a href=\"#active-conditional-rendering\">active</a>"
- }
- ],
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-vkEndCommandBuffer-commandBuffer-01815",
- "text": " If <code>commandBuffer</code> is a secondary command buffer, there <strong class=\"purple\">must</strong> not be an outstanding <a href=\"#vkCmdBeginDebugUtilsLabelEXT\">vkCmdBeginDebugUtilsLabelEXT</a> command recorded to <code>commandBuffer</code> that has not previously been ended by a call to <a href=\"#vkCmdEndDebugUtilsLabelEXT\">vkCmdEndDebugUtilsLabelEXT</a>"
- }
- ],
- "(VK_EXT_debug_marker)": [
- {
- "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00062",
- "text": " If <code>commandBuffer</code> is a secondary command buffer, there <strong class=\"purple\">must</strong> not be an outstanding <a href=\"#vkCmdDebugMarkerBeginEXT\">vkCmdDebugMarkerBeginEXT</a> command recorded to <code>commandBuffer</code> that has not previously been ended by a call to <a href=\"#vkCmdDebugMarkerEndEXT\">vkCmdDebugMarkerEndEXT</a>"
- }
- ]
- },
- "vkQueueSubmit2": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkQueueSubmit2-fence-04894",
- "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"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-fence-04895",
- "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-synchronization2-03866",
- "text": " The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-commandBuffer-03867",
- "text": " If a command recorded into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> referenced an <a href=\"#VkEvent\">VkEvent</a>, that event <strong class=\"purple\">must</strong> not be referenced by a command that has been submitted to another queue and is still in the <em>pending state</em>"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-semaphore-03868",
- "text": " The <code>semaphore</code> member of any binary semaphore element of the <code>pSignalSemaphoreInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be unsignaled when the semaphore signal operation it defines is executed on the device"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-stageMask-03869",
- "text": " The <code>stageMask</code> member of any element of the <code>pSignalSemaphoreInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> only include pipeline stages that are supported by the queue family which <code>queue</code> belongs to"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-stageMask-03870",
- "text": " The <code>stageMask</code> member of any element of the <code>pWaitSemaphoreInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> only include pipeline stages that are supported by the queue family which <code>queue</code> belongs to"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-semaphore-03871",
- "text": " When a semaphore wait operation for a binary semaphore is executed, as defined by the <code>semaphore</code> member of any element of the <code>pWaitSemaphoreInfos</code> member of any element of <code>pSubmits</code>, there <strong class=\"purple\">must</strong> be no other queues waiting on the same semaphore"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-semaphore-03872",
- "text": " The <code>semaphore</code> member of any element of the <code>pWaitSemaphoreInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be semaphores that are signaled, or have <a href=\"#synchronization-semaphores-signaling\">semaphore signal operations</a> previously submitted for execution"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-commandBuffer-03874",
- "text": " The <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-commandBuffer-03875",
- "text": " If a command recorded into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-commandBuffer-03876",
- "text": " Any <a href=\"#commandbuffers-secondary\">secondary command buffers recorded</a> into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-commandBuffer-03877",
- "text": " If any <a href=\"#commandbuffers-secondary\">secondary command buffers recorded</a> into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-commandBuffer-03878",
- "text": " The <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> have been allocated from a <code>VkCommandPool</code> that was created for the same queue family <code>queue</code> belongs to"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-commandBuffer-03879",
- "text": " If a command recorded into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> includes a <a href=\"#synchronization-queue-transfers-acquire\">Queue Family Transfer Acquire Operation</a>, there <strong class=\"purple\">must</strong> exist a previously submitted <a href=\"#synchronization-queue-transfers-release\">Queue Family Transfer Release Operation</a> on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such <a href=\"#synchronization-queue-transfers-acquire\">acquire operations</a>, and which happens before the acquire operation"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-queue-parameter",
- "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-pSubmits-parameter",
- "text": " If <code>submitCount</code> is not <code>0</code>, <code>pSubmits</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>submitCount</code> valid <a href=\"#VkSubmitInfo2\">VkSubmitInfo2</a> structures"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-fence-parameter",
- "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 a valid <a href=\"#VkFence\">VkFence</a> handle"
- },
- {
- "vuid": "VUID-vkQueueSubmit2-commonparent",
- "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_3,VK_KHR_synchronization2)+(VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-vkQueueSubmit2-semaphore-03873",
- "text": " Any <code>semaphore</code> member of any element of the <code>pWaitSemaphoreInfos</code> member of any element of <code>pSubmits</code> that was created with a <a href=\"#VkSemaphoreTypeKHR\">VkSemaphoreTypeKHR</a> of <code>VK_SEMAPHORE_TYPE_BINARY_KHR</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"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-vkQueueSubmit2-commandBuffer-03880",
- "text": " If a command recorded into the <code>commandBuffer</code> member of any element of the <code>pCommandBufferInfos</code> member of any element of <code>pSubmits</code> was a <a href=\"#vkCmdBeginQuery\">vkCmdBeginQuery</a> whose <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <a href=\"#profiling-lock\">profiling lock</a> <strong class=\"purple\">must</strong> have been held continuously on the <code>VkDevice</code> that <code>queue</code> was retrieved from, throughout recording of those command buffers"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkQueueSubmit2-queue-06447",
- "text": " If <code>queue</code> was not created with <code>VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT</code>, the <code>flags</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> not include <code>VK_SUBMIT_PROTECTED_BIT_KHR</code>"
- }
- ]
- },
- "VkSubmitInfo2": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-VkSubmitInfo2-semaphore-03881",
- "text": " If the same semaphore is used as the <code>semaphore</code> member of both an element of <code>pSignalSemaphoreInfos</code> and <code>pWaitSemaphoreInfos</code>, and that semaphore is a timeline semaphore, the <code>value</code> member of the <code>pSignalSemaphoreInfos</code> element <strong class=\"purple\">must</strong> be greater than the <code>value</code> member of the <code>pWaitSemaphoreInfos</code> element"
- },
- {
- "vuid": "VUID-VkSubmitInfo2-semaphore-03882",
- "text": " If the <code>semaphore</code> member of any element of <code>pSignalSemaphoreInfos</code> is a timeline semaphore, the <code>value</code> member of that element <strong class=\"purple\">must</strong> have a value greater than the current value of the semaphore when the <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> is executed"
- },
- {
- "vuid": "VUID-VkSubmitInfo2-semaphore-03883",
- "text": " If the <code>semaphore</code> member of any element of <code>pSignalSemaphoreInfos</code> is a timeline semaphore, the <code>value</code> member of that element <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>"
- },
- {
- "vuid": "VUID-VkSubmitInfo2-semaphore-03884",
- "text": " If the <code>semaphore</code> member of any element of <code>pWaitSemaphoreInfos</code> is a timeline semaphore, the <code>value</code> member of that element <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkSubmitInfo2-flags-03886",
- "text": " If <code>flags</code> includes <code>VK_SUBMIT_PROTECTED_BIT</code>, all elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be protected command buffers"
- },
- {
- "vuid": "VUID-VkSubmitInfo2-flags-03887",
- "text": " If <code>flags</code> does not include <code>VK_SUBMIT_PROTECTED_BIT</code>, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-VkSubmitInfo2KHR-commandBuffer-06192",
- "text": " If any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">resumed render pass instances</a>, they <strong class=\"purple\">must</strong> be suspended by a render pass instance earlier in submission order within <code>pCommandBufferInfos</code>"
- },
- {
- "vuid": "VUID-VkSubmitInfo2KHR-commandBuffer-06010",
- "text": " If any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, they <strong class=\"purple\">must</strong> be resumed by a render pass instance later in submission order within <code>pCommandBufferInfos</code>"
- },
- {
- "vuid": "VUID-VkSubmitInfo2KHR-commandBuffer-06011",
- "text": " If any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no action or synchronization commands between that render pass instance and the render pass instance that resumes it"
- },
- {
- "vuid": "VUID-VkSubmitInfo2KHR-commandBuffer-06012",
- "text": " If any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no render pass instances between that render pass instance and the render pass instance that resumes it"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-VkSubmitInfo2KHR-variableSampleLocations-06013",
- "text": " If the <a href=\"#limits-variableSampleLocations\"><code>variableSampleLocations</code></a> limit is not supported, and any <code>commandBuffer</code> member of an element of <code>pCommandBufferInfos</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, <strong class=\"purple\">must</strong> use the same sample locations"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkSubmitInfo2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBMIT_INFO_2</code>"
- },
- {
- "vuid": "VUID-VkSubmitInfo2-pNext-pNext",
- "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=\"#VkPerformanceQuerySubmitInfoKHR\">VkPerformanceQuerySubmitInfoKHR</a>, <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoKHR\">VkWin32KeyedMutexAcquireReleaseInfoKHR</a>, or <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoNV\">VkWin32KeyedMutexAcquireReleaseInfoNV</a>"
- },
- {
- "vuid": "VUID-VkSubmitInfo2-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-VkSubmitInfo2-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSubmitFlagBits\">VkSubmitFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSubmitInfo2-pWaitSemaphoreInfos-parameter",
- "text": " If <code>waitSemaphoreInfoCount</code> is not <code>0</code>, <code>pWaitSemaphoreInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreInfoCount</code> valid <a href=\"#VkSemaphoreSubmitInfo\">VkSemaphoreSubmitInfo</a> structures"
- },
- {
- "vuid": "VUID-VkSubmitInfo2-pCommandBufferInfos-parameter",
- "text": " If <code>commandBufferInfoCount</code> is not <code>0</code>, <code>pCommandBufferInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferInfoCount</code> valid <a href=\"#VkCommandBufferSubmitInfo\">VkCommandBufferSubmitInfo</a> structures"
- },
- {
- "vuid": "VUID-VkSubmitInfo2-pSignalSemaphoreInfos-parameter",
- "text": " If <code>signalSemaphoreInfoCount</code> is not <code>0</code>, <code>pSignalSemaphoreInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreInfoCount</code> valid <a href=\"#VkSemaphoreSubmitInfo\">VkSemaphoreSubmitInfo</a> structures"
- }
- ]
- },
- "VkSemaphoreSubmitInfo": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03929",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03930",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-device-03888",
- "text": " If the <code>device</code> that <code>semaphore</code> was created on is not a device group, <code>deviceIndex</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-semaphore-parameter",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
- },
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-parameter",
- "text": " <code>stageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03931",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03932",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03933",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03934",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-03935",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-04956",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-04957",
- "text": " If the <a href=\"#features-subpassShading\">subpass shading</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
- {
- "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-04995",
- "text": " If the <a href=\"#features-invocationMask\">invocation mask image</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_device_group_creation,VK_VERSION_1_1)": [
- {
- "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"
- }
- ]
- },
- "VkCommandBufferSubmitInfo": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkCommandBufferSubmitInfo-commandBuffer-03890",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not have been allocated with <code>VK_COMMAND_BUFFER_LEVEL_SECONDARY</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferSubmitInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferSubmitInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferSubmitInfo-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_device_group_creation,VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkCommandBufferSubmitInfo-deviceMask-03891",
- "text": " If <code>deviceMask</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be a valid device mask"
- }
- ]
- },
- "vkQueueSubmit": {
- "core": [
- {
- "vuid": "VUID-vkQueueSubmit-fence-00063",
- "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"
- },
- {
- "vuid": "VUID-vkQueueSubmit-fence-00064",
- "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue"
- },
- {
- "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00065",
- "text": " Any calls to <a href=\"#vkCmdSetEvent\">vkCmdSetEvent</a>, <a href=\"#vkCmdResetEvent\">vkCmdResetEvent</a> or <a href=\"#vkCmdWaitEvents\">vkCmdWaitEvents</a> that have been recorded into any of the command buffer elements of the <code>pCommandBuffers</code> member of any element of <code>pSubmits</code>, <strong class=\"purple\">must</strong> not reference any <a href=\"#VkEvent\">VkEvent</a> that is referenced by any of those commands in a command buffer that has been submitted to another queue and is still in the <em>pending state</em>"
- },
- {
- "vuid": "VUID-vkQueueSubmit-pWaitDstStageMask-00066",
- "text": " Any stage flag included in any element of the <code>pWaitDstStageMask</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be a pipeline stage supported by one of the capabilities of <code>queue</code>, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>"
- },
- {
- "vuid": "VUID-vkQueueSubmit-pSignalSemaphores-00067",
- "text": " Each binary semaphore element of the <code>pSignalSemaphores</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be unsignaled when the semaphore signal operation it defines is executed on the device"
- },
- {
- "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-00068",
- "text": " When a semaphore wait operation referring to a binary semaphore defined by any element of the <code>pWaitSemaphores</code> member of any element of <code>pSubmits</code> executes on <code>queue</code>, there <strong class=\"purple\">must</strong> be no other queues waiting on the same semaphore"
- },
- {
- "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00070",
- "text": " Each element of the <code>pCommandBuffers</code> member of each element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>"
- },
- {
- "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00071",
- "text": " If any element of the <code>pCommandBuffers</code> member of any element of <code>pSubmits</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
- },
- {
- "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00072",
- "text": " Any <a href=\"#commandbuffers-secondary\">secondary command buffers recorded</a> into any element of the <code>pCommandBuffers</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>"
- },
- {
- "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00073",
- "text": " If any <a href=\"#commandbuffers-secondary\">secondary command buffers recorded</a> into any element of the <code>pCommandBuffers</code> member of any element of <code>pSubmits</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
- },
- {
- "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00074",
- "text": " Each element of the <code>pCommandBuffers</code> member of each element of <code>pSubmits</code> <strong class=\"purple\">must</strong> have been allocated from a <code>VkCommandPool</code> that was created for the same queue family <code>queue</code> belongs to"
- },
- {
- "vuid": "VUID-vkQueueSubmit-pSubmits-02207",
- "text": " If any element of <code>pSubmits-&gt;pCommandBuffers</code> includes a <a href=\"#synchronization-queue-transfers-acquire\">Queue Family Transfer Acquire Operation</a>, there <strong class=\"purple\">must</strong> exist a previously submitted <a href=\"#synchronization-queue-transfers-release\">Queue Family Transfer Release Operation</a> on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such <a href=\"#synchronization-queue-transfers-acquire\">acquire operations</a>, and which happens-before the acquire operation"
- },
- {
- "vuid": "VUID-vkQueueSubmit-pSubmits-02808",
- "text": " Any resource created with <code>VK_SHARING_MODE_EXCLUSIVE</code> that is read by an operation specified by <code>pSubmits</code> <strong class=\"purple\">must</strong> not be owned by any queue family other than the one which <code>queue</code> belongs to, at the time it is executed"
- },
- {
- "vuid": "VUID-vkQueueSubmit-pSubmits-04626",
- "text": " Any resource created with <code>VK_SHARING_MODE_CONCURRENT</code> that is accessed by an operation specified by <code>pSubmits</code> <strong class=\"purple\">must</strong> have included the queue family of <code>queue</code> at resource creation time"
- },
- {
- "vuid": "VUID-vkQueueSubmit-queue-parameter",
- "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
- },
- {
- "vuid": "VUID-vkQueueSubmit-pSubmits-parameter",
- "text": " If <code>submitCount</code> is not <code>0</code>, <code>pSubmits</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>submitCount</code> valid <a href=\"#VkSubmitInfo\">VkSubmitInfo</a> structures"
- },
- {
- "vuid": "VUID-vkQueueSubmit-fence-parameter",
- "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 a valid <a href=\"#VkFence\">VkFence</a> handle"
- },
- {
- "vuid": "VUID-vkQueueSubmit-commonparent",
- "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_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-00069",
- "text": " All elements of the <code>pWaitSemaphores</code> member of all elements of <code>pSubmits</code> <strong class=\"purple\">must</strong> be semaphores that are signaled, or have <a href=\"#synchronization-semaphores-signaling\">semaphore signal operations</a> previously submitted for execution"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-03238",
- "text": " All elements of the <code>pWaitSemaphores</code> member of all elements of <code>pSubmits</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"
- }
- ],
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-vkQueueSubmit-pCommandBuffers-03220",
- "text": " If a command recorded into any element of <code>pCommandBuffers</code> was a <a href=\"#vkCmdBeginQuery\">vkCmdBeginQuery</a> whose <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <a href=\"#profiling-lock\">profiling lock</a> <strong class=\"purple\">must</strong> have been held continuously on the <code>VkDevice</code> that <code>queue</code> was retrieved from, throughout recording of those command buffers"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkQueueSubmit-queue-06448",
- "text": " If <code>queue</code> was not created with <code>VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT</code>, there <strong class=\"purple\">must</strong> be no element of <code>pSubmits</code> that includes an <a href=\"#VkProtectedSubmitInfo\">VkProtectedSubmitInfo</a> structure in its <code>pNext</code> chain with <code>protectedSubmit</code> equal to <code>VK_TRUE</code>"
- }
- ]
- },
- "VkSubmitInfo": {
- "core": [
- {
- "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04090",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04091",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pCommandBuffers-00075",
- "text": " Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not have been allocated with <code>VK_COMMAND_BUFFER_LEVEL_SECONDARY</code>"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-00078",
- "text": " Each element of <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubmitInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBMIT_INFO</code>"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pNext-pNext",
- "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=\"#VkD3D12FenceSubmitInfoKHR\">VkD3D12FenceSubmitInfoKHR</a>, <a href=\"#VkDeviceGroupSubmitInfo\">VkDeviceGroupSubmitInfo</a>, <a href=\"#VkPerformanceQuerySubmitInfoKHR\">VkPerformanceQuerySubmitInfoKHR</a>, <a href=\"#VkProtectedSubmitInfo\">VkProtectedSubmitInfo</a>, <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>, <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoKHR\">VkWin32KeyedMutexAcquireReleaseInfoKHR</a>, or <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoNV\">VkWin32KeyedMutexAcquireReleaseInfoNV</a>"
- },
- {
- "vuid": "VUID-VkSubmitInfo-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-VkSubmitInfo-pWaitSemaphores-parameter",
- "text": " If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-parameter",
- "text": " If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> valid combinations of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-requiredbitmask",
- "text": " Each element of <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pCommandBuffers-parameter",
- "text": " If <code>commandBufferCount</code> is not <code>0</code>, <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferCount</code> valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handles"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-parameter",
- "text": " If <code>signalSemaphoreCount</code> is not <code>0</code>, <code>pSignalSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles"
- },
- {
- "vuid": "VUID-VkSubmitInfo-commonparent",
- "text": " Each of the elements of <code>pCommandBuffers</code>, the elements of <code>pSignalSemaphores</code>, and the elements of <code>pWaitSemaphores</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_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04092",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04093",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04094",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- }
- ],
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04095",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04096",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04097",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-03937",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-04996",
- "text": " pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-03239",
- "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"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pNext-03240",
- "text": " If the <code>pNext</code> chain of this structure includes a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure and any element of <code>pWaitSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>, then its <code>waitSemaphoreValueCount</code> member <strong class=\"purple\">must</strong> equal <code>waitSemaphoreCount</code>"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pNext-03241",
- "text": " If the <code>pNext</code> chain of this structure includes a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure and any element of <code>pSignalSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>, then its <code>signalSemaphoreValueCount</code> member <strong class=\"purple\">must</strong> equal <code>signalSemaphoreCount</code>"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-03242",
- "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 greater than the current value of the semaphore when the <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> is executed"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-03243",
- "text": " For each element of <code>pWaitSemaphores</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>pWaitSemaphoreValues</code> <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-03244",
- "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 the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkSubmitInfo-pNext-04120",
- "text": " If the <code>pNext</code> chain of this structure does not include a <code>VkProtectedSubmitInfo</code> structure with <code>protectedSubmit</code> set to <code>VK_TRUE</code>, then each element of the <code>pCommandBuffers</code> array <strong class=\"purple\">must</strong> be an unprotected command buffer"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pNext-04148",
- "text": " If the <code>pNext</code> chain of this structure includes a <code>VkProtectedSubmitInfo</code> structure with <code>protectedSubmit</code> set to <code>VK_TRUE</code>, then each element of the <code>pCommandBuffers</code> array <strong class=\"purple\">must</strong> be a protected command buffer"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-VkSubmitInfo-pCommandBuffers-06193",
- "text": " If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">resumed render pass instances</a>, they <strong class=\"purple\">must</strong> be suspended by a render pass instance earlier in submission order within <code>pCommandBuffers</code>"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pCommandBuffers-06014",
- "text": " If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, they <strong class=\"purple\">must</strong> be resumed by a render pass instance later in submission order within <code>pCommandBuffers</code>"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pCommandBuffers-06015",
- "text": " If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no action or synchronization commands between that render pass instance and the render pass instance that resumes it"
- },
- {
- "vuid": "VUID-VkSubmitInfo-pCommandBuffers-06016",
- "text": " If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no render pass instances between that render pass instance and the render pass instance that resumes it"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-VkSubmitInfo-variableSampleLocations-06017",
- "text": " If the <a href=\"#limits-variableSampleLocations\"><code>variableSampleLocations</code></a> limit is not supported, and any element of <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, <strong class=\"purple\">must</strong> use the same sample locations"
- }
- ]
- },
- "VkTimelineSemaphoreSubmitInfo": {
- "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO</code>"
- },
- {
- "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-pWaitSemaphoreValues-parameter",
- "text": " If <code>waitSemaphoreValueCount</code> is not <code>0</code>, and <code>pWaitSemaphoreValues</code> is not <code>NULL</code>, <code>pWaitSemaphoreValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreValueCount</code> <code>uint64_t</code> values"
- },
- {
- "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-pSignalSemaphoreValues-parameter",
- "text": " If <code>signalSemaphoreValueCount</code> is not <code>0</code>, and <code>pSignalSemaphoreValues</code> is not <code>NULL</code>, <code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreValueCount</code> <code>uint64_t</code> values"
- }
- ]
- },
- "VkD3D12FenceSubmitInfoKHR": {
- "(VK_KHR_external_semaphore_win32)": [
- {
- "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-waitSemaphoreValuesCount-00079",
- "text": " <code>waitSemaphoreValuesCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkSubmitInfo</code>::<code>waitSemaphoreCount</code>, where <code>VkSubmitInfo</code> is in the <code>pNext</code> chain of this <code>VkD3D12FenceSubmitInfoKHR</code> structure"
- },
- {
- "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-signalSemaphoreValuesCount-00080",
- "text": " <code>signalSemaphoreValuesCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkSubmitInfo</code>::<code>signalSemaphoreCount</code>, where <code>VkSubmitInfo</code> is in the <code>pNext</code> chain of this <code>VkD3D12FenceSubmitInfoKHR</code> structure"
- },
- {
- "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-pWaitSemaphoreValues-parameter",
- "text": " If <code>waitSemaphoreValuesCount</code> is not <code>0</code>, and <code>pWaitSemaphoreValues</code> is not <code>NULL</code>, <code>pWaitSemaphoreValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreValuesCount</code> <code>uint64_t</code> values"
- },
- {
- "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-pSignalSemaphoreValues-parameter",
- "text": " If <code>signalSemaphoreValuesCount</code> is not <code>0</code>, and <code>pSignalSemaphoreValues</code> is not <code>NULL</code>, <code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreValuesCount</code> <code>uint64_t</code> values"
- }
- ]
- },
- "VkWin32KeyedMutexAcquireReleaseInfoKHR": {
- "(VK_KHR_win32_keyed_mutex)": [
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-00081",
- "text": " Each member of <code>pAcquireSyncs</code> and <code>pReleaseSyncs</code> <strong class=\"purple\">must</strong> be a device memory object imported by setting <a href=\"#VkImportMemoryWin32HandleInfoKHR\">VkImportMemoryWin32HandleInfoKHR</a>::<code>handleType</code> to <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT</code>"
- },
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-parameter",
- "text": " If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireSyncs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handles"
- },
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireKeys-parameter",
- "text": " If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireKeys</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> <code>uint64_t</code> values"
- },
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireTimeouts-parameter",
- "text": " If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireTimeouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseSyncs-parameter",
- "text": " If <code>releaseCount</code> is not <code>0</code>, <code>pReleaseSyncs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>releaseCount</code> valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handles"
- },
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseKeys-parameter",
- "text": " If <code>releaseCount</code> is not <code>0</code>, <code>pReleaseKeys</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>releaseCount</code> <code>uint64_t</code> values"
- },
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-commonparent",
- "text": " Both of the elements of <code>pAcquireSyncs</code>, and the elements of <code>pReleaseSyncs</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>"
- }
- ]
- },
- "VkWin32KeyedMutexAcquireReleaseInfoNV": {
- "(VK_NV_win32_keyed_mutex)": [
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireSyncs-parameter",
- "text": " If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireSyncs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handles"
- },
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireKeys-parameter",
- "text": " If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireKeys</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> <code>uint64_t</code> values"
- },
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireTimeoutMilliseconds-parameter",
- "text": " If <code>acquireCount</code> is not <code>0</code>, <code>pAcquireTimeoutMilliseconds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>acquireCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseSyncs-parameter",
- "text": " If <code>releaseCount</code> is not <code>0</code>, <code>pReleaseSyncs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>releaseCount</code> valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handles"
- },
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseKeys-parameter",
- "text": " If <code>releaseCount</code> is not <code>0</code>, <code>pReleaseKeys</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>releaseCount</code> <code>uint64_t</code> values"
- },
- {
- "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-commonparent",
- "text": " Both of the elements of <code>pAcquireSyncs</code>, and the elements of <code>pReleaseSyncs</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>"
- }
- ]
- },
- "VkProtectedSubmitInfo": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkProtectedSubmitInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO</code>"
- }
- ]
- },
- "VkDeviceGroupSubmitInfo": {
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkDeviceGroupSubmitInfo-waitSemaphoreCount-00082",
- "text": " <code>waitSemaphoreCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkSubmitInfo\">VkSubmitInfo</a>::<code>waitSemaphoreCount</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupSubmitInfo-commandBufferCount-00083",
- "text": " <code>commandBufferCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkSubmitInfo\">VkSubmitInfo</a>::<code>commandBufferCount</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupSubmitInfo-signalSemaphoreCount-00084",
- "text": " <code>signalSemaphoreCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkSubmitInfo\">VkSubmitInfo</a>::<code>signalSemaphoreCount</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-00085",
- "text": " All elements of <code>pWaitSemaphoreDeviceIndices</code> and <code>pSignalSemaphoreDeviceIndices</code> <strong class=\"purple\">must</strong> be valid device indices"
- },
- {
- "vuid": "VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-00086",
- "text": " All elements of <code>pCommandBufferDeviceMasks</code> <strong class=\"purple\">must</strong> be valid device masks"
- },
- {
- "vuid": "VUID-VkDeviceGroupSubmitInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-parameter",
- "text": " If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitSemaphoreDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-parameter",
- "text": " If <code>commandBufferCount</code> is not <code>0</code>, <code>pCommandBufferDeviceMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkDeviceGroupSubmitInfo-pSignalSemaphoreDeviceIndices-parameter",
- "text": " If <code>signalSemaphoreCount</code> is not <code>0</code>, <code>pSignalSemaphoreDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreCount</code> <code>uint32_t</code> values"
- }
- ]
- },
- "VkPerformanceQuerySubmitInfoKHR": {
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-VkPerformanceQuerySubmitInfoKHR-counterPassIndex-03221",
- "text": " <code>counterPassIndex</code> <strong class=\"purple\">must</strong> be less than the number of counter passes required by any queries within the batch. The required number of counter passes for a performance query is obtained by calling <a href=\"#vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\">vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR</a>"
- },
- {
- "vuid": "VUID-VkPerformanceQuerySubmitInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR</code>"
- }
- ]
- },
- "vkCmdExecuteCommands": {
- "core": [
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00088",
- "text": " Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been allocated with a <code>level</code> of <code>VK_COMMAND_BUFFER_LEVEL_SECONDARY</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00089",
- "text": " Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00091",
- "text": " If any element of <code>pCommandBuffers</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code> flag, it <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00092",
- "text": " If any element of <code>pCommandBuffers</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code> flag, it <strong class=\"purple\">must</strong> not have already been recorded to <code>commandBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00093",
- "text": " If any element of <code>pCommandBuffers</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code> flag, it <strong class=\"purple\">must</strong> not appear more than once in <code>pCommandBuffers</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00094",
- "text": " Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been allocated from a <code>VkCommandPool</code> that was created for the same queue family as the <code>VkCommandPool</code> from which <code>commandBuffer</code> was allocated"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00096",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with the <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00099",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, and any element of <code>pCommandBuffers</code> was recorded with <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a>::<code>framebuffer</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, that <code>VkFramebuffer</code> <strong class=\"purple\">must</strong> match the <code>VkFramebuffer</code> used in the current render pass instance"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-contents-06018",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRenderPass\">vkCmdBeginRenderPass</a>, its <code>contents</code> parameter <strong class=\"purple\">must</strong> have been set to <code>VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06019",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRenderPass\">vkCmdBeginRenderPass</a>, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a>::<code>subpass</code> set to the index of the subpass which the given command buffer will be executed in"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pBeginInfo-06020",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRenderPass\">vkCmdBeginRenderPass</a>, the render passes specified in the <code>pBeginInfo-&gt;pInheritanceInfo-&gt;renderPass</code> members of the <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> commands used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the current render pass"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00100",
- "text": " If <code>vkCmdExecuteCommands</code> is not being called within a render pass instance, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not have been recorded with the <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00101",
- "text": " If the <a href=\"#features-inheritedQueries\">inherited queries</a> feature is not enabled, <code>commandBuffer</code> <strong class=\"purple\">must</strong> not have any queries <a href=\"#queries-operation-active\">active</a>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00102",
- "text": " If <code>commandBuffer</code> has a <code>VK_QUERY_TYPE_OCCLUSION</code> query <a href=\"#queries-operation-active\">active</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <code>VkCommandBufferInheritanceInfo</code>::<code>occlusionQueryEnable</code> set to <code>VK_TRUE</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00103",
- "text": " If <code>commandBuffer</code> has a <code>VK_QUERY_TYPE_OCCLUSION</code> query <a href=\"#queries-operation-active\">active</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <code>VkCommandBufferInheritanceInfo</code>::<code>queryFlags</code> having all bits set that are set for the query"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00104",
- "text": " If <code>commandBuffer</code> has a <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> query <a href=\"#queries-operation-active\">active</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <code>VkCommandBufferInheritanceInfo</code>::<code>pipelineStatistics</code> having all bits set that are set in the <code>VkQueryPool</code> the query uses"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00105",
- "text": " Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not begin any query types that are <a href=\"#queries-operation-active\">active</a> in <code>commandBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-06533",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance and any recorded command in <code>commandBuffer</code> in the current subpass will write to an image subresource as an attachment, commands recorded in elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-06534",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance and any recorded command in <code>commandBuffer</code> in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06535",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance and any recorded command in a given element of <code>pCommandBuffers</code> will write to an image subresource as an attachment, commands recorded in elements of <code>pCommandBuffers</code> at a higher index <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06536",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance and any recorded command in a given element of <code>pCommandBuffers</code> will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of <code>pCommandBuffers</code> at a higher index <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-parameter",
- "text": " <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>commandBufferCount</code> valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handles"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-bufferlevel",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-commandBufferCount-arraylength",
- "text": " <code>commandBufferCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-commonparent",
- "text": " Both of <code>commandBuffer</code>, and the elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdExecuteCommands-contents-00095",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, that render pass instance <strong class=\"purple\">must</strong> have been begun with the <code>contents</code> parameter of <code>vkCmdBeginRenderPass</code> set to <code>VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00097",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <code>VkCommandBufferInheritanceInfo</code>::<code>subpass</code> set to the index of the subpass which the given command buffer will be executed in"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pInheritanceInfo-00098",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, the render passes specified in the <code>pBeginInfo-&gt;pInheritanceInfo-&gt;renderPass</code> members of the <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> commands used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the current render pass"
- }
- ],
- "(VK_QCOM_render_pass_transform)": [
- {
- "vuid": "VUID-vkCmdExecuteCommands-pNext-02865",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance that included <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a> in the <code>pNext</code> chain of <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <a href=\"#VkCommandBufferInheritanceRenderPassTransformInfoQCOM\">VkCommandBufferInheritanceRenderPassTransformInfoQCOM</a> in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pNext-02866",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance that included <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a> in the <code>pNext</code> chain of <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <a href=\"#VkCommandBufferInheritanceRenderPassTransformInfoQCOM\">VkCommandBufferInheritanceRenderPassTransformInfoQCOM</a>::<code>transform</code> identical to <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>::<code>transform</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pNext-02867",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance that included <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a> in the <code>pNext</code> chain of <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>, then each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> have been recorded with <a href=\"#VkCommandBufferInheritanceRenderPassTransformInfoQCOM\">VkCommandBufferInheritanceRenderPassTransformInfoQCOM</a>::<code>renderArea</code> identical to <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>::<code>renderArea</code>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-01820",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be a protected command buffer"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-01821",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be an unprotected command buffer"
- }
- ],
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdExecuteCommands-None-02286",
- "text": " This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06021",
- "text": " If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no action or synchronization commands between that render pass instance and any render pass instance that resumes it"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-06022",
- "text": " If <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, there <strong class=\"purple\">must</strong> be no render pass instances between that render pass instance and any render pass instance that resumes it"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-flags-06024",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, its <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>flags</code> parameter <strong class=\"purple\">must</strong> have included <code>VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pBeginInfo-06025",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the render passes specified in the <code>pBeginInfo-&gt;pInheritanceInfo-&gt;renderPass</code> members of the <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> commands used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-flags-06026",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>flags</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>flags</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, excluding <code>VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-colorAttachmentCount-06027",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>colorAttachmentCount</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-imageView-06028",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, if the <code>imageView</code> member of an element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the corresponding element of the <code>pColorAttachmentFormats</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the format used to create that image view"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pDepthAttachment-06029",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthAttachmentFormat</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the format used to create that image view"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pStencilAttachment-06030",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>stencilAttachmentFormat</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the format used to create that image view"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdExecuteCommands-variableSampleLocations-06023",
- "text": " If the <a href=\"#limits-variableSampleLocations\"><code>variableSampleLocations</code></a> limit is not supported, and any element of <code>pCommandBuffers</code> contains any <a href=\"#renderpass-suspension\">suspended render pass instances</a>, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, <strong class=\"purple\">must</strong> use the same sample locations"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdExecuteCommands-viewMask-06031",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>viewMask</code> member of the <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-vkCmdExecuteCommands-pNext-06032",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> includes a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <code>imageView</code> member of an element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the corresponding element of the <code>pColorAttachmentSamples</code> member of the <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pNext-06033",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> includes a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of the <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pNext-06034",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> includes a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of the <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure included in the <code>pNext</code> chain of <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a>::<code>pInheritanceInfo</code> used to begin recording each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pNext-06035",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> does not include a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <code>imageView</code> member of an element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pNext-06036",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> does not include a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view"
- },
- {
- "vuid": "VUID-vkCmdExecuteCommands-pNext-06037",
- "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> does not include a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, if the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> parameter to <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be equal to the sample count used to create that image view"
- }
- ]
- },
- "VkDeviceGroupCommandBufferBeginInfo": {
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00106",
- "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask value"
- },
- {
- "vuid": "VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00107",
- "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero"
- },
- {
- "vuid": "VUID-VkDeviceGroupCommandBufferBeginInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO</code>"
- }
- ]
- },
- "vkCmdSetDeviceMask": {
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00108",
- "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask value"
- },
- {
- "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00109",
- "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero"
- },
- {
- "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00110",
- "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> not include any set bits that were not in the <a href=\"#VkDeviceGroupCommandBufferBeginInfo\">VkDeviceGroupCommandBufferBeginInfo</a>::<code>deviceMask</code> value when the command buffer began recording"
- },
- {
- "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00111",
- "text": " If <code>vkCmdSetDeviceMask</code> is called inside a render pass instance, <code>deviceMask</code> <strong class=\"purple\">must</strong> not include any set bits that were not in the <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>::<code>deviceMask</code> value when the render pass instance began recording"
- },
- {
- "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations"
- }
- ]
- },
- "vkCreateFence": {
- "core": [
- {
- "vuid": "VUID-vkCreateFence-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateFence-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkFenceCreateInfo\">VkFenceCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateFence-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"
- },
- {
- "vuid": "VUID-vkCreateFence-pFence-parameter",
- "text": " <code>pFence</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFence\">VkFence</a> handle"
- }
- ]
- },
- "VkFenceCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkFenceCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FENCE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkFenceCreateInfo-pNext-pNext",
- "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=\"#VkExportFenceCreateInfo\">VkExportFenceCreateInfo</a> or <a href=\"#VkExportFenceWin32HandleInfoKHR\">VkExportFenceWin32HandleInfoKHR</a>"
- },
- {
- "vuid": "VUID-VkFenceCreateInfo-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-VkFenceCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFenceCreateFlagBits\">VkFenceCreateFlagBits</a> values"
- }
- ]
- },
- "VkExportFenceCreateInfo": {
- "(VK_VERSION_1_1,VK_KHR_external_fence)": [
- {
- "vuid": "VUID-VkExportFenceCreateInfo-handleTypes-01446",
- "text": " The bits in <code>handleTypes</code> <strong class=\"purple\">must</strong> be supported and compatible, as reported by <a href=\"#VkExternalFenceProperties\">VkExternalFenceProperties</a>"
- },
- {
- "vuid": "VUID-VkExportFenceCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO</code>"
- },
- {
- "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"
- }
- ]
- },
- "VkExportFenceWin32HandleInfoKHR": {
- "(VK_KHR_external_fence_win32)": [
- {
- "vuid": "VUID-VkExportFenceWin32HandleInfoKHR-handleTypes-01447",
- "text": " If <a href=\"#VkExportFenceCreateInfo\">VkExportFenceCreateInfo</a>::<code>handleTypes</code> does not include <code>VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, a <code>VkExportFenceWin32HandleInfoKHR</code> structure <strong class=\"purple\">must</strong> not be included in the <code>pNext</code> chain of <a href=\"#VkFenceCreateInfo\">VkFenceCreateInfo</a>"
- },
- {
- "vuid": "VUID-VkExportFenceWin32HandleInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkExportFenceWin32HandleInfoKHR-pAttributes-parameter",
- "text": " If <code>pAttributes</code> is not <code>NULL</code>, <code>pAttributes</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>SECURITY_ATTRIBUTES</code> value"
- }
- ]
- },
- "vkGetFenceWin32HandleKHR": {
- "(VK_KHR_external_fence_win32)": [
- {
- "vuid": "VUID-vkGetFenceWin32HandleKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetFenceWin32HandleKHR-pGetWin32HandleInfo-parameter",
- "text": " <code>pGetWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkFenceGetWin32HandleInfoKHR\">VkFenceGetWin32HandleInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetFenceWin32HandleKHR-pHandle-parameter",
- "text": " <code>pHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>HANDLE</code> value"
- }
- ]
- },
- "VkFenceGetWin32HandleInfoKHR": {
- "(VK_KHR_external_fence_win32)": [
- {
- "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01448",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportFenceCreateInfo\">VkExportFenceCreateInfo</a>::<code>handleTypes</code> when the <code>fence</code>&#8217;s current payload was created"
- },
- {
- "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01449",
- "text": " If <code>handleType</code> is defined as an NT handle, <a href=\"#vkGetFenceWin32HandleKHR\">vkGetFenceWin32HandleKHR</a> <strong class=\"purple\">must</strong> be called no more than once for each valid unique combination of <code>fence</code> and <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-fence-01450",
- "text": " <code>fence</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-fences-importing\">Importing Fence Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalFenceProperties\">VkExternalFenceProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01451",
- "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>fence</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-fences-signaling\">fence signal operation</a> pending execution"
- },
- {
- "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01452",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be defined as an NT handle or a global share handle"
- },
- {
- "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-fence-parameter",
- "text": " <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
- },
- {
- "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> value"
- }
- ]
- },
- "vkGetFenceFdKHR": {
- "(VK_KHR_external_fence_fd)": [
- {
- "vuid": "VUID-vkGetFenceFdKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetFenceFdKHR-pGetFdInfo-parameter",
- "text": " <code>pGetFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkFenceGetFdInfoKHR\">VkFenceGetFdInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetFenceFdKHR-pFd-parameter",
- "text": " <code>pFd</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>int</code> value"
- }
- ]
- },
- "VkFenceGetFdInfoKHR": {
- "(VK_KHR_external_fence_fd)": [
- {
- "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01453",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportFenceCreateInfo\">VkExportFenceCreateInfo</a>::<code>handleTypes</code> when <code>fence</code>&#8217;s current payload was created"
- },
- {
- "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01454",
- "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>fence</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-fences-signaling\">fence signal operation</a> pending execution"
- },
- {
- "vuid": "VUID-VkFenceGetFdInfoKHR-fence-01455",
- "text": " <code>fence</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-fences-importing\">Importing Fence Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalFenceProperties\">VkExternalFenceProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01456",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be defined as a POSIX file descriptor handle"
- },
- {
- "vuid": "VUID-VkFenceGetFdInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkFenceGetFdInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkFenceGetFdInfoKHR-fence-parameter",
- "text": " <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
- },
- {
- "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> value"
- }
- ]
- },
- "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-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>"
- },
- {
- "vuid": "VUID-vkDestroyFence-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyFence-fence-parameter",
- "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 a valid <a href=\"#VkFence\">VkFence</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyFence-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"
- },
- {
- "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>"
- }
- ]
- },
- "vkGetFenceStatus": {
- "core": [
- {
- "vuid": "VUID-vkGetFenceStatus-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetFenceStatus-fence-parameter",
- "text": " <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
- },
- {
- "vuid": "VUID-vkGetFenceStatus-fence-parent",
- "text": " <code>fence</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkResetFences": {
- "core": [
- {
- "vuid": "VUID-vkResetFences-pFences-01123",
- "text": " Each element of <code>pFences</code> <strong class=\"purple\">must</strong> not be currently associated with any queue command that has not yet completed execution on that queue"
- },
- {
- "vuid": "VUID-vkResetFences-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkResetFences-pFences-parameter",
- "text": " <code>pFences</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>fenceCount</code> valid <a href=\"#VkFence\">VkFence</a> handles"
- },
- {
- "vuid": "VUID-vkResetFences-fenceCount-arraylength",
- "text": " <code>fenceCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkResetFences-pFences-parent",
- "text": " Each element of <code>pFences</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkWaitForFences": {
- "core": [
- {
- "vuid": "VUID-vkWaitForFences-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkWaitForFences-pFences-parameter",
- "text": " <code>pFences</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>fenceCount</code> valid <a href=\"#VkFence\">VkFence</a> handles"
- },
- {
- "vuid": "VUID-vkWaitForFences-fenceCount-arraylength",
- "text": " <code>fenceCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkWaitForFences-pFences-parent",
- "text": " Each element of <code>pFences</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkRegisterDeviceEventEXT": {
- "(VK_EXT_display_control)": [
- {
- "vuid": "VUID-vkRegisterDeviceEventEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkRegisterDeviceEventEXT-pDeviceEventInfo-parameter",
- "text": " <code>pDeviceEventInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceEventInfoEXT\">VkDeviceEventInfoEXT</a> structure"
- },
- {
- "vuid": "VUID-vkRegisterDeviceEventEXT-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"
- },
- {
- "vuid": "VUID-vkRegisterDeviceEventEXT-pFence-parameter",
- "text": " <code>pFence</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFence\">VkFence</a> handle"
- }
- ]
- },
- "VkDeviceEventInfoEXT": {
- "(VK_EXT_display_control)": [
- {
- "vuid": "VUID-VkDeviceEventInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkDeviceEventInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDeviceEventInfoEXT-deviceEvent-parameter",
- "text": " <code>deviceEvent</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceEventTypeEXT\">VkDeviceEventTypeEXT</a> value"
- }
- ]
- },
- "vkRegisterDisplayEventEXT": {
- "(VK_EXT_display_control)": [
- {
- "vuid": "VUID-vkRegisterDisplayEventEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkRegisterDisplayEventEXT-display-parameter",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
- },
- {
- "vuid": "VUID-vkRegisterDisplayEventEXT-pDisplayEventInfo-parameter",
- "text": " <code>pDisplayEventInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplayEventInfoEXT\">VkDisplayEventInfoEXT</a> structure"
- },
- {
- "vuid": "VUID-vkRegisterDisplayEventEXT-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"
- },
- {
- "vuid": "VUID-vkRegisterDisplayEventEXT-pFence-parameter",
- "text": " <code>pFence</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFence\">VkFence</a> handle"
- },
- {
- "vuid": "VUID-vkRegisterDisplayEventEXT-commonparent",
- "text": " Both of <code>device</code>, and <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a>"
- }
- ]
- },
- "VkDisplayEventInfoEXT": {
- "(VK_EXT_display_control)": [
- {
- "vuid": "VUID-VkDisplayEventInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkDisplayEventInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDisplayEventInfoEXT-displayEvent-parameter",
- "text": " <code>displayEvent</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayEventTypeEXT\">VkDisplayEventTypeEXT</a> value"
- }
- ]
- },
- "vkImportFenceWin32HandleKHR": {
- "(VK_KHR_external_fence_win32)": [
- {
- "vuid": "VUID-vkImportFenceWin32HandleKHR-fence-04448",
- "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-vkImportFenceWin32HandleKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkImportFenceWin32HandleKHR-pImportFenceWin32HandleInfo-parameter",
- "text": " <code>pImportFenceWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportFenceWin32HandleInfoKHR\">VkImportFenceWin32HandleInfoKHR</a> structure"
- }
- ]
- },
- "VkImportFenceWin32HandleInfoKHR": {
- "(VK_KHR_external_fence_win32)": [
- {
- "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-fence-handletypes-win32\">Handle Types Supported by <code>VkImportFenceWin32HandleInfoKHR</code></a> table"
- },
- {
- "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459",
- "text": " If <code>handleType</code> is not <code>VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460",
- "text": " If <code>handle</code> is <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> name a valid synchronization primitive of the type specified by <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461",
- "text": " If <code>name</code> is <code>NULL</code>, <code>handle</code> <strong class=\"purple\">must</strong> be a valid handle of the type specified by <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handle-01462",
- "text": " If <code>handle</code> is not <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handle-01539",
- "text": " If <code>handle</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-fence-handle-types-compatibility\">external fence handle types compatibility</a>"
- },
- {
- "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-name-01540",
- "text": " If <code>name</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-fence-handle-types-compatibility\">external fence handle types compatibility</a>"
- },
- {
- "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-fence-parameter",
- "text": " <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
- },
- {
- "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFenceImportFlagBits\">VkFenceImportFlagBits</a> values"
- }
- ]
- },
- "vkImportFenceFdKHR": {
- "(VK_KHR_external_fence_fd)": [
- {
- "vuid": "VUID-vkImportFenceFdKHR-fence-01463",
- "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-vkImportFenceFdKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkImportFenceFdKHR-pImportFenceFdInfo-parameter",
- "text": " <code>pImportFenceFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportFenceFdInfoKHR\">VkImportFenceFdInfoKHR</a> structure"
- }
- ]
- },
- "VkImportFenceFdInfoKHR": {
- "(VK_KHR_external_fence_fd)": [
- {
- "vuid": "VUID-VkImportFenceFdInfoKHR-handleType-01464",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-fence-handletypes-fd\">Handle Types Supported by <code>VkImportFenceFdInfoKHR</code></a> table"
- },
- {
- "vuid": "VUID-VkImportFenceFdInfoKHR-fd-01541",
- "text": " <code>fd</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-fence-handle-types-compatibility\">external fence handle types compatibility</a>"
- },
- {
- "vuid": "VUID-VkImportFenceFdInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkImportFenceFdInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImportFenceFdInfoKHR-fence-parameter",
- "text": " <code>fence</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFence\">VkFence</a> handle"
- },
- {
- "vuid": "VUID-VkImportFenceFdInfoKHR-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFenceImportFlagBits\">VkFenceImportFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkImportFenceFdInfoKHR-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> value"
- }
- ]
- },
- "vkCreateSemaphore": {
- "core": [
- {
- "vuid": "VUID-vkCreateSemaphore-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateSemaphore-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateSemaphore-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"
- },
- {
- "vuid": "VUID-vkCreateSemaphore-pSemaphore-parameter",
- "text": " <code>pSemaphore</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
- }
- ]
- },
- "VkSemaphoreCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkSemaphoreCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreCreateInfo-pNext-pNext",
- "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=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>, <a href=\"#VkExportSemaphoreWin32HandleInfoKHR\">VkExportSemaphoreWin32HandleInfoKHR</a>, or <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>"
- },
- {
- "vuid": "VUID-VkSemaphoreCreateInfo-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-VkSemaphoreCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "VkSemaphoreTypeCreateInfo": {
- "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-VkSemaphoreTypeCreateInfo-timelineSemaphore-03252",
- "text": " If the <a href=\"#features-timelineSemaphore\"><code>timelineSemaphore</code></a> feature is not enabled, <code>semaphoreType</code> <strong class=\"purple\">must</strong> not equal <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreTypeCreateInfo-semaphoreType-03279",
- "text": " If <code>semaphoreType</code> is <code>VK_SEMAPHORE_TYPE_BINARY</code>, <code>initialValue</code> <strong class=\"purple\">must</strong> be zero"
- },
- {
- "vuid": "VUID-VkSemaphoreTypeCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameter",
- "text": " <code>semaphoreType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> value"
- }
- ]
- },
- "VkExportSemaphoreCreateInfo": {
- "(VK_VERSION_1_1,VK_KHR_external_semaphore)": [
- {
- "vuid": "VUID-VkExportSemaphoreCreateInfo-handleTypes-01124",
- "text": " The bits in <code>handleTypes</code> <strong class=\"purple\">must</strong> be supported and compatible, as reported by <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a>"
- },
- {
- "vuid": "VUID-VkExportSemaphoreCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO</code>"
- },
- {
- "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"
- }
- ]
- },
- "VkExportSemaphoreWin32HandleInfoKHR": {
- "(VK_KHR_external_semaphore_win32)": [
- {
- "vuid": "VUID-VkExportSemaphoreWin32HandleInfoKHR-handleTypes-01125",
- "text": " If <a href=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>::<code>handleTypes</code> does not include <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT</code>, <code>VkExportSemaphoreWin32HandleInfoKHR</code> <strong class=\"purple\">must</strong> not be included in the <code>pNext</code> chain of <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a>"
- },
- {
- "vuid": "VUID-VkExportSemaphoreWin32HandleInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkExportSemaphoreWin32HandleInfoKHR-pAttributes-parameter",
- "text": " If <code>pAttributes</code> is not <code>NULL</code>, <code>pAttributes</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>SECURITY_ATTRIBUTES</code> value"
- }
- ]
- },
- "vkGetSemaphoreWin32HandleKHR": {
- "(VK_KHR_external_semaphore_win32)": [
- {
- "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-pGetWin32HandleInfo-parameter",
- "text": " <code>pGetWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreGetWin32HandleInfoKHR\">VkSemaphoreGetWin32HandleInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-pHandle-parameter",
- "text": " <code>pHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>HANDLE</code> value"
- }
- ]
- },
- "VkSemaphoreGetWin32HandleInfoKHR": {
- "(VK_KHR_external_semaphore_win32)": [
- {
- "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01126",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>::<code>handleTypes</code> when the <code>semaphore</code>&#8217;s current payload was created"
- },
- {
- "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01127",
- "text": " If <code>handleType</code> is defined as an NT handle, <a href=\"#vkGetSemaphoreWin32HandleKHR\">vkGetSemaphoreWin32HandleKHR</a> <strong class=\"purple\">must</strong> be called no more than once for each valid unique combination of <code>semaphore</code> and <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-01128",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01129",
- "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, as defined below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a>, there <strong class=\"purple\">must</strong> be no queue waiting on <code>semaphore</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01130",
- "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> pending execution"
- },
- {
- "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01131",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be defined as an NT handle or a global share handle"
- },
- {
- "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-parameter",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
- },
- {
- "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value"
- }
- ]
- },
- "vkGetSemaphoreFdKHR": {
- "(VK_KHR_external_semaphore_fd)": [
- {
- "vuid": "VUID-vkGetSemaphoreFdKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetSemaphoreFdKHR-pGetFdInfo-parameter",
- "text": " <code>pGetFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreGetFdInfoKHR\">VkSemaphoreGetFdInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetSemaphoreFdKHR-pFd-parameter",
- "text": " <code>pFd</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>int</code> value"
- }
- ]
- },
- "VkSemaphoreGetFdInfoKHR": {
- "(VK_KHR_external_semaphore_fd)": [
- {
- "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01132",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>::<code>handleTypes</code> when <code>semaphore</code>&#8217;s current payload was created"
- },
- {
- "vuid": "VUID-VkSemaphoreGetFdInfoKHR-semaphore-01133",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01134",
- "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, as defined below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a>, there <strong class=\"purple\">must</strong> be no queue waiting on <code>semaphore</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01135",
- "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> pending execution"
- },
- {
- "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01136",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be defined as a POSIX file descriptor handle"
- },
- {
- "vuid": "VUID-VkSemaphoreGetFdInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetFdInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetFdInfoKHR-semaphore-parameter",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
- },
- {
- "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value"
- }
- ],
- "(VK_KHR_external_semaphore_fd)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-03253",
- "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-03254",
- "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> have an associated 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"
- }
- ]
- },
- "vkGetSemaphoreZirconHandleFUCHSIA": {
- "(VK_FUCHSIA_external_semaphore)": [
- {
- "vuid": "VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetSemaphoreZirconHandleFUCHSIA-pGetZirconHandleInfo-parameter",
- "text": " <code>pGetZirconHandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreGetZirconHandleInfoFUCHSIA\">VkSemaphoreGetZirconHandleInfoFUCHSIA</a> structure"
- },
- {
- "vuid": "VUID-vkGetSemaphoreZirconHandleFUCHSIA-pZirconHandle-parameter",
- "text": " <code>pZirconHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>zx_handle_t</code> value"
- }
- ]
- },
- "VkSemaphoreGetZirconHandleInfoFUCHSIA": {
- "(VK_FUCHSIA_external_semaphore)": [
- {
- "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04758",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportSemaphoreCreateInfo\">VkExportSemaphoreCreateInfo</a>::<code>handleTypes</code> when <code>semaphore</code>&#8217;s current payload was created"
- },
- {
- "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04759",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> not currently have its payload replaced by an imported payload as described below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a> unless that imported payload&#8217;s handle type was included in <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04760",
- "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, as defined below in <a href=\"#synchronization-semaphores-importing\">Importing Semaphore Payloads</a>, there <strong class=\"purple\">must</strong> be no queue waiting on <code>semaphore</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04761",
- "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, <code>semaphore</code> <strong class=\"purple\">must</strong> be signaled, or have an associated <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> pending execution"
- },
- {
- "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04762",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be defined as a Zircon event handle"
- },
- {
- "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04763",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-parameter",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
- },
- {
- "vuid": "VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value"
- }
- ]
- },
- "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-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"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-vkDestroySemaphore-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroySemaphore-semaphore-parameter",
- "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
- },
- {
- "vuid": "VUID-vkDestroySemaphore-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"
- },
- {
- "vuid": "VUID-vkDestroySemaphore-semaphore-parent",
- "text": " If <code>semaphore</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkGetSemaphoreCounterValue": {
- "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-03255",
- "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-vkGetSemaphoreCounterValue-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-parameter",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
- },
- {
- "vuid": "VUID-vkGetSemaphoreCounterValue-pValue-parameter",
- "text": " <code>pValue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint64_t</code> value"
- },
- {
- "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-parent",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkWaitSemaphores": {
- "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-vkWaitSemaphores-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkWaitSemaphores-pWaitInfo-parameter",
- "text": " <code>pWaitInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreWaitInfo\">VkSemaphoreWaitInfo</a> structure"
- }
- ]
- },
- "VkSemaphoreWaitInfo": {
- "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-VkSemaphoreWaitInfo-pSemaphores-03256",
- "text": " All of the elements of <code>pSemaphores</code> <strong class=\"purple\">must</strong> reference a semaphore that was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreWaitInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreWaitInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreWaitInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSemaphoreWaitFlagBits\">VkSemaphoreWaitFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSemaphoreWaitInfo-pSemaphores-parameter",
- "text": " <code>pSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>semaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles"
- },
- {
- "vuid": "VUID-VkSemaphoreWaitInfo-pValues-parameter",
- "text": " <code>pValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>semaphoreCount</code> <code>uint64_t</code> values"
- },
- {
- "vuid": "VUID-VkSemaphoreWaitInfo-semaphoreCount-arraylength",
- "text": " <code>semaphoreCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkSignalSemaphore": {
- "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-vkSignalSemaphore-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkSignalSemaphore-pSignalInfo-parameter",
- "text": " <code>pSignalInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSemaphoreSignalInfo\">VkSemaphoreSignalInfo</a> structure"
- }
- ]
- },
- "VkSemaphoreSignalInfo": {
- "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-VkSemaphoreSignalInfo-semaphore-03257",
- "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-VkSemaphoreSignalInfo-value-03258",
- "text": " <code>value</code> <strong class=\"purple\">must</strong> have a value greater than the current value of the semaphore"
- },
- {
- "vuid": "VUID-VkSemaphoreSignalInfo-value-03259",
- "text": " <code>value</code> <strong class=\"purple\">must</strong> be less than the value of any pending semaphore signal operations"
- },
- {
- "vuid": "VUID-VkSemaphoreSignalInfo-value-03260",
- "text": " <code>value</code> <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on <code>semaphore</code> by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>"
- },
- {
- "vuid": "VUID-VkSemaphoreSignalInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreSignalInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkSemaphoreSignalInfo-semaphore-parameter",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
- }
- ]
- },
- "vkImportSemaphoreWin32HandleKHR": {
- "(VK_KHR_external_semaphore_win32)": [
- {
- "vuid": "VUID-vkImportSemaphoreWin32HandleKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkImportSemaphoreWin32HandleKHR-pImportSemaphoreWin32HandleInfo-parameter",
- "text": " <code>pImportSemaphoreWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportSemaphoreWin32HandleInfoKHR\">VkImportSemaphoreWin32HandleInfoKHR</a> structure"
- }
- ]
- },
- "VkImportSemaphoreWin32HandleInfoKHR": {
- "(VK_KHR_external_semaphore_win32)": [
- {
- "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-semaphore-handletypes-win32\">Handle Types Supported by <code>VkImportSemaphoreWin32HandleInfoKHR</code></a> table"
- },
- {
- "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466",
- "text": " If <code>handleType</code> is not <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01467",
- "text": " If <code>handle</code> is <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> name a valid synchronization primitive of the type specified by <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01468",
- "text": " If <code>name</code> is <code>NULL</code>, <code>handle</code> <strong class=\"purple\">must</strong> be a valid handle of the type specified by <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01469",
- "text": " If <code>handle</code> is not <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01542",
- "text": " If <code>handle</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-semaphore-handle-types-compatibility\">external semaphore handle types compatibility</a>"
- },
- {
- "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-name-01543",
- "text": " If <code>name</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-semaphore-handle-types-compatibility\">external semaphore handle types compatibility</a>"
- },
- {
- "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03261",
- "text": " If <code>handleType</code> is <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, the <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a>::<code>flags</code> field <strong class=\"purple\">must</strong> match that of the semaphore from which <code>handle</code> or <code>name</code> was exported"
- },
- {
- "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameter",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
- },
- {
- "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSemaphoreImportFlagBits\">VkSemaphoreImportFlagBits</a> values"
- }
- ],
- "(VK_KHR_external_semaphore_win32)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03262",
- "text": " If <code>handleType</code> is <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, the <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field <strong class=\"purple\">must</strong> match that of the semaphore from which <code>handle</code> or <code>name</code> was exported"
- },
- {
- "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-03322",
- "text": " If <code>flags</code> contains <code>VK_SEMAPHORE_IMPORT_TEMPORARY_BIT</code>, the <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field of the semaphore from which <code>handle</code> or <code>name</code> was exported <strong class=\"purple\">must</strong> not be <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
- }
- ]
- },
- "vkImportSemaphoreFdKHR": {
- "(VK_KHR_external_semaphore_fd)": [
- {
- "vuid": "VUID-vkImportSemaphoreFdKHR-semaphore-01142",
- "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"
- },
- {
- "vuid": "VUID-vkImportSemaphoreFdKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkImportSemaphoreFdKHR-pImportSemaphoreFdInfo-parameter",
- "text": " <code>pImportSemaphoreFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportSemaphoreFdInfoKHR\">VkImportSemaphoreFdInfoKHR</a> structure"
- }
- ]
- },
- "VkImportSemaphoreFdInfoKHR": {
- "(VK_KHR_external_semaphore_fd)": [
- {
- "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-01143",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-semaphore-handletypes-fd\">Handle Types Supported by <code>VkImportSemaphoreFdInfoKHR</code></a> table"
- },
- {
- "vuid": "VUID-VkImportSemaphoreFdInfoKHR-fd-01544",
- "text": " <code>fd</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-semaphore-handle-types-compatibility\">external semaphore handle types compatibility</a>"
- },
- {
- "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-03263",
- "text": " If <code>handleType</code> is <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT</code>, the <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a>::<code>flags</code> field <strong class=\"purple\">must</strong> match that of the semaphore from which <code>fd</code> was exported"
- },
- {
- "vuid": "VUID-VkImportSemaphoreFdInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkImportSemaphoreFdInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameter",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
- },
- {
- "vuid": "VUID-VkImportSemaphoreFdInfoKHR-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSemaphoreImportFlagBits\">VkSemaphoreImportFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value"
- }
- ],
- "(VK_KHR_external_semaphore_fd)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-03264",
- "text": " If <code>handleType</code> is <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT</code>, the <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field <strong class=\"purple\">must</strong> match that of the semaphore from which <code>fd</code> was exported"
- },
- {
- "vuid": "VUID-VkImportSemaphoreFdInfoKHR-flags-03323",
- "text": " If <code>flags</code> contains <code>VK_SEMAPHORE_IMPORT_TEMPORARY_BIT</code>, the <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field of the semaphore from which <code>fd</code> was exported <strong class=\"purple\">must</strong> not be <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
- }
- ]
- },
- "vkImportSemaphoreZirconHandleFUCHSIA": {
- "(VK_FUCHSIA_external_semaphore)": [
- {
- "vuid": "VUID-vkImportSemaphoreZirconHandleFUCHSIA-semaphore-04764",
- "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"
- },
- {
- "vuid": "VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkImportSemaphoreZirconHandleFUCHSIA-pImportSemaphoreZirconHandleInfo-parameter",
- "text": " <code>pImportSemaphoreZirconHandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImportSemaphoreZirconHandleInfoFUCHSIA\">VkImportSemaphoreZirconHandleInfoFUCHSIA</a> structure"
- }
- ]
- },
- "VkImportSemaphoreZirconHandleInfoFUCHSIA": {
- "(VK_FUCHSIA_external_semaphore)": [
- {
- "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-04765",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-semaphore-handletypes-fuchsia\">Handle Types Supported by <code>VkImportSemaphoreZirconHandleInfoFUCHSIA</code></a> table"
- },
- {
- "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04766",
- "text": " <code>zirconHandle</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-semaphore-handle-types-compatibility\">external semaphore handle types compatibility</a>"
- },
- {
- "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04767",
- "text": " <code>zirconHandle</code> <strong class=\"purple\">must</strong> have <code>ZX_RIGHTS_BASIC</code> and <code>ZX_RIGHTS_SIGNAL</code> rights"
- },
- {
- "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphore-parameter",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
- },
- {
- "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSemaphoreImportFlagBits\">VkSemaphoreImportFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value"
- }
- ],
- "(VK_FUCHSIA_external_semaphore)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphoreType-04768",
- "text": " The <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> field <strong class=\"purple\">must</strong> not be <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
- }
- ]
- },
- "vkCreateEvent": {
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-vkCreateEvent-events-04468",
- "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"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkCreateEvent-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateEvent-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkEventCreateInfo\">VkEventCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateEvent-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"
- },
- {
- "vuid": "VUID-vkCreateEvent-pEvent-parameter",
- "text": " <code>pEvent</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkEvent\">VkEvent</a> handle"
- }
- ]
- },
- "VkEventCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkEventCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EVENT_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkEventCreateInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkEventCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkEventCreateFlagBits\">VkEventCreateFlagBits</a> values"
- }
- ]
- },
- "vkDestroyEvent": {
- "core": [
- {
- "vuid": "VUID-vkDestroyEvent-event-01145",
- "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"
- },
- {
- "vuid": "VUID-vkDestroyEvent-event-parameter",
- "text": " If <code>event</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyEvent-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"
- },
- {
- "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>"
- }
- ]
- },
- "vkGetEventStatus": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkGetEventStatus-event-03940",
- "text": " <code>event</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_EVENT_CREATE_DEVICE_ONLY_BIT</code>"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkGetEventStatus-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetEventStatus-event-parameter",
- "text": " <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
- },
- {
- "vuid": "VUID-vkGetEventStatus-event-parent",
- "text": " <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkSetEvent": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkSetEvent-event-03941",
- "text": " <code>event</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_EVENT_CREATE_DEVICE_ONLY_BIT</code>"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkSetEvent-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkSetEvent-event-parameter",
- "text": " <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
- },
- {
- "vuid": "VUID-vkSetEvent-event-parent",
- "text": " <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkResetEvent": {
- "core": [
- {
- "vuid": "VUID-vkResetEvent-event-03821",
- "text": " There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkResetEvent</code> and the execution of any <a href=\"#vkCmdWaitEvents\">vkCmdWaitEvents</a> that includes <code>event</code> in its <code>pEvents</code> parameter"
- },
- {
- "vuid": "VUID-vkResetEvent-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkResetEvent-event-parameter",
- "text": " <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
- },
- {
- "vuid": "VUID-vkResetEvent-event-parent",
- "text": " <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkResetEvent-event-03822",
- "text": " There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkResetEvent</code> and the execution of any <a href=\"#vkCmdWaitEvents2\">vkCmdWaitEvents2</a> that includes <code>event</code> in its <code>pEvents</code> parameter"
- },
- {
- "vuid": "VUID-vkResetEvent-event-03823",
- "text": " <code>event</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_EVENT_CREATE_DEVICE_ONLY_BIT</code>"
- }
- ]
- },
- "vkCmdSetEvent2": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdSetEvent2-synchronization2-03824",
- "text": " The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdSetEvent2-dependencyFlags-03825",
- "text": " The <code>dependencyFlags</code> member of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetEvent2-srcStageMask-03827",
- "text": " The <code>srcStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
- },
- {
- "vuid": "VUID-vkCmdSetEvent2-dstStageMask-03828",
- "text": " The <code>dstStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
- },
- {
- "vuid": "VUID-vkCmdSetEvent2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetEvent2-event-parameter",
- "text": " <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetEvent2-pDependencyInfo-parameter",
- "text": " <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDependencyInfo\">VkDependencyInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCmdSetEvent2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetEvent2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdSetEvent2-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdSetEvent2-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkCmdSetEvent2-commandBuffer-03826",
- "text": " The current device mask of <code>commandBuffer</code> <strong class=\"purple\">must</strong> include exactly one physical device"
- }
- ]
- },
- "VkDependencyInfo": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkDependencyInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEPENDENCY_INFO</code>"
- },
- {
- "vuid": "VUID-VkDependencyInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDependencyInfo-dependencyFlags-parameter",
- "text": " <code>dependencyFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDependencyFlagBits\">VkDependencyFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkDependencyInfo-pMemoryBarriers-parameter",
- "text": " If <code>memoryBarrierCount</code> is not <code>0</code>, <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryBarrierCount</code> valid <a href=\"#VkMemoryBarrier2\">VkMemoryBarrier2</a> structures"
- },
- {
- "vuid": "VUID-VkDependencyInfo-pBufferMemoryBarriers-parameter",
- "text": " If <code>bufferMemoryBarrierCount</code> is not <code>0</code>, <code>pBufferMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferMemoryBarrierCount</code> valid <a href=\"#VkBufferMemoryBarrier2\">VkBufferMemoryBarrier2</a> structures"
- },
- {
- "vuid": "VUID-VkDependencyInfo-pImageMemoryBarriers-parameter",
- "text": " If <code>imageMemoryBarrierCount</code> is not <code>0</code>, <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageMemoryBarrierCount</code> valid <a href=\"#VkImageMemoryBarrier2\">VkImageMemoryBarrier2</a> structures"
- }
- ]
- },
- "vkCmdSetEvent": {
- "core": [
- {
- "vuid": "VUID-vkCmdSetEvent-stageMask-04090",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdSetEvent-stageMask-04091",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdSetEvent-stageMask-06457",
- "text": " Any pipeline stage included in <code>stageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>"
- },
- {
- "vuid": "VUID-vkCmdSetEvent-stageMask-01149",
- "text": " <code>stageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdSetEvent-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetEvent-event-parameter",
- "text": " <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetEvent-stageMask-parameter",
- "text": " <code>stageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdSetEvent-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetEvent-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdSetEvent-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdSetEvent-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-vkCmdSetEvent-stageMask-04092",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdSetEvent-stageMask-04093",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdSetEvent-stageMask-04094",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- }
- ],
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdSetEvent-stageMask-04095",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdSetEvent-stageMask-04096",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdSetEvent-stageMask-04097",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdSetEvent-stageMask-03937",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdSetEvent-stageMask-04996",
- "text": " pname:stageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkCmdSetEvent-commandBuffer-01152",
- "text": " <code>commandBuffer</code>&#8217;s current device mask <strong class=\"purple\">must</strong> include exactly one physical device"
- }
- ]
- },
- "vkCmdResetEvent2": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdResetEvent2-stageMask-03929",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdResetEvent2-stageMask-03930",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdResetEvent2-synchronization2-03829",
- "text": " The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdResetEvent2-stageMask-03830",
- "text": " <code>stageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdResetEvent2-event-03831",
- "text": " There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkCmdResetEvent2</code> and the execution of any <a href=\"#vkCmdWaitEvents\">vkCmdWaitEvents</a> that includes <code>event</code> in its <code>pEvents</code> parameter"
- },
- {
- "vuid": "VUID-vkCmdResetEvent2-event-03832",
- "text": " There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkCmdResetEvent2</code> and the execution of any <a href=\"#vkCmdWaitEvents2\">vkCmdWaitEvents2</a> that includes <code>event</code> in its <code>pEvents</code> parameter"
- },
- {
- "vuid": "VUID-vkCmdResetEvent2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdResetEvent2-event-parameter",
- "text": " <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
- },
- {
- "vuid": "VUID-vkCmdResetEvent2-stageMask-parameter",
- "text": " <code>stageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
- },
- {
- "vuid": "VUID-vkCmdResetEvent2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdResetEvent2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdResetEvent2-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdResetEvent2-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-vkCmdResetEvent2-stageMask-03931",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdResetEvent2-stageMask-03932",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdResetEvent2-stageMask-03933",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdResetEvent2-stageMask-03934",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdResetEvent2-stageMask-03935",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdResetEvent2-stageMask-04956",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-vkCmdResetEvent2-stageMask-04957",
- "text": " If the <a href=\"#features-subpassShading\">subpass shading</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
- {
- "vuid": "VUID-vkCmdResetEvent2-stageMask-04995",
- "text": " If the <a href=\"#features-invocationMask\">invocation mask image</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkCmdResetEvent2-commandBuffer-03833",
- "text": " <code>commandBuffer</code>&#8217;s current device mask <strong class=\"purple\">must</strong> include exactly one physical device"
- }
- ]
- },
- "vkCmdResetEvent": {
- "core": [
- {
- "vuid": "VUID-vkCmdResetEvent-stageMask-04090",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdResetEvent-stageMask-04091",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdResetEvent-stageMask-06458",
- "text": " Any pipeline stage included in <code>stageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>"
- },
- {
- "vuid": "VUID-vkCmdResetEvent-stageMask-01153",
- "text": " <code>stageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdResetEvent-event-03834",
- "text": " There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkCmdResetEvent</code> and the execution of any <a href=\"#vkCmdWaitEvents\">vkCmdWaitEvents</a> that includes <code>event</code> in its <code>pEvents</code> parameter"
- },
- {
- "vuid": "VUID-vkCmdResetEvent-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdResetEvent-event-parameter",
- "text": " <code>event</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkEvent\">VkEvent</a> handle"
- },
- {
- "vuid": "VUID-vkCmdResetEvent-stageMask-parameter",
- "text": " <code>stageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdResetEvent-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdResetEvent-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdResetEvent-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdResetEvent-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>event</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-vkCmdResetEvent-stageMask-04092",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdResetEvent-stageMask-04093",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdResetEvent-stageMask-04094",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- }
- ],
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdResetEvent-stageMask-04095",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdResetEvent-stageMask-04096",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdResetEvent-stageMask-04097",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdResetEvent-stageMask-03937",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdResetEvent-event-03835",
- "text": " There <strong class=\"purple\">must</strong> be an execution dependency between <code>vkCmdResetEvent</code> and the execution of any <a href=\"#vkCmdWaitEvents2\">vkCmdWaitEvents2</a> that includes <code>event</code> in its <code>pEvents</code> parameter"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdResetEvent-stageMask-04996",
- "text": " pname:stageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkCmdResetEvent-commandBuffer-01157",
- "text": " <code>commandBuffer</code>&#8217;s current device mask <strong class=\"purple\">must</strong> include exactly one physical device"
- }
- ]
- },
- "vkCmdWaitEvents2": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdWaitEvents2-synchronization2-03836",
- "text": " The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-pEvents-03837",
- "text": " Members of <code>pEvents</code> <strong class=\"purple\">must</strong> not have been signaled by <a href=\"#vkCmdSetEvent\">vkCmdSetEvent</a>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-pEvents-03838",
- "text": " For any element <span class=\"eq\">i</span> of <code>pEvents</code>, if that event is signaled by <a href=\"#vkCmdSetEvent2\">vkCmdSetEvent2</a>, that command&#8217;s <code>dependencyInfo</code> parameter <strong class=\"purple\">must</strong> be exactly equal to the <span class=\"eq\">i</span>th element of <code>pDependencyInfos</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-pEvents-03839",
- "text": " For any element <span class=\"eq\">i</span> of <code>pEvents</code>, if that event is signaled by <a href=\"#vkSetEvent\">vkSetEvent</a>, barriers in the <span class=\"eq\">i</span>th element of <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> include only host operations in their first <a href=\"#synchronization-dependencies-scopes\">synchronization scope</a>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-pEvents-03840",
- "text": " For any element <span class=\"eq\">i</span> of <code>pEvents</code>, if barriers in the <span class=\"eq\">i</span>th element of <code>pDependencyInfos</code> include only host operations, the <span class=\"eq\">i</span>th element of <code>pEvents</code> <strong class=\"purple\">must</strong> be signaled before <a href=\"#vkCmdWaitEvents2\">vkCmdWaitEvents2</a> is executed"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-pEvents-03841",
- "text": " For any element <span class=\"eq\">i</span> of <code>pEvents</code>, if barriers in the <span class=\"eq\">i</span>th element of <code>pDependencyInfos</code> do not include host operations, the <span class=\"eq\">i</span>th element of <code>pEvents</code> <strong class=\"purple\">must</strong> be signaled by a corresponding <a href=\"#vkCmdSetEvent2\">vkCmdSetEvent2</a> that occurred earlier in <a href=\"#synchronization-submission-order\">submission order</a>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-srcStageMask-03842",
- "text": " The <code>srcStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> either include only pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from, or include only <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-dstStageMask-03843",
- "text": " The <code>dstStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-dependencyFlags-03844",
- "text": " The <code>dependencyFlags</code> member of any element of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-pEvents-03845",
- "text": " If <code>pEvents</code> includes one or more events that will be signaled by <a href=\"#vkSetEvent\">vkSetEvent</a> after <code>commandBuffer</code> has been submitted to a queue, then <code>vkCmdWaitEvents2</code> <strong class=\"purple\">must</strong> not be called inside a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-commandBuffer-03846",
- "text": " <code>commandBuffer</code>&#8217;s current device mask <strong class=\"purple\">must</strong> include exactly one physical device"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-pEvents-parameter",
- "text": " <code>pEvents</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>eventCount</code> valid <a href=\"#VkEvent\">VkEvent</a> handles"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-pDependencyInfos-parameter",
- "text": " <code>pDependencyInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>eventCount</code> valid <a href=\"#VkDependencyInfo\">VkDependencyInfo</a> structures"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-eventCount-arraylength",
- "text": " <code>eventCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents2-commonparent",
- "text": " Both of <code>commandBuffer</code>, and the elements of <code>pEvents</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "vkCmdWaitEvents": {
- "core": [
- {
- "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04090",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04091",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04090",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04091",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-srcAccessMask-02815",
- "text": " The <code>srcAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-dstAccessMask-02816",
- "text": " The <code>dstAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817",
- "text": " For any element of <code>pBufferMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>srcQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>srcAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818",
- "text": " For any element of <code>pBufferMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>dstQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>dstAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819",
- "text": " For any element of <code>pImageMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>srcQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>srcAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820",
- "text": " For any element of <code>pImageMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>dstQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>dstAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-srcStageMask-06459",
- "text": " Any pipeline stage included in <code>srcStageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-dstStageMask-06460",
- "text": " Any pipeline stage included in <code>dstStageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01158",
- "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be the bitwise OR of the <code>stageMask</code> parameter used in previous calls to <code>vkCmdSetEvent</code> with any of the elements of <code>pEvents</code> and <code>VK_PIPELINE_STAGE_HOST_BIT</code> if any of the elements of <code>pEvents</code> was set using <code>vkSetEvent</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-pEvents-01163",
- "text": " If <code>pEvents</code> includes one or more events that will be signaled by <code>vkSetEvent</code> after <code>commandBuffer</code> has been submitted to a queue, then <code>vkCmdWaitEvents</code> <strong class=\"purple\">must</strong> not be called inside a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803",
- "text": " The <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members of any element of <code>pBufferMemoryBarriers</code> or <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-pEvents-parameter",
- "text": " <code>pEvents</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>eventCount</code> valid <a href=\"#VkEvent\">VkEvent</a> handles"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-srcStageMask-parameter",
- "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-dstStageMask-parameter",
- "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-pMemoryBarriers-parameter",
- "text": " If <code>memoryBarrierCount</code> is not <code>0</code>, <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryBarrierCount</code> valid <a href=\"#VkMemoryBarrier\">VkMemoryBarrier</a> structures"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameter",
- "text": " If <code>bufferMemoryBarrierCount</code> is not <code>0</code>, <code>pBufferMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferMemoryBarrierCount</code> valid <a href=\"#VkBufferMemoryBarrier\">VkBufferMemoryBarrier</a> structures"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameter",
- "text": " If <code>imageMemoryBarrierCount</code> is not <code>0</code>, <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageMemoryBarrierCount</code> valid <a href=\"#VkImageMemoryBarrier\">VkImageMemoryBarrier</a> structures"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-eventCount-arraylength",
- "text": " <code>eventCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-commonparent",
- "text": " Both of <code>commandBuffer</code>, and the elements of <code>pEvents</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04092",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04092",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04093",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04093",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04094",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04094",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- }
- ],
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04095",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04096",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04095",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04096",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04097",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04097",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdWaitEvents-srcStageMask-03937",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-dstStageMask-03937",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-pEvents-03847",
- "text": " Elements of <code>pEvents</code> <strong class=\"purple\">must</strong> not have been signaled by <a href=\"#vkCmdSetEvent2\">vkCmdSetEvent2</a>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04996",
- "text": " pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04996",
- "text": " pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkCmdWaitEvents-commandBuffer-01167",
- "text": " <code>commandBuffer</code>&#8217;s current device mask <strong class=\"purple\">must</strong> include exactly one physical device"
- }
- ]
- },
- "vkCmdPipelineBarrier2": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdPipelineBarrier2-pDependencies-02285",
- "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the render pass <strong class=\"purple\">must</strong> have been created with at least one <a href=\"#VkSubpassDependency\">VkSubpassDependency</a> instance in <code>VkRenderPassCreateInfo</code>::<code>pDependencies</code> that expresses a dependency from the current subpass to itself, with <a href=\"#synchronization-dependencies-scopes\">synchronization scopes</a> and <a href=\"#synchronization-dependencies-access-scopes\">access scopes</a> that are all supersets of the scopes defined in this command"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier2-bufferMemoryBarrierCount-01178",
- "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, it <strong class=\"purple\">must</strong> not include any buffer memory barriers"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier2-image-04073",
- "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the <code>image</code> member of any image memory barrier included in this command <strong class=\"purple\">must</strong> be an attachment used in the current subpass both as an input attachment, and as either a color or depth/stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier2-oldLayout-01181",
- "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the <code>oldLayout</code> and <code>newLayout</code> members of any image memory barrier included in this command <strong class=\"purple\">must</strong> be equal"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier2-srcQueueFamilyIndex-01182",
- "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members of any image memory barrier included in this command <strong class=\"purple\">must</strong> be equal"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier2-synchronization2-03848",
- "text": " The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier2-srcStageMask-03849",
- "text": " The <code>srcStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier2-dstStageMask-03850",
- "text": " The <code>dstStageMask</code> member of any element of the <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code>, or <code>pImageMemoryBarriers</code> members of <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> only include pipeline stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier2-pDependencyInfo-parameter",
- "text": " <code>pDependencyInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDependencyInfo\">VkDependencyInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdPipelineBarrier2-dependencyFlags-01186",
- "text": " If fname:vkCmdPipelineBarrier2 is called outside of a render pass instance, <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code> <strong class=\"purple\">must</strong> not be included in the dependency flags"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdPipelineBarrier2-None-06191",
- "text": " If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the render pass <strong class=\"purple\">must</strong> not have been started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
- }
- ]
- },
- "vkCmdPipelineBarrier": {
- "core": [
- {
- "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04090",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04091",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04090",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04091",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-srcAccessMask-02815",
- "text": " The <code>srcAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dstAccessMask-02816",
- "text": " The <code>dstAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02817",
- "text": " For any element of <code>pBufferMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>srcQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>srcAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818",
- "text": " For any element of <code>pBufferMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>dstQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>dstAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819",
- "text": " For any element of <code>pImageMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>srcQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>srcAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820",
- "text": " For any element of <code>pImageMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>dstQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>dstAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-pDependencies-02285",
- "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the render pass <strong class=\"purple\">must</strong> have been created with at least one <a href=\"#VkSubpassDependency\">VkSubpassDependency</a> instance in <code>VkRenderPassCreateInfo</code>::<code>pDependencies</code> that expresses a dependency from the current subpass to itself, with <a href=\"#synchronization-dependencies-scopes\">synchronization scopes</a> and <a href=\"#synchronization-dependencies-access-scopes\">access scopes</a> that are all supersets of the scopes defined in this command"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178",
- "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, it <strong class=\"purple\">must</strong> not include any buffer memory barriers"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-image-04073",
- "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the <code>image</code> member of any image memory barrier included in this command <strong class=\"purple\">must</strong> be an attachment used in the current subpass both as an input attachment, and as either a color or depth/stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-01181",
- "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the <code>oldLayout</code> and <code>newLayout</code> members of any image memory barrier included in this command <strong class=\"purple\">must</strong> be equal"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182",
- "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members of any image memory barrier included in this command <strong class=\"purple\">must</strong> be equal"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-06461",
- "text": " Any pipeline stage included in <code>srcStageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-06462",
- "text": " Any pipeline stage included in <code>dstStageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-parameter",
- "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-parameter",
- "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-parameter",
- "text": " <code>dependencyFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDependencyFlagBits\">VkDependencyFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter",
- "text": " If <code>memoryBarrierCount</code> is not <code>0</code>, <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryBarrierCount</code> valid <a href=\"#VkMemoryBarrier\">VkMemoryBarrier</a> structures"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter",
- "text": " If <code>bufferMemoryBarrierCount</code> is not <code>0</code>, <code>pBufferMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferMemoryBarrierCount</code> valid <a href=\"#VkBufferMemoryBarrier\">VkBufferMemoryBarrier</a> structures"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter",
- "text": " If <code>imageMemoryBarrierCount</code> is not <code>0</code>, <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageMemoryBarrierCount</code> valid <a href=\"#VkImageMemoryBarrier\">VkImageMemoryBarrier</a> structures"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
- }
- ],
- "(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04092",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04092",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04093",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04093",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04094",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04094",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- }
- ],
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04095",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04096",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04095",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04096",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04097",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04097",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-03937",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-03937",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04996",
- "text": " pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04996",
- "text": " pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-01186",
- "text": " If fname:vkCmdPipelineBarrier is called outside of a render pass instance, <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code> <strong class=\"purple\">must</strong> not be included in the dependency flags"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdPipelineBarrier-None-06191",
- "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the render pass <strong class=\"purple\">must</strong> not have been started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
- }
- ]
- },
- "VkMemoryBarrier2": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03929",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03930",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03900",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03901",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03902",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03903",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03904",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03905",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03906",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03907",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03908",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03909",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03910",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03911",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03912",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03913",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03914",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03915",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03916",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03917",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03929",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03930",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03900",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03901",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03902",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03903",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03904",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03905",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03906",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03907",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03908",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03909",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03910",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03911",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03912",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03913",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03914",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03915",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03916",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03917",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_BARRIER_2</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcStageMask-parameter",
- "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-parameter",
- "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstStageMask-parameter",
- "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-parameter",
- "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03931",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03918",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03931",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03918",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03932",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03919",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03932",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03919",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03933",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03920",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04747",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03922",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03933",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03920",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04747",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03922",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03934",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcStageMask-03935",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03934",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstStageMask-03935",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcStageMask-04956",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03923",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstStageMask-04956",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03923",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcStageMask-04957",
- "text": " If the <a href=\"#features-subpassShading\">subpass shading</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstStageMask-04957",
- "text": " If the <a href=\"#features-subpassShading\">subpass shading</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcStageMask-04995",
- "text": " If the <a href=\"#features-invocationMask\">invocation mask image</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04994",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstStageMask-04995",
- "text": " If the <a href=\"#features-invocationMask\">invocation mask image</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04994",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03924",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03925",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03924",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03925",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03926",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03926",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03927",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03928",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03927",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03928",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-06254",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-06254",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-06255",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-06255",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-06256",
- "text": " If <a href=\"#features-rayQuery\"><code>rayQuery</code></a> is not enabled and pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-06256",
- "text": " If <a href=\"#features-rayQuery\"><code>rayQuery</code></a> is not enabled and pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-06257",
- "text": " If <a href=\"#features-rayQuery\"><code>rayQuery</code></a> is not enabled and pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-06257",
- "text": " If <a href=\"#features-rayQuery\"><code>rayQuery</code></a> is not enabled and pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04858",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04859",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04858",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04859",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)": [
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04860",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-04861",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04860",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-04861",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
- }
- ]
- },
- "VkMemoryBarrier": {
- "core": [
- {
- "vuid": "VUID-VkMemoryBarrier-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_BARRIER</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkMemoryBarrier-srcAccessMask-parameter",
- "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkMemoryBarrier-dstAccessMask-parameter",
- "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values"
- }
- ]
- },
- "VkBufferMemoryBarrier2": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03929",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03930",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03900",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03901",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03902",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03903",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03904",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03905",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03906",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03907",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03908",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03909",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03910",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03911",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03912",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03913",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03914",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03915",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03916",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03917",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03929",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03930",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03900",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03901",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03902",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03903",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03904",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03905",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03906",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03907",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03908",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03909",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03910",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03911",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03912",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03913",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03914",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03915",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03916",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03917",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-offset-01187",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-size-01188",
- "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-size-01189",
- "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to than the size of <code>buffer</code> minus <code>offset</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-buffer-01931",
- "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03851",
- "text": " If either <code>srcStageMask</code> or <code>dstStageMask</code> includes <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be equal"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-parameter",
- "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-parameter",
- "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-parameter",
- "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-parameter",
- "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03931",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03918",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03931",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03918",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03932",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03919",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03932",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03919",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03933",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03920",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04747",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03922",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03933",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03920",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04747",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03922",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03934",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-03935",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03934",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-03935",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-04956",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03923",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-04956",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03923",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-04957",
- "text": " If the <a href=\"#features-subpassShading\">subpass shading</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-04957",
- "text": " If the <a href=\"#features-subpassShading\">subpass shading</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-04995",
- "text": " If the <a href=\"#features-invocationMask\">invocation mask image</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04994",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-04995",
- "text": " If the <a href=\"#features-invocationMask\">invocation mask image</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04994",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03924",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03925",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03924",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03925",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03926",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03926",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03927",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03928",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03927",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03928",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-06254",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-06254",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-06255",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-06255",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-06256",
- "text": " If <a href=\"#features-rayQuery\"><code>rayQuery</code></a> is not enabled and pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-06256",
- "text": " If <a href=\"#features-rayQuery\"><code>rayQuery</code></a> is not enabled and pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-06257",
- "text": " If <a href=\"#features-rayQuery\"><code>rayQuery</code></a> is not enabled and pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-06257",
- "text": " If <a href=\"#features-rayQuery\"><code>rayQuery</code></a> is not enabled and pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04858",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04859",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04858",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04859",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04860",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-04861",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04860",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-04861",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-buffer-04086",
- "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be valid queue families"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087",
- "text": " If <code>srcQueueFamilyIndex</code> is not equal to <code>dstQueueFamilyIndex</code>, at least one <strong class=\"purple\">must</strong> not be a special queue family reserved for external memory ownership transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-buffer-04088",
- "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is one of the special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier2-buffer-04089",
- "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
- }
- ]
- },
- "VkBufferMemoryBarrier": {
- "core": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier-offset-01187",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier-size-01188",
- "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier-size-01189",
- "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to than the size of <code>buffer</code> minus <code>offset</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier-buffer-01931",
- "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier-buffer-04086",
- "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be valid queue families"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier-synchronization2-03852",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code> feature</a> is not enabled, and <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be <code>VK_QUEUE_FAMILY_IGNORED</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087",
- "text": " If <code>srcQueueFamilyIndex</code> is not equal to <code>dstQueueFamilyIndex</code>, at least one <strong class=\"purple\">must</strong> not be a special queue family reserved for external memory ownership transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier-buffer-04088",
- "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is one of the special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier-buffer-04089",
- "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
- },
- {
- "vuid": "VUID-VkBufferMemoryBarrier-synchronization2-03853",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code> feature</a> is not enabled, and <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, at least one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
- }
- ]
- },
- "VkImageMemoryBarrier2": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03929",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03930",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03900",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03901",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03902",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03903",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03904",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03905",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03906",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03907",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03908",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03909",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03910",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03911",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03912",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03913",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03914",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03915",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03916",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03917",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03929",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03930",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03900",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03901",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INDEX_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03902",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03903",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03904",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_UNIFORM_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03905",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_SAMPLED_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03906",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03907",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03908",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03909",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADER_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03910",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03911",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03912",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03913",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03914",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFER_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03915",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFER_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COPY_BIT</code>, <code>VK_PIPELINE_STAGE_2_BLIT_BIT</code>, <code>VK_PIPELINE_STAGE_2_RESOLVE_BIT</code>, <code>VK_PIPELINE_STAGE_2_CLEAR_BIT</code>, <code>VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT</code>, <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03916",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_HOST_READ_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03917",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_HOST_WRITE_BIT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01486",
- "text": " <code>subresourceRange.baseMipLevel</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"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01724",
- "text": " If <code>subresourceRange.levelCount</code> is not <code>VK_REMAINING_MIP_LEVELS</code>, <span class=\"eq\"><code>subresourceRange.baseMipLevel</code> &#43; <code>subresourceRange.levelCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01488",
- "text": " <code>subresourceRange.baseArrayLayer</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"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01725",
- "text": " If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <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"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-image-01932",
- "text": " If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01208",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01209",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01210",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01211",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01212",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01213",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01197",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>oldLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or the current layout of the image subresources affected by the barrier"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-newLayout-01198",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>newLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03854",
- "text": " If either <code>srcStageMask</code> or <code>dstStageMask</code> includes <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be equal"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03855",
- "text": " If <code>srcStageMask</code> includes <code>VK_PIPELINE_STAGE_2_HOST_BIT</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>oldLayout</code> <strong class=\"purple\">must</strong> be one of <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2</code>"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-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-VkImageMemoryBarrier2-srcStageMask-parameter",
- "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-parameter",
- "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-parameter",
- "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-parameter",
- "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits2\">VkAccessFlagBits2</a> values"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-parameter",
- "text": " <code>oldLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-newLayout-parameter",
- "text": " <code>newLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-parameter",
- "text": " <code>subresourceRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structure"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03931",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03918",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03931",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03918",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03932",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03919",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03932",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03919",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03933",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03920",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04747",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03922",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03933",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03920",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04747",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03922",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03934",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-03935",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03934",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-03935",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-04956",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03923",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-04956",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03923",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>, <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-04957",
- "text": " If the <a href=\"#features-subpassShading\">subpass shading</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-04957",
- "text": " If the <a href=\"#features-subpassShading\">subpass shading</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-04995",
- "text": " If the <a href=\"#features-invocationMask\">invocation mask image</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04994",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-04995",
- "text": " If the <a href=\"#features-invocationMask\">invocation mask image</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04994",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03924",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03925",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03924",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03925",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03926",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03926",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT</code> <code>VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT</code>, or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03927",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03928",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03927",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code>, <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>, or one of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03928",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</code> or <code>VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-06254",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-06254",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-06255",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-06255",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-06256",
- "text": " If <a href=\"#features-rayQuery\"><code>rayQuery</code></a> is not enabled and pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-06256",
- "text": " If <a href=\"#features-rayQuery\"><code>rayQuery</code></a> is not enabled and pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages except <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-06257",
- "text": " If <a href=\"#features-rayQuery\"><code>rayQuery</code></a> is not enabled and pname:srcAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-06257",
- "text": " If <a href=\"#features-rayQuery\"><code>rayQuery</code></a> is not enabled and pname:dstAccessMask includes <code>VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> not include any of the <code>VK_PIPELINE_STAGE_*_SHADER_BIT</code> stages"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04858",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04859",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04858",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04859",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04860",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-04861",
- "text": " If pname:srcAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, pname:srcStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04860",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-04861",
- "text": " If pname:dstAccessMask includes <code>VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR</code>, pname:dstStageMask <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01658",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-01659",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04065",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04066",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04067",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04068",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03938",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL</code>, <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03939",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL</code>, <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-oldLayout-02088",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code> set"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-image-02902",
- "text": " If <code>image</code> has a color format, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-image-01671",
- "text": " If <code>image</code> has a single-plane color format or is not <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-image-01672",
- "text": " If <code>image</code> has a multi-planar format and the image is <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either at least one of <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, and <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>; or <strong class=\"purple\">must</strong> include <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-image-01673",
- "text": " If <code>image</code> has a multi-planar format with only two planes, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-image-01207",
- "text": " If <code>image</code> has a depth/stencil format with both depth and stencil components, 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>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "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\">separateDepthStencilLayouts</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\">separateDepthStencilLayouts</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>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-image-04069",
- "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be valid queue families"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070",
- "text": " If <code>srcQueueFamilyIndex</code> is not equal to <code>dstQueueFamilyIndex</code>, at least one <strong class=\"purple\">must</strong> not be a special queue family reserved for external memory ownership transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-image-04071",
- "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is one of the special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier2-image-04072",
- "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
- }
- ]
- },
- "VkImageMemoryBarrier": {
- "core": [
- {
- "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01486",
- "text": " <code>subresourceRange.baseMipLevel</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"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01724",
- "text": " If <code>subresourceRange.levelCount</code> is not <code>VK_REMAINING_MIP_LEVELS</code>, <span class=\"eq\"><code>subresourceRange.baseMipLevel</code> &#43; <code>subresourceRange.levelCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01488",
- "text": " <code>subresourceRange.baseArrayLayer</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"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01725",
- "text": " If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <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"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-image-01932",
- "text": " If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01208",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01209",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01210",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01211",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01212",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01213",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01197",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>oldLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or the current layout of the image subresources affected by the barrier"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-newLayout-01198",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>newLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER</code>"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-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-VkImageMemoryBarrier-oldLayout-parameter",
- "text": " <code>oldLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-newLayout-parameter",
- "text": " <code>newLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-parameter",
- "text": " <code>subresourceRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structure"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01658",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01659",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04065",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04066",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04067",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04068",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03938",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL</code>, <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03939",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL</code>, <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
- }
- ],
- "(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier-oldLayout-02088",
- "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define an <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code> set"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier-image-02902",
- "text": " If <code>image</code> has a color format, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier-image-01671",
- "text": " If <code>image</code> has a single-plane color format or is not <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-image-01672",
- "text": " If <code>image</code> has a multi-planar format and the image is <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either at least one of <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, and <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>; or <strong class=\"purple\">must</strong> include <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-image-01673",
- "text": " If <code>image</code> has a multi-planar format with only two planes, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
- }
- ],
- "!(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier-image-01207",
- "text": " If <code>image</code> has a depth/stencil format with both depth and stencil components, 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>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "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\">separateDepthStencilLayouts</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\">separateDepthStencilLayouts</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>"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier-image-04069",
- "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be valid queue families"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-synchronization2-03856",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code> feature</a> is not enabled, and <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be <code>VK_QUEUE_FAMILY_IGNORED</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070",
- "text": " If <code>srcQueueFamilyIndex</code> is not equal to <code>dstQueueFamilyIndex</code>, at least one <strong class=\"purple\">must</strong> not be a special queue family reserved for external memory ownership transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-image-04071",
- "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is one of the special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-image-04072",
- "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>"
- },
- {
- "vuid": "VUID-VkImageMemoryBarrier-synchronization2-03857",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code> feature</a> is not enabled, and <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, at least one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>"
- }
- ]
- },
- "vkQueueWaitIdle": {
- "core": [
- {
- "vuid": "VUID-vkQueueWaitIdle-queue-parameter",
- "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
- }
- ]
- },
- "vkDeviceWaitIdle": {
- "core": [
- {
- "vuid": "VUID-vkDeviceWaitIdle-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- }
- ]
- },
- "vkGetCalibratedTimestampsEXT": {
- "(VK_EXT_calibrated_timestamps)": [
- {
- "vuid": "VUID-vkGetCalibratedTimestampsEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameter",
- "text": " <code>pTimestampInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>timestampCount</code> valid <a href=\"#VkCalibratedTimestampInfoEXT\">VkCalibratedTimestampInfoEXT</a> structures"
- },
- {
- "vuid": "VUID-vkGetCalibratedTimestampsEXT-pTimestamps-parameter",
- "text": " <code>pTimestamps</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>timestampCount</code> <code>uint64_t</code> values"
- },
- {
- "vuid": "VUID-vkGetCalibratedTimestampsEXT-pMaxDeviation-parameter",
- "text": " <code>pMaxDeviation</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint64_t</code> value"
- },
- {
- "vuid": "VUID-vkGetCalibratedTimestampsEXT-timestampCount-arraylength",
- "text": " <code>timestampCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkCalibratedTimestampInfoEXT": {
- "(VK_EXT_calibrated_timestamps)": [
- {
- "vuid": "VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354",
- "text": " <code>timeDomain</code> <strong class=\"purple\">must</strong> be one of the <a href=\"#VkTimeDomainEXT\">VkTimeDomainEXT</a> values returned by <a href=\"#vkGetPhysicalDeviceCalibrateableTimeDomainsEXT\">vkGetPhysicalDeviceCalibrateableTimeDomainsEXT</a>"
- },
- {
- "vuid": "VUID-VkCalibratedTimestampInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkCalibratedTimestampInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCalibratedTimestampInfoEXT-timeDomain-parameter",
- "text": " <code>timeDomain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkTimeDomainEXT\">VkTimeDomainEXT</a> value"
- }
- ]
- },
- "vkCmdBeginRendering": {
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdBeginRendering-dynamicRendering-06446",
- "text": " The <a href=\"#features-dynamicRendering\"><code>dynamicRendering</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdBeginRendering-commandBuffer-06068",
- "text": " If <code>commandBuffer</code> is a secondary command buffer, <code>pRenderingInfo-&gt;flags</code> <strong class=\"purple\">must</strong> not include <code>VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginRendering-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBeginRendering-pRenderingInfo-parameter",
- "text": " <code>pRenderingInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCmdBeginRendering-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBeginRendering-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBeginRendering-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ]
- },
- "VkRenderingInfo": {
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-VkRenderingInfo-viewMask-06069",
- "text": " If <code>viewMask</code> is <code>0</code>, <code>layerCount</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06070",
- "text": " If neither the <a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a> nor the <a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a> extensions are enabled, <code>imageView</code> members of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, and elements of <code>pColorAttachments</code> that are not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with the same <code>sampleCount</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06087",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, that <code>imageView</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06547",
- "text": " If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with a format that includes a depth aspect"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06088",
- "text": " If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06548",
- "text": " If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with a format that includes a stencil aspect"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06089",
- "text": " If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;imageView</code> <strong class=\"purple\">must</strong> have been created with a stencil usage including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06090",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>layout</code> member of that element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06091",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, if the <code>resolveMode</code> member of that element of <code>pColorAttachments</code> is not <code>VK_RESOLVE_MODE_NONE</code>, its <code>resolveImageLayout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06092",
- "text": " If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06093",
- "text": " If <code>pDepthAttachment</code> is not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pDepthAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pDepthAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06094",
- "text": " If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06095",
- "text": " If <code>pStencilAttachment</code> is not <code>NULL</code>, <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pStencilAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pStencilAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06106",
- "text": " <code>colorAttachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxColorAttachments</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-multiview-06127",
- "text": " If the <a href=\"#features-multiview\"><code>multiview</code></a> feature is not enabled, <code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_INFO</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pNext-pNext",
- "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=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>, <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>, or <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-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-VkRenderingInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkRenderingFlagBits\">VkRenderingFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pColorAttachments-parameter",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, <code>pColorAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkRenderingAttachmentInfo\">VkRenderingAttachmentInfo</a> structures"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pDepthAttachment-parameter",
- "text": " If <code>pDepthAttachment</code> is not <code>NULL</code>, <code>pDepthAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderingAttachmentInfo\">VkRenderingAttachmentInfo</a> structure"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pStencilAttachment-parameter",
- "text": " If <code>pStencilAttachment</code> is not <code>NULL</code>, <code>pStencilAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderingAttachmentInfo\">VkRenderingAttachmentInfo</a> structure"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkRenderingInfo-renderArea-06071",
- "text": " <code>renderArea.offset.x</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
- },
- {
- "vuid": "VUID-VkRenderingInfo-renderArea-06072",
- "text": " <code>renderArea.offset.y</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
- },
- {
- "vuid": "VUID-VkRenderingInfo-renderArea-06073",
- "text": " The sum of <code>renderArea.offset.x</code> and <code>renderArea.extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferWidth\"><code>maxFramebufferWidth</code></a>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-renderArea-06074",
- "text": " The sum of <code>renderArea.offset.y</code> and <code>renderArea.extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferHeight\"><code>maxFramebufferHeight</code></a>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06075",
- "text": " The width of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>renderArea.offset.x</code> &#43; <code>renderArea.extent.width</code></span>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06076",
- "text": " The height of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>renderArea.offset.y</code> &#43; <code>renderArea.extent.height</code></span>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkRenderingInfo-pNext-06077",
- "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.offset.x</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pNext-06078",
- "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.offset.y</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pNext-06079",
- "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, the width of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>renderArea.offset.x</code> &#43; <code>renderArea.extent.width</code></span>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pNext-06080",
- "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, the height of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>renderArea.offset.y</code> &#43; <code>renderArea.extent.height</code></span>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pNext-06083",
- "text": " If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, the width of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to the sum of the <code>offset.x</code> and <code>extent.width</code> members of each element of <code>pDeviceRenderAreas</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pNext-06084",
- "text": " If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, the height of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to the sum of the <code>offset.y</code> and <code>extent.height</code> members of each element of <code>pDeviceRenderAreas</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06085",
- "text": " If neither <code>pDepthAttachment</code> or <code>pStencilAttachment</code> are <code>NULL</code> and the <code>imageView</code> member of either structure is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>imageView</code> member of each structure <strong class=\"purple\">must</strong> be the same"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06086",
- "text": " If neither <code>pDepthAttachment</code> or <code>pStencilAttachment</code> are <code>NULL</code>, and the <code>resolveMode</code> member of each is not <code>VK_RESOLVE_MODE_NONE</code>, the <code>resolveImageView</code> member of each structure <strong class=\"purple\">must</strong> be the same"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_maintenance2,VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06096",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>layout</code> member of that element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06097",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, if the <code>resolveMode</code> member of that element of <code>pColorAttachments</code> is not <code>VK_RESOLVE_MODE_NONE</code>, its <code>resolveImageLayout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06098",
- "text": " If <code>pDepthAttachment</code> is not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pDepthAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pDepthAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06099",
- "text": " If <code>pStencilAttachment</code> is not <code>NULL</code>, <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>pStencilAttachment-&gt;resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>pStencilAttachment-&gt;resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_separate_depth_stencil_layouts,VK_VERSION_1_2)": [
- {
- "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06100",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>layout</code> member of that element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-06101",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code> and the <code>imageView</code> member of an element of <code>pColorAttachments</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, if the <code>resolveMode</code> member of that element of <code>pColorAttachments</code> is not <code>VK_RESOLVE_MODE_NONE</code>, its <code>resolveImageLayout</code> member <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_depth_stencil_resolve,VK_VERSION_1_2)": [
- {
- "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06102",
- "text": " If <code>pDepthAttachment</code> is not <code>NULL</code> and <code>pDepthAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pDepthAttachment-&gt;resolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedDepthResolveModes</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pStencilAttachment-06103",
- "text": " If <code>pStencilAttachment</code> is not <code>NULL</code> and <code>pStencilAttachment-&gt;imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pStencilAttachment-&gt;resolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedStencilResolveModes</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06104",
- "text": " If <code>pDepthAttachment</code> or <code>pStencilAttachment</code> are both not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> and <code>pStencilAttachment-&gt;imageView</code> are both not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_FALSE</code>, the <code>resolveMode</code> of both structures <strong class=\"purple\">must</strong> be the same value"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pDepthAttachment-06105",
- "text": " If <code>pDepthAttachment</code> or <code>pStencilAttachment</code> are both not <code>NULL</code>, <code>pDepthAttachment-&gt;imageView</code> and <code>pStencilAttachment-&gt;imageView</code> are both not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code>, and the <code>resolveMode</code> of neither structure is <code>VK_RESOLVE_MODE_NONE</code>, the <code>resolveMode</code> of both structures <strong class=\"purple\">must</strong> be the same value"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06107",
- "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#features-fragmentDensityMapNonSubsampledImages\">non-subsample image feature</a> is not enabled, valid <code>imageView</code> and <code>resolveImageView</code> members of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, and each element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> created with <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06116",
- "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> not be equal to the <code>imageView</code> or <code>resolveImageView</code> member of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, or any element of <code>pColorAttachments</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06108",
- "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>viewMask</code> is not <code>0</code>, <code>imageView</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> greater than or equal to the index of the most significant bit in <code>viewMask</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06109",
- "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>viewMask</code> is <code>0</code>, <code>imageView</code> <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_device_group)": [
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06110",
- "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)"
- },
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06111",
- "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkRenderingInfo-pNext-06112",
- "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 and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{x}+renderArea_{width}}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pNext-06113",
- "text": " If the <code>pNext</code> chain contains a <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> structure, its <code>deviceRenderAreaCount</code> member is not 0, and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\) for each element of <code>pDeviceRenderAreas</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pNext-06114",
- "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 and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{y}+renderArea_{height}}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pNext-06115",
- "text": " If the <code>pNext</code> chain contains a <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> structure, its <code>deviceRenderAreaCount</code> member is not 0, and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\) for each element of <code>pDeviceRenderAreas</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)+!(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06117",
- "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\\right\\rceil\\)"
- },
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06118",
- "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\\right\\rceil\\)"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkRenderingInfo-pNext-06119",
- "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 and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{x}+renderArea_{width}}{shadingRateAttachmentTexelSize_{width}}}\\right\\rceil\\)"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pNext-06120",
- "text": " If the <code>pNext</code> chain contains a <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> structure, its <code>deviceRenderAreaCount</code> member is not 0, and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a width greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{x}+pDeviceRenderAreas_{width}}{shadingRateAttachmentTexelSize_{width}}}\\right\\rceil\\) for each element of <code>pDeviceRenderAreas</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pNext-06121",
- "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 and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{renderArea_{y}+renderArea_{height}}{shadingRateAttachmentTexelSize_{height}}}\\right\\rceil\\)"
- },
- {
- "vuid": "VUID-VkRenderingInfo-pNext-06122",
- "text": " If the <code>pNext</code> chain contains a <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> structure, its <code>deviceRenderAreaCount</code> member is not 0, and the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> have a height greater than or equal to \\(\\left\\lceil{\\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{shadingRateAttachmentTexelSize_{height}}}\\right\\rceil\\) for each element of <code>pDeviceRenderAreas</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06123",
- "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>viewMask</code> is <code>0</code>, <code>imageView</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that is either equal to <code>1</code> or greater than or equal to <code>layerCount</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06124",
- "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>viewMask</code> is not <code>0</code>, <code>imageView</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that either equal to <code>1</code> or greater than or equal to the index of the most significant bit in <code>viewMask</code>"
- },
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06125",
- "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> not be equal to the <code>imageView</code> or <code>resolveImageView</code> member of <code>pDepthAttachment</code>, <code>pStencilAttachment</code>, or any element of <code>pColorAttachments</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkRenderingInfo-imageView-06126",
- "text": " If the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a> structure included in the <code>pNext</code> chain is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> not be equal to the <code>imageView</code> member of a <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a> structure included in the <code>pNext</code> chain"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkRenderingInfo-viewMask-06128",
- "text": " The index of the most significant bit in <code>viewMask</code> <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxMultiviewViewCount\"><code>maxMultiviewViewCount</code></a>"
- }
- ]
- },
- "VkRenderingAttachmentInfo": {
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06129",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and has a non-integer color format, <code>resolveMode</code> <strong class=\"purple\">must</strong> be <code>VK_RESOLVE_MODE_NONE</code> or <code>VK_RESOLVE_MODE_AVERAGE_BIT</code>"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06130",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and has an integer color format, <code>resolveMode</code> <strong class=\"purple\">must</strong> be <code>VK_RESOLVE_MODE_NONE</code> or <code>VK_RESOLVE_MODE_SAMPLE_ZERO_BIT</code>"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06132",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>imageView</code> <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06133",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06134",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>imageView</code> and <code>resolveImageView</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkFormat\">VkFormat</a>"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06135",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06136",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO</code>"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-parameter",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageLayout-parameter",
- "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-parameter",
- "text": " If <code>resolveMode</code> is not <code>0</code>, <code>resolveMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkResolveModeFlagBits\">VkResolveModeFlagBits</a> value"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-resolveImageView-parameter",
- "text": " If <code>resolveImageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-resolveImageLayout-parameter",
- "text": " <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-loadOp-parameter",
- "text": " <code>loadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-storeOp-parameter",
- "text": " <code>storeOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-clearValue-parameter",
- "text": " <code>clearValue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkClearValue\">VkClearValue</a> union"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-commonparent",
- "text": " Both of <code>imageView</code>, and <code>resolveImageView</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_3,VK_KHR_dynamic_rendering)+!(VK_KHR_depth_stencil_resolve,VK_VERSION_1_2)": [
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06131",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and has a depth or stencil format, <code>resolveMode</code> <strong class=\"purple\">must</strong> be <code>VK_RESOLVE_MODE_NONE</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_separate_depth_stencil_layouts,VK_VERSION_1_2)": [
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06137",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06138",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV</code>"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06139",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06140",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT</code>"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06141",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06142",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06143",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code>"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06144",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_swapchain)": [
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06145",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>"
- },
- {
- "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06146",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>resolveMode</code> is not <code>VK_RESOLVE_MODE_NONE</code>, <code>resolveImageLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>"
- }
- ]
- },
- "VkRenderingFragmentShadingRateAttachmentInfoKHR": {
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06147",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_GENERAL</code> or <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code>"
- },
- {
- "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06148",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06149",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be a power of two value"
- },
- {
- "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06150",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSize\"><code>maxFragmentShadingRateAttachmentTexelSize.width</code></a>"
- },
- {
- "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06151",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minFragmentShadingRateAttachmentTexelSize\"><code>minFragmentShadingRateAttachmentTexelSize.width</code></a>"
- },
- {
- "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06152",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be a power of two value"
- },
- {
- "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06153",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSize\"><code>maxFragmentShadingRateAttachmentTexelSize.height</code></a>"
- },
- {
- "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06154",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minFragmentShadingRateAttachmentTexelSize\"><code>minFragmentShadingRateAttachmentTexelSize.height</code></a>"
- },
- {
- "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06155",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the quotient of <code>shadingRateAttachmentTexelSize.width</code> and <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio\"><code>maxFragmentShadingRateAttachmentTexelSizeAspectRatio</code></a>"
- },
- {
- "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06156",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the quotient of <code>shadingRateAttachmentTexelSize.height</code> and <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio\"><code>maxFragmentShadingRateAttachmentTexelSizeAspectRatio</code></a>"
- },
- {
- "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-parameter",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
- },
- {
- "vuid": "VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageLayout-parameter",
- "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- }
- ]
- },
- "VkRenderingFragmentDensityMapAttachmentInfoEXT": {
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06157",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>layout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_GENERAL</code> or <code>VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT</code>"
- },
- {
- "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06158",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06159",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> not have been created with <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-parameter",
- "text": " <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
- },
- {
- "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageLayout-parameter",
- "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+!(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06160",
- "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>"
- }
- ]
- },
- "vkCmdEndRendering": {
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdEndRendering-None-06161",
- "text": " The current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
- },
- {
- "vuid": "VUID-vkCmdEndRendering-commandBuffer-06162",
- "text": " The current render pass instance <strong class=\"purple\">must</strong> have been begun in <code>commandBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdEndRendering-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdEndRendering-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdEndRendering-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdEndRendering-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- }
- ]
- },
- "vkCreateRenderPass": {
- "core": [
- {
- "vuid": "VUID-vkCreateRenderPass-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateRenderPass-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateRenderPass-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"
- },
- {
- "vuid": "VUID-vkCreateRenderPass-pRenderPass-parameter",
- "text": " <code>pRenderPass</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
- }
- ]
- },
- "VkRenderPassCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkRenderPassCreateInfo-attachment-00834",
- "text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code>, <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code>, or any element of <code>pPreserveAttachments</code> in any element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then it <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-00836",
- "text": " For any member of <code>pAttachments</code> with a <code>loadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-02511",
- "text": " For any member of <code>pAttachments</code> with a <code>stencilLoadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-00837",
- "text": " For any element of <code>pDependencies</code>, if the <code>srcSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, all stage flags included in the <code>srcStageMask</code> member of that dependency <strong class=\"purple\">must</strong> be a pipeline stage supported by the <a href=\"#synchronization-pipeline-stages-types\">pipeline</a> identified by the <code>pipelineBindPoint</code> member of the source subpass"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-00838",
- "text": " For any element of <code>pDependencies</code>, if the <code>dstSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, all stage flags included in the <code>dstStageMask</code> member of that dependency <strong class=\"purple\">must</strong> be a pipeline stage supported by the <a href=\"#synchronization-pipeline-stages-types\">pipeline</a> identified by the <code>pipelineBindPoint</code> member of the destination subpass"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-srcSubpass-02517",
- "text": " The <code>srcSubpass</code> member of each element of <code>pDependencies</code> <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-dstSubpass-02518",
- "text": " The <code>dstSubpass</code> member of each element of <code>pDependencies</code> <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pNext-pNext",
- "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=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a>, <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a>, or <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-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-VkRenderPassCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkRenderPassCreateFlagBits\">VkRenderPassCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-parameter",
- "text": " If <code>attachmentCount</code> is not <code>0</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkAttachmentDescription\">VkAttachmentDescription</a> structures"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pSubpasses-parameter",
- "text": " <code>pSubpasses</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>subpassCount</code> valid <a href=\"#VkSubpassDescription\">VkSubpassDescription</a> structures"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-parameter",
- "text": " If <code>dependencyCount</code> is not <code>0</code>, <code>pDependencies</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dependencyCount</code> valid <a href=\"#VkSubpassDependency\">VkSubpassDependency</a> structures"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-subpassCount-arraylength",
- "text": " <code>subpassCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkRenderPassCreateInfo-fragmentDensityMapAttachment-06471",
- "text": " If the pNext chain includes a <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a> structure and the <code>fragmentDensityMapAttachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, then <code>attachment</code> <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-01566",
- "text": " For any member of <code>pAttachments</code> with a <code>loadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-01567",
- "text": " For any member of <code>pAttachments</code> with a <code>stencilLoadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pNext-01926",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a> structure, the <code>subpass</code> member of each element of its <code>pAspectReferences</code> member <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pNext-01927",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a> structure, the <code>inputAttachmentIndex</code> member of each element of its <code>pAspectReferences</code> member <strong class=\"purple\">must</strong> be less than the value of <code>inputAttachmentCount</code> in the element of <code>pSubpasses</code> identified by its <code>subpass</code> member"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pNext-01963",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a> structure, for any element of the <code>pInputAttachments</code> member of any element of <code>pSubpasses</code> where the <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, the <code>aspectMask</code> member of the corresponding element of <a href=\"#VkRenderPassInputAttachmentAspectCreateInfo\">VkRenderPassInputAttachmentAspectCreateInfo</a>::<code>pAspectReferences</code> <strong class=\"purple\">must</strong> only include aspects that are present in images of the format specified by the element of <code>pAttachments</code> at <code>attachment</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pNext-01928",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, and its <code>subpassCount</code> member is not zero, that member <strong class=\"purple\">must</strong> be equal to the value of <code>subpassCount</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pNext-01929",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, if its <code>dependencyCount</code> member is not zero, it <strong class=\"purple\">must</strong> be equal to <code>dependencyCount</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pNext-01930",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, for each non-zero element of <code>pViewOffsets</code>, the <code>srcSubpass</code> and <code>dstSubpass</code> members of <code>pDependencies</code> at the same index <strong class=\"purple\">must</strong> not be equal"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pNext-02512",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, for any element of <code>pDependencies</code> with a <code>dependencyFlags</code> member that does not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, the corresponding element of the <code>pViewOffsets</code> member of that <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> instance <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pNext-02513",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, elements of its <code>pViewMasks</code> member <strong class=\"purple\">must</strong> either all be <code>0</code>, or all not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo-pNext-02514",
- "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>, the <code>dependencyFlags</code> member of each element of <code>pDependencies</code> <strong class=\"purple\">must</strong> not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>"
- },
- {
- "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>"
- }
- ]
- },
- "VkRenderPassMultiviewCreateInfo": {
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-00841",
- "text": " Each view index <strong class=\"purple\">must</strong> not be set in more than one element of <code>pCorrelationMasks</code>"
- },
- {
- "vuid": "VUID-VkRenderPassMultiviewCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-parameter",
- "text": " If <code>subpassCount</code> is not <code>0</code>, <code>pViewMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>subpassCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pViewOffsets-parameter",
- "text": " If <code>dependencyCount</code> is not <code>0</code>, <code>pViewOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dependencyCount</code> <code>int32_t</code> values"
- },
- {
- "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-parameter",
- "text": " If <code>correlationMaskCount</code> is not <code>0</code>, <code>pCorrelationMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>correlationMaskCount</code> <code>uint32_t</code> values"
- }
- ]
- },
- "VkMultiviewPerViewAttributesInfoNVX": {
- "(VK_NVX_multiview_per_view_attributes)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-VkMultiviewPerViewAttributesInfoNVX-perViewAttributesPositionXOnly-06163",
- "text": " If <code>perViewAttributesPositionXOnly</code> is <code>VK_TRUE</code> then <code>perViewAttributes</code> <strong class=\"purple\">must</strong> also be <code>VK_TRUE</code>"
- },
- {
- "vuid": "VUID-VkMultiviewPerViewAttributesInfoNVX-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX</code>"
- }
- ]
- },
- "VkRenderPassFragmentDensityMapCreateInfoEXT": {
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02548",
- "text": " If <code>fragmentDensityMapAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> not be an element of <code>VkSubpassDescription</code>::<code>pInputAttachments</code>, <code>VkSubpassDescription</code>::<code>pColorAttachments</code>, <code>VkSubpassDescription</code>::<code>pResolveAttachments</code>, <code>VkSubpassDescription</code>::<code>pDepthStencilAttachment</code>, or <code>VkSubpassDescription</code>::<code>pPreserveAttachments</code> for any subpass"
- },
- {
- "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02549",
- "text": " If <code>fragmentDensityMapAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>layout</code> <strong class=\"purple\">must</strong> be equal to <code>VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT</code>, or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02550",
- "text": " If <code>fragmentDensityMapAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> reference an attachment with a <code>loadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_LOAD</code> or <code>VK_ATTACHMENT_LOAD_OP_DONT_CARE</code>"
- },
- {
- "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02551",
- "text": " If <code>fragmentDensityMapAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> reference an attachment with a <code>storeOp</code> equal to <code>VK_ATTACHMENT_STORE_OP_DONT_CARE</code>"
- },
- {
- "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-parameter",
- "text": " <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structure"
- }
- ]
- },
- "VkAttachmentDescription": {
- "core": [
- {
- "vuid": "VUID-VkAttachmentDescription-finalLayout-00843",
- "text": " <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-format-03280",
- "text": " If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-format-03281",
- "text": " If <code>format</code> is a depth/stencil format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-format-03282",
- "text": " If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-format-03283",
- "text": " If <code>format</code> is a depth/stencil format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAttachmentDescriptionFlagBits\">VkAttachmentDescriptionFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-samples-parameter",
- "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-loadOp-parameter",
- "text": " <code>loadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-storeOp-parameter",
- "text": " <code>storeOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-stencilLoadOp-parameter",
- "text": " <code>stencilLoadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-stencilStoreOp-parameter",
- "text": " <code>stencilStoreOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-initialLayout-parameter",
- "text": " <code>initialLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-finalLayout-parameter",
- "text": " <code>finalLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-VkAttachmentDescription-format-06487",
- "text": " If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-format-06488",
- "text": " If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-VkAttachmentDescription-separateDepthStencilLayouts-03284",
- "text": " If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-separateDepthStencilLayouts-03285",
- "text": " If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-format-03286",
- "text": " If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-format-03287",
- "text": " If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-format-03288",
- "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-format-03289",
- "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-format-03290",
- "text": " If <code>format</code> is a depth/stencil format which includes only the depth aspect, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-format-03291",
- "text": " If <code>format</code> is a depth/stencil format which includes only the depth aspect, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-format-03292",
- "text": " If <code>format</code> is a depth/stencil format which includes only the stencil aspect, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription-format-03293",
- "text": " If <code>format</code> is a depth/stencil format which includes only the stencil aspect, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
- }
- ]
- },
- "VkRenderPassInputAttachmentAspectCreateInfo": {
- "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-VkRenderPassInputAttachmentAspectCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkRenderPassInputAttachmentAspectCreateInfo-pAspectReferences-parameter",
- "text": " <code>pAspectReferences</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>aspectReferenceCount</code> valid <a href=\"#VkInputAttachmentAspectReference\">VkInputAttachmentAspectReference</a> structures"
- },
- {
- "vuid": "VUID-VkRenderPassInputAttachmentAspectCreateInfo-aspectReferenceCount-arraylength",
- "text": " <code>aspectReferenceCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkInputAttachmentAspectReference": {
- "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-01964",
- "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_METADATA_BIT</code>"
- },
- {
- "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-parameter",
- "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-requiredbitmask",
- "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-02250",
- "text": " <code>aspectMask</code> <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>"
- }
- ]
- },
- "VkSubpassDescription": {
- "!(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-VkSubpassDescription-pipelineBindPoint-00844",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- }
- ],
- "(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-VkSubpassDescription-pipelineBindPoint-04952",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> or <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>"
- }
- ],
- "core": [
- {
- "vuid": "VUID-VkSubpassDescription-colorAttachmentCount-00845",
- "text": " <code>colorAttachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxColorAttachments</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription-loadOp-00846",
- "text": " If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then <code>loadOp</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00847",
- "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00848",
- "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00849",
- "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00850",
- "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkFormat\">VkFormat</a> as its corresponding color attachment"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pColorAttachments-01417",
- "text": " All attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have the same sample count"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pInputAttachments-02647",
- "text": " All attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain at least <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pColorAttachments-02648",
- "text": " All attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pResolveAttachments-02649",
- "text": " All attachments in <code>pResolveAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-02650",
- "text": " If <code>pDepthStencilAttachment</code> is not <code>NULL</code> and the attachment is not <code>VK_ATTACHMENT_UNUSED</code> then it <strong class=\"purple\">must</strong> have an image format whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-01418",
- "text": " If neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, and if <code>pDepthStencilAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code> and any attachments in <code>pColorAttachments</code> are not <code>VK_ATTACHMENT_UNUSED</code>, they <strong class=\"purple\">must</strong> have the same sample count"
- },
- {
- "vuid": "VUID-VkSubpassDescription-attachment-00853",
- "text": " Each element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pPreserveAttachments-00854",
- "text": " Each element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not also be an element of any other member of the subpass description"
- },
- {
- "vuid": "VUID-VkSubpassDescription-layout-02519",
- "text": " If any attachment is used by more than one <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> member, then each use <strong class=\"purple\">must</strong> use the same <code>layout</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription-None-04437",
- "text": " Each attachment <strong class=\"purple\">must</strong> follow the <a href=\"#attachment-type-imagelayout\">image layout requirements</a> specified for its attachment type"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-04438",
- "text": " <code>pDepthStencilAttachment</code> and <code>pColorAttachments</code> must not contain references to the same attachment"
- },
- {
- "vuid": "VUID-VkSubpassDescription-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSubpassDescriptionFlagBits\">VkSubpassDescriptionFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pipelineBindPoint-parameter",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pInputAttachments-parameter",
- "text": " If <code>inputAttachmentCount</code> is not <code>0</code>, <code>pInputAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>inputAttachmentCount</code> valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structures"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pColorAttachments-parameter",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, <code>pColorAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structures"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pResolveAttachments-parameter",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, and <code>pResolveAttachments</code> is not <code>NULL</code>, <code>pResolveAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structures"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-parameter",
- "text": " If <code>pDepthStencilAttachment</code> is not <code>NULL</code>, <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> structure"
- },
- {
- "vuid": "VUID-VkSubpassDescription-pPreserveAttachments-parameter",
- "text": " If <code>preserveAttachmentCount</code> is not <code>0</code>, <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>preserveAttachmentCount</code> <code>uint32_t</code> values"
- }
- ],
- "(VK_NV_linear_color_attachment)": [
- {
- "vuid": "VUID-VkSubpassDescription-linearColorAttachment-06496",
- "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription-linearColorAttachment-06497",
- "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription-linearColorAttachment-06498",
- "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pResolveAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
- }
- ],
- "(VK_AMD_mixed_attachment_samples)": [
- {
- "vuid": "VUID-VkSubpassDescription-pColorAttachments-01506",
- "text": " If the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension is enabled, and all attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count that is smaller than or equal to the sample count of <code>pDepthStencilAttachment</code> if it is not <code>VK_ATTACHMENT_UNUSED</code>"
- }
- ],
- "(VK_NVX_multiview_per_view_attributes)": [
- {
- "vuid": "VUID-VkSubpassDescription-flags-00856",
- "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX</code>, it <strong class=\"purple\">must</strong> also include <code>VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX</code>"
- }
- ],
- "(VK_QCOM_render_pass_shader_resolve)": [
- {
- "vuid": "VUID-VkSubpassDescription-flags-03341",
- "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pResolveAttachments</code> is not <code>NULL</code>, then each resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription-flags-03343",
- "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_QCOM_render_pass_transform)": [
- {
- "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>"
- }
- ]
- },
- "VkAttachmentReference": {
- "core": [
- {
- "vuid": "VUID-VkAttachmentReference-layout-00857",
- "text": " If <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentReference-layout-parameter",
- "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- }
- ]
- },
- "VkSubpassDependency": {
- "core": [
- {
- "vuid": "VUID-VkSubpassDependency-srcStageMask-04090",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-srcStageMask-04091",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dstStageMask-04090",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dstStageMask-04091",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-srcSubpass-00864",
- "text": " <code>srcSubpass</code> <strong class=\"purple\">must</strong> be less than or equal to <code>dstSubpass</code>, unless one of them is <code>VK_SUBPASS_EXTERNAL</code>, to avoid cyclic dependencies and ensure a valid execution order"
- },
- {
- "vuid": "VUID-VkSubpassDependency-srcSubpass-00865",
- "text": " <code>srcSubpass</code> and <code>dstSubpass</code> <strong class=\"purple\">must</strong> not both be equal to <code>VK_SUBPASS_EXTERNAL</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-srcSubpass-00867",
- "text": " If <code>srcSubpass</code> is equal to <code>dstSubpass</code> and not all of the stages in <code>srcStageMask</code> and <code>dstStageMask</code> are <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stages</a>, the <a href=\"#synchronization-pipeline-stages-order\">logically latest</a> pipeline stage in <code>srcStageMask</code> <strong class=\"purple\">must</strong> be <a href=\"#synchronization-pipeline-stages-order\">logically earlier</a> than or equal to the <a href=\"#synchronization-pipeline-stages-order\">logically earliest</a> pipeline stage in <code>dstStageMask</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-srcAccessMask-00868",
- "text": " Any access flag included in <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be supported by one of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dstAccessMask-00869",
- "text": " Any access flag included in <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be supported by one of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-srcSubpass-02243",
- "text": " If <code>srcSubpass</code> equals <code>dstSubpass</code>, and <code>srcStageMask</code> and <code>dstStageMask</code> both include a <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stage</a>, then <code>dependencyFlags</code> <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_BY_REGION_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-srcStageMask-parameter",
- "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dstStageMask-parameter",
- "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSubpassDependency-srcAccessMask-parameter",
- "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dstAccessMask-parameter",
- "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dependencyFlags-parameter",
- "text": " <code>dependencyFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDependencyFlagBits\">VkDependencyFlagBits</a> values"
- }
- ],
- "(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-VkSubpassDependency-srcStageMask-04092",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dstStageMask-04092",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkSubpassDependency-srcStageMask-04093",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dstStageMask-04093",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-VkSubpassDependency-srcStageMask-04094",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dstStageMask-04094",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- }
- ],
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkSubpassDependency-srcStageMask-04095",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-srcStageMask-04096",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dstStageMask-04095",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dstStageMask-04096",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkSubpassDependency-srcStageMask-04097",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dstStageMask-04097",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkSubpassDependency-srcStageMask-03937",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dstStageMask-03937",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkSubpassDependency-srcStageMask-04996",
- "text": " pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dstStageMask-04996",
- "text": " pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkSubpassDependency-dependencyFlags-02520",
- "text": " If <code>dependencyFlags</code> includes <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>srcSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_SUBPASS_EXTERNAL</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-dependencyFlags-02521",
- "text": " If <code>dependencyFlags</code> includes <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>dstSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_SUBPASS_EXTERNAL</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency-srcSubpass-00872",
- "text": " If <code>srcSubpass</code> equals <code>dstSubpass</code> and that subpass has more than one bit set in the view mask, then <code>dependencyFlags</code> <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>"
- }
- ]
- },
- "vkCreateRenderPass2": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
- {
- "vuid": "VUID-vkCreateRenderPass2-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateRenderPass2-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderPassCreateInfo2\">VkRenderPassCreateInfo2</a> structure"
- },
- {
- "vuid": "VUID-vkCreateRenderPass2-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"
- },
- {
- "vuid": "VUID-vkCreateRenderPass2-pRenderPass-parameter",
- "text": " <code>pRenderPass</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
- }
- ]
- },
- "VkRenderPassCreateInfo2": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-None-03049",
- "text": " If any two subpasses operate on attachments with overlapping ranges of the same <code>VkDeviceMemory</code> object, and at least one subpass writes to that area of <code>VkDeviceMemory</code>, a subpass dependency <strong class=\"purple\">must</strong> be included (either directly or via some intermediate subpasses) between them"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-attachment-03050",
- "text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code>, <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code>, or the attachment indexed by any element of <code>pPreserveAttachments</code> in any given element of <code>pSubpasses</code> is bound to a range of a <code>VkDeviceMemory</code> object that overlaps with any other attachment in any subpass (including the same subpass), the <code>VkAttachmentDescription2</code> structures describing them <strong class=\"purple\">must</strong> include <code>VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT</code> in <code>flags</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-attachment-03051",
- "text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code>, <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code>, or any element of <code>pPreserveAttachments</code> in any given element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then it <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-02522",
- "text": " For any member of <code>pAttachments</code> with a <code>loadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-02523",
- "text": " For any member of <code>pAttachments</code> with a <code>stencilLoadOp</code> equal to <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>, the first use of that attachment <strong class=\"purple\">must</strong> not specify a <code>layout</code> equal to <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03054",
- "text": " For any element of <code>pDependencies</code>, if the <code>srcSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, all stage flags included in the <code>srcStageMask</code> member of that dependency <strong class=\"purple\">must</strong> be a pipeline stage supported by the <a href=\"#synchronization-pipeline-stages-types\">pipeline</a> identified by the <code>pipelineBindPoint</code> member of the source subpass"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03055",
- "text": " For any element of <code>pDependencies</code>, if the <code>dstSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, all stage flags included in the <code>dstStageMask</code> member of that dependency <strong class=\"purple\">must</strong> be a pipeline stage supported by the <a href=\"#synchronization-pipeline-stages-types\">pipeline</a> identified by the <code>pipelineBindPoint</code> member of the destination subpass"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-03056",
- "text": " The set of bits included in any element of <code>pCorrelatedViewMasks</code> <strong class=\"purple\">must</strong> not overlap with the set of bits included in any other element of <code>pCorrelatedViewMasks</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03057",
- "text": " If the <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a>::<code>viewMask</code> member of all elements of <code>pSubpasses</code> is <code>0</code>, <code>correlatedViewMaskCount</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03058",
- "text": " The <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a>::<code>viewMask</code> member of all elements of <code>pSubpasses</code> <strong class=\"purple\">must</strong> either all be <code>0</code>, or all not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03059",
- "text": " If the <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a>::<code>viewMask</code> member of all elements of <code>pSubpasses</code> is <code>0</code>, the <code>dependencyFlags</code> member of any element of <code>pDependencies</code> <strong class=\"purple\">must</strong> not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03060",
- "text": " For any element of <code>pDependencies</code> where its <code>srcSubpass</code> member equals its <code>dstSubpass</code> member, if the <code>viewMask</code> member of the corresponding element of <code>pSubpasses</code> includes more than one bit, its <code>dependencyFlags</code> member <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-attachment-02525",
- "text": " If the <code>attachment</code> member of any element of the <code>pInputAttachments</code> member of any element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, the <code>aspectMask</code> member of that element of <code>pInputAttachments</code> <strong class=\"purple\">must</strong> only include aspects that are present in images of the format specified by the element of <code>pAttachments</code> specified by <code>attachment</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-srcSubpass-02526",
- "text": " The <code>srcSubpass</code> member of each element of <code>pDependencies</code> <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-dstSubpass-02527",
- "text": " The <code>dstSubpass</code> member of each element of <code>pDependencies</code> <strong class=\"purple\">must</strong> be less than <code>subpassCount</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-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=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-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-VkRenderPassCreateInfo2-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkRenderPassCreateFlagBits\">VkRenderPassCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-parameter",
- "text": " If <code>attachmentCount</code> is not <code>0</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkAttachmentDescription2\">VkAttachmentDescription2</a> structures"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-pSubpasses-parameter",
- "text": " <code>pSubpasses</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>subpassCount</code> valid <a href=\"#VkSubpassDescription2\">VkSubpassDescription2</a> structures"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-parameter",
- "text": " If <code>dependencyCount</code> is not <code>0</code>, <code>pDependencies</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dependencyCount</code> valid <a href=\"#VkSubpassDependency2\">VkSubpassDependency2</a> structures"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-parameter",
- "text": " If <code>correlatedViewMaskCount</code> is not <code>0</code>, <code>pCorrelatedViewMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>correlatedViewMaskCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-subpassCount-arraylength",
- "text": " <code>subpassCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-fragmentDensityMapAttachment-06472",
- "text": " If the pNext chain includes a <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a> structure and the <code>fragmentDensityMapAttachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, then <code>attachment</code> <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-pSubpasses-06473",
- "text": " If the <code>pSubpasses</code> pNext chain includes a <a href=\"#VkSubpassDescriptionDepthStencilResolve\">VkSubpassDescriptionDepthStencilResolve</a> structure and the <code>pDepthStencilResolveAttachment</code> member is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, then <code>attachment</code> <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-04585",
- "text": " If any element of <code>pAttachments</code> is used as a fragment shading rate attachment in any subpass, it <strong class=\"purple\">must</strong> not be used as any other attachment in the render pass"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-04586",
- "text": " If any element of <code>pAttachments</code> is used as a fragment shading rate attachment in any subpass, it <strong class=\"purple\">must</strong> have an image format whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)+(VK_QCOM_render_pass_transform)": [
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-flags-04521",
- "text": " If <code>flags</code> includes <code>VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM</code>, an element of <code>pSubpasses</code> includes an instance of <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> in its <code>pNext</code> chain, and the <code>pFragmentShadingRateAttachment</code> member of that structure is not equal to <code>NULL</code>, the <code>attachment</code> member of <code>pFragmentShadingRateAttachment</code> <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_render_pass_shader_resolve)": [
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-rasterizationSamples-04905",
- "text": " If the pipeline is being created with fragment shader state, and the <a href=\"#VK_QCOM_render_pass_shader_resolve\">VK_QCOM_render_pass_shader_resolve</a> extension is enabled, and if subpass has any input attachments, and if the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then the sample count of the input attachments <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-sampleShadingEnable-04906",
- "text": " If the pipeline is being created with fragment shader state, and the <a href=\"#VK_QCOM_render_pass_shader_resolve\">VK_QCOM_render_pass_shader_resolve</a> extension is enabled, and if the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be false"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-flags-04907",
- "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pResolveAttachments</code> is not <code>NULL</code>, then each resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-flags-04908",
- "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code>, then the depth/stencil resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
- },
- {
- "vuid": "VUID-VkRenderPassCreateInfo2-flags-04909",
- "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"
- }
- ]
- },
- "VkAttachmentDescription2": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
- {
- "vuid": "VUID-VkAttachmentDescription2-finalLayout-03061",
- "text": " <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-format-03294",
- "text": " If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-format-03295",
- "text": " If <code>format</code> is a depth/stencil format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-format-03296",
- "text": " If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-format-03297",
- "text": " If <code>format</code> is a depth/stencil format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-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=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-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-VkAttachmentDescription2-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAttachmentDescriptionFlagBits\">VkAttachmentDescriptionFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-samples-parameter",
- "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-loadOp-parameter",
- "text": " <code>loadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-storeOp-parameter",
- "text": " <code>storeOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-stencilLoadOp-parameter",
- "text": " <code>stencilLoadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-stencilStoreOp-parameter",
- "text": " <code>stencilStoreOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-initialLayout-parameter",
- "text": " <code>initialLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-finalLayout-parameter",
- "text": " <code>finalLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03298",
- "text": " If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03299",
- "text": " If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-format-03300",
- "text": " If <code>format</code> is a color format, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-format-03301",
- "text": " If <code>format</code> is a color format, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-format-03302",
- "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, and <code>initialLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-format-03303",
- "text": " If <code>format</code> is a depth/stencil format which includes both depth and stencil aspects, and <code>finalLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> structure"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-format-03304",
- "text": " If <code>format</code> is a depth/stencil format which includes only the depth aspect, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-format-03305",
- "text": " If <code>format</code> is a depth/stencil format which includes only the depth aspect, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-format-03306",
- "text": " If <code>format</code> is a depth/stencil format which includes only the stencil aspect, <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescription2-format-03307",
- "text": " If <code>format</code> is a depth/stencil format which includes only the stencil aspect, <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
- }
- ]
- },
- "VkAttachmentDescriptionStencilLayout": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-03308",
- "text": " <code>stencilInitialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03309",
- "text": " <code>stencilFinalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03310",
- "text": " <code>stencilFinalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescriptionStencilLayout-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT</code>"
- },
- {
- "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-parameter",
- "text": " <code>stencilInitialLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-parameter",
- "text": " <code>stencilFinalLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- }
- ]
- },
- "VkSubpassDescription2": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+!(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-VkSubpassDescription2-pipelineBindPoint-03062",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-VkSubpassDescription2-pipelineBindPoint-04953",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> or <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
- {
- "vuid": "VUID-VkSubpassDescription2-colorAttachmentCount-03063",
- "text": " <code>colorAttachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxColorAttachments</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-loadOp-03064",
- "text": " If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then <code>loadOp</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03065",
- "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that does not have the value <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have the value <code>VK_ATTACHMENT_UNUSED</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03066",
- "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03067",
- "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03068",
- "text": " Any given element of <code>pResolveAttachments</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkFormat\">VkFormat</a> as its corresponding color attachment"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pColorAttachments-03069",
- "text": " All attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have the same sample count"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pInputAttachments-02897",
- "text": " All attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain at least <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pColorAttachments-02898",
- "text": " All attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-02899",
- "text": " All attachments in <code>pResolveAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-02900",
- "text": " If <code>pDepthStencilAttachment</code> is not <code>NULL</code> and the attachment is not <code>VK_ATTACHMENT_UNUSED</code> then it <strong class=\"purple\">must</strong> have an image format whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-03071",
- "text": " If neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, and if <code>pDepthStencilAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code> and any attachments in <code>pColorAttachments</code> are not <code>VK_ATTACHMENT_UNUSED</code>, they <strong class=\"purple\">must</strong> have the same sample count"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-attachment-03073",
- "text": " Each element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pPreserveAttachments-03074",
- "text": " Any given element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not also be an element of any other member of the subpass description"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-layout-02528",
- "text": " If any attachment is used by more than one <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> member, then each use <strong class=\"purple\">must</strong> use the same <code>layout</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-None-04439",
- "text": " Attachments <strong class=\"purple\">must</strong> follow the <a href=\"#attachment-type-imagelayout\">image layout requirements</a> based on the type of attachment it is being used as"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-attachment-02799",
- "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> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-attachment-02800",
- "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 be <code>0</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-attachment-02801",
- "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_METADATA_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-04440",
- "text": " An attachment <strong class=\"purple\">must</strong> not be used in both <code>pDepthStencilAttachment</code> and <code>pColorAttachments</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pNext-pNext",
- "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=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> or <a href=\"#VkSubpassDescriptionDepthStencilResolve\">VkSubpassDescriptionDepthStencilResolve</a>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-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-VkSubpassDescription2-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSubpassDescriptionFlagBits\">VkSubpassDescriptionFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pipelineBindPoint-parameter",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pInputAttachments-parameter",
- "text": " If <code>inputAttachmentCount</code> is not <code>0</code>, <code>pInputAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>inputAttachmentCount</code> valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structures"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pColorAttachments-parameter",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, <code>pColorAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structures"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-parameter",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, and <code>pResolveAttachments</code> is not <code>NULL</code>, <code>pResolveAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structures"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-parameter",
- "text": " If <code>pDepthStencilAttachment</code> is not <code>NULL</code>, <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structure"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-pPreserveAttachments-parameter",
- "text": " If <code>preserveAttachmentCount</code> is not <code>0</code>, <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>preserveAttachmentCount</code> <code>uint32_t</code> values"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_linear_color_attachment)": [
- {
- "vuid": "VUID-VkSubpassDescription2-linearColorAttachment-06499",
- "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-linearColorAttachment-06500",
- "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescription2-linearColorAttachment-06501",
- "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, all attachments in <code>pResolveAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_AMD_mixed_attachment_samples)": [
- {
- "vuid": "VUID-VkSubpassDescription2-pColorAttachments-03070",
- "text": " If the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension is enabled, all attachments in <code>pColorAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count that is smaller than or equal to the sample count of <code>pDepthStencilAttachment</code> if it is not <code>VK_ATTACHMENT_UNUSED</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NVX_multiview_per_view_attributes)": [
- {
- "vuid": "VUID-VkSubpassDescription2-flags-03076",
- "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX</code>, it <strong class=\"purple\">must</strong> also include <code>VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkSubpassDescription2-attachment-04563",
- "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>"
- }
- ]
- },
- "VkSubpassDescriptionDepthStencilResolve": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03177",
- "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> not be <code>NULL</code> or have the value <code>VK_ATTACHMENT_UNUSED</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03178",
- "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> not both be <code>VK_RESOLVE_MODE_NONE</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03179",
- "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03180",
- "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>pDepthStencilResolveAttachment</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-02651",
- "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> then it <strong class=\"purple\">must</strong> have an image format whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03181",
- "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> and <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a depth component, then the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> have a depth component with the same number of bits and numerical type"
- },
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03182",
- "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, and <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a stencil component, then the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> have a stencil component with the same number of bits and numerical type"
- },
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-depthResolveMode-03183",
- "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> and the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a depth component, then the value of <code>depthResolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedDepthResolveModes</code> or <code>VK_RESOLVE_MODE_NONE</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-stencilResolveMode-03184",
- "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> and the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a stencil component, then the value of <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedStencilResolveModes</code> or <code>VK_RESOLVE_MODE_NONE</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03185",
- "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has both depth and stencil components, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code>, and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_FALSE</code>, then the values of <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be identical"
- },
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03186",
- "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has both depth and stencil components, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code> and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_TRUE</code>, then the values of <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be identical or one of them <strong class=\"purple\">must</strong> be <code>VK_RESOLVE_MODE_NONE</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-parameter",
- "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code>, <code>pDepthStencilResolveAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structure"
- }
- ]
- },
- "VkFragmentShadingRateAttachmentInfoKHR": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04524",
- "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, its <code>layout</code> member <strong class=\"purple\">must</strong> be equal to <code>VK_IMAGE_LAYOUT_GENERAL</code> or <code>VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR</code>"
- },
- {
- "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04525",
- "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be a power of two value"
- },
- {
- "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04526",
- "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSize\"><code>maxFragmentShadingRateAttachmentTexelSize.width</code></a>"
- },
- {
- "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04527",
- "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minFragmentShadingRateAttachmentTexelSize\"><code>minFragmentShadingRateAttachmentTexelSize.width</code></a>"
- },
- {
- "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04528",
- "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be a power of two value"
- },
- {
- "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04529",
- "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSize\"><code>maxFragmentShadingRateAttachmentTexelSize.height</code></a>"
- },
- {
- "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04530",
- "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minFragmentShadingRateAttachmentTexelSize\"><code>minFragmentShadingRateAttachmentTexelSize.height</code></a>"
- },
- {
- "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04531",
- "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, the quotient of <code>shadingRateAttachmentTexelSize.width</code> and <code>shadingRateAttachmentTexelSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio\"><code>maxFragmentShadingRateAttachmentTexelSizeAspectRatio</code></a>"
- },
- {
- "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04532",
- "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code> and its <code>attachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, the quotient of <code>shadingRateAttachmentTexelSize.height</code> and <code>shadingRateAttachmentTexelSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio\"><code>maxFragmentShadingRateAttachmentTexelSizeAspectRatio</code></a>"
- },
- {
- "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-parameter",
- "text": " If <code>pFragmentShadingRateAttachment</code> is not <code>NULL</code>, <code>pFragmentShadingRateAttachment</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structure"
- }
- ]
- },
- "VkAttachmentReference2": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
- {
- "vuid": "VUID-VkAttachmentReference2-layout-03077",
- "text": " If <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, or <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>"
- },
- {
- "vuid": "VUID-VkAttachmentReference2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2</code>"
- },
- {
- "vuid": "VUID-VkAttachmentReference2-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=\"#VkAttachmentReferenceStencilLayout\">VkAttachmentReferenceStencilLayout</a>"
- },
- {
- "vuid": "VUID-VkAttachmentReference2-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-VkAttachmentReference2-layout-parameter",
- "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-VkAttachmentReference2-separateDepthStencilLayouts-03313",
- "text": " If the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, and <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>,"
- },
- {
- "vuid": "VUID-VkAttachmentReference2-attachment-04754",
- "text": " If <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, and the format of the referenced attachment is a color format, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentReference2-attachment-04755",
- "text": " If <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, and the format of the referenced attachment is a depth/stencil format which includes both depth and stencil aspects, and <code>layout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkAttachmentReferenceStencilLayout\">VkAttachmentReferenceStencilLayout</a> structure"
- },
- {
- "vuid": "VUID-VkAttachmentReference2-attachment-04756",
- "text": " If <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, and the format of the referenced attachment is a depth/stencil format which includes only the depth aspect, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkAttachmentReference2-attachment-04757",
- "text": " If <code>attachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, and the format of the referenced attachment is a depth/stencil format which includes only the stencil aspect, <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>"
- }
- ]
- },
- "VkAttachmentReferenceStencilLayout": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-VkAttachmentReferenceStencilLayout-stencilLayout-03318",
- "text": " <code>stencilLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>, <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code>"
- },
- {
- "vuid": "VUID-VkAttachmentReferenceStencilLayout-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT</code>"
- },
- {
- "vuid": "VUID-VkAttachmentReferenceStencilLayout-stencilLayout-parameter",
- "text": " <code>stencilLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- }
- ]
- },
- "VkSubpassDependency2": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
- {
- "vuid": "VUID-VkSubpassDependency2-srcStageMask-04090",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-srcStageMask-04091",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dstStageMask-04090",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dstStageMask-04091",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-srcSubpass-03084",
- "text": " <code>srcSubpass</code> <strong class=\"purple\">must</strong> be less than or equal to <code>dstSubpass</code>, unless one of them is <code>VK_SUBPASS_EXTERNAL</code>, to avoid cyclic dependencies and ensure a valid execution order"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-srcSubpass-03085",
- "text": " <code>srcSubpass</code> and <code>dstSubpass</code> <strong class=\"purple\">must</strong> not both be equal to <code>VK_SUBPASS_EXTERNAL</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-srcSubpass-03087",
- "text": " If <code>srcSubpass</code> is equal to <code>dstSubpass</code> and not all of the stages in <code>srcStageMask</code> and <code>dstStageMask</code> are <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stages</a>, the <a href=\"#synchronization-pipeline-stages-order\">logically latest</a> pipeline stage in <code>srcStageMask</code> <strong class=\"purple\">must</strong> be <a href=\"#synchronization-pipeline-stages-order\">logically earlier</a> than or equal to the <a href=\"#synchronization-pipeline-stages-order\">logically earliest</a> pipeline stage in <code>dstStageMask</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-srcAccessMask-03088",
- "text": " Any access flag included in <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be supported by one of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dstAccessMask-03089",
- "text": " Any access flag included in <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be supported by one of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03090",
- "text": " If <code>dependencyFlags</code> includes <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>srcSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_SUBPASS_EXTERNAL</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03091",
- "text": " If <code>dependencyFlags</code> includes <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>dstSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_SUBPASS_EXTERNAL</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-srcSubpass-02245",
- "text": " If <code>srcSubpass</code> equals <code>dstSubpass</code>, and <code>srcStageMask</code> and <code>dstStageMask</code> both include a <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stage</a>, then <code>dependencyFlags</code> <strong class=\"purple\">must</strong> include <code>VK_DEPENDENCY_BY_REGION_BIT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-viewOffset-02530",
- "text": " If <code>viewOffset</code> is not equal to <code>0</code>, <code>srcSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>dstSubpass</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03092",
- "text": " If <code>dependencyFlags</code> does not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>, <code>viewOffset</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-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=\"#VkMemoryBarrier2\">VkMemoryBarrier2</a>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-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-VkSubpassDependency2-srcStageMask-parameter",
- "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dstStageMask-parameter",
- "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-srcAccessMask-parameter",
- "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dstAccessMask-parameter",
- "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dependencyFlags-parameter",
- "text": " <code>dependencyFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDependencyFlagBits\">VkDependencyFlagBits</a> values"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-VkSubpassDependency2-srcStageMask-04092",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dstStageMask-04092",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkSubpassDependency2-srcStageMask-04093",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dstStageMask-04093",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-VkSubpassDependency2-srcStageMask-04094",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dstStageMask-04094",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkSubpassDependency2-srcStageMask-04095",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-srcStageMask-04096",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dstStageMask-04095",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dstStageMask-04096",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkSubpassDependency2-srcStageMask-04097",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dstStageMask-04097",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkSubpassDependency2-srcStageMask-03937",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dstStageMask-03937",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkSubpassDependency2-srcStageMask-04996",
- "text": " pname:srcStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkSubpassDependency2-dstStageMask-04996",
- "text": " pname:dstStageMask <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ]
- },
- "vkDestroyRenderPass": {
- "core": [
- {
- "vuid": "VUID-vkDestroyRenderPass-renderPass-00873",
- "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"
- },
- {
- "vuid": "VUID-vkDestroyRenderPass-renderPass-parameter",
- "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyRenderPass-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"
- },
- {
- "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>"
- }
- ]
- },
- "vkCreateFramebuffer": {
- "core": [
- {
- "vuid": "VUID-vkCreateFramebuffer-pCreateInfo-02777",
- "text": " If <code>pCreateInfo-&gt;flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and <code>attachmentCount</code> is not <code>0</code>, each element of <code>pCreateInfo-&gt;pAttachments</code> <strong class=\"purple\">must</strong> have been created on <code>device</code>"
- },
- {
- "vuid": "VUID-vkCreateFramebuffer-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateFramebuffer-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateFramebuffer-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"
- },
- {
- "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"
- }
- ]
- },
- "VkFramebufferCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-attachmentCount-00876",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>attachmentCount</code> <strong class=\"purple\">must</strong> be equal to the attachment count specified in <code>renderPass</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-02778",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and <code>attachmentCount</code> is not <code>0</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkImageView\">VkImageView</a> handles"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00877",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as a color attachment or resolve attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02633",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as a depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00879",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as an input attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00880",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> value that matches the <a href=\"#VkFormat\">VkFormat</a> specified by the corresponding <code>VkAttachmentDescription</code> in <code>renderPass</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00881",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value that matches the <code>samples</code> value specified by the corresponding <code>VkAttachmentDescription</code> in <code>renderPass</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04533",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as an input, color, resolve, or depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>width</code> greater than or equal to <code>width</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04534",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as an input, color, resolve, or depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>height</code> greater than or equal to <code>height</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04535",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as an input, color, resolve, or depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>subresourceRange.layerCount</code> greater than or equal to <code>layers</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00883",
- "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> only specify a single mip level"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00884",
- "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with the identity swizzle"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-width-00885",
- "text": " <code>width</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-width-00886",
- "text": " <code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferWidth\"><code>maxFramebufferWidth</code></a>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-height-00887",
- "text": " <code>height</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-height-00888",
- "text": " <code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferHeight\"><code>maxFramebufferHeight</code></a>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-layers-00889",
- "text": " <code>layers</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-layers-00890",
- "text": " <code>layers</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferLayers\"><code>maxFramebufferLayers</code></a>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04113",
- "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>viewType</code> not equal to <code>VK_IMAGE_VIEW_TYPE_3D</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-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=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-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-VkFramebufferCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFramebufferCreateFlagBits\">VkFramebufferCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-renderPass-parameter",
- "text": " <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-commonparent",
- "text": " Both of <code>renderPass</code>, and the elements of <code>pAttachments</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_depth_stencil_resolve)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02634",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as a depth/stencil resolve attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02552",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, each element of <code>pAttachments</code> that is used as a fragment density map attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> not have been created with a <code>flags</code> value including <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02553",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>renderPass</code> has a fragment density map attachment, and <a href=\"#features-fragmentDensityMapNonSubsampledImages\">non-subsample image feature</a> is not enabled, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with a <code>flags</code> value including <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code> unless that element is the fragment density map attachment"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02555",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> have a width at least as large as \\(\\left\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02556",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> have a height at least as large as \\(\\left\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)"
- }
- ],
- "(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-renderPass-06502",
- "text": " If <code>renderPass</code> was created with <a href=\"#renderpass-fragmentdensitymapoffsets\">fragment density map offsets</a> other than <span class=\"eq\">(0,0)</span>, each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with a <code>flags</code> value including <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>."
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-renderPass-04536",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>renderPass</code> was specified with non-zero view masks, each element of <code>pAttachments</code> that is used as an input, color, resolve, or depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> greater than the index of the most significant bit set in any of those view masks"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02531",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>renderPass</code> was specified with non-zero view masks, <code>layers</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)+!(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02744",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, an element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02746",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>renderPass</code> was specified with non-zero view masks, each element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <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"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02747",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>renderPass</code> was not specified with non-zero view masks, each element of <code>pAttachments</code> that is referenced by <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code>"
- }
- ],
- "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04537",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and <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> by <code>renderPass</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that is either <code>1</code>, or greater than the index of the most significant bit set in any of those view masks"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04538",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <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>"
- }
- ],
- "(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04539",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an 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 width at least as large as <span class=\"eq\">{lceil}<code>width</code> / <code>texelWidth</code>{rceil}</span>, where <code>texelWidth</code> is the largest value of <code>shadingRateAttachmentTexelSize.width</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04540",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, an 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 height at least as large as <span class=\"eq\">{lceil}<code>height</code> / <code>texelHeight</code>{rceil}</span>, where <code>texelHeight</code> is the largest value of <code>shadingRateAttachmentTexelSize.height</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04548",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is used as a fragment shading rate attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00891",
- "text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> that is a 2D or 2D array image view taken from a 3D image <strong class=\"purple\">must</strong> not be a depth/stencil format"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-03189",
- "text": " If the <a href=\"#features-imagelessFramebuffer\">imageless framebuffer</a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-03190",
- "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-03191",
- "text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>attachmentImageInfoCount</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be equal to either zero or <code>attachmentCount</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04541",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>width</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as an input, color, resolve or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>width</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04542",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>height</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as an input, color, resolve or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>height</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-03201",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <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 color attachment or resolve attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-03202",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <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 depth/stencil attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-03204",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <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 an input attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-03205",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, at least one element of the <code>pViewFormats</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 <strong class=\"purple\">must</strong> be equal to the corresponding value of <a href=\"#VkAttachmentDescription\">VkAttachmentDescription</a>::<code>format</code> used to create <code>renderPass</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-03196",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>width</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is referenced by <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a>::<code>fragmentDensityMapAttachment</code> in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to \\(\\left\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-03197",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>height</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 is referenced by <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a>::<code>fragmentDensityMapAttachment</code> in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to \\(\\left\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04543",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>width</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\">{lceil}<code>width</code> / <code>texelWidth</code>{rceil}</span>, where <code>texelWidth</code> is the largest value of <code>shadingRateAttachmentTexelSize.width</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04544",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>height</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\">{lceil}<code>height</code> / <code>texelHeight</code>{rceil}</span>, where <code>texelHeight</code> is the largest value of <code>shadingRateAttachmentTexelSize.height</code> in a <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a> which references that attachment"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04545",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure in the <code>pNext</code> chain that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> be either <code>1</code>, or greater than or equal to <code>layers</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04587",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and <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> by <code>renderPass</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that is either <code>1</code>, or greater than the index of the most significant bit set in any of those view masks"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-renderPass-03198",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, multiview is enabled for <code>renderPass</code>, and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</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 used as an input, color, resolve, or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than the maximum bit index set in the view mask in the subpasses in which it is used in <code>renderPass</code>"
- },
- {
- "vuid": "VUID-VkFramebufferCreateInfo-renderPass-04546",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, multiview is not enabled for <code>renderPass</code>, and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</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 used as an input, color, resolve, or depth/stencil attachment in <code>renderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>layers</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+!(VK_VERSION_1_1+VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04547",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>layerCount</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 used as an input, color, resolve, or depth/stencil attachment in <code>pRenderPass</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>layers</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_depth_stencil_resolve)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-03203",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <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 depth/stencil resolve attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- }
- ],
- "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [
- {
- "vuid": "VUID-VkFramebufferCreateInfo-flags-04549",
- "text": " If <code>renderpass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <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>"
- }
- ]
- },
- "VkFramebufferAttachmentsCreateInfo": {
- "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [
- {
- "vuid": "VUID-VkFramebufferAttachmentsCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkFramebufferAttachmentsCreateInfo-pAttachmentImageInfos-parameter",
- "text": " If <code>attachmentImageInfoCount</code> is not <code>0</code>, <code>pAttachmentImageInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentImageInfoCount</code> valid <a href=\"#VkFramebufferAttachmentImageInfo\">VkFramebufferAttachmentImageInfo</a> structures"
- }
- ]
- },
- "VkFramebufferAttachmentImageInfo": {
- "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [
- {
- "vuid": "VUID-VkFramebufferAttachmentImageInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO</code>"
- },
- {
- "vuid": "VUID-VkFramebufferAttachmentImageInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkFramebufferAttachmentImageInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkFramebufferAttachmentImageInfo-usage-parameter",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkFramebufferAttachmentImageInfo-usage-requiredbitmask",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkFramebufferAttachmentImageInfo-pViewFormats-parameter",
- "text": " If <code>viewFormatCount</code> is not <code>0</code>, <code>pViewFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewFormatCount</code> valid <a href=\"#VkFormat\">VkFormat</a> values"
- }
- ]
- },
- "vkDestroyFramebuffer": {
- "core": [
- {
- "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00892",
- "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"
- },
- {
- "vuid": "VUID-vkDestroyFramebuffer-framebuffer-parameter",
- "text": " If <code>framebuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>framebuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFramebuffer\">VkFramebuffer</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyFramebuffer-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"
- },
- {
- "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>"
- }
- ]
- },
- "vkCmdBeginRenderPass": {
- "core": [
- {
- "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00895",
- "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00897",
- "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00898",
- "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00899",
- "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00900",
- "text": " If the <code>initialLayout</code> member of any of the <code>VkAttachmentDescription</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is not <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, then each such <code>initialLayout</code> <strong class=\"purple\">must</strong> be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-srcStageMask-06451",
- "text": " The <code>srcStageMask</code> members of any element of the <code>pDependencies</code> member of <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> used to create <code>renderPass</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family identified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> used to create the command pool which <code>commandBuffer</code> was allocated from"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-dstStageMask-06452",
- "text": " The <code>dstStageMask</code> members of any element of the <code>pDependencies</code> member of <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> used to create <code>renderPass</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family identified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> used to create the command pool which <code>commandBuffer</code> was allocated from"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-framebuffer-02532",
- "text": " For any attachment in <code>framebuffer</code> that is used by <code>renderPass</code> and is bound to memory locations that are also bound to another attachment used by <code>renderPass</code>, and if at least one of those uses causes either attachment to be written to, both attachments <strong class=\"purple\">must</strong> have had the <code>VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT</code> set"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter",
- "text": " <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-contents-parameter",
- "text": " <code>contents</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSubpassContents\">VkSubpassContents</a> value"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-bufferlevel",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00896",
- "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-01758",
- "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-02842",
- "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843",
- "text": " If any of the <code>stencilInitialLayout</code> or <code>stencilFinalLayout</code> member of the <code>VkAttachmentDescriptionStencilLayout</code> structures or the <code>stencilLayout</code> member of the <code>VkAttachmentReferenceStencilLayout</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- }
- ]
- },
- "vkCmdBeginRenderPass2": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-framebuffer-02779",
- "text": " Both the <code>framebuffer</code> and <code>renderPass</code> members of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created on the same <a href=\"#VkDevice\">VkDevice</a> that <code>commandBuffer</code> was allocated on"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03094",
- "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03096",
- "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03097",
- "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03098",
- "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03099",
- "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03100",
- "text": " If the <code>initialLayout</code> member of any of the <code>VkAttachmentDescription</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is not <code>VK_IMAGE_LAYOUT_UNDEFINED</code>, then each such <code>initialLayout</code> <strong class=\"purple\">must</strong> be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-srcStageMask-06453",
- "text": " The <code>srcStageMask</code> members of any element of the <code>pDependencies</code> member of <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> used to create <code>renderPass</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family identified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> used to create the command pool which <code>commandBuffer</code> was allocated from"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-dstStageMask-06454",
- "text": " The <code>dstStageMask</code> members of any element of the <code>pDependencies</code> member of <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> used to create <code>renderPass</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family identified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> used to create the command pool which <code>commandBuffer</code> was allocated from"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-framebuffer-02533",
- "text": " For any attachment in <code>framebuffer</code> that is used by <code>renderPass</code> and is bound to memory locations that are also bound to another attachment used by <code>renderPass</code>, and if at least one of those uses causes either attachment to be written to, both attachments <strong class=\"purple\">must</strong> have had the <code>VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT</code> set"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-pRenderPassBegin-parameter",
- "text": " <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-pSubpassBeginInfo-parameter",
- "text": " <code>pSubpassBeginInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSubpassBeginInfo\">VkSubpassBeginInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-bufferlevel",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-02844",
- "text": " If any of the <code>initialLayout</code> or <code>finalLayout</code> member of the <code>VkAttachmentDescription</code> structures or the <code>layout</code> member of the <code>VkAttachmentReference</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginRenderPass2-stencilInitialLayout-02845",
- "text": " If any of the <code>stencilInitialLayout</code> or <code>stencilFinalLayout</code> member of the <code>VkAttachmentDescriptionStencilLayout</code> structures or the <code>stencilLayout</code> member of the <code>VkAttachmentReferenceStencilLayout</code> structures specified when creating the render pass specified in the <code>renderPass</code> member of <code>pRenderPassBegin</code> is <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL</code>, or <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code> then the corresponding attachment image view of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- }
- ]
- },
- "VkRenderPassBeginInfo": {
- "core": [
- {
- "vuid": "VUID-VkRenderPassBeginInfo-clearValueCount-00902",
- "text": " <code>clearValueCount</code> <strong class=\"purple\">must</strong> be greater than the largest attachment index in <code>renderPass</code> specifying a <code>loadOp</code> (or <code>stencilLoadOp</code>, if the attachment has a depth/stencil format) of <code>VK_ATTACHMENT_LOAD_OP_CLEAR</code>"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-clearValueCount-04962",
- "text": " If <code>clearValueCount</code> is not <code>0</code>, <code>pClearValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>clearValueCount</code> <a href=\"#VkClearValue\">VkClearValue</a> unions"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-renderPass-00904",
- "text": " <code>renderPass</code> <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a> structure specified when creating <code>framebuffer</code>"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO</code>"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-pNext-pNext",
- "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=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a>, <a href=\"#VkRenderPassSampleLocationsBeginInfoEXT\">VkRenderPassSampleLocationsBeginInfoEXT</a>, or <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-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-VkRenderPassBeginInfo-renderPass-parameter",
- "text": " <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-parameter",
- "text": " <code>framebuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFramebuffer\">VkFramebuffer</a> handle"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-commonparent",
- "text": " Both of <code>framebuffer</code>, and <code>renderPass</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_device_group)": [
- {
- "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02846",
- "text": " <code>renderArea.offset.x</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02847",
- "text": " <code>renderArea.offset.y</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02848",
- "text": " <span class=\"eq\"><code>renderArea.offset.x</code> &#43; <code>renderArea.extent.width</code></span> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>width</code> the <code>framebuffer</code> was created with"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02849",
- "text": " <span class=\"eq\"><code>renderArea.offset.y</code> &#43; <code>renderArea.extent.height</code></span> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>height</code> the <code>framebuffer</code> was created with"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkRenderPassBeginInfo-pNext-02850",
- "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.offset.x</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-pNext-02851",
- "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.offset.y</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-pNext-02852",
- "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, <span class=\"eq\"><code>renderArea.offset.x</code> &#43; <code>renderArea.extent.width</code></span> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>width</code> the <code>framebuffer</code> was created with"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-pNext-02853",
- "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, <span class=\"eq\"><code>renderArea.offset.y</code> &#43; <code>renderArea.extent.height</code></span> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>height</code> the <code>framebuffer</code> was created with"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-pNext-02856",
- "text": " If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, <span class=\"eq\"><code>offset.x</code> &#43; <code>extent.width</code></span> of each element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>width</code> the <code>framebuffer</code> was created with"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-pNext-02857",
- "text": " If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, <span class=\"eq\"><code>offset.y</code> &#43; <code>extent.height</code></span> of each element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>height</code> the <code>framebuffer</code> was created with"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [
- {
- "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03207",
- "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that did not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure, its <code>attachmentCount</code> <strong class=\"purple\">must</strong> be zero"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03208",
- "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>attachmentCount</code> of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be equal to the value of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>attachmentImageInfoCount</code> used to create <code>framebuffer</code>"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-02780",
- "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> have been created on the same <a href=\"#VkDevice\">VkDevice</a> as <code>framebuffer</code> and <code>renderPass</code>"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03209",
- "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> equal to the <code>flags</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-04627",
- "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> with <a href=\"#resources-image-inherited-usage\">an inherited usage</a> equal to the <code>usage</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03211",
- "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> with a width equal to the <code>width</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03212",
- "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> with a height equal to the <code>height</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03213",
- "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>subresourceRange.layerCount</code> equal to the <code>layerCount</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03214",
- "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> equal to the <code>viewFormatCount</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03215",
- "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a set of elements in <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>pViewFormats</code> equal to the set of elements in the <code>pViewFormats</code> member of the corresponding element of <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a>::<code>pAttachmentImageInfos</code> used to create <code>framebuffer</code>"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03216",
- "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>format</code> equal to the corresponding value of <a href=\"#VkAttachmentDescription\">VkAttachmentDescription</a>::<code>format</code> in <code>renderPass</code>"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03217",
- "text": " If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>samples</code> equal to the corresponding value of <a href=\"#VkAttachmentDescription\">VkAttachmentDescription</a>::<code>samples</code> in <code>renderPass</code>"
- }
- ],
- "(VK_QCOM_render_pass_transform)": [
- {
- "vuid": "VUID-VkRenderPassBeginInfo-pNext-02869",
- "text": " If the <code>pNext</code> chain includes <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>, <code>renderArea.offset</code> <strong class=\"purple\">must</strong> equal (0,0)"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-pNext-02870",
- "text": " If the <code>pNext</code> chain includes <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>, <code>renderArea.extent</code> transformed by <a href=\"#VkRenderPassTransformBeginInfoQCOM\">VkRenderPassTransformBeginInfoQCOM</a>::<code>transform</code> <strong class=\"purple\">must</strong> equal the <code>framebuffer</code> dimensions"
- }
- ]
- },
- "VkRenderPassSampleLocationsBeginInfoEXT": {
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-VkRenderPassSampleLocationsBeginInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkRenderPassSampleLocationsBeginInfoEXT-pAttachmentInitialSampleLocations-parameter",
- "text": " If <code>attachmentInitialSampleLocationsCount</code> is not <code>0</code>, <code>pAttachmentInitialSampleLocations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentInitialSampleLocationsCount</code> valid <a href=\"#VkAttachmentSampleLocationsEXT\">VkAttachmentSampleLocationsEXT</a> structures"
- },
- {
- "vuid": "VUID-VkRenderPassSampleLocationsBeginInfoEXT-pPostSubpassSampleLocations-parameter",
- "text": " If <code>postSubpassSampleLocationsCount</code> is not <code>0</code>, <code>pPostSubpassSampleLocations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>postSubpassSampleLocationsCount</code> valid <a href=\"#VkSubpassSampleLocationsEXT\">VkSubpassSampleLocationsEXT</a> structures"
- }
- ]
- },
- "VkAttachmentSampleLocationsEXT": {
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-VkAttachmentSampleLocationsEXT-attachmentIndex-01531",
- "text": " <code>attachmentIndex</code> <strong class=\"purple\">must</strong> be less than the <code>attachmentCount</code> specified in <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> the render pass specified by <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>::<code>renderPass</code> was created with"
- },
- {
- "vuid": "VUID-VkAttachmentSampleLocationsEXT-sampleLocationsInfo-parameter",
- "text": " <code>sampleLocationsInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a> structure"
- }
- ]
- },
- "VkSubpassSampleLocationsEXT": {
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-VkSubpassSampleLocationsEXT-subpassIndex-01532",
- "text": " <code>subpassIndex</code> <strong class=\"purple\">must</strong> be less than the <code>subpassCount</code> specified in <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a> the render pass specified by <a href=\"#VkRenderPassBeginInfo\">VkRenderPassBeginInfo</a>::<code>renderPass</code> was created with"
- },
- {
- "vuid": "VUID-VkSubpassSampleLocationsEXT-sampleLocationsInfo-parameter",
- "text": " <code>sampleLocationsInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a> structure"
- }
- ]
- },
- "VkRenderPassTransformBeginInfoQCOM": {
- "(VK_QCOM_render_pass_transform)": [
- {
- "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-transform-02871",
- "text": " <code>transform</code> <strong class=\"purple\">must</strong> be <code>VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR</code>, or <code>VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-flags-02872",
- "text": " The <code>renderpass</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a>::<code>flags</code> containing <code>VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM</code>"
- },
- {
- "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM</code>"
- }
- ]
- },
- "VkSubpassBeginInfo": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
- {
- "vuid": "VUID-VkSubpassBeginInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO</code>"
- },
- {
- "vuid": "VUID-VkSubpassBeginInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkSubpassBeginInfo-contents-parameter",
- "text": " <code>contents</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSubpassContents\">VkSubpassContents</a> value"
- }
- ]
- },
- "VkDeviceGroupRenderPassBeginInfo": {
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00905",
- "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask value"
- },
- {
- "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00906",
- "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero"
- },
- {
- "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00907",
- "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> be a subset of the command buffer&#8217;s initial device mask"
- },
- {
- "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceRenderAreaCount-00908",
- "text": " <code>deviceRenderAreaCount</code> <strong class=\"purple\">must</strong> either be zero or equal to the number of physical devices in the logical device"
- },
- {
- "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-offset-06166",
- "text": " The <code>offset.x</code> member of any element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
- },
- {
- "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-offset-06167",
- "text": " The <code>offset.y</code> member of any element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
- },
- {
- "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-offset-06168",
- "text": " The sum of the <code>offset.x</code> and <code>extent.width</code> members of any element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferWidth\"><code>maxFramebufferWidth</code></a>"
- },
- {
- "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-offset-06169",
- "text": " The sum of the <code>offset.y</code> and <code>extent.height</code> members of any element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferHeight\"><code>maxFramebufferHeight</code></a>"
- },
- {
- "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-pDeviceRenderAreas-parameter",
- "text": " If <code>deviceRenderAreaCount</code> is not <code>0</code>, <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>deviceRenderAreaCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
- }
- ]
- },
- "VkRenderPassAttachmentBeginInfo": {
- "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [
- {
- "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03218",
- "text": " Each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> only specify a single mip level"
- },
- {
- "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03219",
- "text": " Each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with the identity swizzle"
- },
- {
- "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-04114",
- "text": " Each element of <code>pAttachments</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>viewType</code> not equal to <code>VK_IMAGE_VIEW_TYPE_3D</code>"
- },
- {
- "vuid": "VUID-VkRenderPassAttachmentBeginInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO</code>"
- },
- {
- "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-parameter",
- "text": " If <code>attachmentCount</code> is not <code>0</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkImageView\">VkImageView</a> handles"
- }
- ]
- },
- "vkGetRenderAreaGranularity": {
- "core": [
- {
- "vuid": "VUID-vkGetRenderAreaGranularity-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetRenderAreaGranularity-renderPass-parameter",
- "text": " <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
- },
- {
- "vuid": "VUID-vkGetRenderAreaGranularity-pGranularity-parameter",
- "text": " <code>pGranularity</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExtent2D\">VkExtent2D</a> structure"
- },
- {
- "vuid": "VUID-vkGetRenderAreaGranularity-renderPass-parent",
- "text": " <code>renderPass</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCmdNextSubpass": {
- "core": [
- {
- "vuid": "VUID-vkCmdNextSubpass-None-00909",
- "text": " The current subpass index <strong class=\"purple\">must</strong> be less than the number of subpasses in the render pass minus one"
- },
- {
- "vuid": "VUID-vkCmdNextSubpass-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdNextSubpass-contents-parameter",
- "text": " <code>contents</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSubpassContents\">VkSubpassContents</a> value"
- },
- {
- "vuid": "VUID-vkCmdNextSubpass-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdNextSubpass-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdNextSubpass-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdNextSubpass-bufferlevel",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
- }
- ],
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdNextSubpass-None-02349",
- "text": " This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active"
- }
- ]
- },
- "vkCmdNextSubpass2": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
- {
- "vuid": "VUID-vkCmdNextSubpass2-None-03102",
- "text": " The current subpass index <strong class=\"purple\">must</strong> be less than the number of subpasses in the render pass minus one"
- },
- {
- "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdNextSubpass2-pSubpassBeginInfo-parameter",
- "text": " <code>pSubpassBeginInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSubpassBeginInfo\">VkSubpassBeginInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCmdNextSubpass2-pSubpassEndInfo-parameter",
- "text": " <code>pSubpassEndInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSubpassEndInfo\">VkSubpassEndInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdNextSubpass2-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdNextSubpass2-bufferlevel",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdNextSubpass2-None-02350",
- "text": " This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active"
- }
- ]
- },
- "vkCmdEndRenderPass": {
- "core": [
- {
- "vuid": "VUID-vkCmdEndRenderPass-None-00910",
- "text": " The current subpass index <strong class=\"purple\">must</strong> be equal to the number of subpasses in the render pass minus one"
- },
- {
- "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdEndRenderPass-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdEndRenderPass-bufferlevel",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
- }
- ],
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdEndRenderPass-None-02351",
- "text": " This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdEndRenderPass-None-06170",
- "text": " The current render pass instance <strong class=\"purple\">must</strong> not have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
- }
- ]
- },
- "vkCmdEndRenderPass2": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
- {
- "vuid": "VUID-vkCmdEndRenderPass2-None-03103",
- "text": " The current subpass index <strong class=\"purple\">must</strong> be equal to the number of subpasses in the render pass minus one"
- },
- {
- "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdEndRenderPass2-pSubpassEndInfo-parameter",
- "text": " <code>pSubpassEndInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSubpassEndInfo\">VkSubpassEndInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdEndRenderPass2-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdEndRenderPass2-bufferlevel",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdEndRenderPass2-None-02352",
- "text": " This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdEndRenderPass2-None-06171",
- "text": " The current render pass instance <strong class=\"purple\">must</strong> not have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
- }
- ]
- },
- "VkSubpassEndInfo": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
- {
- "vuid": "VUID-VkSubpassEndInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_END_INFO</code>"
- },
- {
- "vuid": "VUID-VkSubpassEndInfo-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=\"#VkSubpassFragmentDensityMapOffsetEndInfoQCOM\">VkSubpassFragmentDensityMapOffsetEndInfoQCOM</a>"
- },
- {
- "vuid": "VUID-VkSubpassEndInfo-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
- }
- ]
- },
- "VkSubpassFragmentDensityMapOffsetEndInfoQCOM": {
- "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)": [
- {
- "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapOffsets-06503",
- "text": " If the <a href=\"#features-fragmentDensityMapOffsets\"><code>fragmentDensityMapOffsets</code></a> feature is not enabled or fragment density map is not enabled in the render pass, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>."
- },
- {
- "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapAttachment-06504",
- "text": " If <code>VkSubpassDescription</code>::<code>fragmentDensityMapAttachment</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>."
- },
- {
- "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pDepthStencilAttachment-06505",
- "text": " If <code>VkSubpassDescription</code>::<code>pDepthStencilAttachment</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>."
- },
- {
- "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pInputAttachments-06506",
- "text": " If any element of <code>VkSubpassDescription</code>::<code>pInputAttachments</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>."
- },
- {
- "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pColorAttachments-06507",
- "text": " If any element of <code>VkSubpassDescription</code>::<code>pColorAttachments</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>."
- },
- {
- "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pResolveAttachments-06508",
- "text": " If any element of <code>VkSubpassDescription</code>::<code>pResolveAttachments</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>."
- },
- {
- "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pPreserveAttachments-06509",
- "text": " If any element of <code>VkSubpassDescription</code>::<code>pPreserveAttachments</code> is not is not <code>VK_ATTACHMENT_UNUSED</code> and was not created with <code>VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM</code>, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>0</code>."
- },
- {
- "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06510",
- "text": " If <code>fragmentDensityOffsetCount</code> is not <code>0</code> and multiview is enabled for the render pass, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal the <code>layerCount</code> that was specified in creating the fragment density map attachment view."
- },
- {
- "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06511",
- "text": " If <code>fragmentDensityOffsetCount</code> is not <code>0</code> and multiview is not enabled for the render pass, <code>fragmentDensityOffsetCount</code> <strong class=\"purple\">must</strong> equal <code>1</code>."
- },
- {
- "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-x-06512",
- "text": " The <code>x</code> component of each element of <code>pFragmentDensityOffsets</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>fragmentDensityOffsetGranularity.width</code>."
- },
- {
- "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-y-06513",
- "text": " The <code>y</code> component of each element of <code>pFragmentDensityOffsets</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>fragmentDensityOffsetGranularity.height</code>."
- },
- {
- "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM</code>"
- },
- {
- "vuid": "VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pFragmentDensityOffsets-parameter",
- "text": " If <code>fragmentDensityOffsetCount</code> is not <code>0</code>, <code>pFragmentDensityOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>fragmentDensityOffsetCount</code> <a href=\"#VkOffset2D\">VkOffset2D</a> structures"
- }
- ]
- },
- "vkCreateShaderModule": {
- "core": [
- {
- "vuid": "VUID-vkCreateShaderModule-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateShaderModule-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkShaderModuleCreateInfo\">VkShaderModuleCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateShaderModule-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"
- },
- {
- "vuid": "VUID-vkCreateShaderModule-pShaderModule-parameter",
- "text": " <code>pShaderModule</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkShaderModule\">VkShaderModule</a> handle"
- }
- ]
- },
- "VkShaderModuleCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-codeSize-01085",
- "text": " <code>codeSize</code> <strong class=\"purple\">must</strong> be greater than 0"
- },
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01089",
- "text": " <code>pCode</code> <strong class=\"purple\">must</strong> declare the <code>Shader</code> capability for SPIR-V code"
- },
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01090",
- "text": " <code>pCode</code> <strong class=\"purple\">must</strong> not declare any capability that is not supported by the API, as described by the <a href=\"#spirvenv-module-validation\">Capabilities</a> section of the <a href=\"#spirvenv-capabilities\">SPIR-V Environment</a> appendix"
- },
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01091",
- "text": " If <code>pCode</code> declares any of the capabilities listed in the <a href=\"#spirvenv-capabilities-table\">SPIR-V Environment</a> appendix, one of the corresponding requirements <strong class=\"purple\">must</strong> be satisfied"
- },
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-pCode-04146",
- "text": " <code>pCode</code> <strong class=\"purple\">must</strong> not declare any SPIR-V extension that is not supported by the API, as described by the <a href=\"#spirvenv-extensions\">Extension</a> section of the <a href=\"#spirvenv-capabilities\">SPIR-V Environment</a> appendix"
- },
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-pCode-04147",
- "text": " If <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"
- },
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-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=\"#VkShaderModuleValidationCacheCreateInfoEXT\">VkShaderModuleValidationCacheCreateInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-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-VkShaderModuleCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-pCode-parameter",
- "text": " <code>pCode</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of \\(\\textrm{codeSize} \\over 4\\) <code>uint32_t</code> values"
- }
- ],
- "!(VK_NV_glsl_shader)": [
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-codeSize-01086",
- "text": " <code>codeSize</code> <strong class=\"purple\">must</strong> be a multiple of 4"
- },
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01087",
- "text": " <code>pCode</code> <strong class=\"purple\">must</strong> point to valid SPIR-V code, formatted and packed as described by the <a href=\"#spirv-spec\">Khronos SPIR-V Specification</a>"
- },
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01088",
- "text": " <code>pCode</code> <strong class=\"purple\">must</strong> adhere to the validation rules described by the <a href=\"#spirvenv-module-validation\">Validation Rules within a Module</a> section of the <a href=\"#spirvenv-capabilities\">SPIR-V Environment</a> appendix"
- }
- ],
- "(VK_NV_glsl_shader)": [
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01376",
- "text": " If <code>pCode</code> is a pointer to SPIR-V code, <code>codeSize</code> <strong class=\"purple\">must</strong> be a multiple of 4"
- },
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01377",
- "text": " <code>pCode</code> <strong class=\"purple\">must</strong> point to either valid SPIR-V code, formatted and packed as described by the <a href=\"#spirv-spec\">Khronos SPIR-V Specification</a> or valid GLSL code which <strong class=\"purple\">must</strong> be written to the <code>GL_KHR_vulkan_glsl</code> extension specification"
- },
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01378",
- "text": " If <code>pCode</code> is a pointer to SPIR-V code, that code <strong class=\"purple\">must</strong> adhere to the validation rules described by the <a href=\"#spirvenv-module-validation\">Validation Rules within a Module</a> section of the <a href=\"#spirvenv-capabilities\">SPIR-V Environment</a> appendix"
- },
- {
- "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01379",
- "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"
- }
- ]
- },
- "VkShaderModuleValidationCacheCreateInfoEXT": {
- "(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>"
- },
- {
- "vuid": "VUID-VkShaderModuleValidationCacheCreateInfoEXT-validationCache-parameter",
- "text": " <code>validationCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle"
- }
- ]
- },
- "vkDestroyShaderModule": {
- "core": [
- {
- "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"
- },
- {
- "vuid": "VUID-vkDestroyShaderModule-shaderModule-01093",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>shaderModule</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-vkDestroyShaderModule-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyShaderModule-shaderModule-parameter",
- "text": " If <code>shaderModule</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>shaderModule</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyShaderModule-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"
- },
- {
- "vuid": "VUID-vkDestroyShaderModule-shaderModule-parent",
- "text": " If <code>shaderModule</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCmdSetPatchControlPointsEXT": {
- "(VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdSetPatchControlPointsEXT-None-04873",
- "text": " The <a href=\"#features-extendedDynamicState2PatchControlPoints\">extendedDynamicState2PatchControlPoints</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874",
- "text": " <code>patchControlPoints</code> <strong class=\"purple\">must</strong> be greater than zero and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTessellationPatchSize</code>"
- },
- {
- "vuid": "VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV": {
- "(VK_NV_cooperative_matrix)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pPropertyCount-parameter",
- "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pProperties-parameter",
- "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a> structures"
- }
- ]
- },
- "VkCooperativeMatrixPropertiesNV": {
- "(VK_NV_cooperative_matrix)": [
- {
- "vuid": "VUID-VkCooperativeMatrixPropertiesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV</code>"
- },
- {
- "vuid": "VUID-VkCooperativeMatrixPropertiesNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCooperativeMatrixPropertiesNV-AType-parameter",
- "text": " <code>AType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeNV\">VkComponentTypeNV</a> value"
- },
- {
- "vuid": "VUID-VkCooperativeMatrixPropertiesNV-BType-parameter",
- "text": " <code>BType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeNV\">VkComponentTypeNV</a> value"
- },
- {
- "vuid": "VUID-VkCooperativeMatrixPropertiesNV-CType-parameter",
- "text": " <code>CType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeNV\">VkComponentTypeNV</a> value"
- },
- {
- "vuid": "VUID-VkCooperativeMatrixPropertiesNV-DType-parameter",
- "text": " <code>DType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentTypeNV\">VkComponentTypeNV</a> value"
- },
- {
- "vuid": "VUID-VkCooperativeMatrixPropertiesNV-scope-parameter",
- "text": " <code>scope</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkScopeNV\">VkScopeNV</a> value"
- }
- ]
- },
- "vkCreateValidationCacheEXT": {
- "(VK_EXT_validation_cache)": [
- {
- "vuid": "VUID-vkCreateValidationCacheEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateValidationCacheEXT-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkValidationCacheCreateInfoEXT\">VkValidationCacheCreateInfoEXT</a> structure"
- },
- {
- "vuid": "VUID-vkCreateValidationCacheEXT-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"
- },
- {
- "vuid": "VUID-vkCreateValidationCacheEXT-pValidationCache-parameter",
- "text": " <code>pValidationCache</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle"
- }
- ]
- },
- "VkValidationCacheCreateInfoEXT": {
- "(VK_EXT_validation_cache)": [
- {
- "vuid": "VUID-VkValidationCacheCreateInfoEXT-initialDataSize-01534",
- "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>vkGetValidationCacheDataEXT</code> when <code>pInitialData</code> was originally retrieved"
- },
- {
- "vuid": "VUID-VkValidationCacheCreateInfoEXT-initialDataSize-01535",
- "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>vkGetValidationCacheDataEXT</code>"
- },
- {
- "vuid": "VUID-VkValidationCacheCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkValidationCacheCreateInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkValidationCacheCreateInfoEXT-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkValidationCacheCreateInfoEXT-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"
- }
- ]
- },
- "vkMergeValidationCachesEXT": {
- "(VK_EXT_validation_cache)": [
- {
- "vuid": "VUID-vkMergeValidationCachesEXT-dstCache-01536",
- "text": " <code>dstCache</code> <strong class=\"purple\">must</strong> not appear in the list of source caches"
- },
- {
- "vuid": "VUID-vkMergeValidationCachesEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkMergeValidationCachesEXT-dstCache-parameter",
- "text": " <code>dstCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle"
- },
- {
- "vuid": "VUID-vkMergeValidationCachesEXT-pSrcCaches-parameter",
- "text": " <code>pSrcCaches</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>srcCacheCount</code> valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handles"
- },
- {
- "vuid": "VUID-vkMergeValidationCachesEXT-srcCacheCount-arraylength",
- "text": " <code>srcCacheCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkMergeValidationCachesEXT-dstCache-parent",
- "text": " <code>dstCache</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- },
- {
- "vuid": "VUID-vkMergeValidationCachesEXT-pSrcCaches-parent",
- "text": " Each element of <code>pSrcCaches</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkGetValidationCacheDataEXT": {
- "(VK_EXT_validation_cache)": [
- {
- "vuid": "VUID-vkGetValidationCacheDataEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetValidationCacheDataEXT-validationCache-parameter",
- "text": " <code>validationCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle"
- },
- {
- "vuid": "VUID-vkGetValidationCacheDataEXT-pDataSize-parameter",
- "text": " <code>pDataSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>size_t</code> value"
- },
- {
- "vuid": "VUID-vkGetValidationCacheDataEXT-pData-parameter",
- "text": " If the value referenced by <code>pDataSize</code> is not <code>0</code>, and <code>pData</code> is not <code>NULL</code>, <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDataSize</code> bytes"
- },
- {
- "vuid": "VUID-vkGetValidationCacheDataEXT-validationCache-parent",
- "text": " <code>validationCache</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkDestroyValidationCacheEXT": {
- "(VK_EXT_validation_cache)": [
- {
- "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-01537",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>validationCache</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-01538",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>validationCache</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-vkDestroyValidationCacheEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-parameter",
- "text": " If <code>validationCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>validationCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkValidationCacheEXT\">VkValidationCacheEXT</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyValidationCacheEXT-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"
- },
- {
- "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-parent",
- "text": " If <code>validationCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCreateComputePipelines": {
- "core": [
- {
- "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"
- },
- {
- "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"
- },
- {
- "vuid": "VUID-vkCreateComputePipelines-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateComputePipelines-pipelineCache-parameter",
- "text": " If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
- },
- {
- "vuid": "VUID-vkCreateComputePipelines-pCreateInfos-parameter",
- "text": " <code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <a href=\"#VkComputePipelineCreateInfo\">VkComputePipelineCreateInfo</a> structures"
- },
- {
- "vuid": "VUID-vkCreateComputePipelines-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"
- },
- {
- "vuid": "VUID-vkCreateComputePipelines-pPipelines-parameter",
- "text": " <code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <a href=\"#VkPipeline\">VkPipeline</a> handles"
- },
- {
- "vuid": "VUID-vkCreateComputePipelines-createInfoCount-arraylength",
- "text": " <code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "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": [
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-flags-00697",
- "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>"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-flags-00698",
- "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be a valid index into the calling command&#8217;s <code>pCreateInfos</code> parameter"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-flags-00699",
- "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is not -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-flags-00700",
- "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be -1"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-stage-00701",
- "text": " The <code>stage</code> member of <code>stage</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_COMPUTE_BIT</code>"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-stage-00702",
- "text": " The shader code for the entry point identified by <code>stage</code> and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-layout-00703",
- "text": " <code>layout</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-pipelinelayout-consistency\">consistent</a> with the layout of the compute shader specified in <code>stage</code>"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-layout-01687",
- "text": " The number of resources in <code>layout</code> accessible to the compute shader stage <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageResources</code>"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-pNext-pNext",
- "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=\"#VkPipelineCompilerControlCreateInfoAMD\">VkPipelineCompilerControlCreateInfoAMD</a>, <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>, or <a href=\"#VkSubpassShadingPipelineCreateInfoHUAWEI\">VkSubpassShadingPipelineCreateInfoHUAWEI</a>"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-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-VkComputePipelineCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-stage-parameter",
- "text": " <code>stage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-layout-parameter",
- "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-commonparent",
- "text": " Both of <code>basePipelineHandle</code>, and <code>layout</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_KHR_pipeline_library)": [
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-flags-03364",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>"
- }
- ],
- "(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-flags-03365",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-flags-03366",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-flags-03367",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-flags-03368",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-flags-03369",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-flags-03370",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-flags-03576",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>"
- }
- ],
- "(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-flags-04945",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code>"
- }
- ],
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-flags-02874",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
- {
- "vuid": "VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875",
- "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_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>"
- }
- ]
- },
- "VkPipelineShaderStageCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00704",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00705",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> or <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00706",
- "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>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxCullDistances-00709",
- "text": " If the identified entry point includes any variable in its interface that is declared with the <code>CullDistance</code> <code>BuiltIn</code> decoration, that variable <strong class=\"purple\">must</strong> not have an array size greater than <code>VkPhysicalDeviceLimits</code>::<code>maxCullDistances</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxCombinedClipAndCullDistances-00710",
- "text": " If the identified entry point includes any variables in its interface that are declared with the <code>ClipDistance</code> or <code>CullDistance</code> <code>BuiltIn</code> decoration, those variables <strong class=\"purple\">must</strong> not have array sizes which sum to more than <code>VkPhysicalDeviceLimits</code>::<code>maxCombinedClipAndCullDistances</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxSampleMaskWords-00711",
- "text": " If the identified entry point includes any variable in its interface that is declared with the <code>SampleMask</code> <code>BuiltIn</code> decoration, that variable <strong class=\"purple\">must</strong> not have an array size greater than <code>VkPhysicalDeviceLimits</code>::<code>maxSampleMaskWords</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00712",
- "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_VERTEX_BIT</code>, the identified entry point <strong class=\"purple\">must</strong> not include any input variable in its interface that is decorated with <code>CullDistance</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00713",
- "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> or <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, and the identified entry point has an <code>OpExecutionMode</code> instruction specifying a patch size with <code>OutputVertices</code>, the patch size <strong class=\"purple\">must</strong> be greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTessellationPatchSize</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00714",
- "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, the identified entry point <strong class=\"purple\">must</strong> have an <code>OpExecutionMode</code> instruction specifying a maximum output vertex count that is greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxGeometryOutputVertices</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00715",
- "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, the identified entry point <strong class=\"purple\">must</strong> have an <code>OpExecutionMode</code> instruction specifying an invocation count that is greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxGeometryShaderInvocations</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02596",
- "text": " If <code>stage</code> is a <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a>, and the identified entry point writes to <code>Layer</code> for any primitive, it <strong class=\"purple\">must</strong> write the same value to <code>Layer</code> for all vertices of a given primitive"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02597",
- "text": " If <code>stage</code> is a <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a>, and the identified entry point writes to <code>ViewportIndex</code> for any primitive, it <strong class=\"purple\">must</strong> write the same value to <code>ViewportIndex</code> for all vertices of a given primitive"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00718",
- "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, the identified entry point <strong class=\"purple\">must</strong> not include any output variables in its interface decorated with <code>CullDistance</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00719",
- "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, and the identified entry point writes to <code>FragDepth</code> in any execution path, it <strong class=\"purple\">must</strong> write to <code>FragDepth</code> in all execution paths"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-module-04145",
- "text": " The SPIR-V code that was used to create <code>module</code> <strong class=\"purple\">must</strong> be valid as described by the <a href=\"#spirv-spec\">Khronos SPIR-V Specification</a> after applying the specializations provided in <code>pSpecializationInfo</code>, if any, and then converting all specialization constants into fixed constants"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-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=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-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-VkPipelineShaderStageCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineShaderStageCreateFlagBits\">VkPipelineShaderStageCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-parameter",
- "text": " <code>stage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> value"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-module-parameter",
- "text": " <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderModule\">VkShaderModule</a> handle"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-pName-parameter",
- "text": " <code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-parameter",
- "text": " If <code>pSpecializationInfo</code> is not <code>NULL</code>, <code>pSpecializationInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSpecializationInfo\">VkSpecializationInfo</a> structure"
- }
- ],
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02091",
- "text": " If the <a href=\"#features-meshShader\">mesh shader</a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02092",
- "text": " If the <a href=\"#features-taskShader\">task shader</a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_TASK_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02093",
- "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_MESH_BIT_NV</code>, the identified entry point <strong class=\"purple\">must</strong> have an <code>OpExecutionMode</code> instruction specifying a maximum output vertex count, <code>OutputVertices</code>, that is greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesNV</code>::<code>maxMeshOutputVertices</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02094",
- "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_MESH_BIT_NV</code>, the identified entry point <strong class=\"purple\">must</strong> have an <code>OpExecutionMode</code> instruction specifying a maximum output primitive count, <code>OutputPrimitivesNV</code>, that is greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesNV</code>::<code>maxMeshOutputPrimitives</code>"
- }
- ],
- "(VK_EXT_shader_stencil_export)": [
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-01511",
- "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, and the identified entry point writes to <code>FragStencilRefEXT</code> in any execution path, it <strong class=\"purple\">must</strong> write to <code>FragStencilRefEXT</code> in all execution paths"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_subgroup_size_control)": [
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02784",
- "text": " If <code>flags</code> has the <code>VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT</code> flag set, the <a href=\"#features-subgroupSizeControl\"><code>subgroupSizeControl</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02785",
- "text": " If <code>flags</code> has the <code>VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT</code> flag set, the <a href=\"#features-computeFullSubgroups\"><code>computeFullSubgroups</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02754",
- "text": " If a <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain, <code>flags</code> <strong class=\"purple\">must</strong> not have the <code>VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT</code> flag set"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02755",
- "text": " If a <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain, the <a href=\"#features-subgroupSizeControl\"><code>subgroupSizeControl</code></a> feature <strong class=\"purple\">must</strong> be enabled, and <code>stage</code> <strong class=\"purple\">must</strong> be a valid bit specified in <a href=\"#limits-requiredSubgroupSizeStages\"><code>requiredSubgroupSizeStages</code></a>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02756",
- "text": " If a <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain and <code>stage</code> is <code>VK_SHADER_STAGE_COMPUTE_BIT</code>, the local workgroup size of the shader <strong class=\"purple\">must</strong> be less than or equal to the product of <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a>::<code>requiredSubgroupSize</code> and <a href=\"#limits-maxComputeWorkgroupSubgroups\"><code>maxComputeWorkgroupSubgroups</code></a>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02757",
- "text": " If a <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain, and <code>flags</code> has the <code>VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT</code> flag set, the local workgroup size in the X dimension of the pipeline <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a>::<code>requiredSubgroupSize</code>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02758",
- "text": " If <code>flags</code> has both the <code>VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT</code> and <code>VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT</code> flags set, the local workgroup size in the X dimension of the pipeline <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-maxSubgroupSize\"><code>maxSubgroupSize</code></a>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02759",
- "text": " If <code>flags</code> has the <code>VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT</code> flag set and <code>flags</code> does not have the <code>VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT</code> flag set and no <a href=\"#VkPipelineShaderStageRequiredSubgroupSizeCreateInfo\">VkPipelineShaderStageRequiredSubgroupSizeCreateInfo</a> structure is included in the <code>pNext</code> chain, the local workgroup size in the X dimension of the pipeline <strong class=\"purple\">must</strong> be a multiple of <a href=\"#limits-subgroup-size\"><code>subgroupSize</code></a>"
- }
- ]
- },
- "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo": {
- "(VK_VERSION_1_3,VK_EXT_subgroup_size_control)": [
- {
- "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02760",
- "text": " <code>requiredSubgroupSize</code> <strong class=\"purple\">must</strong> be a power-of-two integer"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02761",
- "text": " <code>requiredSubgroupSize</code> <strong class=\"purple\">must</strong> be greater or equal to <a href=\"#limits-minSubgroupSize\">minSubgroupSize</a>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02762",
- "text": " <code>requiredSubgroupSize</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxSubgroupSize\">maxSubgroupSize</a>"
- },
- {
- "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO</code>"
- }
- ]
- },
- "VkSubpassShadingPipelineCreateInfoHUAWEI": {
- "(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-subpass-04946",
- "text": " <code>subpass</code> <strong class=\"purple\">must</strong> be created with <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code> bind point"
- },
- {
- "vuid": "VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI</code>"
- }
- ]
- },
- "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI": {
- "(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-renderpass-parameter",
- "text": " <code>renderpass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-pMaxWorkgroupSize-parameter",
- "text": " <code>pMaxWorkgroupSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExtent2D\">VkExtent2D</a> structure"
- },
- {
- "vuid": "VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-renderpass-parent",
- "text": " <code>renderpass</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCreateGraphicsPipelines": {
- "core": [
- {
- "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"
- },
- {
- "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"
- },
- {
- "vuid": "VUID-vkCreateGraphicsPipelines-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-parameter",
- "text": " If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
- },
- {
- "vuid": "VUID-vkCreateGraphicsPipelines-pCreateInfos-parameter",
- "text": " <code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a> structures"
- },
- {
- "vuid": "VUID-vkCreateGraphicsPipelines-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"
- },
- {
- "vuid": "VUID-vkCreateGraphicsPipelines-pPipelines-parameter",
- "text": " <code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <a href=\"#VkPipeline\">VkPipeline</a> handles"
- },
- {
- "vuid": "VUID-vkCreateGraphicsPipelines-createInfoCount-arraylength",
- "text": " <code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "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": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00722",
- "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>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00723",
- "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be a valid index into the calling command&#8217;s <code>pCreateInfos</code> parameter"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00724",
- "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is not -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00725",
- "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be -1"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-00726",
- "text": " The <code>stage</code> member of each element of <code>pStages</code> <strong class=\"purple\">must</strong> be unique"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-00728",
- "text": " The <code>stage</code> member of each element of <code>pStages</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_COMPUTE_BIT</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00729",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a tessellation control shader stage, it <strong class=\"purple\">must</strong> include a tessellation evaluation shader stage"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00730",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a tessellation evaluation shader stage, it <strong class=\"purple\">must</strong> include a tessellation control shader stage"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00731",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a tessellation control shader stage and a tessellation evaluation shader stage, <code>pTessellationState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineTessellationStateCreateInfo\">VkPipelineTessellationStateCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00732",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, the shader code of at least one stage <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying the type of subdivision in the pipeline"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00733",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, and the shader code of both stages contain an <code>OpExecutionMode</code> instruction specifying the type of subdivision in the pipeline, they <strong class=\"purple\">must</strong> both specify the same subdivision mode"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00734",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, the shader code of at least one stage <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying the output patch size in the pipeline"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00735",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, and the shader code of both contain an <code>OpExecutionMode</code> instruction specifying the out patch size in the pipeline, they <strong class=\"purple\">must</strong> both specify the same patch size"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00736",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes tessellation shader stages, the <code>topology</code> member of <code>pInputAssembly</code> <strong class=\"purple\">must</strong> be <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-topology-00737",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <code>topology</code> member of <code>pInputAssembly</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, <code>pStages</code> <strong class=\"purple\">must</strong> include tessellation shader stages"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00738",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a geometry shader stage, and does not include any tessellation shader stages, its shader code <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying an input primitive type that is <a href=\"#shaders-geometry-execution\">compatible</a> with the primitive topology specified in <code>pInputAssembly</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00739",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>pStages</code> includes a geometry shader stage, and also includes tessellation shader stages, its shader code <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying an input primitive type that is <a href=\"#shaders-geometry-execution\">compatible</a> with the primitive topology that is output by the tessellation stages"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00740",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, it includes both a fragment shader and a geometry shader, and the fragment shader code reads from an input variable that is decorated with <code>PrimitiveId</code>, then the geometry shader code <strong class=\"purple\">must</strong> write to a matching output variable, decorated with <code>PrimitiveId</code>, in all execution paths"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06038",
- "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> the fragment shader <strong class=\"purple\">must</strong> not read from any input attachment that is defined as <code>VK_ATTACHMENT_UNUSED</code> in <code>subpass</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00742",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and multiple pre-rasterization shader stages are included in <code>pStages</code>, the shader code for the entry points identified by those <code>pStages</code> and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04889",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, the fragment shader and last <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a> and any relevant state <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06039",
- "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>subpass</code> uses a depth/stencil attachment in <code>renderPass</code> with a read-only layout for the depth aspect in the <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> defined by <code>subpass</code>, the <code>depthWriteEnable</code> member of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06040",
- "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>subpass</code> uses a depth/stencil attachment in <code>renderPass</code> with a read-only layout for the stencil aspect in the <a href=\"#VkAttachmentReference\">VkAttachmentReference</a> defined by <code>subpass</code>, the <code>failOp</code>, <code>passOp</code> and <code>depthFailOp</code> members of each of the <code>front</code> and <code>back</code> members of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06041",
- "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a>, then for each color attachment in the subpass, if the <a href=\"#potential-format-features\">potential format features</a> of the format of the corresponding attachment description do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06042",
- "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a>, and the subpass uses color attachments, the <code>attachmentCount</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be equal to the <code>colorAttachmentCount</code> used to create <code>subpass</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the wide lines feature is not enabled, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_LINE_WIDTH</code>, the <code>lineWidth</code> member of <code>pRasterizationState</code> <strong class=\"purple\">must</strong> be <code>1.0</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <code>rasterizerDiscardEnable</code> member of <code>pRasterizationState</code> is <code>VK_FALSE</code>, <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06043",
- "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>subpass</code> uses a depth/stencil attachment, <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06044",
- "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a>, and <code>subpass</code> uses color attachments, <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineColorBlendStateCreateInfo\">VkPipelineColorBlendStateCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, the depth bias clamping feature is not enabled, no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code>, and the <code>depthBiasEnable</code> member of <code>pRasterizationState</code> is <code>VK_TRUE</code>, the <code>depthBiasClamp</code> member of <code>pRasterizationState</code> <strong class=\"purple\">must</strong> be <code>0.0</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-00756",
- "text": " <code>layout</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-pipelinelayout-consistency\">consistent</a> with all shaders specified in <code>pStages</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00757",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, and if <code>subpass</code> uses color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be the same as the sample count for those subpass attachments"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00758",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>subpass</code> does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06046",
- "text": " If <code>renderPass</code> is a valid renderPass, <code>subpass</code> <strong class=\"purple\">must</strong> be a valid subpass within <code>renderPass</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-01688",
- "text": " The number of resources in <code>layout</code> accessible to each shader stage that is used by the pipeline <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageResources</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02098",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-vertex-input\">vertex input state</a>, <code>pInputAssemblyState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04893",
- "text": " The pipeline <strong class=\"purple\">must</strong> be created with a <a href=\"#pipeline-graphics-subsets-complete\">complete set of state</a>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pNext-pNext",
- "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=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a>, <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>, <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>, <a href=\"#VkPipelineCompilerControlCreateInfoAMD\">VkPipelineCompilerControlCreateInfoAMD</a>, <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>, <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>, or <a href=\"#VkPipelineRepresentativeFragmentTestStateCreateInfoNV\">VkPipelineRepresentativeFragmentTestStateCreateInfoNV</a>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-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-VkGraphicsPipelineCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-parameter",
- "text": " <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-parameter",
- "text": " <code>pRasterizationState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineRasterizationStateCreateInfo\">VkPipelineRasterizationStateCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter",
- "text": " If <code>pDynamicState</code> is not <code>NULL</code>, <code>pDynamicState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-parameter",
- "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-parameter",
- "text": " If <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>renderPass</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRenderPass\">VkRenderPass</a> handle"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-stageCount-arraylength",
- "text": " <code>stageCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-commonparent",
- "text": " Each of <code>basePipelineHandle</code>, <code>layout</code>, and <code>renderPass</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_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-00727",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> the <code>stage</code> member of one element of <code>pStages</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_VERTEX_BIT</code>"
- }
- ],
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02095",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> the geometric shader stages provided in <code>pStages</code> <strong class=\"purple\">must</strong> be either from the mesh shading pipeline (<code>stage</code> is <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>) or from the primitive shading pipeline (<code>stage</code> is <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>)"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-02096",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> the <code>stage</code> member of one element of <code>pStages</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, it includes a mesh shader and the fragment shader code reads from an input variable that is decorated with <code>PrimitiveId</code>, then the mesh shader code <strong class=\"purple\">must</strong> write to a matching output variable, decorated with <code>PrimitiveId</code>, in all execution paths"
- }
- ],
- "!(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00747",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT</code>, the <code>pViewports</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState-&gt;viewportCount</code> valid <code>VkViewport</code> structures"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00748",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SCISSOR</code>, the <code>pScissors</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState-&gt;scissorCount</code> <code>VkRect2D</code> structures"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT</code> or <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code>, the <code>pViewports</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState-&gt;viewportCount</code> valid <code>VkViewport</code> structures"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SCISSOR</code> or <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code>, the <code>pScissors</code> member of <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pViewportState-&gt;scissorCount</code> <code>VkRect2D</code> structures"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> is included in the <code>pDynamicStates</code> array then <code>viewportCount</code> <strong class=\"purple\">must</strong> be zero"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> is included in the <code>pDynamicStates</code> array then <code>scissorCount</code> <strong class=\"purple\">must</strong> be zero"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> is included in the <code>pDynamicStates</code> array then <code>VK_DYNAMIC_STATE_VIEWPORT</code> <strong class=\"purple\">must</strong> not be present"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> is included in the <code>pDynamicStates</code> array then <code>VK_DYNAMIC_STATE_SCISSOR</code> <strong class=\"purple\">must</strong> not be present"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled, <code>pViewportState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869",
- "text": " If the <a href=\"#features-extendedDynamicState2LogicOp\">extendedDynamicState2LogicOp</a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870",
- "text": " If the <a href=\"#features-extendedDynamicState2PatchControlPoints\">extendedDynamicState2PatchControlPoints</a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code>"
- }
- ],
- "!(VK_EXT_depth_range_unrestricted)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code>, and the <code>depthBoundsTestEnable</code> member of <code>pDepthStencilState</code> is <code>VK_TRUE</code>, the <code>minDepthBounds</code> and <code>maxDepthBounds</code> members of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
- }
- ],
- "(VK_EXT_depth_range_unrestricted)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code>, and the <code>depthBoundsTestEnable</code> member of <code>pDepthStencilState</code> is <code>VK_TRUE</code>, the <code>minDepthBounds</code> and <code>maxDepthBounds</code> members of <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
- }
- ],
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pMultisampleState</code> is <code>VK_TRUE</code>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>"
- }
- ],
- "(VK_AMD_mixed_attachment_samples)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01505",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension is enabled, and if <code>subpass</code> uses color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> equal the maximum of the sample counts of those subpass attachments"
- }
- ],
- "(VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01411",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if <code>subpass</code> has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01412",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if <code>subpass</code> has any color attachments, then the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> be greater than or equal to the sample count for those subpass attachments"
- }
- ],
- "(VK_NV_coverage_reduction_mode)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the coverage reduction mode specified by <a href=\"#VkPipelineCoverageReductionStateCreateInfoNV\">VkPipelineCoverageReductionStateCreateInfoNV</a>::<code>coverageReductionMode</code>, the <code>rasterizationSamples</code> member of <code>pMultisampleState</code> and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <code>vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06047",
- "text": " If <code>renderPass</code> is a valid renderPass, the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <code>renderPass</code> has multiview enabled and <code>subpass</code> has more than one bit set in the view mask and <code>multiviewTessellationShader</code> is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include tessellation shaders"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06048",
- "text": " If <code>renderPass</code> is a valid renderPass, the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <code>renderPass</code> has multiview enabled and <code>subpass</code> has more than one bit set in the view mask and <code>multiviewGeometryShader</code> is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include a geometry shader"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06049",
- "text": " If <code>renderPass</code> is a valid renderPass, the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <code>renderPass</code> has multiview enabled and <code>subpass</code> has more than one bit set in the view mask, shaders in the pipeline <strong class=\"purple\">must</strong> not write to the <code>Layer</code> built-in output"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06050",
- "text": " If <code>renderPass</code> is a valid renderPass and the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <code>renderPass</code> has multiview enabled, then all shaders <strong class=\"purple\">must</strong> not include variables decorated with the <code>Layer</code> built-in decoration in their interfaces"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00764",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not contain the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance2,VK_KHR_create_renderpass2)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-01565",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and an input attachment was referenced by an <code>aspectMask</code> at <code>renderPass</code> creation time, the fragment shader <strong class=\"purple\">must</strong> only read from the aspects that were specified for that input attachment"
- }
- ],
- "(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code>, and the <code>viewportWScalingEnable</code> member of a <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> structure, included in the <code>pNext</code> chain of <code>pViewportState</code>, is <code>VK_TRUE</code>, the <code>pViewportWScalings</code> member of the <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> <strong class=\"purple\">must</strong> be a pointer to an array of <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> valid <a href=\"#VkViewportWScalingNV\">VkViewportWScalingNV</a> structures"
- }
- ],
- "(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code>, and if <code>pViewportState-&gt;pNext</code> chain includes a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure, and if its <code>exclusiveScissorCount</code> member is not <code>0</code>, then its <code>pExclusiveScissors</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>exclusiveScissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
- }
- ],
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code>, and if <code>pViewportState-&gt;pNext</code> chain includes a <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a> structure, then its <code>pShadingRatePalettes</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkShadingRatePaletteNV\">VkShadingRatePaletteNV</a> structures"
- }
- ],
- "(VK_EXT_discard_rectangles)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code>, and if <code>pNext</code> chain includes a <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a> structure, and if its <code>discardRectangleCount</code> member is not <code>0</code>, then its <code>pDiscardRectangles</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>discardRectangleCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
- }
- ],
- "!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02097",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-vertex-input\">vertex input state</a>, <code>pVertexInputState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineVertexInputStateCreateInfo\">VkPipelineVertexInputStateCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-04910",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-vertex-input\">vertex input state</a>, and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> is not set, <code>pVertexInputState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineVertexInputStateCreateInfo\">VkPipelineVertexInputStateCreateInfo</a> structure"
- }
- ],
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02317",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, the <code>Xfb</code> execution mode <strong class=\"purple\">can</strong> be specified by no more than one shader stage in <code>pStages</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02318",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and any shader stage in <code>pStages</code> specifies <code>Xfb</code> execution mode it <strong class=\"purple\">must</strong> be the last <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and a <a href=\"#VkPipelineRasterizationStateStreamCreateInfoEXT\">VkPipelineRasterizationStateStreamCreateInfoEXT</a>::<code>rasterizationStream</code> value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with <code>Position</code>, <code>PointSize</code>, <code>ClipDistance</code>, or <code>CullDistance</code> <strong class=\"purple\">must</strong> be decorated with identical <code>Stream</code> values that match the <code>rasterizationStream</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and <a href=\"#VkPipelineRasterizationStateStreamCreateInfoEXT\">VkPipelineRasterizationStateStreamCreateInfoEXT</a>::<code>rasterizationStream</code> is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with <code>Position</code>, <code>PointSize</code>, <code>ClipDistance</code>, or <code>CullDistance</code> <strong class=\"purple\">must</strong> be decorated with a <code>Stream</code> value of zero, or <strong class=\"purple\">must</strong> not specify the <code>Stream</code> decoration"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the last <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a> is a geometry shader, and that geometry shader uses the <code>GeometryStreams</code> capability, then <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>geometryStreams</code> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-02322",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and there are any mesh shader stages in the pipeline there <strong class=\"purple\">must</strong> not be any shader stage in the pipeline with a <code>Xfb</code> execution mode"
- }
- ],
- "(VK_EXT_line_rasterization)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and at least one of <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, the <code>lineRasterizationMode</code> member of a <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> structure included in the <code>pNext</code> chain of <code>pRasterizationState</code> is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code> or <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <code>alphaToCoverageEnable</code>, <code>alphaToOneEnable</code>, and <code>sampleShadingEnable</code> members of <code>pMultisampleState</code> <strong class=\"purple\">must</strong> all be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, the <code>stippledLineEnable</code> member of <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> is <code>VK_TRUE</code>, and no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_LINE_STIPPLE_EXT</code>, then the <code>lineStippleFactor</code> member of <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[1,256]</span>"
- }
- ],
- "(VK_KHR_pipeline_library)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03371",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>"
- }
- ],
- "(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03372",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03373",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03374",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03375",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03376",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03377",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03577",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578",
- "text": " All elements of the <code>pDynamicStates</code> member of <code>pDynamicState</code> <strong class=\"purple\">must</strong> not be <code>VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR</code>"
- }
- ],
- "(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-04947",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03378",
- "text": " If the <a href=\"#features-extendedDynamicState\">extendedDynamicState</a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_CULL_MODE</code>, <code>VK_DYNAMIC_STATE_FRONT_FACE</code>, <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY</code>, <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code>, <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code>, <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code>, <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code>, <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code>, <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code>, <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code>, <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code>, or <code>VK_DYNAMIC_STATE_STENCIL_OP</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04868",
- "text": " If the <a href=\"#features-extendedDynamicState2\">extendedDynamicState2</a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code>, <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE</code>, or <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code>"
- }
- ],
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-02877",
- "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>, then the <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-02966",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>flags</code> includes <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>, then all stages <strong class=\"purple\">must</strong> not specify <code>Xfb</code> execution mode"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878",
- "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_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>"
- }
- ],
- "(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be a power-of-two value"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be a power-of-two value"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.width</code> and <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>fragmentSize.height</code> <strong class=\"purple\">must</strong> both be equal to <code>1</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and entry points specified in <code>pStages</code> write to the <code>ViewportIndex</code> built-in, they <strong class=\"purple\">must</strong> not also write to the <code>PrimitiveShadingRateKHR</code> built-in"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentShadingRateNonTrivialCombinerOps</code></a> limit is not supported, and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, elements of <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>combinerOps</code> <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>"
- }
- ],
- "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>::<code>viewportCount</code> is greater than <code>1</code>, entry points specified in <code>pStages</code> <strong class=\"purple\">must</strong> not write to the <code>PrimitiveShadingRateKHR</code> built-in"
- }
- ],
- "(VK_KHR_fragment_shading_rate)+(VK_NV_viewport_array2)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and entry points specified in <code>pStages</code> write to the <code>ViewportMaskNV</code> built-in, they <strong class=\"purple\">must</strong> not also write to the <code>PrimitiveShadingRateKHR</code> built-in"
- }
- ],
- "(VK_NV_fragment_shading_rate_enums)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-fragmentShadingRateEnums\"><code>fragmentShadingRateEnums</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRateType</code> <strong class=\"purple\">must</strong> be equal to <code>VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> be equal to <code>VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, and the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code> feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentShadingRateNonTrivialCombinerOps</code></a> limit is not supported and <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> is not included in <code>pDynamicState-&gt;pDynamicStates</code>, elements of <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>combinerOps</code> <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04574",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <a href=\"#features-supersampleFragmentShadingRates\">supersampleFragmentShadingRates feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV</code>, or <code>VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04575",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> or <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and the <a href=\"#features-noInvocationFragmentShadingRates\">noInvocationFragmentShadingRates feature</a> is not enabled, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>::<code>shadingRate</code> <strong class=\"purple\">must</strong> not be equal to <code>VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV</code>"
- }
- ],
- "(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and the <a href=\"#features-vertexInputDynamicState\">vertexInputDynamicState</a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code>"
- }
- ],
- "(VK_EXT_color_write_enable)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800",
- "text": " If the <a href=\"#features-colorWriteEnable\">colorWriteEnable</a> feature is not enabled, there <strong class=\"purple\">must</strong> be no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> set to <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code>"
- }
- ],
- "(VK_QCOM_render_pass_shader_resolve)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899",
- "text": " If the pipeline is being created with fragment shader state, and the <a href=\"#VK_QCOM_render_pass_shader_resolve\">VK_QCOM_render_pass_shader_resolve</a> extension is enabled, and if subpass has any input attachments, and if the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then the sample count of the input attachments <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900",
- "text": " If the pipeline is being created with fragment shader state, and the <a href=\"#VK_QCOM_render_pass_shader_resolve\">VK_QCOM_render_pass_shader_resolve</a> extension is enabled, and if the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be false"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-04901",
- "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"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-04902",
- "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pResolveAttachments</code> is not <code>NULL</code>, then each resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06051",
- "text": " <code>renderPass</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06052",
- "text": " If the <a href=\"#features-dynamicRendering\"><code>dynamicRendering</code></a> feature is not enabled, <code>renderPass</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06053",
- "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a>, and either of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::depthAttachmentFormat or <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::stencilAttachmentFormat are not <code>VK_FORMAT_UNDEFINED</code>, <code>pDepthStencilState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06054",
- "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a>, and <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::colorAttachmentCount is not equal to <code>0</code>, <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineColorBlendStateCreateInfo\">VkPipelineColorBlendStateCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06055",
- "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>pColorBlendState-&gt;attachmentCount</code> <strong class=\"purple\">must</strong> be equal to <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::colorAttachmentCount"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06056",
- "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> the fragment shader <strong class=\"purple\">must</strong> not read from any input attachment"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06057",
- "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, the <code>viewMask</code> member of a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a> structure included in the <code>pNext</code> chain is not <code>0</code>, and the <a href=\"#features-multiview-tess\"><code>multiviewTessellationShader</code></a> feature is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include tessellation shaders"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06058",
- "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, the <code>viewMask</code> member of a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a> structure included in the <code>pNext</code> chain is not <code>0</code>, and the <a href=\"#features-multiview-gs\"><code>multiviewGeometryShader</code></a> feature is not enabled, then <code>pStages</code> <strong class=\"purple\">must</strong> not include a geometry shader"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06059",
- "text": " If <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the pipeline is being created with <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a>, and the <code>viewMask</code> member of a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a> structure included in the <code>pNext</code> chain is not <code>0</code>, shaders in <code>pStages</code> <strong class=\"purple\">must</strong> not include variables decorated with the <code>Layer</code> built-in decoration in their interfaces"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06060",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a> and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pColorBlendState-&gt;attachmentCount</code> <strong class=\"purple\">must</strong> be equal to the <code>colorAttachmentCount</code> member of the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a> structure included in the <code>pNext</code> chain"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06061",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-shader\">fragment shader state</a> and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, fragment shaders in <code>pStages</code> <strong class=\"purple\">must</strong> not include the <code>InputAttachment</code> capability"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06062",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a> and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, for each color attachment format defined by the <code>pColorAttachmentFormats</code> member of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>, if its <a href=\"#potential-format-features\">potential format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-06063",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a> and <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, if the <code>pNext</code> chain includes <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <code>VkAttachmentSampleCountInfoNV</code>, the <code>colorAttachmentCount</code> member of that structure <strong class=\"purple\">must</strong> be equal to the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code>"
- }
- ],
- "(VK_ARM_rasterization_order_attachment_access)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-06466",
- "text": " If <code>pStages</code> includes a fragment shader stage, and the fragment shader code enables <a href=\"#shaders-fragment-earlytest\">early fragment tests</a>, the <code>flags</code> member of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM</code> or <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06484",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>flags</code> member of <a href=\"#VkPipelineColorBlendStateCreateInfo\">VkPipelineColorBlendStateCreateInfo</a> includes <code>VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM</code> <code>subpass</code> <strong class=\"purple\">must</strong> have been created with <code>VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06485",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>flags</code> member of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> includes <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM</code>, <code>subpass</code> <strong class=\"purple\">must</strong> have been created with <code>VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06486",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>flags</code> member of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> includes <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM</code>, <code>subpass</code> <strong class=\"purple\">must</strong> have been created with <code>VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM</code>"
- }
- ],
- "(VK_ARM_rasterization_order_attachment_access)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06482",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>flags</code> member of <a href=\"#VkPipelineColorBlendStateCreateInfo\">VkPipelineColorBlendStateCreateInfo</a> includes <code>VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM</code>, <code>renderpass</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-06483",
- "text": " If the pipeline is being created with <a href=\"#pipeline-graphics-subsets-fragment-output\">fragment output interface state</a> and the <code>flags</code> member of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a> includes <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM</code> or <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM</code>, <code>renderpass</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ]
- },
- "VkPipelineRenderingCreateInfo": {
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_NV_linear_color_attachment)": [
- {
- "vuid": "VUID-VkPipelineRenderingCreateInfo-pColorAttachmentFormats-06064",
- "text": " If any element of <code>pColorAttachmentFormats</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_NV_linear_color_attachment)": [
- {
- "vuid": "VUID-VkPipelineRenderingCreateInfoKHR-pColorAttachmentFormats-06495",
- "text": " If any element of <code>pColorAttachmentFormats</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that includes either <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-VkPipelineRenderingCreateInfo-depthAttachmentFormat-06544",
- "text": " If <code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a depth aspect"
- },
- {
- "vuid": "VUID-VkPipelineRenderingCreateInfo-stencilAttachmentFormat-06545",
- "text": " If <code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format that includes a stencil aspect"
- },
- {
- "vuid": "VUID-VkPipelineRenderingCreateInfo-depthAttachmentFormat-06065",
- "text": " If <code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkPipelineRenderingCreateInfo-stencilAttachmentFormat-06164",
- "text": " If <code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, it <strong class=\"purple\">must</strong> be a format with <a href=\"#potential-format-features\">potential format features</a> that include <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkPipelineRenderingCreateInfo-depthAttachmentFormat-06165",
- "text": " If <code>depthAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code> and <code>stencilAttachmentFormat</code> is not <code>VK_FORMAT_UNDEFINED</code>, <code>depthAttachmentFormat</code> <strong class=\"purple\">must</strong> equal <code>stencilAttachmentFormat</code>"
- },
- {
- "vuid": "VUID-VkPipelineRenderingCreateInfo-multiview-06066",
- "text": " If the <a href=\"#features-multiview\"><code>multiview</code></a> feature is not enabled, <code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineRenderingCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineRenderingCreateInfo-pColorAttachmentFormats-parameter",
- "text": " If <code>colorAttachmentCount</code> is not <code>0</code>, <code>pColorAttachmentFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorAttachmentCount</code> valid <a href=\"#VkFormat\">VkFormat</a> values"
- },
- {
- "vuid": "VUID-VkPipelineRenderingCreateInfo-depthAttachmentFormat-parameter",
- "text": " <code>depthAttachmentFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-VkPipelineRenderingCreateInfo-stencilAttachmentFormat-parameter",
- "text": " <code>stencilAttachmentFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkPipelineRenderingCreateInfo-viewMask-06067",
- "text": " The index of the most significant bit in <code>viewMask</code> <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxMultiviewViewCount\"><code>maxMultiviewViewCount</code></a>"
- }
- ]
- },
- "VkPipelineDynamicStateCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442",
- "text": " Each element of <code>pDynamicStates</code> <strong class=\"purple\">must</strong> be unique"
- },
- {
- "vuid": "VUID-VkPipelineDynamicStateCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineDynamicStateCreateInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkPipelineDynamicStateCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-parameter",
- "text": " If <code>dynamicStateCount</code> is not <code>0</code>, <code>pDynamicStates</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dynamicStateCount</code> valid <a href=\"#VkDynamicState\">VkDynamicState</a> values"
- }
- ]
- },
- "VkGraphicsPipelineShaderGroupsCreateInfoNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02879",
- "text": " <code>groupCount</code> <strong class=\"purple\">must</strong> be at least <code>1</code> and as maximum <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxGraphicsShaderGroupCount</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02880",
- "text": " The sum of <code>groupCount</code> including those groups added from referenced <code>pPipelines</code> <strong class=\"purple\">must</strong> also be as maximum <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxGraphicsShaderGroupCount</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02881",
- "text": " The state of the first element of <code>pGroups</code> <strong class=\"purple\">must</strong> match its equivalent within the parent&#8217;s <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02882",
- "text": " Each element of <code>pGroups</code> <strong class=\"purple\">must</strong> in combination with the rest of the pipeline state yield a valid state configuration"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886",
- "text": " Each element of <code>pPipelines</code> <strong class=\"purple\">must</strong> have been created with identical state to the pipeline currently created except the state that can be overridden by <a href=\"#VkGraphicsShaderGroupCreateInfoNV\">VkGraphicsShaderGroupCreateInfoNV</a>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887",
- "text": " The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameter",
- "text": " <code>pGroups</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>groupCount</code> valid <a href=\"#VkGraphicsShaderGroupCreateInfoNV\">VkGraphicsShaderGroupCreateInfoNV</a> structures"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-parameter",
- "text": " If <code>pipelineCount</code> is not <code>0</code>, <code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pipelineCount</code> valid <a href=\"#VkPipeline\">VkPipeline</a> handles"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-arraylength",
- "text": " <code>groupCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+!(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02883",
- "text": " All elements of <code>pGroups</code> <strong class=\"purple\">must</strong> use the same shader stage combinations"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884",
- "text": " All elements of <code>pGroups</code> <strong class=\"purple\">must</strong> use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid"
- },
- {
- "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02885",
- "text": " Mesh and regular primitive shading stages cannot be mixed across <code>pGroups</code>"
- }
- ]
- },
- "VkGraphicsShaderGroupCreateInfoNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-02888",
- "text": " For <code>stageCount</code>, the same restrictions as in <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>stageCount</code> apply"
- },
- {
- "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-02889",
- "text": " For <code>pStages</code>, the same restrictions as in <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> apply"
- },
- {
- "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pVertexInputState-02890",
- "text": " For <code>pVertexInputState</code>, the same restrictions as in <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pVertexInputState</code> apply"
- },
- {
- "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pTessellationState-02891",
- "text": " For <code>pTessellationState</code>, the same restrictions as in <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pTessellationState</code> apply"
- },
- {
- "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-parameter",
- "text": " <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures"
- },
- {
- "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-arraylength",
- "text": " <code>stageCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkCreateRayTracingPipelinesNV": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
- {
- "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"
- },
- {
- "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"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesNV-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parameter",
- "text": " If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesNV-pCreateInfos-parameter",
- "text": " <code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a> structures"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesNV-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"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesNV-pPipelines-parameter",
- "text": " <code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <a href=\"#VkPipeline\">VkPipeline</a> handles"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesNV-createInfoCount-arraylength",
- "text": " <code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "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)": [
- {
- "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"
- },
- {
- "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"
- },
- {
- "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"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03678",
- "text": " Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesKHR-rayTracingPipeline-03586",
- "text": " The <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-parameter",
- "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parameter",
- "text": " If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pCreateInfos-parameter",
- "text": " <code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a> structures"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesKHR-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"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pPipelines-parameter",
- "text": " <code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <a href=\"#VkPipeline\">VkPipeline</a> handles"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesKHR-createInfoCount-arraylength",
- "text": " <code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-parent",
- "text": " If <code>deferredOperation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- },
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesKHR-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_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)": [
- {
- "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)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)+(VK_KHR_deferred_host_operations)": [
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03587",
- "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>flags</code> member of elements of <code>pCreateInfos</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>"
- }
- ]
- },
- "VkRayTracingPipelineCreateInfoNV": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03421",
- "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is <code>-1</code>, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid handle to a ray tracing <code>VkPipeline</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03422",
- "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be a valid index into the calling command&#8217;s <code>pCreateInfos</code> parameter"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03423",
- "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is not <code>-1</code>, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03424",
- "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be <code>-1</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-03426",
- "text": " The shader code for the entry points identified by <code>pStages</code>, and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-03427",
- "text": " <code>layout</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-pipelinelayout-consistency\">consistent</a> with all shaders specified in <code>pStages</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-03428",
- "text": " The number of resources in <code>layout</code> accessible to each shader stage that is used by the pipeline <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxPerStageResources</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stage-06232",
- "text": " The <code>stage</code> member of at least one element of <code>pStages</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_RAYGEN_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-maxRecursionDepth-03457",
- "text": " <code>maxRecursionDepth</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxRecursionDepth</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-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=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-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-VkRayTracingPipelineCreateInfoNV-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-parameter",
- "text": " <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pGroups-parameter",
- "text": " <code>pGroups</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>groupCount</code> valid <a href=\"#VkRayTracingShaderGroupCreateInfoNV\">VkRayTracingShaderGroupCreateInfoNV</a> structures"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-parameter",
- "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stageCount-arraylength",
- "text": " <code>stageCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-groupCount-arraylength",
- "text": " <code>groupCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-commonparent",
- "text": " Both of <code>basePipelineHandle</code>, and <code>layout</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_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02904",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>"
- }
- ],
- "(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-VkRayTracingPipelineCreateInfoNV-pipelineCreationCacheControl-02905",
- "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_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02957",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include both <code>VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV</code> and <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> at the same time"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_KHR_pipeline_library)": [
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03456",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03458",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03459",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03460",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03461",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03462",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03463",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03588",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-04948",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code>"
- }
- ]
- },
- "VkRayTracingPipelineCreateInfoKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03421",
- "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is <code>-1</code>, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid handle to a ray tracing <code>VkPipeline</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03422",
- "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be a valid index into the calling command&#8217;s <code>pCreateInfos</code> parameter"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03423",
- "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is not <code>-1</code>, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03424",
- "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be <code>-1</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pStages-03426",
- "text": " The shader code for the entry points identified by <code>pStages</code>, and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-03427",
- "text": " <code>layout</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-pipelinelayout-consistency\">consistent</a> with all shaders specified in <code>pStages</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-03428",
- "text": " The number of resources in <code>layout</code> accessible to each shader stage that is used by the pipeline <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxPerStageResources</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-stage-03425",
- "text": " If <code>flags</code> does not include <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>, the <code>stage</code> member of at least one element of <code>pStages</code>, including those implicitly added by <code>pLibraryInfo</code>, <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_RAYGEN_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-maxPipelineRayRecursionDepth-03589",
- "text": " <code>maxPipelineRayRecursionDepth</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>::<code>maxRayRecursionDepth</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03595",
- "text": " If the <code><a href=\"#VK_KHR_pipeline_library\">VK_KHR_pipeline_library</a></code> extension is not enabled, <code>pLibraryInfo</code> and <code>pLibraryInterface</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03470",
- "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, for any element of <code>pGroups</code> with a <code>type</code> of <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code> or <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code>, the <code>anyHitShader</code> of that element <strong class=\"purple\">must</strong> not be <code>VK_SHADER_UNUSED_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03471",
- "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, for any element of <code>pGroups</code> with a <code>type</code> of <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code> or <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code>, the <code>closestHitShader</code> of that element <strong class=\"purple\">must</strong> not be <code>VK_SHADER_UNUSED_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03596",
- "text": " If the <a href=\"#features-rayTraversalPrimitiveCulling\"><code>rayTraversalPrimitiveCulling</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03597",
- "text": " If the <a href=\"#features-rayTraversalPrimitiveCulling\"><code>rayTraversalPrimitiveCulling</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-06546",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include both <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code> and <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03598",
- "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>, <a href=\"#features-rayTracingPipelineShaderGroupHandleCaptureReplay\"><code>rayTracingPipelineShaderGroupHandleCaptureReplay</code></a> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03599",
- "text": " If <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>::<code>rayTracingPipelineShaderGroupHandleCaptureReplay</code> is <code>VK_TRUE</code> and the <code>pShaderGroupCaptureReplayHandle</code> member of any element of <code>pGroups</code> is not <code>NULL</code>, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03600",
- "text": " If <code>pLibraryInfo</code> is not <code>NULL</code> and its <code>libraryCount</code> is <code>0</code>, <code>stageCount</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03601",
- "text": " If <code>pLibraryInfo</code> is not <code>NULL</code> and its <code>libraryCount</code> is <code>0</code>, <code>groupCount</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicStates-03602",
- "text": " Any element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> <strong class=\"purple\">must</strong> be <code>VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-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=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-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-VkRayTracingPipelineCreateInfoKHR-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pStages-parameter",
- "text": " If <code>stageCount</code> is not <code>0</code>, <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a> structures"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pGroups-parameter",
- "text": " If <code>groupCount</code> is not <code>0</code>, <code>pGroups</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>groupCount</code> valid <a href=\"#VkRayTracingShaderGroupCreateInfoKHR\">VkRayTracingShaderGroupCreateInfoKHR</a> structures"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-parameter",
- "text": " If <code>pLibraryInfo</code> is not <code>NULL</code>, <code>pLibraryInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInterface-parameter",
- "text": " If <code>pLibraryInterface</code> is not <code>NULL</code>, <code>pLibraryInterface</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkRayTracingPipelineInterfaceCreateInfoKHR\">VkRayTracingPipelineInterfaceCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicState-parameter",
- "text": " If <code>pDynamicState</code> is not <code>NULL</code>, <code>pDynamicState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-parameter",
- "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-commonparent",
- "text": " Both of <code>basePipelineHandle</code>, and <code>layout</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_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-02904",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>"
- }
- ],
- "(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-VkRayTracingPipelineCreateInfoKHR-pipelineCreationCacheControl-02905",
- "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_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)": [
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03465",
- "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>, <code>pLibraryInterface</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03590",
- "text": " If <code>pLibraryInfo</code> is not <code>NULL</code> and its <code>libraryCount</code> member is greater than <code>0</code>, its <code>pLibraryInterface</code> member <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03591",
- "text": " Each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the value of <code>maxPipelineRayRecursionDepth</code> equal to that in this pipeline"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03592",
- "text": " If <code>pLibraryInfo</code> is not <code>NULL</code>, each element of its <code>pLibraries</code> member <strong class=\"purple\">must</strong> have been created with a <code>layout</code> that is compatible with the <code>layout</code> in this pipeline"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03593",
- "text": " If <code>pLibraryInfo</code> is not <code>NULL</code>, each element of its <code>pLibraries</code> member <strong class=\"purple\">must</strong> have been created with values of the <code>maxPipelineRayPayloadSize</code> and <code>maxPipelineRayHitAttributeSize</code> members of <code>pLibraryInterface</code> equal to those in this pipeline"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03594",
- "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code> bit set"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04718",
- "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code> bit set"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04719",
- "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code> bit set"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04720",
- "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code> bit set"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04721",
- "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code> bit set"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04722",
- "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code> bit set"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-04723",
- "text": " If <code>flags</code> includes <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>, each element of <code>pLibraryInfo-&gt;pLibraries</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code> bit set"
- }
- ]
- },
- "VkRayTracingShaderGroupCreateInfoNV": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02413",
- "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV</code> then <code>generalShader</code> <strong class=\"purple\">must</strong> be a valid index into <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_RAYGEN_BIT_NV</code>, <code>VK_SHADER_STAGE_MISS_BIT_NV</code>, or <code>VK_SHADER_STAGE_CALLABLE_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02414",
- "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV</code> then <code>closestHitShader</code>, <code>anyHitShader</code>, and <code>intersectionShader</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_UNUSED_NV</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02415",
- "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV</code> then <code>intersectionShader</code> <strong class=\"purple\">must</strong> be a valid index into <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_INTERSECTION_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02416",
- "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV</code> then <code>intersectionShader</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_UNUSED_NV</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-closestHitShader-02417",
- "text": " <code>closestHitShader</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_UNUSED_NV</code> or a valid index into <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-anyHitShader-02418",
- "text": " <code>anyHitShader</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_UNUSED_NV</code> or a valid index into <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_ANY_HIT_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRayTracingShaderGroupTypeKHR\">VkRayTracingShaderGroupTypeKHR</a> value"
- }
- ]
- },
- "VkRayTracingShaderGroupCreateInfoKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03474",
- "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR</code> then <code>generalShader</code> <strong class=\"purple\">must</strong> be a valid index into <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_RAYGEN_BIT_KHR</code>, <code>VK_SHADER_STAGE_MISS_BIT_KHR</code>, or <code>VK_SHADER_STAGE_CALLABLE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03475",
- "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR</code> then <code>closestHitShader</code>, <code>anyHitShader</code>, and <code>intersectionShader</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_UNUSED_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03476",
- "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code> then <code>intersectionShader</code> <strong class=\"purple\">must</strong> be a valid index into <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_INTERSECTION_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03477",
- "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code> then <code>intersectionShader</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_UNUSED_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-closestHitShader-03478",
- "text": " <code>closestHitShader</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_UNUSED_KHR</code> or a valid index into <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-anyHitShader-03479",
- "text": " <code>anyHitShader</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_UNUSED_KHR</code> or a valid index into <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a>::<code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_ANY_HIT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03603",
- "text": " If <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>::<code>rayTracingPipelineShaderGroupHandleCaptureReplayMixed</code> is <code>VK_FALSE</code> then <code>pShaderGroupCaptureReplayHandle</code> <strong class=\"purple\">must</strong> not be provided if it has not been provided on a previous call to ray tracing pipeline creation"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03604",
- "text": " If <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>::<code>rayTracingPipelineShaderGroupHandleCaptureReplayMixed</code> is <code>VK_FALSE</code> then the caller <strong class=\"purple\">must</strong> guarantee that no ray tracing pipeline creation commands with <code>pShaderGroupCaptureReplayHandle</code> provided execute simultaneously with ray tracing pipeline creation commands without <code>pShaderGroupCaptureReplayHandle</code> provided"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRayTracingShaderGroupTypeKHR\">VkRayTracingShaderGroupTypeKHR</a> value"
- }
- ]
- },
- "VkRayTracingPipelineInterfaceCreateInfoKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-maxPipelineRayHitAttributeSize-03605",
- "text": " <code>maxPipelineRayHitAttributeSize</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>::<code>maxRayHitAttributeSize</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetRayTracingShaderGroupHandlesKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-04619",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline"
- },
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-04050",
- "text": " <code>firstGroup</code> <strong class=\"purple\">must</strong> be less than the number of shader groups in <code>pipeline</code>"
- },
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-02419",
- "text": " The sum of <code>firstGroup</code> and <code>groupCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of shader groups in <code>pipeline</code>"
- },
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-02420",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be at least <span class=\"eq\"><a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>::<code>shaderGroupHandleSize</code> {times} <code>groupCount</code></span>"
- },
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parameter",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
- },
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pData-parameter",
- "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
- },
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-arraylength",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parent",
- "text": " <code>pipeline</code> <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_pipeline_library)": [
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-03482",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have not been created with <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>"
- }
- ]
- },
- "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-04620",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline"
- },
- {
- "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-04051",
- "text": " <code>firstGroup</code> <strong class=\"purple\">must</strong> be less than the number of shader groups in <code>pipeline</code>"
- },
- {
- "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-03483",
- "text": " The sum of <code>firstGroup</code> and <code>groupCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of shader groups in <code>pipeline</code>"
- },
- {
- "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-03484",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be at least <span class=\"eq\"><a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>::<code>shaderGroupHandleCaptureReplaySize</code> {times} <code>groupCount</code></span>"
- },
- {
- "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03606",
- "text": " <code>VkPhysicalDeviceRayTracingPipelineFeaturesKHR</code>::<code>rayTracingPipelineShaderGroupHandleCaptureReplay</code> <strong class=\"purple\">must</strong> be enabled to call this function"
- },
- {
- "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-03607",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with a <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parameter",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
- },
- {
- "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pData-parameter",
- "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
- },
- {
- "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-arraylength",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parent",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCompileDeferredNV": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-vkCompileDeferredNV-pipeline-04621",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline"
- },
- {
- "vuid": "VUID-vkCompileDeferredNV-pipeline-02237",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCompileDeferredNV-shader-02238",
- "text": " <code>shader</code> <strong class=\"purple\">must</strong> not have been called as a deferred compile before"
- },
- {
- "vuid": "VUID-vkCompileDeferredNV-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCompileDeferredNV-pipeline-parameter",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
- },
- {
- "vuid": "VUID-vkCompileDeferredNV-pipeline-parent",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkGetRayTracingShaderGroupStackSizeKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-04622",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline"
- },
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-group-03608",
- "text": " The value of <code>group</code> must be less than the number of shader groups in <code>pipeline</code>"
- },
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-03609",
- "text": " The shader identified by <code>groupShader</code> in <code>group</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_UNUSED_KHR</code>"
- },
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parameter",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
- },
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-parameter",
- "text": " <code>groupShader</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderGroupShaderKHR\">VkShaderGroupShaderKHR</a> value"
- },
- {
- "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parent",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCmdSetRayTracingPipelineStackSizeKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-pipelineStackSize-03610",
- "text": " <code>pipelineStackSize</code> <strong class=\"purple\">must</strong> be large enough for any dynamic execution through the shaders in the ray tracing pipeline used by a subsequent trace call"
- },
- {
- "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ]
- },
- "vkDestroyPipeline": {
- "core": [
- {
- "vuid": "VUID-vkDestroyPipeline-pipeline-00765",
- "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"
- },
- {
- "vuid": "VUID-vkDestroyPipeline-pipeline-parameter",
- "text": " If <code>pipeline</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyPipeline-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"
- },
- {
- "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>"
- }
- ]
- },
- "vkCreatePipelineCache": {
- "core": [
- {
- "vuid": "VUID-vkCreatePipelineCache-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreatePipelineCache-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineCacheCreateInfo\">VkPipelineCacheCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreatePipelineCache-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"
- },
- {
- "vuid": "VUID-vkCreatePipelineCache-pPipelineCache-parameter",
- "text": " <code>pPipelineCache</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
- }
- ]
- },
- "VkPipelineCacheCreateInfo": {
- "core": [
- {
- "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"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-VkPipelineCacheCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineCacheCreateInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkPipelineCacheCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineCacheCreateFlagBits\">VkPipelineCacheCreateFlagBits</a> values"
- },
- {
- "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": [
- {
- "vuid": "VUID-vkMergePipelineCaches-dstCache-00770",
- "text": " <code>dstCache</code> <strong class=\"purple\">must</strong> not appear in the list of source caches"
- },
- {
- "vuid": "VUID-vkMergePipelineCaches-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkMergePipelineCaches-dstCache-parameter",
- "text": " <code>dstCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
- },
- {
- "vuid": "VUID-vkMergePipelineCaches-pSrcCaches-parameter",
- "text": " <code>pSrcCaches</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>srcCacheCount</code> valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handles"
- },
- {
- "vuid": "VUID-vkMergePipelineCaches-srcCacheCount-arraylength",
- "text": " <code>srcCacheCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkMergePipelineCaches-dstCache-parent",
- "text": " <code>dstCache</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- },
- {
- "vuid": "VUID-vkMergePipelineCaches-pSrcCaches-parent",
- "text": " Each element of <code>pSrcCaches</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkGetPipelineCacheData": {
- "core": [
- {
- "vuid": "VUID-vkGetPipelineCacheData-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPipelineCacheData-pipelineCache-parameter",
- "text": " <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
- },
- {
- "vuid": "VUID-vkGetPipelineCacheData-pDataSize-parameter",
- "text": " <code>pDataSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>size_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPipelineCacheData-pData-parameter",
- "text": " If the value referenced by <code>pDataSize</code> is not <code>0</code>, and <code>pData</code> is not <code>NULL</code>, <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDataSize</code> bytes"
- },
- {
- "vuid": "VUID-vkGetPipelineCacheData-pipelineCache-parent",
- "text": " <code>pipelineCache</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "VkPipelineCacheHeaderVersionOne": {
- "core": [
- {
- "vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerSize-04967",
- "text": " <code>headerSize</code> <strong class=\"purple\">must</strong> be 32"
- },
- {
- "vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerVersion-04968",
- "text": " <code>headerVersion</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_CACHE_HEADER_VERSION_ONE</code>"
- },
- {
- "vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerVersion-parameter",
- "text": " <code>headerVersion</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCacheHeaderVersion\">VkPipelineCacheHeaderVersion</a> value"
- }
- ]
- },
- "vkDestroyPipelineCache": {
- "core": [
- {
- "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"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-vkDestroyPipelineCache-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-parameter",
- "text": " If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCache\">VkPipelineCache</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyPipelineCache-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"
- },
- {
- "vuid": "VUID-vkDestroyPipelineCache-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>"
- }
- ]
- },
- "VkSpecializationInfo": {
- "core": [
- {
- "vuid": "VUID-VkSpecializationInfo-offset-00773",
- "text": " The <code>offset</code> member of each element of <code>pMapEntries</code> <strong class=\"purple\">must</strong> be less than <code>dataSize</code>"
- },
- {
- "vuid": "VUID-VkSpecializationInfo-pMapEntries-00774",
- "text": " The <code>size</code> member of each element of <code>pMapEntries</code> <strong class=\"purple\">must</strong> be less than or equal to <code>dataSize</code> minus <code>offset</code>"
- },
- {
- "vuid": "VUID-VkSpecializationInfo-constantID-04911",
- "text": " The <code>constantID</code> value of each element of <code>pMapEntries</code> <strong class=\"purple\">must</strong> be unique within <code>pMapEntries</code>"
- },
- {
- "vuid": "VUID-VkSpecializationInfo-pMapEntries-parameter",
- "text": " If <code>mapEntryCount</code> is not <code>0</code>, <code>pMapEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>mapEntryCount</code> valid <a href=\"#VkSpecializationMapEntry\">VkSpecializationMapEntry</a> structures"
- },
- {
- "vuid": "VUID-VkSpecializationInfo-pData-parameter",
- "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"
- }
- ]
- },
- "VkSpecializationMapEntry": {
- "core": [
- {
- "vuid": "VUID-VkSpecializationMapEntry-constantID-00776",
- "text": " For a <code>constantID</code> specialization constant declared in a shader, <code>size</code> <strong class=\"purple\">must</strong> match the byte size of the <code>constantID</code>. If the specialization constant is of type <code>boolean</code>, <code>size</code> <strong class=\"purple\">must</strong> be the byte size of <code>VkBool32</code>"
- }
- ]
- },
- "VkPipelineLibraryCreateInfoKHR": {
- "(VK_KHR_pipeline_library)": [
- {
- "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-03381",
- "text": " Each element of <code>pLibraries</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-parameter",
- "text": " If <code>libraryCount</code> is not <code>0</code>, <code>pLibraries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>libraryCount</code> valid <a href=\"#VkPipeline\">VkPipeline</a> handles"
- }
- ]
- },
- "vkCmdBindPipeline": {
- "core": [
- {
- "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00777",
- "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00778",
- "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00779",
- "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a compute pipeline"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00780",
- "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-pipeline-00781",
- "text": " If the <a href=\"#features-variableMultisampleRate\">variable multisample rate</a> feature is not supported, <code>pipeline</code> is a graphics pipeline, the current subpass <a href=\"#renderpass-noattachments\">uses no attachments</a>, and this is not the first call to this function with a graphics pipeline after transitioning to the current subpass, then the sample count specified by this pipeline <strong class=\"purple\">must</strong> match that set in the previous pipeline"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-parameter",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-pipeline-parameter",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdBindPipeline-variableSampleLocations-01525",
- "text": " If <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>::<code>variableSampleLocations</code> is <code>VK_FALSE</code>, and <code>pipeline</code> is a graphics pipeline created with a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> structure having its <code>sampleLocationsEnable</code> member set to <code>VK_TRUE</code> but without <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> enabled then the current render pass instance <strong class=\"purple\">must</strong> have been begun by specifying a <a href=\"#VkRenderPassSampleLocationsBeginInfoEXT\">VkRenderPassSampleLocationsBeginInfoEXT</a> structure whose <code>pPostSubpassSampleLocations</code> member contains an element with a <code>subpassIndex</code> matching the current subpass index and the <code>sampleLocationsInfo</code> member of that element <strong class=\"purple\">must</strong> match the <code>sampleLocationsInfo</code> specified in <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a> when the pipeline was created"
- }
- ],
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdBindPipeline-None-02323",
- "text": " This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-02391",
- "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-02392",
- "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline"
- }
- ],
- "(VK_KHR_pipeline_library)": [
- {
- "vuid": "VUID-vkCmdBindPipeline-pipeline-03382",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_LIBRARY_BIT_KHR</code> set"
- }
- ],
- "(VK_NV_inherited_viewport_scissor)": [
- {
- "vuid": "VUID-vkCmdBindPipeline-commandBuffer-04808",
- "text": " If <code>commandBuffer</code> is a secondary command buffer with <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled and <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> or <code>VK_DYNAMIC_STATE_VIEWPORT</code>, and <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> or <code>VK_DYNAMIC_STATE_SCISSOR</code> enabled"
- }
- ],
- "(VK_NV_inherited_viewport_scissor,VK_EXT_discard_rectangles)": [
- {
- "vuid": "VUID-vkCmdBindPipeline-commandBuffer-04809",
- "text": " If <code>commandBuffer</code> is a secondary command buffer with <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled and <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> and <code>pipeline</code> was created with <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a> structure and its <code>discardRectangleCount</code> member is not <code>0</code>, then the pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> enabled"
- }
- ],
- "(VK_EXT_provoking_vertex)": [
- {
- "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-04881",
- "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> and the <a href=\"#limits-provokingVertexModePerPipeline\">provokingVertexModePerPipeline</a> limit is <code>VK_FALSE</code>, then pipeline&#8217;s <a href=\"#VkPipelineRasterizationProvokingVertexStateCreateInfoEXT\">VkPipelineRasterizationProvokingVertexStateCreateInfoEXT</a>::<code>provokingVertexMode</code> <strong class=\"purple\">must</strong> be the same as that of any other pipelines previously bound to this bind point within the current render pass instance, including any pipeline already bound when beginning the render pass instance"
- }
- ],
- "(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-04949",
- "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-04950",
- "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>, <code>pipeline</code> <strong class=\"purple\">must</strong> be a subpass shading pipeline"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdBindPipeline-pipeline-06195",
- "text": " If <code>pipeline</code> is a graphics pipeline, this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and commands using the previously bound graphics pipeline have been recorded within the render pass instance, then the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> specified by this pipeline <strong class=\"purple\">must</strong> match that set in the previous pipeline"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-pipeline-06196",
- "text": " If <code>pipeline</code> is a graphics pipeline, this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and commands using the previously bound graphics pipeline have been recorded within the render pass instance, then the elements of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> specified by this pipeline <strong class=\"purple\">must</strong> match that set in the previous pipeline"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-pipeline-06197",
- "text": " If <code>pipeline</code> is a graphics pipeline, this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and commands using the previously bound graphics pipeline have been recorded within the render pass instance, then the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> specified by this pipeline <strong class=\"purple\">must</strong> match that set in the previous pipeline"
- },
- {
- "vuid": "VUID-vkCmdBindPipeline-pipeline-06194",
- "text": " If <code>pipeline</code> is a graphics pipeline, this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and commands using the previously bound graphics pipeline have been recorded within the render pass instance, then the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> specified by this pipeline <strong class=\"purple\">must</strong> match that set in the previous pipeline"
- }
- ]
- },
- "vkCmdBindPipelineShaderGroupNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02893",
- "text": " <code>groupIndex</code> <strong class=\"purple\">must</strong> be <code>0</code> or less than the effective <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>::<code>groupCount</code> including the referenced pipelines"
- },
- {
- "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-02894",
- "text": " The <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02895",
- "text": " The same restrictions as <a href=\"#vkCmdBindPipeline\">vkCmdBindPipeline</a> apply as if the bound pipeline was created only with the Shader Group from the <code>groupIndex</code> information"
- },
- {
- "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-deviceGeneratedCommands-02896",
- "text": " The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-parameter",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
- },
- {
- "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipeline-parameter",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "vkGetPipelineExecutablePropertiesKHR": {
- "(VK_KHR_pipeline_executable_properties)": [
- {
- "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pipelineExecutableInfo-03270",
- "text": " <a href=\"#features-pipelineExecutableInfo\"><code>pipelineExecutableInfo</code></a> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pipeline-03271",
- "text": " <code>pipeline</code> member of <code>pPipelineInfo</code> <strong class=\"purple\">must</strong> have been created with <code>device</code>"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pPipelineInfo-parameter",
- "text": " <code>pPipelineInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineInfoKHR\">VkPipelineInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pExecutableCount-parameter",
- "text": " <code>pExecutableCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pProperties-parameter",
- "text": " If the value referenced by <code>pExecutableCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pExecutableCount</code> <a href=\"#VkPipelineExecutablePropertiesKHR\">VkPipelineExecutablePropertiesKHR</a> structures"
- }
- ]
- },
- "VkPipelineInfoKHR": {
- "(VK_KHR_pipeline_executable_properties)": [
- {
- "vuid": "VUID-VkPipelineInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkPipelineInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkPipelineInfoKHR-pipeline-parameter",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
- }
- ]
- },
- "VkPipelineExecutablePropertiesKHR": {
- "(VK_KHR_pipeline_executable_properties)": [
- {
- "vuid": "VUID-VkPipelineExecutablePropertiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR</code>"
- },
- {
- "vuid": "VUID-VkPipelineExecutablePropertiesKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetPipelineExecutableStatisticsKHR": {
- "(VK_KHR_pipeline_executable_properties)": [
- {
- "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipelineExecutableInfo-03272",
- "text": " <a href=\"#features-pipelineExecutableInfo\"><code>pipelineExecutableInfo</code></a> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03273",
- "text": " <code>pipeline</code> member of <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> have been created with <code>device</code>"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274",
- "text": " <code>pipeline</code> member of <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pExecutableInfo-parameter",
- "text": " <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineExecutableInfoKHR\">VkPipelineExecutableInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pStatisticCount-parameter",
- "text": " <code>pStatisticCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pStatistics-parameter",
- "text": " If the value referenced by <code>pStatisticCount</code> is not <code>0</code>, and <code>pStatistics</code> is not <code>NULL</code>, <code>pStatistics</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pStatisticCount</code> <a href=\"#VkPipelineExecutableStatisticKHR\">VkPipelineExecutableStatisticKHR</a> structures"
- }
- ]
- },
- "VkPipelineExecutableInfoKHR": {
- "(VK_KHR_pipeline_executable_properties)": [
- {
- "vuid": "VUID-VkPipelineExecutableInfoKHR-executableIndex-03275",
- "text": " <code>executableIndex</code> <strong class=\"purple\">must</strong> be less than the number of pipeline executables associated with <code>pipeline</code> as returned in the <code>pExecutableCount</code> parameter of <code>vkGetPipelineExecutablePropertiesKHR</code>"
- },
- {
- "vuid": "VUID-VkPipelineExecutableInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkPipelineExecutableInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkPipelineExecutableInfoKHR-pipeline-parameter",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
- }
- ]
- },
- "VkPipelineExecutableStatisticKHR": {
- "(VK_KHR_pipeline_executable_properties)": [
- {
- "vuid": "VUID-VkPipelineExecutableStatisticKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR</code>"
- },
- {
- "vuid": "VUID-VkPipelineExecutableStatisticKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetPipelineExecutableInternalRepresentationsKHR": {
- "(VK_KHR_pipeline_executable_properties)": [
- {
- "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipelineExecutableInfo-03276",
- "text": " <a href=\"#features-pipelineExecutableInfo\"><code>pipelineExecutableInfo</code></a> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03277",
- "text": " <code>pipeline</code> member of <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> have been created with <code>device</code>"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03278",
- "text": " <code>pipeline</code> member of <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pExecutableInfo-parameter",
- "text": " <code>pExecutableInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineExecutableInfoKHR\">VkPipelineExecutableInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentationCount-parameter",
- "text": " <code>pInternalRepresentationCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentations-parameter",
- "text": " If the value referenced by <code>pInternalRepresentationCount</code> is not <code>0</code>, and <code>pInternalRepresentations</code> is not <code>NULL</code>, <code>pInternalRepresentations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pInternalRepresentationCount</code> <a href=\"#VkPipelineExecutableInternalRepresentationKHR\">VkPipelineExecutableInternalRepresentationKHR</a> structures"
- }
- ]
- },
- "VkPipelineExecutableInternalRepresentationKHR": {
- "(VK_KHR_pipeline_executable_properties)": [
- {
- "vuid": "VUID-VkPipelineExecutableInternalRepresentationKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR</code>"
- },
- {
- "vuid": "VUID-VkPipelineExecutableInternalRepresentationKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetShaderInfoAMD": {
- "(VK_AMD_shader_info)": [
- {
- "vuid": "VUID-vkGetShaderInfoAMD-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetShaderInfoAMD-pipeline-parameter",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
- },
- {
- "vuid": "VUID-vkGetShaderInfoAMD-shaderStage-parameter",
- "text": " <code>shaderStage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> value"
- },
- {
- "vuid": "VUID-vkGetShaderInfoAMD-infoType-parameter",
- "text": " <code>infoType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderInfoTypeAMD\">VkShaderInfoTypeAMD</a> value"
- },
- {
- "vuid": "VUID-vkGetShaderInfoAMD-pInfoSize-parameter",
- "text": " <code>pInfoSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>size_t</code> value"
- },
- {
- "vuid": "VUID-vkGetShaderInfoAMD-pInfo-parameter",
- "text": " If the value referenced by <code>pInfoSize</code> is not <code>0</code>, and <code>pInfo</code> is not <code>NULL</code>, <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pInfoSize</code> bytes"
- },
- {
- "vuid": "VUID-vkGetShaderInfoAMD-pipeline-parent",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "VkPipelineCompilerControlCreateInfoAMD": {
- "(VK_AMD_pipeline_compiler_control)": [
- {
- "vuid": "VUID-VkPipelineCompilerControlCreateInfoAMD-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD</code>"
- },
- {
- "vuid": "VUID-VkPipelineCompilerControlCreateInfoAMD-compilerControlFlags-zerobitmask",
- "text": " <code>compilerControlFlags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "VkPipelineCreationFeedbackCreateInfo": {
- "(VK_VERSION_1_3,VK_EXT_pipeline_creation_feedback)": [
- {
- "vuid": "VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-02668",
- "text": " When chained to <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>, <a href=\"#VkPipelineCreationFeedback\">VkPipelineCreationFeedback</a>::<code>pipelineStageCreationFeedbackCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>stageCount</code>"
- },
- {
- "vuid": "VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-02669",
- "text": " When chained to <a href=\"#VkComputePipelineCreateInfo\">VkComputePipelineCreateInfo</a>, <a href=\"#VkPipelineCreationFeedback\">VkPipelineCreationFeedback</a>::<code>pipelineStageCreationFeedbackCount</code> <strong class=\"purple\">must</strong> equal 1"
- },
- {
- "vuid": "VUID-VkPipelineCreationFeedbackCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineCreationFeedback-parameter",
- "text": " <code>pPipelineCreationFeedback</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPipelineCreationFeedback\">VkPipelineCreationFeedback</a> structure"
- },
- {
- "vuid": "VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineStageCreationFeedbacks-parameter",
- "text": " <code>pPipelineStageCreationFeedbacks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pipelineStageCreationFeedbackCount</code> <a href=\"#VkPipelineCreationFeedback\">VkPipelineCreationFeedback</a> structures"
- },
- {
- "vuid": "VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-arraylength",
- "text": " <code>pipelineStageCreationFeedbackCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_pipeline_creation_feedback)+(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-02670",
- "text": " When chained to <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a>, <a href=\"#VkPipelineCreationFeedback\">VkPipelineCreationFeedback</a>::<code>pipelineStageCreationFeedbackCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkRayTracingPipelineCreateInfoKHR\">VkRayTracingPipelineCreateInfoKHR</a>::<code>stageCount</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_pipeline_creation_feedback)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkPipelineCreationFeedbackCreateInfo-pipelineStageCreationFeedbackCount-02969",
- "text": " When chained to <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a>, <a href=\"#VkPipelineCreationFeedback\">VkPipelineCreationFeedback</a>::<code>pipelineStageCreationFeedbackCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkRayTracingPipelineCreateInfoNV\">VkRayTracingPipelineCreateInfoNV</a>::<code>stageCount</code>"
- }
- ]
- },
- "VkAllocationCallbacks": {
- "core": [
- {
- "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>"
- },
- {
- "vuid": "VUID-VkAllocationCallbacks-pfnReallocation-00633",
- "text": " <code>pfnReallocation</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid user-defined <a href=\"#PFN_vkReallocationFunction\">PFN_vkReallocationFunction</a>"
- },
- {
- "vuid": "VUID-VkAllocationCallbacks-pfnFree-00634",
- "text": " <code>pfnFree</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid user-defined <a href=\"#PFN_vkFreeFunction\">PFN_vkFreeFunction</a>"
- },
- {
- "vuid": "VUID-VkAllocationCallbacks-pfnInternalAllocation-00635",
- "text": " If either of <code>pfnInternalAllocation</code> or <code>pfnInternalFree</code> is not <code>NULL</code>, both <strong class=\"purple\">must</strong> be valid callbacks"
- }
- ]
- },
- "vkGetPhysicalDeviceMemoryProperties": {
- "core": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties-pMemoryProperties-parameter",
- "text": " <code>pMemoryProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceMemoryProperties\">VkPhysicalDeviceMemoryProperties</a> structure"
- }
- ]
- },
- "vkGetPhysicalDeviceMemoryProperties2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties2-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties2-pMemoryProperties-parameter",
- "text": " <code>pMemoryProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceMemoryProperties2\">VkPhysicalDeviceMemoryProperties2</a> structure"
- }
- ]
- },
- "VkPhysicalDeviceMemoryProperties2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-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=\"#VkPhysicalDeviceMemoryBudgetPropertiesEXT\">VkPhysicalDeviceMemoryBudgetPropertiesEXT</a>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
- }
- ]
- },
- "VkPhysicalDeviceMemoryBudgetPropertiesEXT": {
- "(VK_EXT_memory_budget)": [
- {
- "vuid": "VUID-VkPhysicalDeviceMemoryBudgetPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT</code>"
- }
- ]
- },
- "vkAllocateMemory": {
- "core": [
- {
- "vuid": "VUID-vkAllocateMemory-pAllocateInfo-01713",
- "text": " <code>pAllocateInfo-&gt;allocationSize</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMemoryProperties\">VkPhysicalDeviceMemoryProperties</a>::<code>memoryHeaps</code>[<code>memindex</code>].<code>size</code> where <code>memindex</code> = <a href=\"#VkPhysicalDeviceMemoryProperties\">VkPhysicalDeviceMemoryProperties</a>::<code>memoryTypes</code>[<code>pAllocateInfo-&gt;memoryTypeIndex</code>].<code>heapIndex</code> as returned by <a href=\"#vkGetPhysicalDeviceMemoryProperties\">vkGetPhysicalDeviceMemoryProperties</a> for the <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> that <code>device</code> was created from"
- },
- {
- "vuid": "VUID-vkAllocateMemory-pAllocateInfo-01714",
- "text": " <code>pAllocateInfo-&gt;memoryTypeIndex</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceMemoryProperties\">VkPhysicalDeviceMemoryProperties</a>::<code>memoryTypeCount</code> as returned by <a href=\"#vkGetPhysicalDeviceMemoryProperties\">vkGetPhysicalDeviceMemoryProperties</a> for the <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> that <code>device</code> was created from"
- },
- {
- "vuid": "VUID-vkAllocateMemory-maxMemoryAllocationCount-04101",
- "text": " There <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxMemoryAllocationCount</code> device memory allocations currently allocated on the device"
- },
- {
- "vuid": "VUID-vkAllocateMemory-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkAllocateMemory-pAllocateInfo-parameter",
- "text": " <code>pAllocateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkAllocateMemory-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"
- },
- {
- "vuid": "VUID-vkAllocateMemory-pMemory-parameter",
- "text": " <code>pMemory</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- }
- ],
- "(VK_AMD_device_coherent_memory)": [
- {
- "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>"
- }
- ]
- },
- "VkMemoryAllocateInfo": {
- "!(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00638",
- "text": " <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-buffer-06380",
- "text": " If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> is present and non-NULL, <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>::<code>collection</code> and <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>::<code>index</code> must match <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a>::<code>collection</code> and <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a>::<code>index</code>, respectively, of the <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> structure used to create the <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code>"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-image-06381",
- "text": " If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> is present and non-NULL, <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>::<code>collection</code> and <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>::<code>index</code> must match <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a>::<code>collection</code> and <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a>::<code>index</code>, respectively, of the <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> structure used to create the <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code>"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-06382",
- "text": " If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, <code>allocationSize</code> <strong class=\"purple\">must</strong> match <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a>::<code>size</code> value retrieved by <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> or <a href=\"#vkGetBufferMemoryRequirements\">vkGetBufferMemoryRequirements</a> for image-based or buffer-based collections respectively"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-06383",
- "text": " If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with either its <code>image</code> or <code>buffer</code> field set to a value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>."
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-image-06384",
- "text": " If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>image</code> <strong class=\"purple\">must</strong> be created with a <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> structure chained to its <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>pNext</code> pointer"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-buffer-06385",
- "text": " If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>buffer</code> <strong class=\"purple\">must</strong> be created with a <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> structure chained to its <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>pNext</code> pointer"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-06386",
- "text": " If the parameters define an import operation from an <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be from <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a> as retrieved by <a href=\"#vkGetBufferCollectionPropertiesFUCHSIA\">vkGetBufferCollectionPropertiesFUCHSIA</a>."
- }
- ],
- "(VK_KHR_external_memory)+(VK_KHR_dedicated_allocation,VK_NV_dedicated_allocation)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-00639",
- "text": " If the <code>pNext</code> chain includes a <code>VkExportMemoryAllocateInfo</code> structure, and any of the handle types specified in <code>VkExportMemoryAllocateInfo</code>::<code>handleTypes</code> require a dedicated allocation, as reported by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a> in <code>VkExternalImageFormatProperties</code>::<code>externalMemoryProperties.externalMemoryFeatures</code> or <code>VkExternalBufferProperties</code>::<code>externalMemoryProperties.externalMemoryFeatures</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <code>VkMemoryDedicatedAllocateInfo</code> or <code>VkDedicatedAllocationMemoryAllocateInfoNV</code> structure with either its <code>image</code> or <code>buffer</code> member set to a value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_KHR_external_memory)+(VK_NV_external_memory)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-00640",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a> structure, it <strong class=\"purple\">must</strong> not include a <a href=\"#VkExportMemoryAllocateInfoNV\">VkExportMemoryAllocateInfoNV</a> or <a href=\"#VkExportMemoryWin32HandleInfoNV\">VkExportMemoryWin32HandleInfoNV</a> structure"
- }
- ],
- "(VK_KHR_external_memory_win32+VK_NV_external_memory_win32)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-00641",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImportMemoryWin32HandleInfoKHR\">VkImportMemoryWin32HandleInfoKHR</a> structure, it <strong class=\"purple\">must</strong> not include a <a href=\"#VkImportMemoryWin32HandleInfoNV\">VkImportMemoryWin32HandleInfoNV</a> structure"
- }
- ],
- "(VK_KHR_external_memory_fd)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01742",
- "text": " If the parameters define an import operation, the external handle specified was created by the Vulkan API, and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code>, then the values of <code>allocationSize</code> and <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> match those specified when the payload being imported was created"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-00648",
- "text": " If the parameters define an import operation and the external handle is a POSIX file descriptor created outside of the Vulkan API, the value of <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <a href=\"#vkGetMemoryFdPropertiesKHR\">vkGetMemoryFdPropertiesKHR</a>"
- }
- ],
- "(VK_KHR_external_memory+VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-None-00643",
- "text": " If the parameters define an import operation and the external handle specified was created by the Vulkan API, the device mask specified by <a href=\"#VkMemoryAllocateFlagsInfo\">VkMemoryAllocateFlagsInfo</a> <strong class=\"purple\">must</strong> match the mask specified when the payload being imported was allocated"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-None-00644",
- "text": " If the parameters define an import operation and the external handle specified was created by the Vulkan API, the list of physical devices that comprise the logical device passed to <a href=\"#vkAllocateMemory\">vkAllocateMemory</a> <strong class=\"purple\">must</strong> match the list of physical devices that comprise the logical device on which the payload was originally allocated"
- }
- ],
- "(VK_KHR_external_memory_win32)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-00645",
- "text": " If the parameters define an import operation and the external handle is an NT handle or a global share handle created outside of the Vulkan API, the value of <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <a href=\"#vkGetMemoryWin32HandlePropertiesKHR\">vkGetMemoryWin32HandlePropertiesKHR</a>"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01743",
- "text": " If the parameters define an import operation, the external handle was created by the Vulkan API, and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, then the values of <code>allocationSize</code> and <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> match those specified when the payload being imported was created"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00647",
- "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT</code>, <code>allocationSize</code> <strong class=\"purple\">must</strong> match the size specified when creating the Direct3D 12 heap from which the payload was extracted"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-01872",
- "text": " If the protected memory feature is not enabled, the <code>VkMemoryAllocateInfo</code>::<code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> not indicate a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
- }
- ],
- "(VK_EXT_external_memory_host)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-01744",
- "text": " If the parameters define an import operation and the external handle is a host pointer, the value of <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <a href=\"#vkGetMemoryHostPointerPropertiesEXT\">vkGetMemoryHostPointerPropertiesEXT</a>"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01745",
- "text": " If the parameters define an import operation and the external handle is a host pointer, <code>allocationSize</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>VkPhysicalDeviceExternalMemoryHostPropertiesEXT</code>::<code>minImportedHostPointerAlignment</code>"
- }
- ],
- "(VK_EXT_external_memory_host)+(VK_NV_dedicated_allocation)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-02805",
- "text": " If the parameters define an import operation and the external handle is a host pointer, the <code>pNext</code> chain <strong class=\"purple\">must</strong> not include a <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a> structure with either its <code>image</code> or <code>buffer</code> field set to a value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_EXT_external_memory_host)+(VK_KHR_dedicated_allocation)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-02806",
- "text": " If the parameters define an import operation and the external handle is a host pointer, the <code>pNext</code> chain <strong class=\"purple\">must</strong> not include a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with either its <code>image</code> or <code>buffer</code> field set to a value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-02383",
- "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>allocationSize</code> <strong class=\"purple\">must</strong> be the size returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for the Android hardware buffer"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-02384",
- "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, and the <code>pNext</code> chain does not include a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure or <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the Android hardware buffer <strong class=\"purple\">must</strong> have a <code>AHardwareBuffer_Desc</code>::<code>format</code> of <code>AHARDWAREBUFFER_FORMAT_BLOB</code> and a <code>AHardwareBuffer_Desc</code>::<code>usage</code> that includes <code>AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER</code>"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-02385",
- "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for the Android hardware buffer"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-01874",
- "text": " If the parameters do not define an import operation, and the <code>pNext</code> chain includes a <code>VkExportMemoryAllocateInfo</code> structure with <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> included in its <code>handleTypes</code> member, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>allocationSize</code> <strong class=\"purple\">must</strong> be <code>0</code>, otherwise <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-02386",
- "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the Android hardware buffer&#8217;s <code>AHardwareBuffer</code>::<code>usage</code> <strong class=\"purple\">must</strong> include at least one of <code>AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER</code> or <code>AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE</code>"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-02387",
- "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the format of <code>image</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code> or the format returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>format</code> for the Android hardware buffer"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-02388",
- "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the width, height, and array layer dimensions of <code>image</code> and the Android hardware buffer&#8217;s <code>AHardwareBuffer_Desc</code> <strong class=\"purple\">must</strong> be identical"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-02389",
- "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the Android hardware buffer&#8217;s <code>AHardwareBuffer</code>::<code>usage</code> includes <code>AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE</code>, the <code>image</code> <strong class=\"purple\">must</strong> have a complete mipmap chain"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-02586",
- "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the Android hardware buffer&#8217;s <code>AHardwareBuffer</code>::<code>usage</code> does not include <code>AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE</code>, the <code>image</code> <strong class=\"purple\">must</strong> have exactly one mipmap level"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-02390",
- "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, each bit set in the usage of <code>image</code> <strong class=\"purple\">must</strong> be listed in <a href=\"#memory-external-android-hardware-buffer-usage\">AHardwareBuffer Usage Equivalence</a>, and if there is a corresponding <code>AHARDWAREBUFFER_USAGE</code> bit listed that bit <strong class=\"purple\">must</strong> be included in the Android hardware buffer&#8217;s <code>AHardwareBuffer_Desc</code>::<code>usage</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03329",
- "text": " If <a href=\"#VkMemoryOpaqueCaptureAddressAllocateInfo\">VkMemoryOpaqueCaptureAddressAllocateInfo</a>::<code>opaqueCaptureAddress</code> is not zero, <code>VkMemoryAllocateFlagsInfo</code>::<code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-flags-03330",
- "text": " If <code>VkMemoryAllocateFlagsInfo</code>::<code>flags</code> includes <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>, the <a href=\"#features-bufferDeviceAddressCaptureReplay\">bufferDeviceAddressCaptureReplay</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-flags-03331",
- "text": " If <code>VkMemoryAllocateFlagsInfo</code>::<code>flags</code> includes <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code>, the <a href=\"#features-bufferDeviceAddress\">bufferDeviceAddress</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03333",
- "text": " If the parameters define an import operation, <a href=\"#VkMemoryOpaqueCaptureAddressAllocateInfo\">VkMemoryOpaqueCaptureAddressAllocateInfo</a>::<code>opaqueCaptureAddress</code> <strong class=\"purple\">must</strong> be zero"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_buffer_device_address)+(VK_EXT_external_memory_host)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-03332",
- "text": " If the <code>pNext</code> chain includes a <code>VkImportMemoryHostPointerInfoEXT</code> structure, <a href=\"#VkMemoryOpaqueCaptureAddressAllocateInfo\">VkMemoryOpaqueCaptureAddressAllocateInfo</a>::<code>opaqueCaptureAddress</code> <strong class=\"purple\">must</strong> be zero"
- }
- ],
- "(VK_FUCHSIA_external_memory)": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-None-04749",
- "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>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be an index identifying a memory type from the <code>memoryTypeBits</code> field of the <a href=\"#VkMemoryZirconHandlePropertiesFUCHSIA\">VkMemoryZirconHandlePropertiesFUCHSIA</a> structure populated by a call to <a href=\"#vkGetMemoryZirconHandlePropertiesFUCHSIA\">vkGetMemoryZirconHandlePropertiesFUCHSIA</a>"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-04750",
- "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 greater than <code>0</code> and <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"
- }
- ],
- "core": [
- {
- "vuid": "VUID-VkMemoryAllocateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-pNext-pNext",
- "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=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>, <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>, <a href=\"#VkExportMemoryAllocateInfoNV\">VkExportMemoryAllocateInfoNV</a>, <a href=\"#VkExportMemoryWin32HandleInfoKHR\">VkExportMemoryWin32HandleInfoKHR</a>, <a href=\"#VkExportMemoryWin32HandleInfoNV\">VkExportMemoryWin32HandleInfoNV</a>, <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a>, <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a>, <a href=\"#VkImportMemoryFdInfoKHR\">VkImportMemoryFdInfoKHR</a>, <a href=\"#VkImportMemoryHostPointerInfoEXT\">VkImportMemoryHostPointerInfoEXT</a>, <a href=\"#VkImportMemoryWin32HandleInfoKHR\">VkImportMemoryWin32HandleInfoKHR</a>, <a href=\"#VkImportMemoryWin32HandleInfoNV\">VkImportMemoryWin32HandleInfoNV</a>, <a href=\"#VkImportMemoryZirconHandleInfoFUCHSIA\">VkImportMemoryZirconHandleInfoFUCHSIA</a>, <a href=\"#VkMemoryAllocateFlagsInfo\">VkMemoryAllocateFlagsInfo</a>, <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>, <a href=\"#VkMemoryOpaqueCaptureAddressAllocateInfo\">VkMemoryOpaqueCaptureAddressAllocateInfo</a>, or <a href=\"#VkMemoryPriorityAllocateInfoEXT\">VkMemoryPriorityAllocateInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkMemoryAllocateInfo-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
- }
- ]
- },
- "VkMemoryDedicatedAllocateInfo": {
- "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01432",
- "text": " At least one of <code>image</code> and <code>buffer</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01434",
- "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> have been created without <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code>"
- },
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01436",
- "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> have been created without <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code> set in <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>flags</code>"
- },
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-parameter",
- "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-parameter",
- "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-commonparent",
- "text": " Both of <code>buffer</code>, and <code>image</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_dedicated_allocation)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01433",
- "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the <code>VkMemoryRequirements</code>::<code>size</code> of the image"
- },
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01435",
- "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the <code>VkMemoryRequirements</code>::<code>size</code> of the buffer"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-02964",
- "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the memory is not an imported Android Hardware Buffer, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the <code>VkMemoryRequirements</code>::<code>size</code> of the image"
- },
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-02965",
- "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and the memory is not an imported Android Hardware Buffer, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the <code>VkMemoryRequirements</code>::<code>size</code> of the buffer"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_external_memory_win32)": [
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01876",
- "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT</code>, or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT</code>, and the external handle was created by the Vulkan API, then the memory being imported <strong class=\"purple\">must</strong> also be a dedicated image allocation and <code>image</code> must be identical to the image associated with the imported memory"
- },
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01877",
- "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT</code>, or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT</code>, and the external handle was created by the Vulkan API, then the memory being imported <strong class=\"purple\">must</strong> also be a dedicated buffer allocation and <code>buffer</code> <strong class=\"purple\">must</strong> be identical to the buffer associated with the imported memory"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_external_memory_fd)": [
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01878",
- "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code>, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated image allocation and <code>image</code> <strong class=\"purple\">must</strong> be identical to the image associated with the imported memory"
- },
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01879",
- "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code>, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated buffer allocation and <code>buffer</code> <strong class=\"purple\">must</strong> be identical to the buffer associated with the imported memory"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01797",
- "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_FUCHSIA_external_memory)": [
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-04751",
- "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated image allocation and <code>image</code> <strong class=\"purple\">must</strong> be identical to the image associated with the imported memory"
- },
- {
- "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-04752",
- "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation with handle type <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated buffer allocation and <code>buffer</code> <strong class=\"purple\">must</strong> be identical to the buffer associated with the imported memory"
- }
- ]
- },
- "VkDedicatedAllocationMemoryAllocateInfoNV": {
- "(VK_NV_dedicated_allocation)": [
- {
- "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00649",
- "text": " At least one of <code>image</code> and <code>buffer</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00650",
- "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the image <strong class=\"purple\">must</strong> have been created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>"
- },
- {
- "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00651",
- "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the buffer <strong class=\"purple\">must</strong> have been created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>"
- },
- {
- "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00652",
- "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the <code>VkMemoryRequirements</code>::<code>size</code> of the image"
- },
- {
- "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00653",
- "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>VkMemoryAllocateInfo</code>::<code>allocationSize</code> <strong class=\"purple\">must</strong> equal the <code>VkMemoryRequirements</code>::<code>size</code> of the buffer"
- },
- {
- "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-parameter",
- "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-parameter",
- "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-commonparent",
- "text": " Both of <code>buffer</code>, and <code>image</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_NV_dedicated_allocation)+(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd)": [
- {
- "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00654",
- "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated image allocation and <code>image</code> <strong class=\"purple\">must</strong> be identical to the image associated with the imported memory"
- },
- {
- "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00655",
- "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> defines a memory import operation, the memory being imported <strong class=\"purple\">must</strong> also be a dedicated buffer allocation and <code>buffer</code> <strong class=\"purple\">must</strong> be identical to the buffer associated with the imported memory"
- }
- ]
- },
- "VkMemoryPriorityAllocateInfoEXT": {
- "(VK_EXT_memory_priority)": [
- {
- "vuid": "VUID-VkMemoryPriorityAllocateInfoEXT-priority-02602",
- "text": " <code>priority</code> <strong class=\"purple\">must</strong> be between <code>0</code> and <code>1</code>, inclusive"
- },
- {
- "vuid": "VUID-VkMemoryPriorityAllocateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT</code>"
- }
- ]
- },
- "vkSetDeviceMemoryPriorityEXT": {
- "(VK_EXT_pageable_device_local_memory)": [
- {
- "vuid": "VUID-vkSetDeviceMemoryPriorityEXT-priority-06258",
- "text": " <code>priority</code> <strong class=\"purple\">must</strong> be between <code>0</code> and <code>1</code>, inclusive"
- },
- {
- "vuid": "VUID-vkSetDeviceMemoryPriorityEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkSetDeviceMemoryPriorityEXT-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-vkSetDeviceMemoryPriorityEXT-memory-parent",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "VkExportMemoryAllocateInfo": {
- "(VK_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkExportMemoryAllocateInfo-handleTypes-00656",
- "text": " The bits in <code>handleTypes</code> <strong class=\"purple\">must</strong> be supported and compatible, as reported by <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a> or <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>"
- },
- {
- "vuid": "VUID-VkExportMemoryAllocateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkExportMemoryAllocateInfo-handleTypes-parameter",
- "text": " <code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> values"
- }
- ]
- },
- "VkExportMemoryAllocateInfoNV": {
- "(VK_NV_external_memory)": [
- {
- "vuid": "VUID-VkExportMemoryAllocateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkExportMemoryAllocateInfoNV-handleTypes-parameter",
- "text": " <code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values"
- }
- ]
- },
- "VkExportMemoryWin32HandleInfoKHR": {
- "(VK_KHR_external_memory_win32)": [
- {
- "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-handleTypes-00657",
- "text": " If <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> does not include <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, a <code>VkExportMemoryWin32HandleInfoKHR</code> structure <strong class=\"purple\">must</strong> not be included in the <code>pNext</code> chain of <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a>"
- },
- {
- "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-pAttributes-parameter",
- "text": " If <code>pAttributes</code> is not <code>NULL</code>, <code>pAttributes</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>SECURITY_ATTRIBUTES</code> value"
- }
- ]
- },
- "VkImportMemoryWin32HandleInfoKHR": {
- "(VK_KHR_external_memory_win32)": [
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00658",
- "text": " If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be supported for import, as reported by <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a> or <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>"
- },
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-00659",
- "text": " The memory from which <code>handle</code> was exported, or the memory named by <code>name</code> <strong class=\"purple\">must</strong> have been created on the same underlying physical device as <code>device</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00660",
- "text": " If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be defined as an NT handle or a global share handle"
- },
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01439",
- "text": " If <code>handleType</code> is not <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT</code>, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT</code>, or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01440",
- "text": " If <code>handleType</code> is not <code>0</code> and <code>handle</code> is <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> name a valid memory resource of the type specified by <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00661",
- "text": " If <code>handleType</code> is not <code>0</code> and <code>name</code> is <code>NULL</code>, <code>handle</code> <strong class=\"purple\">must</strong> be a valid handle of the type specified by <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-01441",
- "text": " if <code>handle</code> is not <code>NULL</code>, <code>name</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-01518",
- "text": " If <code>handle</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-memory-handle-types-compatibility\">external memory handle types compatibility</a>"
- },
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-name-01519",
- "text": " If <code>name</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-memory-handle-types-compatibility\">external memory handle types compatibility</a>"
- },
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-parameter",
- "text": " If <code>handleType</code> is not <code>0</code>, <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
- }
- ]
- },
- "vkGetMemoryWin32HandleKHR": {
- "(VK_KHR_external_memory_win32)": [
- {
- "vuid": "VUID-vkGetMemoryWin32HandleKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetMemoryWin32HandleKHR-pGetWin32HandleInfo-parameter",
- "text": " <code>pGetWin32HandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetWin32HandleInfoKHR\">VkMemoryGetWin32HandleInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetMemoryWin32HandleKHR-pHandle-parameter",
- "text": " <code>pHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>HANDLE</code> value"
- }
- ]
- },
- "VkMemoryGetWin32HandleInfoKHR": {
- "(VK_KHR_external_memory_win32)": [
- {
- "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00662",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> when <code>memory</code> was created"
- },
- {
- "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00663",
- "text": " If <code>handleType</code> is defined as an NT handle, <a href=\"#vkGetMemoryWin32HandleKHR\">vkGetMemoryWin32HandleKHR</a> <strong class=\"purple\">must</strong> be called no more than once for each valid unique combination of <code>memory</code> and <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00664",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be defined as an NT handle or a global share handle"
- },
- {
- "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
- }
- ]
- },
- "vkGetMemoryWin32HandlePropertiesKHR": {
- "(VK_KHR_external_memory_win32)": [
- {
- "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handle-00665",
- "text": " <code>handle</code> <strong class=\"purple\">must</strong> be an external memory handle created outside of the Vulkan API"
- },
- {
- "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-00666",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> not be one of the handle types defined as opaque"
- },
- {
- "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
- },
- {
- "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-pMemoryWin32HandleProperties-parameter",
- "text": " <code>pMemoryWin32HandleProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryWin32HandlePropertiesKHR\">VkMemoryWin32HandlePropertiesKHR</a> structure"
- }
- ]
- },
- "VkMemoryWin32HandlePropertiesKHR": {
- "(VK_KHR_external_memory_win32)": [
- {
- "vuid": "VUID-VkMemoryWin32HandlePropertiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR</code>"
- },
- {
- "vuid": "VUID-VkMemoryWin32HandlePropertiesKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkExportMemoryWin32HandleInfoNV": {
- "(VK_NV_external_memory_win32)": [
- {
- "vuid": "VUID-VkExportMemoryWin32HandleInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkExportMemoryWin32HandleInfoNV-pAttributes-parameter",
- "text": " If <code>pAttributes</code> is not <code>NULL</code>, <code>pAttributes</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>SECURITY_ATTRIBUTES</code> value"
- }
- ]
- },
- "VkImportMemoryWin32HandleInfoNV": {
- "(VK_NV_external_memory_win32)": [
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handleType-01327",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> not have more than one bit set"
- },
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handle-01328",
- "text": " <code>handle</code> <strong class=\"purple\">must</strong> be a valid handle to memory, obtained as specified by <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values"
- }
- ]
- },
- "vkGetMemoryWin32HandleNV": {
- "(VK_NV_external_memory_win32)": [
- {
- "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-01326",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a flag specified in <a href=\"#VkExportMemoryAllocateInfoNV\">VkExportMemoryAllocateInfoNV</a>::<code>handleTypes</code> when allocating <code>memory</code>"
- },
- {
- "vuid": "VUID-vkGetMemoryWin32HandleNV-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetMemoryWin32HandleNV-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values"
- },
- {
- "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-requiredbitmask",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkGetMemoryWin32HandleNV-pHandle-parameter",
- "text": " <code>pHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>HANDLE</code> value"
- },
- {
- "vuid": "VUID-vkGetMemoryWin32HandleNV-memory-parent",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "VkImportMemoryFdInfoKHR": {
- "(VK_KHR_external_memory_fd)": [
- {
- "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00667",
- "text": " If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be supported for import, as reported by <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a> or <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>"
- },
- {
- "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-00668",
- "text": " The memory from which <code>fd</code> was exported <strong class=\"purple\">must</strong> have been created on the same underlying physical device as <code>device</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00669",
- "text": " If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00670",
- "text": " If <code>handleType</code> is not <code>0</code>, <code>fd</code> <strong class=\"purple\">must</strong> be a valid handle of the type specified by <code>handleType</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01746",
- "text": " The memory represented by <code>fd</code> <strong class=\"purple\">must</strong> have been created from a physical device and driver that is compatible with <code>device</code> and <code>handleType</code>, as described in <a href=\"#external-memory-handle-types-compatibility\">External memory handle types compatibility</a>"
- },
- {
- "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01520",
- "text": " <code>fd</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in <a href=\"#external-memory-handle-types-compatibility\">external memory handle types compatibility</a>"
- },
- {
- "vuid": "VUID-VkImportMemoryFdInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-parameter",
- "text": " If <code>handleType</code> is not <code>0</code>, <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
- }
- ]
- },
- "vkGetMemoryFdKHR": {
- "(VK_KHR_external_memory_fd)": [
- {
- "vuid": "VUID-vkGetMemoryFdKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetMemoryFdKHR-pGetFdInfo-parameter",
- "text": " <code>pGetFdInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetFdInfoKHR\">VkMemoryGetFdInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetMemoryFdKHR-pFd-parameter",
- "text": " <code>pFd</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>int</code> value"
- }
- ]
- },
- "VkMemoryGetFdInfoKHR": {
- "(VK_KHR_external_memory_fd)": [
- {
- "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-00671",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> when <code>memory</code> was created"
- },
- {
- "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-00672",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkMemoryGetFdInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkMemoryGetFdInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkMemoryGetFdInfoKHR-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
- }
- ]
- },
- "vkGetMemoryFdPropertiesKHR": {
- "(VK_KHR_external_memory_fd)": [
- {
- "vuid": "VUID-vkGetMemoryFdPropertiesKHR-fd-00673",
- "text": " <code>fd</code> <strong class=\"purple\">must</strong> be an external memory handle created outside of the Vulkan API"
- },
- {
- "vuid": "VUID-vkGetMemoryFdPropertiesKHR-handleType-00674",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> not be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT</code>"
- },
- {
- "vuid": "VUID-vkGetMemoryFdPropertiesKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetMemoryFdPropertiesKHR-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
- },
- {
- "vuid": "VUID-vkGetMemoryFdPropertiesKHR-pMemoryFdProperties-parameter",
- "text": " <code>pMemoryFdProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryFdPropertiesKHR\">VkMemoryFdPropertiesKHR</a> structure"
- }
- ]
- },
- "VkMemoryFdPropertiesKHR": {
- "(VK_KHR_external_memory_fd)": [
- {
- "vuid": "VUID-VkMemoryFdPropertiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR</code>"
- },
- {
- "vuid": "VUID-VkMemoryFdPropertiesKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkImportMemoryHostPointerInfoEXT": {
- "(VK_EXT_external_memory_host)": [
- {
- "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01747",
- "text": " If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be supported for import, as reported in <a href=\"#VkExternalMemoryProperties\">VkExternalMemoryProperties</a>"
- },
- {
- "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01748",
- "text": " If <code>handleType</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-01749",
- "text": " <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer aligned to an integer multiple of <code>VkPhysicalDeviceExternalMemoryHostPropertiesEXT</code>::<code>minImportedHostPointerAlignment</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01750",
- "text": " If <code>handleType</code> is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT</code>, <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer to <code>allocationSize</code> number of bytes of host memory, where <code>allocationSize</code> is the member of the <code>VkMemoryAllocateInfo</code> structure this structure is chained to"
- },
- {
- "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01751",
- "text": " If <code>handleType</code> is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT</code>, <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer to <code>allocationSize</code> number of bytes of host mapped foreign memory, where <code>allocationSize</code> is the member of the <code>VkMemoryAllocateInfo</code> structure this structure is chained to"
- },
- {
- "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
- }
- ]
- },
- "vkGetMemoryHostPointerPropertiesEXT": {
- "(VK_EXT_external_memory_host)": [
- {
- "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01752",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT</code> or <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-01753",
- "text": " <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer aligned to an integer multiple of <code>VkPhysicalDeviceExternalMemoryHostPropertiesEXT</code>::<code>minImportedHostPointerAlignment</code>"
- },
- {
- "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01754",
- "text": " If <code>handleType</code> is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT</code>, <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer to host memory"
- },
- {
- "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01755",
- "text": " If <code>handleType</code> is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT</code>, <code>pHostPointer</code> <strong class=\"purple\">must</strong> be a pointer to host mapped foreign memory"
- },
- {
- "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
- },
- {
- "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-pMemoryHostPointerProperties-parameter",
- "text": " <code>pMemoryHostPointerProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryHostPointerPropertiesEXT\">VkMemoryHostPointerPropertiesEXT</a> structure"
- }
- ]
- },
- "VkMemoryHostPointerPropertiesEXT": {
- "(VK_EXT_external_memory_host)": [
- {
- "vuid": "VUID-VkMemoryHostPointerPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT</code>"
- },
- {
- "vuid": "VUID-VkMemoryHostPointerPropertiesEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkImportAndroidHardwareBufferInfoANDROID": {
- "(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01880",
- "text": " If <code>buffer</code> is not <code>NULL</code>, Android hardware buffers <strong class=\"purple\">must</strong> be supported for import, as reported by <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a> or <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>"
- },
- {
- "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01881",
- "text": " If <code>buffer</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> be a valid Android hardware buffer object with <code>AHardwareBuffer_Desc</code>::<code>usage</code> compatible with Vulkan as described in <a href=\"#memory-external-android-hardware-buffer\">Android Hardware Buffers</a>"
- },
- {
- "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID</code>"
- },
- {
- "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>AHardwareBuffer</code> value"
- }
- ]
- },
- "vkGetMemoryAndroidHardwareBufferANDROID": {
- "(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetAndroidHardwareBufferInfoANDROID\">VkMemoryGetAndroidHardwareBufferInfoANDROID</a> structure"
- },
- {
- "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-pBuffer-parameter",
- "text": " <code>pBuffer</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid pointer to an <code>AHardwareBuffer</code> value"
- }
- ]
- },
- "VkMemoryGetAndroidHardwareBufferInfoANDROID": {
- "(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-handleTypes-01882",
- "text": " <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> when <code>memory</code> was created"
- },
- {
- "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-01883",
- "text": " If the <code>pNext</code> chain of the <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a> used to allocate <code>memory</code> included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with non-<code>NULL</code> <code>image</code> member, then that <code>image</code> <strong class=\"purple\">must</strong> already be bound to <code>memory</code>"
- },
- {
- "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID</code>"
- },
- {
- "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- }
- ]
- },
- "vkGetAndroidHardwareBufferPropertiesANDROID": {
- "(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-01884",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid Android hardware buffer object with at least one of the <code>AHARDWAREBUFFER_USAGE_GPU_*</code> flags in its <code>AHardwareBuffer_Desc</code>::<code>usage</code>"
- },
- {
- "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>AHardwareBuffer</code> value"
- },
- {
- "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-pProperties-parameter",
- "text": " <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAndroidHardwareBufferPropertiesANDROID\">VkAndroidHardwareBufferPropertiesANDROID</a> structure"
- }
- ]
- },
- "VkAndroidHardwareBufferPropertiesANDROID": {
- "(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID</code>"
- },
- {
- "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-pNext-pNext",
- "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=\"#VkAndroidHardwareBufferFormatProperties2ANDROID\">VkAndroidHardwareBufferFormatProperties2ANDROID</a> or <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>"
- },
- {
- "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
- }
- ]
- },
- "VkAndroidHardwareBufferFormatPropertiesANDROID": {
- "(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkAndroidHardwareBufferFormatPropertiesANDROID-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID</code>"
- }
- ]
- },
- "VkAndroidHardwareBufferFormatProperties2ANDROID": {
- "(VK_ANDROID_external_memory_android_hardware_buffer)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-VkAndroidHardwareBufferFormatProperties2ANDROID-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID</code>"
- }
- ]
- },
- "vkGetMemoryRemoteAddressNV": {
- "(VK_NV_external_memory_rdma)": [
- {
- "vuid": "VUID-vkGetMemoryRemoteAddressNV-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetMemoryRemoteAddressNV-pMemoryGetRemoteAddressInfo-parameter",
- "text": " <code>pMemoryGetRemoteAddressInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetRemoteAddressInfoNV\">VkMemoryGetRemoteAddressInfoNV</a> structure"
- },
- {
- "vuid": "VUID-vkGetMemoryRemoteAddressNV-pAddress-parameter",
- "text": " <code>pAddress</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>VkRemoteAddressNV</code> value"
- }
- ]
- },
- "VkMemoryGetRemoteAddressInfoNV": {
- "(VK_NV_external_memory_rdma)": [
- {
- "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-handleType-04966",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> when <code>memory</code> was created"
- },
- {
- "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-VkMemoryGetRemoteAddressInfoNV-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
- }
- ]
- },
- "VkImportMemoryZirconHandleInfoFUCHSIA": {
- "(VK_FUCHSIA_external_memory)": [
- {
- "vuid": "VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-04771",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handle-04772",
- "text": " <code>handle</code> must be a valid VMO handle"
- },
- {
- "vuid": "VUID-VkImportMemoryZirconHandleInfoFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-parameter",
- "text": " If <code>handleType</code> is not <code>0</code>, <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
- }
- ]
- },
- "vkGetMemoryZirconHandlePropertiesFUCHSIA": {
- "(VK_FUCHSIA_external_memory)": [
- {
- "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-04773",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-zirconHandle-04774",
- "text": " <code>zirconHandle</code> must reference a valid VMO"
- },
- {
- "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
- },
- {
- "vuid": "VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-pMemoryZirconHandleProperties-parameter",
- "text": " <code>pMemoryZirconHandleProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryZirconHandlePropertiesFUCHSIA\">VkMemoryZirconHandlePropertiesFUCHSIA</a> structure"
- }
- ]
- },
- "VkMemoryZirconHandlePropertiesFUCHSIA": {
- "(VK_FUCHSIA_external_memory)": [
- {
- "vuid": "VUID-VkMemoryZirconHandlePropertiesFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkMemoryZirconHandlePropertiesFUCHSIA-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetMemoryZirconHandleFUCHSIA": {
- "(VK_FUCHSIA_external_memory)": [
- {
- "vuid": "VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetMemoryZirconHandleFUCHSIA-pGetZirconHandleInfo-parameter",
- "text": " <code>pGetZirconHandleInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMemoryGetZirconHandleInfoFUCHSIA\">VkMemoryGetZirconHandleInfoFUCHSIA</a> structure"
- },
- {
- "vuid": "VUID-vkGetMemoryZirconHandleFUCHSIA-pZirconHandle-parameter",
- "text": " <code>pZirconHandle</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>zx_handle_t</code> value"
- }
- ]
- },
- "VkMemoryGetZirconHandleInfoFUCHSIA": {
- "(VK_FUCHSIA_external_memory)": [
- {
- "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04775",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04776",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> have been included in the <code>handleTypes</code> field of the <code>VkExportMemoryAllocateInfo</code> structure when the external memory was allocated"
- },
- {
- "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
- }
- ]
- },
- "VkMemoryAllocateFlagsInfo": {
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkMemoryAllocateFlagsInfo-deviceMask-00675",
- "text": " If <code>VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT</code> is set, <code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask"
- },
- {
- "vuid": "VUID-VkMemoryAllocateFlagsInfo-deviceMask-00676",
- "text": " If <code>VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT</code> is set, <code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero"
- },
- {
- "vuid": "VUID-VkMemoryAllocateFlagsInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO</code>"
- },
- {
- "vuid": "VUID-VkMemoryAllocateFlagsInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkMemoryAllocateFlagBits\">VkMemoryAllocateFlagBits</a> values"
- }
- ]
- },
- "VkMemoryOpaqueCaptureAddressAllocateInfo": {
- "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
- {
- "vuid": "VUID-VkMemoryOpaqueCaptureAddressAllocateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO</code>"
- }
- ]
- },
- "vkFreeMemory": {
- "core": [
- {
- "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"
- },
- {
- "vuid": "VUID-vkFreeMemory-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkFreeMemory-memory-parameter",
- "text": " If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-vkFreeMemory-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"
- },
- {
- "vuid": "VUID-vkFreeMemory-memory-parent",
- "text": " If <code>memory</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkMapMemory": {
- "core": [
- {
- "vuid": "VUID-vkMapMemory-memory-00678",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> not be currently host mapped"
- },
- {
- "vuid": "VUID-vkMapMemory-offset-00679",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>"
- },
- {
- "vuid": "VUID-vkMapMemory-size-00680",
- "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkMapMemory-size-00681",
- "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the <code>memory</code> minus <code>offset</code>"
- },
- {
- "vuid": "VUID-vkMapMemory-memory-00682",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created with a memory type that reports <code>VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT</code>"
- },
- {
- "vuid": "VUID-vkMapMemory-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkMapMemory-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-vkMapMemory-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-vkMapMemory-ppData-parameter",
- "text": " <code>ppData</code> <strong class=\"purple\">must</strong> be a valid pointer to a pointer value"
- },
- {
- "vuid": "VUID-vkMapMemory-memory-parent",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ],
- "(VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkMapMemory-memory-00683",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated with multiple instances"
- }
- ]
- },
- "vkFlushMappedMemoryRanges": {
- "core": [
- {
- "vuid": "VUID-vkFlushMappedMemoryRanges-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkFlushMappedMemoryRanges-pMemoryRanges-parameter",
- "text": " <code>pMemoryRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryRangeCount</code> valid <a href=\"#VkMappedMemoryRange\">VkMappedMemoryRange</a> structures"
- },
- {
- "vuid": "VUID-vkFlushMappedMemoryRanges-memoryRangeCount-arraylength",
- "text": " <code>memoryRangeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkInvalidateMappedMemoryRanges": {
- "core": [
- {
- "vuid": "VUID-vkInvalidateMappedMemoryRanges-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkInvalidateMappedMemoryRanges-pMemoryRanges-parameter",
- "text": " <code>pMemoryRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>memoryRangeCount</code> valid <a href=\"#VkMappedMemoryRange\">VkMappedMemoryRange</a> structures"
- },
- {
- "vuid": "VUID-vkInvalidateMappedMemoryRanges-memoryRangeCount-arraylength",
- "text": " <code>memoryRangeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkMappedMemoryRange": {
- "core": [
- {
- "vuid": "VUID-VkMappedMemoryRange-memory-00684",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be currently host mapped"
- },
- {
- "vuid": "VUID-VkMappedMemoryRange-size-00685",
- "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>offset</code> and <code>size</code> <strong class=\"purple\">must</strong> specify a range contained within the currently mapped range of <code>memory</code>"
- },
- {
- "vuid": "VUID-VkMappedMemoryRange-size-00686",
- "text": " If <code>size</code> is equal to <code>VK_WHOLE_SIZE</code>, <code>offset</code> <strong class=\"purple\">must</strong> be within the currently mapped range of <code>memory</code>"
- },
- {
- "vuid": "VUID-VkMappedMemoryRange-offset-00687",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>nonCoherentAtomSize</code>"
- },
- {
- "vuid": "VUID-VkMappedMemoryRange-size-01389",
- "text": " If <code>size</code> is equal to <code>VK_WHOLE_SIZE</code>, the end of the current mapping of <code>memory</code> <strong class=\"purple\">must</strong> either be a multiple of <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>nonCoherentAtomSize</code> bytes from the beginning of the memory object, or be equal to the end of the memory object"
- },
- {
- "vuid": "VUID-VkMappedMemoryRange-size-01390",
- "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> either be a multiple of <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>nonCoherentAtomSize</code>, or <code>offset</code> plus <code>size</code> <strong class=\"purple\">must</strong> equal the size of <code>memory</code>"
- },
- {
- "vuid": "VUID-VkMappedMemoryRange-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE</code>"
- },
- {
- "vuid": "VUID-VkMappedMemoryRange-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkMappedMemoryRange-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- }
- ]
- },
- "vkUnmapMemory": {
- "core": [
- {
- "vuid": "VUID-vkUnmapMemory-memory-00689",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be currently host mapped"
- },
- {
- "vuid": "VUID-vkUnmapMemory-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkUnmapMemory-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-vkUnmapMemory-memory-parent",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkGetDeviceMemoryCommitment": {
- "core": [
- {
- "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-00690",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created with a memory type that reports <code>VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT</code>"
- },
- {
- "vuid": "VUID-vkGetDeviceMemoryCommitment-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceMemoryCommitment-pCommittedMemoryInBytes-parameter",
- "text": " <code>pCommittedMemoryInBytes</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>VkDeviceSize</code> value"
- },
- {
- "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-parent",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkGetDeviceGroupPeerMemoryFeatures": {
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-heapIndex-00691",
- "text": " <code>heapIndex</code> <strong class=\"purple\">must</strong> be less than <code>memoryHeapCount</code>"
- },
- {
- "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00692",
- "text": " <code>localDeviceIndex</code> <strong class=\"purple\">must</strong> be a valid device index"
- },
- {
- "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-remoteDeviceIndex-00693",
- "text": " <code>remoteDeviceIndex</code> <strong class=\"purple\">must</strong> be a valid device index"
- },
- {
- "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00694",
- "text": " <code>localDeviceIndex</code> <strong class=\"purple\">must</strong> not equal <code>remoteDeviceIndex</code>"
- },
- {
- "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-pPeerMemoryFeatures-parameter",
- "text": " <code>pPeerMemoryFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPeerMemoryFeatureFlags\">VkPeerMemoryFeatureFlags</a> value"
- }
- ]
- },
- "vkGetDeviceMemoryOpaqueCaptureAddress": {
- "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
- {
- "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-None-03334",
- "text": " The <a href=\"#features-bufferDeviceAddress\">bufferDeviceAddress</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-03335",
- "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\">bufferDeviceAddressMultiDevice</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceMemoryOpaqueCaptureAddressInfo\">VkDeviceMemoryOpaqueCaptureAddressInfo</a> structure"
- }
- ]
- },
- "VkDeviceMemoryOpaqueCaptureAddressInfo": {
- "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
- {
- "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-03336",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code>"
- },
- {
- "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO</code>"
- },
- {
- "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- }
- ]
- },
- "vkCreateBuffer": {
- "core": [
- {
- "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>"
- },
- {
- "vuid": "VUID-vkCreateBuffer-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateBuffer-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateBuffer-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"
- },
- {
- "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": {
- "core": [
- {
- "vuid": "VUID-VkBufferCreateInfo-size-00912",
- "text": " <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkBufferCreateInfo-sharingMode-00913",
- "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueFamilyIndexCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkBufferCreateInfo-sharingMode-00914",
- "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\">sparse bindings</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\">sparse buffer residency</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\">sparse aliased residency</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>"
- },
- {
- "vuid": "VUID-VkBufferCreateInfo-pNext-pNext",
- "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=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a>, <a href=\"#VkBufferDeviceAddressCreateInfoEXT\">VkBufferDeviceAddressCreateInfoEXT</a>, <a href=\"#VkBufferOpaqueCaptureAddressCreateInfo\">VkBufferOpaqueCaptureAddressCreateInfo</a>, <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>, <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>, <a href=\"#VkVideoDecodeH264ProfileEXT\">VkVideoDecodeH264ProfileEXT</a>, <a href=\"#VkVideoDecodeH265ProfileEXT\">VkVideoDecodeH265ProfileEXT</a>, <a href=\"#VkVideoEncodeH264ProfileEXT\">VkVideoEncodeH264ProfileEXT</a>, <a href=\"#VkVideoEncodeH265ProfileEXT\">VkVideoEncodeH265ProfileEXT</a>, <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a>, or <a href=\"#VkVideoProfilesKHR\">VkVideoProfilesKHR</a>"
- },
- {
- "vuid": "VUID-VkBufferCreateInfo-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-VkBufferCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBufferCreateFlagBits\">VkBufferCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkBufferCreateInfo-usage-parameter",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBufferUsageFlagBits\">VkBufferUsageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkBufferCreateInfo-usage-requiredbitmask",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkBufferCreateInfo-sharingMode-parameter",
- "text": " <code>sharingMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSharingMode\">VkSharingMode</a> value"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-VkBufferCreateInfo-sharingMode-01391",
- "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 <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties\">vkGetPhysicalDeviceQueueFamilyProperties</a> for the <code>physicalDevice</code> that was used to create <code>device</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-VkBufferCreateInfo-sharingMode-01419",
- "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>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkBufferCreateInfo-pNext-00920",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a> structure, its <code>handleTypes</code> member <strong class=\"purple\">must</strong> only contain bits that are also in <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a>::<code>externalMemoryProperties.compatibleHandleTypes</code>, as returned by <a href=\"#vkGetPhysicalDeviceExternalBufferProperties\">vkGetPhysicalDeviceExternalBufferProperties</a> with <code>pExternalBufferInfo-&gt;handleType</code> equal to any one of the handle types specified in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkBufferCreateInfo-flags-01887",
- "text": " If the protected memory feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_PROTECTED_BIT</code>"
- },
- {
- "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"
- }
- ],
- "(VK_NV_dedicated_allocation)": [
- {
- "vuid": "VUID-VkBufferCreateInfo-pNext-01571",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a> structure, and the <code>dedicatedAllocation</code> member of the chained structure is <code>VK_TRUE</code>, then <code>flags</code> <strong class=\"purple\">must</strong> not include <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_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_EXT_buffer_device_address)": [
- {
- "vuid": "VUID-VkBufferCreateInfo-deviceAddress-02604",
- "text": " If <a href=\"#VkBufferDeviceAddressCreateInfoEXT\">VkBufferDeviceAddressCreateInfoEXT</a>::<code>deviceAddress</code> is not zero, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferCreateInfo-flags-03338",
- "text": " If <code>flags</code> includes <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>, the <a href=\"#features-bufferDeviceAddressCaptureReplay\">bufferDeviceAddressCaptureReplay</a> or <a href=\"#features-bufferDeviceAddressCaptureReplayEXT\"><code>VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</code>::<code>bufferDeviceAddressCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
- {
- "vuid": "VUID-VkBufferCreateInfo-opaqueCaptureAddress-03337",
- "text": " If <a href=\"#VkBufferOpaqueCaptureAddressCreateInfo\">VkBufferOpaqueCaptureAddressCreateInfo</a>::<code>opaqueCaptureAddress</code> is not zero, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+!(VK_EXT_buffer_device_address)": [
- {
- "vuid": "VUID-VkBufferCreateInfo-flags-06549",
- "text": " If <code>flags</code> includes <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code>, the <a href=\"#features-bufferDeviceAddressCaptureReplay\">bufferDeviceAddressCaptureReplay</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_KHR_video_decode_queue)": [
- {
- "vuid": "VUID-VkBufferCreateInfo-usage-04813",
- "text": " If <code>usage</code> includes <code>VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR</code>, <code>VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkVideoProfilesKHR\">VkVideoProfilesKHR</a> structure which includes at least one <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a> with a decode codec-operation"
- }
- ],
- "(VK_KHR_video_encode_queue)": [
- {
- "vuid": "VUID-VkBufferCreateInfo-usage-04814",
- "text": " If <code>usage</code> includes <code>VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>, <code>VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkVideoProfilesKHR\">VkVideoProfilesKHR</a> structure which includes at least one <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a> with a encode codec-operation"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-VkBufferCreateInfo-size-06409",
- "text": " <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMaintenance4Properties\">VkPhysicalDeviceMaintenance4Properties</a>::<code>maxBufferSize</code>"
- }
- ]
- },
- "VkDedicatedAllocationBufferCreateInfoNV": {
- "(VK_NV_dedicated_allocation)": [
- {
- "vuid": "VUID-VkDedicatedAllocationBufferCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV</code>"
- }
- ]
- },
- "VkExternalMemoryBufferCreateInfo": {
- "(VK_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkExternalMemoryBufferCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkExternalMemoryBufferCreateInfo-handleTypes-parameter",
- "text": " <code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> values"
- }
- ]
- },
- "VkBufferOpaqueCaptureAddressCreateInfo": {
- "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
- {
- "vuid": "VUID-VkBufferOpaqueCaptureAddressCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO</code>"
- }
- ]
- },
- "VkBufferDeviceAddressCreateInfoEXT": {
- "(VK_EXT_buffer_device_address)": [
- {
- "vuid": "VUID-VkBufferDeviceAddressCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT</code>"
- }
- ]
- },
- "VkBufferCollectionBufferCreateInfoFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-index-06388",
- "text": " <code>index</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a>::<code>bufferCount</code>"
- },
- {
- "vuid": "VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-collection-parameter",
- "text": " <code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
- }
- ]
- },
- "vkDestroyBuffer": {
- "core": [
- {
- "vuid": "VUID-vkDestroyBuffer-buffer-00922",
- "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"
- },
- {
- "vuid": "VUID-vkDestroyBuffer-buffer-parameter",
- "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyBuffer-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"
- },
- {
- "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>"
- }
- ]
- },
- "vkCreateBufferView": {
- "core": [
- {
- "vuid": "VUID-vkCreateBufferView-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateBufferView-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferViewCreateInfo\">VkBufferViewCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateBufferView-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"
- },
- {
- "vuid": "VUID-vkCreateBufferView-pView-parameter",
- "text": " <code>pView</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkBufferView\">VkBufferView</a> handle"
- }
- ]
- },
- "VkBufferViewCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkBufferViewCreateInfo-offset-00925",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-range-00928",
- "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>range</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-range-00929",
- "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>range</code> <strong class=\"purple\">must</strong> be an integer multiple of the texel block size of <code>format</code>"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-range-00930",
- "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, the number of texel buffer elements given by <span class=\"eq\">({lfloor}<code>range</code> / (texel block size){rfloor} {times} (texels per block))</span> where texel block size and texels per block are as defined in the <a href=\"#formats-compatibility\">Compatible Formats</a> table for <code>format</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTexelBufferElements</code>"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-offset-00931",
- "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, the sum of <code>offset</code> and <code>range</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-range-04059",
- "text": " If <code>range</code> is equal to <code>VK_WHOLE_SIZE</code>, the number of texel buffer elements given by <span class=\"eq\">({lfloor}(size - <code>offset</code>) / (texel block size){rfloor} {times} (texels per block))</span> where size is the size of <code>buffer</code>, and texel block size and texels per block are as defined in the <a href=\"#formats-compatibility\">Compatible Formats</a> table for <code>format</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTexelBufferElements</code>"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-buffer-00932",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing at least one of <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code> or <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-buffer-00933",
- "text": " If <code>buffer</code> was created with <code>usage</code> containing <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for uniform texel buffers, as specified by the <code>VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT</code> flag in <code>VkFormatProperties</code>::<code>bufferFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a>"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-buffer-00934",
- "text": " If <code>buffer</code> was created with <code>usage</code> containing <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for storage texel buffers, as specified by the <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT</code> flag in <code>VkFormatProperties</code>::<code>bufferFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a>"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-buffer-00935",
- "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- }
- ],
- "!(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)": [
- {
- "vuid": "VUID-VkBufferViewCreateInfo-offset-00926",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minTexelBufferOffsetAlignment</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)": [
- {
- "vuid": "VUID-VkBufferViewCreateInfo-offset-02749",
- "text": " If the <a href=\"#features-texelBufferAlignment\">texelBufferAlignment</a> feature is not enabled, <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minTexelBufferOffsetAlignment</code>"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-buffer-02750",
- "text": " If the <a href=\"#features-texelBufferAlignment\">texelBufferAlignment</a> feature is enabled and if <code>buffer</code> was created with <code>usage</code> containing <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code>, <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of the lesser of <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>::<code>storageTexelBufferOffsetAlignmentBytes</code> or, if <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>::<code>storageTexelBufferOffsetSingleTexelAlignment</code> is <code>VK_TRUE</code>, the size of a texel of the requested <code>format</code>. If the size of a texel is a multiple of three bytes, then the size of a single component of <code>format</code> is used instead"
- },
- {
- "vuid": "VUID-VkBufferViewCreateInfo-buffer-02751",
- "text": " If the <a href=\"#features-texelBufferAlignment\">texelBufferAlignment</a> feature is enabled and if <code>buffer</code> was created with <code>usage</code> containing <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code>, <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of the lesser of <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>::<code>uniformTexelBufferOffsetAlignmentBytes</code> or, if <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>::<code>uniformTexelBufferOffsetSingleTexelAlignment</code> is <code>VK_TRUE</code>, the size of a texel of the requested <code>format</code>. If the size of a texel is a multiple of three bytes, then the size of a single component of <code>format</code> is used instead"
- }
- ]
- },
- "vkDestroyBufferView": {
- "core": [
- {
- "vuid": "VUID-vkDestroyBufferView-bufferView-00936",
- "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"
- },
- {
- "vuid": "VUID-vkDestroyBufferView-bufferView-parameter",
- "text": " If <code>bufferView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>bufferView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferView\">VkBufferView</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyBufferView-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"
- },
- {
- "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>"
- }
- ]
- },
- "vkCreateImage": {
- "core": [
- {
- "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>"
- },
- {
- "vuid": "VUID-vkCreateImage-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateImage-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateImage-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"
- },
- {
- "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": {
- "core": [
- {
- "vuid": "VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251",
- "text": " Each of the following values (as described in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) <strong class=\"purple\">must</strong> not be undefined : <code>imageCreateMaxMipLevels</code>, <code>imageCreateMaxArrayLayers</code>, <code>imageCreateMaxExtent</code>, and <code>imageCreateSampleCounts</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-sharingMode-00941",
- "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueFamilyIndexCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-sharingMode-00942",
- "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-VkImageCreateInfo-extent-00944",
- "text": " <code>extent.width</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-extent-00945",
- "text": " <code>extent.height</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-extent-00946",
- "text": " <code>extent.depth</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-mipLevels-00947",
- "text": " <code>mipLevels</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-arrayLayers-00948",
- "text": " <code>arrayLayers</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-flags-00949",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-extent-02252",
- "text": " <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxExtent.width</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-extent-02253",
- "text": " <code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxExtent.height</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-extent-02254",
- "text": " <code>extent.depth</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxExtent.depth</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-imageType-00954",
- "text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code> and <code>flags</code> contains <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>extent.width</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be equal and <code>arrayLayers</code> <strong class=\"purple\">must</strong> be greater than or equal to 6"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-imageType-00956",
- "text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_1D</code>, both <code>extent.height</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-imageType-00957",
- "text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-mipLevels-00958",
- "text": " <code>mipLevels</code> <strong class=\"purple\">must</strong> be less than or equal to the number of levels in the complete mipmap chain based on <span class=\"eq\"><code>extent.width</code></span>, <span class=\"eq\"><code>extent.height</code></span>, and <span class=\"eq\"><code>extent.depth</code></span>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-mipLevels-02255",
- "text": " <code>mipLevels</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxMipLevels</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-arrayLayers-02256",
- "text": " <code>arrayLayers</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxArrayLayers</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-imageType-00961",
- "text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_3D</code>, <code>arrayLayers</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-samples-02257",
- "text": " If <code>samples</code> is not <code>VK_SAMPLE_COUNT_1_BIT</code>, then <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>mipLevels</code> <strong class=\"purple\">must</strong> be equal to <code>1</code>, and <code>imageCreateMaybeLinear</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>,"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-usage-00963",
- "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, then bits other than <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, and <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> <strong class=\"purple\">must</strong> not be set"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-usage-00964",
- "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxFramebufferWidth</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-usage-00965",
- "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxFramebufferHeight</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-usage-00966",
- "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, <code>usage</code> <strong class=\"purple\">must</strong> also contain at least one of <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-samples-02258",
- "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a bit value that is set in <code>imageCreateSampleCounts</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-usage-00968",
- "text": " If the <a href=\"#features-shaderStorageImageMultisample\">multisampled storage images</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\">sparse bindings</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\">sparse aliased residency</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\">sparse residency for 2D images</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\">sparse residency for 3D images</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\">sparse residency for images with 2 samples</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\">sparse residency for images with 4 samples</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\">sparse residency for images with 8 samples</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\">sparse residency for images with 16 samples</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>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-pNext",
- "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=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a>, <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>, <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>, <a href=\"#VkExternalMemoryImageCreateInfoNV\">VkExternalMemoryImageCreateInfoNV</a>, <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a>, <a href=\"#VkImageDrmFormatModifierListCreateInfoEXT\">VkImageDrmFormatModifierListCreateInfoEXT</a>, <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>, <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>, <a href=\"#VkImageSwapchainCreateInfoKHR\">VkImageSwapchainCreateInfoKHR</a>, <a href=\"#VkVideoDecodeH264ProfileEXT\">VkVideoDecodeH264ProfileEXT</a>, <a href=\"#VkVideoDecodeH265ProfileEXT\">VkVideoDecodeH265ProfileEXT</a>, <a href=\"#VkVideoEncodeH264ProfileEXT\">VkVideoEncodeH264ProfileEXT</a>, <a href=\"#VkVideoEncodeH265ProfileEXT\">VkVideoEncodeH265ProfileEXT</a>, <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a>, or <a href=\"#VkVideoProfilesKHR\">VkVideoProfilesKHR</a>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-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-VkImageCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-imageType-parameter",
- "text": " <code>imageType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-samples-parameter",
- "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-tiling-parameter",
- "text": " <code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-usage-parameter",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-usage-requiredbitmask",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-sharingMode-parameter",
- "text": " <code>sharingMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSharingMode\">VkSharingMode</a> value"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-initialLayout-parameter",
- "text": " <code>initialLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-VkImageCreateInfo-sharingMode-01392",
- "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 <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties\">vkGetPhysicalDeviceQueueFamilyProperties</a> for the <code>physicalDevice</code> that was used to create <code>device</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-VkImageCreateInfo-sharingMode-01420",
- "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>"
- }
- ],
- "!(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkImageCreateInfo-format-00943",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>"
- }
- ],
- "(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-01974",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure, and its <code>externalFormat</code> member is non-zero the <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-01975",
- "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure, or does and its <code>externalFormat</code> member is <code>0</code>, the <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-02393",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure whose <code>handleTypes</code> member includes <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-02394",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure whose <code>handleTypes</code> member includes <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>mipLevels</code> <strong class=\"purple\">must</strong> either be <code>1</code> or equal to the number of levels in the complete mipmap chain based on <span class=\"eq\"><code>extent.width</code></span>, <span class=\"eq\"><code>extent.height</code></span>, and <span class=\"eq\"><code>extent.depth</code></span>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-02396",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-02397",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>usage</code> <strong class=\"purple\">must</strong> not include any usages except <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-02398",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_OPTIMAL</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkImageCreateInfo-flags-02557",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-samples-02558",
- "text": " If <code>samples</code> is not <code>VK_SAMPLE_COUNT_1_BIT</code>, <code>usage</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-flags-02565",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_OPTIMAL</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-flags-02566",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-flags-02567",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-flags-02568",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>, <code>mipLevels</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-VkImageCreateInfo-flags-00950",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_3D</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)+!(VK_QCOM_fragment_density_map_offset)": [
- {
- "vuid": "VUID-VkImageCreateInfo-usage-02559",
- "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\\right\\rceil\\)"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-usage-02560",
- "text": " If <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\\)"
- }
- ],
- "(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)": [
- {
- "vuid": "VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514",
- "text": " If <a href=\"#features-fragmentDensityMapOffset\"><code>fragmentDensityMapOffset</code></a> is not enabled and <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\\right\\rceil\\)"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515",
- "text": " If <a href=\"#features-fragmentDensityMapOffset\"><code>fragmentDensityMapOffset</code></a> 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\\)"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkImageCreateInfo-flags-01890",
- "text": " If the protected memory feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_PROTECTED_BIT</code>"
- },
- {
- "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"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_NV_external_memory)": [
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-00988",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfoNV\">VkExternalMemoryImageCreateInfoNV</a> structure, it <strong class=\"purple\">must</strong> not contain a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-00990",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure, its <code>handleTypes</code> member <strong class=\"purple\">must</strong> only contain bits that are also in <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a>::<code>externalMemoryProperties.compatibleHandleTypes</code>, as returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</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 a <a href=\"#VkPhysicalDeviceExternalImageFormatInfo\">VkPhysicalDeviceExternalImageFormatInfo</a> structure included in the <code>pNext</code> chain, with a <code>handleType</code> equal to any one of the handle types specified in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code>"
- }
- ],
- "(VK_NV_external_memory+VK_NV_external_memory_capabilities)": [
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-00991",
- "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)": [
- {
- "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>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-flags-02259",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT</code>, then <code>mipLevels</code> <strong class=\"purple\">must</strong> be one, <code>arrayLayers</code> <strong class=\"purple\">must</strong> be one, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>. and <code>imageCreateMaybeLinear</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-VkImageCreateInfo-flags-01572",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code>, then <code>format</code> <strong class=\"purple\">must</strong> be a <a href=\"#compressed_image_formats\">compressed image format</a>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-flags-01573",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code>, then <code>flags</code> <strong class=\"purple\">must</strong> also contain <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_external_memory,VK_NV_external_memory)": [
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-01443",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> or <code>VkExternalMemoryImageCreateInfoNV</code> structure whose <code>handleTypes</code> member is not <code>0</code>, <code>initialLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageCreateInfo-format-06410",
- "text": " If the image <code>format</code> is one of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler Y&#8217;C<sub>B</sub>C<sub>R</sub> conversion</a>, <code>mipLevels</code> <strong class=\"purple\">must</strong> be 1"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-format-06411",
- "text": " If the image <code>format</code> is one of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler Y&#8217;C<sub>B</sub>C<sub>R</sub> conversion</a>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-format-06412",
- "text": " If the image <code>format</code> is one of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler Y&#8217;C<sub>B</sub>C<sub>R</sub> conversion</a>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260",
- "text": " If <code>format</code> is a <em>multi-planar</em> format, and if <code>imageCreateFormatFeatures</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>) does not contain <code>VK_FORMAT_FEATURE_DISJOINT_BIT</code>, then <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_DISJOINT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-format-01577",
- "text": " If <code>format</code> is not a <em>multi-planar</em> format, and <code>flags</code> does not include <code>VK_IMAGE_CREATE_ALIAS_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_DISJOINT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-format-04712",
- "text": " If <code>format</code> has a <code>_422</code> or <code>_420</code> suffix, <code>width</code> <strong class=\"purple\">must</strong> be a multiple of 2"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-format-04713",
- "text": " If <code>format</code> has a <code>_420</code> suffix, <code>height</code> <strong class=\"purple\">must</strong> be a multiple of 2"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_ycbcr_image_arrays)": [
- {
- "vuid": "VUID-VkImageCreateInfo-format-06413",
- "text": " If the image <code>format</code> is one of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler Y&#8217;C<sub>B</sub>C<sub>R</sub> conversion</a>, and the <code>ycbcrImageArrays</code> feature is not enabled, <code>arrayLayers</code> <strong class=\"purple\">must</strong> be 1"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_ycbcr_image_arrays)": [
- {
- "vuid": "VUID-VkImageCreateInfo-format-06414",
- "text": " If the image <code>format</code> is one of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler Y&#8217;C<sub>B</sub>C<sub>R</sub> conversion</a>, <code>arrayLayers</code> <strong class=\"purple\">must</strong> be 1"
- }
- ],
- "(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkImageCreateInfo-tiling-02261",
- "text": " If <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include exactly one of <a href=\"#VkImageDrmFormatModifierListCreateInfoEXT\">VkImageDrmFormatModifierListCreateInfoEXT</a> or <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a> structures"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-02262",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImageDrmFormatModifierListCreateInfoEXT\">VkImageDrmFormatModifierListCreateInfoEXT</a> or <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a> structure, then <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-tiling-02353",
- "text": " If <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code> and <code>flags</code> contains <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure with non-zero <code>viewFormatCount</code>"
- }
- ],
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-VkImageCreateInfo-flags-01533",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> <code>format</code> <strong class=\"purple\">must</strong> be a depth or depth/stencil format"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
- {
- "vuid": "VUID-VkImageCreateInfo-format-02795",
- "text": " If <code>format</code> is a depth-stencil format, <code>usage</code> includes <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure, then its <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> member <strong class=\"purple\">must</strong> also include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-format-02796",
- "text": " If <code>format</code> is a depth-stencil format, <code>usage</code> does not include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure, then its <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> member <strong class=\"purple\">must</strong> also not include <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-format-02797",
- "text": " If <code>format</code> is a depth-stencil format, <code>usage</code> includes <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure, then its <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> member <strong class=\"purple\">must</strong> also include <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-format-02798",
- "text": " If <code>format</code> is a depth-stencil format, <code>usage</code> does not include <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure, then its <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> member <strong class=\"purple\">must</strong> also not include <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-Format-02536",
- "text": " If <code>Format</code> is a depth-stencil format and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure with its <code>stencilUsage</code> member including <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxFramebufferWidth</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-format-02537",
- "text": " If <code>format</code> is a depth-stencil format and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure with its <code>stencilUsage</code> member including <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxFramebufferHeight</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-format-02538",
- "text": " If the <a href=\"#features-shaderStorageImageMultisample\">multisampled storage images</a> feature is not enabled, <code>format</code> is a depth-stencil format and the <code>pNext</code> chain includes a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure with its <code>stencilUsage</code> including <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>"
- }
- ],
- "(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-VkImageCreateInfo-flags-02050",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code> or <code>VK_IMAGE_TYPE_3D</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-flags-02051",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code>, it <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code> and the <code>format</code> <strong class=\"purple\">must</strong> not be a depth/stencil format"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-flags-02052",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> and <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, <code>extent.width</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-flags-02053",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> and <code>imageType</code> is <code>VK_IMAGE_TYPE_3D</code>, <code>extent.width</code>, <code>extent.height</code>, and <code>extent.depth</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>"
- }
- ],
- "(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkImageCreateInfo-imageType-02082",
- "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-samples-02083",
- "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>"
- }
- ],
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkImageCreateInfo-tiling-02084",
- "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_OPTIMAL</code>"
- }
- ],
- "(VK_HUAWEI_invocation_mask)": [
- {
- "vuid": "VUID-VkImageCreateInfo-usage-04992",
- "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_LINEAR</code>"
- }
- ],
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-VkImageCreateInfo-imageView2DOn3DImage-04459",
- "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>imageView2DOn3DImage</code> is <code>VK_FALSE</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-multisampleArrayImage-04460",
- "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>multisampleArrayImage</code> is <code>VK_FALSE</code>, and <code>samples</code> is not <code>VK_SAMPLE_COUNT_1_BIT</code>, then <code>arrayLayers</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_image_format_list)": [
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-04737",
- "text": " If a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure was included in the <code>pNext</code> chain and <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> is not zero, then all of the formats in <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>pViewFormats</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> as described in the <a href=\"#formats-compatibility\">compatibility table</a>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-flags-04738",
- "text": " If <code>flags</code> does not contain <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> and the <code>pNext</code> chain includes a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure, then <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
- }
- ],
- "(VK_KHR_video_decode_queue)": [
- {
- "vuid": "VUID-VkImageCreateInfo-usage-04815",
- "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkVideoProfilesKHR\">VkVideoProfilesKHR</a> structure which includes at least one <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a> with a decode codec-operation"
- }
- ],
- "(VK_KHR_video_encode_queue)": [
- {
- "vuid": "VUID-VkImageCreateInfo-usage-04816",
- "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid <a href=\"#VkVideoProfilesKHR\">VkVideoProfilesKHR</a> structure which includes at least one <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a> with a encode codec-operation"
- }
- ],
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-VkImageCreateInfo-pNext-06390",
- "text": " If the <a href=\"#VkImage\">VkImage</a> is to be used to import memory from a <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a>, a <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> structure <strong class=\"purple\">must</strong> be chained to <code>pNext</code>."
- }
- ]
- },
- "VkBufferCollectionImageCreateInfoFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-VkBufferCollectionImageCreateInfoFUCHSIA-index-06391",
- "text": " <code>index</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a>::<code>bufferCount</code>"
- },
- {
- "vuid": "VUID-VkBufferCollectionImageCreateInfoFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkBufferCollectionImageCreateInfoFUCHSIA-collection-parameter",
- "text": " <code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
- }
- ]
- },
- "VkImageStencilUsageCreateInfo": {
- "(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
- {
- "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-02539",
- "text": " If <code>stencilUsage</code> includes <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code>, it <strong class=\"purple\">must</strong> not include bits other than <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageStencilUsageCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-parameter",
- "text": " <code>stencilUsage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-requiredbitmask",
- "text": " <code>stencilUsage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ]
- },
- "VkDedicatedAllocationImageCreateInfoNV": {
- "(VK_NV_dedicated_allocation)": [
- {
- "vuid": "VUID-VkDedicatedAllocationImageCreateInfoNV-dedicatedAllocation-00994",
- "text": " If <code>dedicatedAllocation</code> is <code>VK_TRUE</code>, <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> <strong class=\"purple\">must</strong> not include <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>"
- },
- {
- "vuid": "VUID-VkDedicatedAllocationImageCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV</code>"
- }
- ]
- },
- "VkExternalMemoryImageCreateInfo": {
- "(VK_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkExternalMemoryImageCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkExternalMemoryImageCreateInfo-handleTypes-parameter",
- "text": " <code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> values"
- }
- ]
- },
- "VkExternalMemoryImageCreateInfoNV": {
- "(VK_NV_external_memory)": [
- {
- "vuid": "VUID-VkExternalMemoryImageCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkExternalMemoryImageCreateInfoNV-handleTypes-parameter",
- "text": " <code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values"
- }
- ]
- },
- "VkExternalFormatANDROID": {
- "(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkExternalFormatANDROID-externalFormat-01894",
- "text": " <code>externalFormat</code> <strong class=\"purple\">must</strong> be <code>0</code> or a value returned in the <code>externalFormat</code> member of <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a> by an earlier call to <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a>"
- },
- {
- "vuid": "VUID-VkExternalFormatANDROID-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID</code>"
- }
- ]
- },
- "VkImageSwapchainCreateInfoKHR": {
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [
- {
- "vuid": "VUID-VkImageSwapchainCreateInfoKHR-swapchain-00995",
- "text": " If <code>swapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the fields of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> <strong class=\"purple\">must</strong> match the <a href=\"#swapchain-wsi-image-create-info\">implied image creation parameters</a> of the swapchain"
- },
- {
- "vuid": "VUID-VkImageSwapchainCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkImageSwapchainCreateInfoKHR-swapchain-parameter",
- "text": " If <code>swapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- }
- ]
- },
- "VkImageFormatListCreateInfo": {
- "(VK_VERSION_1_2,VK_KHR_image_format_list)": [
- {
- "vuid": "VUID-VkImageFormatListCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkImageFormatListCreateInfo-pViewFormats-parameter",
- "text": " If <code>viewFormatCount</code> is not <code>0</code>, <code>pViewFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewFormatCount</code> valid <a href=\"#VkFormat\">VkFormat</a> values"
- }
- ]
- },
- "VkImageDrmFormatModifierListCreateInfoEXT": {
- "(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-02263",
- "text": " Each <em>modifier</em> in <code>pDrmFormatModifiers</code> <strong class=\"purple\">must</strong> be compatible with the parameters in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> and its <code>pNext</code> chain, as determined by querying <a href=\"#VkPhysicalDeviceImageFormatInfo2\">VkPhysicalDeviceImageFormatInfo2</a> extended with <a href=\"#VkPhysicalDeviceImageDrmFormatModifierInfoEXT\">VkPhysicalDeviceImageDrmFormatModifierInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-parameter",
- "text": " <code>pDrmFormatModifiers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>drmFormatModifierCount</code> <code>uint64_t</code> values"
- },
- {
- "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-drmFormatModifierCount-arraylength",
- "text": " <code>drmFormatModifierCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkImageDrmFormatModifierExplicitCreateInfoEXT": {
- "(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifier-02264",
- "text": " <code>drmFormatModifier</code> <strong class=\"purple\">must</strong> be compatible with the parameters in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> and its <code>pNext</code> chain, as determined by querying <a href=\"#VkPhysicalDeviceImageFormatInfo2\">VkPhysicalDeviceImageFormatInfo2</a> extended with <a href=\"#VkPhysicalDeviceImageDrmFormatModifierInfoEXT\">VkPhysicalDeviceImageDrmFormatModifierInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-02265",
- "text": " <code>drmFormatModifierPlaneCount</code> <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>format</code> and <code>drmFormatModifier</code>, as found by querying <a href=\"#VkDrmFormatModifierPropertiesListEXT\">VkDrmFormatModifierPropertiesListEXT</a>"
- },
- {
- "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-size-02267",
- "text": " For each element of <code>pPlaneLayouts</code>, <code>size</code> <strong class=\"purple\">must</strong> be 0"
- },
- {
- "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-arrayPitch-02268",
- "text": " For each element of <code>pPlaneLayouts</code>, <code>arrayPitch</code> <strong class=\"purple\">must</strong> be 0 if <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>arrayLayers</code> is 1"
- },
- {
- "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-depthPitch-02269",
- "text": " For each element of <code>pPlaneLayouts</code>, <code>depthPitch</code> <strong class=\"purple\">must</strong> be 0 if <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>extent.depth</code> is 1"
- },
- {
- "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-pPlaneLayouts-parameter",
- "text": " If <code>drmFormatModifierPlaneCount</code> is not <code>0</code>, <code>pPlaneLayouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>drmFormatModifierPlaneCount</code> <a href=\"#VkSubresourceLayout\">VkSubresourceLayout</a> structures"
- }
- ]
- },
- "vkGetImageSubresourceLayout": {
- "!(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-image-00996",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>tiling</code> equal to <code>VK_IMAGE_TILING_LINEAR</code>"
- }
- ],
- "(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-image-02270",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>tiling</code> equal to <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>"
- },
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-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>{ibit}</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>"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-aspectMask-00997",
- "text": " The <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set"
- },
- {
- "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"
- },
- {
- "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"
- },
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-format-04461",
- "text": " If <code>format</code> is a color format, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- },
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-format-04462",
- "text": " If <code>format</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>"
- },
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-format-04463",
- "text": " If <code>format</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>"
- },
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-format-04464",
- "text": " If <code>format</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>"
- },
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-pSubresource-parameter",
- "text": " <code>pSubresource</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageSubresource\">VkImageSubresource</a> structure"
- },
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-pLayout-parameter",
- "text": " <code>pLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSubresourceLayout\">VkSubresourceLayout</a> structure"
- },
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-image-parent",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-format-01581",
- "text": " If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> and its <code>format</code> is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a> with two planes, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
- },
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-format-01582",
- "text": " If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> and its <code>format</code> is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a> with three planes, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
- }
- ],
- "(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-vkGetImageSubresourceLayout-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"
- }
- ]
- },
- "VkImageSubresource": {
- "core": [
- {
- "vuid": "VUID-VkImageSubresource-aspectMask-parameter",
- "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkImageSubresource-aspectMask-requiredbitmask",
- "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ]
- },
- "vkGetImageDrmFormatModifierPropertiesEXT": {
- "(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-02272",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkImageCreateInfo\"><code>tiling</code></a> equal to <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>"
- },
- {
- "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-pProperties-parameter",
- "text": " <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a> structure"
- },
- {
- "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parent",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "VkImageDrmFormatModifierPropertiesEXT": {
- "(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkImageDrmFormatModifierPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageDrmFormatModifierPropertiesEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkDestroyImage": {
- "core": [
- {
- "vuid": "VUID-vkDestroyImage-image-01000",
- "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"
- },
- {
- "vuid": "VUID-vkDestroyImage-image-parameter",
- "text": " If <code>image</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyImage-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"
- },
- {
- "vuid": "VUID-vkDestroyImage-image-parent",
- "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>"
- }
- ],
- "(VK_KHR_swapchain)": [
- {
- "vuid": "VUID-vkDestroyImage-image-04882",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> not have been acquired from <a href=\"#vkGetSwapchainImagesKHR\">vkGetSwapchainImagesKHR</a>"
- }
- ]
- },
- "vkCreateImageView": {
- "core": [
- {
- "vuid": "VUID-vkCreateImageView-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateImageView-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateImageView-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"
- },
- {
- "vuid": "VUID-vkCreateImageView-pView-parameter",
- "text": " <code>pView</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageView\">VkImageView</a> handle"
- }
- ]
- },
- "VkImageViewCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-01003",
- "text": " If <code>image</code> was not created with <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code> then <code>viewType</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_VIEW_TYPE_CUBE</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-viewType-01004",
- "text": " If the <a href=\"#features-imageCubeArray\">image cube map arrays</a> feature is not enabled, <code>viewType</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-04441",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing at least one of the usages defined in the <a href=\"#valid-imageview-imageusage\">valid image usage</a> list for image views"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-None-02273",
- "text": " The <a href=\"#resources-image-view-format-features\">format features</a> of the resultant image view <strong class=\"purple\">must</strong> contain at least one bit"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-usage-02274",
- "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, then the <a href=\"#resources-image-view-format-features\">format features</a> of the resultant image view <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-usage-02275",
- "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-usage-02276",
- "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-usage-02277",
- "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-usage-02652",
- "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain at least one of <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01478",
- "text": " <code>subresourceRange.baseMipLevel</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"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01718",
- "text": " If <code>subresourceRange.levelCount</code> is not <code>VK_REMAINING_MIP_LEVELS</code>, <span class=\"eq\"><code>subresourceRange.baseMipLevel</code> &#43; <code>subresourceRange.levelCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-01020",
- "text": " If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-subResourceRange-01021",
- "text": " <code>viewType</code> <strong class=\"purple\">must</strong> be compatible with the type of <code>image</code> as shown in the <a href=\"#resources-image-views-compatibility\">view type compatibility table</a>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-imageViewType-04973",
- "text": " If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_1D</code>, <code>VK_IMAGE_VIEW_TYPE_2D</code>, or <code>VK_IMAGE_VIEW_TYPE_3D</code>; and <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, then <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be 1"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-imageViewType-04974",
- "text": " If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_1D</code>, <code>VK_IMAGE_VIEW_TYPE_2D</code>, or <code>VK_IMAGE_VIEW_TYPE_3D</code>; and <code>subresourceRange.layerCount</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, then the remaining number of layers <strong class=\"purple\">must</strong> be 1"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-viewType-02960",
- "text": " If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_CUBE</code> and <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be <code>6</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-viewType-02961",
- "text": " If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code> and <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be a multiple of <code>6</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-viewType-02962",
- "text": " If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_CUBE</code> and <code>subresourceRange.layerCount</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, the remaining number of layers <strong class=\"purple\">must</strong> be <code>6</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-viewType-02963",
- "text": " If <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code> and <code>subresourceRange.layerCount</code> is <code>VK_REMAINING_ARRAY_LAYERS</code>, the remaining number of layers <strong class=\"purple\">must</strong> be a multiple of <code>6</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-pNext-pNext",
- "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=\"#VkImageViewASTCDecodeModeEXT\">VkImageViewASTCDecodeModeEXT</a>, <a href=\"#VkImageViewMinLodCreateInfoEXT\">VkImageViewMinLodCreateInfoEXT</a>, <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a>, <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a>, <a href=\"#VkVideoDecodeH264ProfileEXT\">VkVideoDecodeH264ProfileEXT</a>, <a href=\"#VkVideoDecodeH265ProfileEXT\">VkVideoDecodeH265ProfileEXT</a>, <a href=\"#VkVideoEncodeH264ProfileEXT\">VkVideoEncodeH264ProfileEXT</a>, <a href=\"#VkVideoEncodeH265ProfileEXT\">VkVideoEncodeH265ProfileEXT</a>, <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a>, or <a href=\"#VkVideoProfilesKHR\">VkVideoProfilesKHR</a>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-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-VkImageViewCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageViewCreateFlagBits\">VkImageViewCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-viewType-parameter",
- "text": " <code>viewType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageViewType\">VkImageViewType</a> value"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-components-parameter",
- "text": " <code>components</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentMapping\">VkComponentMapping</a> structure"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-parameter",
- "text": " <code>subresourceRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structure"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-01005",
- "text": " If <code>image</code> was created with <code>VK_IMAGE_TYPE_3D</code> but without <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> set then <code>viewType</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-04970",
- "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>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-01482",
- "text": " If <code>image</code> is not a 3D image created with <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</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.baseArrayLayer</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"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01483",
- "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> 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"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-02724",
- "text": " If <code>image</code> is a 3D image created with <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> set, and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, <code>subresourceRange.baseArrayLayer</code> <strong class=\"purple\">must</strong> be less than the depth computed from <code>baseMipLevel</code> and <code>extent.depth</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created, according to the formula defined in <a href=\"#resources-image-miplevel-sizing\">Image Miplevel Sizing</a>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-02725",
- "text": " If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <code>image</code> is a 3D image created with <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> set, and <code>viewType</code> is <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 depth computed from <code>baseMipLevel</code> and <code>extent.depth</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created, according to the formula defined in <a href=\"#resources-image-miplevel-sizing\">Image Miplevel Sizing</a>"
- }
- ],
- "(VK_NV_linear_color_attachment)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-usage-06516",
- "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>, if the image is created with <code>VK_IMAGE_TILING_LINEAR</code> and the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-usage-06517",
- "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> must contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>, if the image is created with <code>VK_IMAGE_TILING_LINEAR</code> and the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-02571",
- "text": " If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>subresourceRange.levelCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-flags-02572",
- "text": " If <a href=\"#features-fragmentDensityMapDynamic\">dynamic fragment density map</a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-flags-04116",
- "text": " If <code>flags</code> does not contain <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT</code> and <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, its <code>flags</code> <strong class=\"purple\">must</strong> not contain any of <code>VK_IMAGE_CREATE_PROTECTED_BIT</code>, <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>"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01480",
- "text": " <code>subresourceRange.baseArrayLayer</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"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01719",
- "text": " If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <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_maintenance2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-01018",
- "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, <code>format</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> used to create <code>image</code>, as defined in <a href=\"#formats-compatibility-classes\">Format Compatibility Classes</a>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-01759",
- "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, but without the <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code> flag, <code>format</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> used to create <code>image</code>, as defined in <a href=\"#formats-compatibility-classes\">Format Compatibility Classes</a>"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-01760",
- "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, and if the <code>format</code> of the <code>image</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format, <code>format</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> used to create <code>image</code>, as defined in <a href=\"#formats-compatibility-classes\">Format Compatibility Classes</a>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-01761",
- "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, but without the <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code> flag, and if the <code>format</code> of the <code>image</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format, <code>format</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> used to create <code>image</code>, as defined in <a href=\"#formats-compatibility-classes\">Format Compatibility Classes</a>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-01583",
- "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code> flag, <code>format</code> <strong class=\"purple\">must</strong> be compatible with, or <strong class=\"purple\">must</strong> be an uncompressed format that is size-compatible with, the <code>format</code> used to create <code>image</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-01584",
- "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code> flag, the <code>levelCount</code> and <code>layerCount</code> members of <code>subresourceRange</code> <strong class=\"purple\">must</strong> both be <code>1</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-04739",
- "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT</code> flag and <code>format</code> is a non-compressed format, <code>viewType</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_VIEW_TYPE_3D</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_image_format_list)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-pNext-01585",
- "text": " If a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure was included in the <code>pNext</code> chain of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure used when creating <code>image</code> and <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> is not zero then <code>format</code> <strong class=\"purple\">must</strong> be one of the formats in <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>pViewFormats</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-01586",
- "text": " If <code>image</code> was created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, if the <code>format</code> of the <code>image</code> is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format, and if <code>subresourceRange.aspectMask</code> is one of <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>, then <code>format</code> <strong class=\"purple\">must</strong> be compatible with the <a href=\"#VkFormat\">VkFormat</a> for the plane of the <code>image</code> <code>format</code> indicated by <code>subresourceRange.aspectMask</code>, as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-01762",
- "text": " If <code>image</code> was not created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, or if the <code>format</code> of the <code>image</code> is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar</a> format and if <code>subresourceRange.aspectMask</code> is <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be identical to the <code>format</code> used to create <code>image</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-format-06415",
- "text": " If the image <code>format</code> is one of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler Y&#8217;C<sub>B</sub>C<sub>R</sub> conversion</a>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a> structure with a conversion value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-format-04714",
- "text": " If <code>format</code> has a <code>_422</code> or <code>_420</code> suffix then <code>image</code> <strong class=\"purple\">must</strong> have been created with a width that is a multiple of 2"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-format-04715",
- "text": " If <code>format</code> has a <code>_420</code> suffix then <code>image</code> <strong class=\"purple\">must</strong> have been created with a height that is a multiple of 2"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-pNext-01970",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a> structure with a <code>conversion</code> value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, all members of <code>components</code> <strong class=\"purple\">must</strong> have the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-01019",
- "text": " If <code>image</code> was not created with the <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code> flag, <code>format</code> <strong class=\"purple\">must</strong> be identical to the <code>format</code> used to create <code>image</code>"
- }
- ],
- "(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-02399",
- "text": " If <code>image</code> has an <a href=\"#memory-external-android-hardware-buffer-external-formats\">external format</a>, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-02400",
- "text": " If <code>image</code> has an <a href=\"#memory-external-android-hardware-buffer-external-formats\">external format</a>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a> structure with a <code>conversion</code> object created with the same external format as <code>image</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-02401",
- "text": " If <code>image</code> has an <a href=\"#memory-external-android-hardware-buffer-external-formats\">external format</a>, all members of <code>components</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>"
- }
- ],
- "(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-02086",
- "text": " If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, <code>viewType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>"
- }
- ],
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-02087",
- "text": " If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code> feature</a> is enabled, and If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code>, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_R8_UINT</code>"
- }
- ],
- "(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-usage-04550",
- "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code> feature</a> is enabled, and the <code>usage</code> for the image view includes <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-usage-04551",
- "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code> feature</a> is enabled, the <code>usage</code> for the image view includes <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, and <a href=\"#limits-layeredShadingRateAttachments\"><code>layeredShadingRateAttachments</code></a> is <code>VK_FALSE</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-flags-03567",
- "text": " If <a href=\"#features-fragmentDensityMapDeferred\">deferred fragment density map</a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-flags-03568",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-03569",
- "text": " If <code>image</code> was created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code> and <code>usage</code> containing <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxSubsampledArrayLayers\"><code>VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</code>::<code>maxSubsampledArrayLayers</code></a>"
- }
- ],
- "(VK_EXT_fragment_density_map)+(VK_HUAWEI_invocation_mask)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-invocationMask-04993",
- "text": " If the <a href=\"#features-invocationMask\"><code>invocationMask</code> feature</a> is enabled, and if <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI</code>, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_R8_UINT</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_2+VK_EXT_separate_stencil_usage)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-pNext-02661",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure, its <code>usage</code> member <strong class=\"purple\">must</strong> not include any bits that were not set in the <code>usage</code> member of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure used to create <code>image</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-pNext-02662",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure, and <code>image</code> was not created with a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, its <code>usage</code> member <strong class=\"purple\">must</strong> not include any bits that were not set in the <code>usage</code> member of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure used to create <code>image</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-pNext-02663",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure, <code>image</code> was created with a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, and <code>subresourceRange.aspectMask</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, the <code>usage</code> member of the <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure <strong class=\"purple\">must</strong> not include any bits that were not set in the <code>usage</code> member of the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure used to create <code>image</code>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-pNext-02664",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure, <code>image</code> was created with a <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a> structure included in the <code>pNext</code> chain of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, and <code>subresourceRange.aspectMask</code> includes bits other than <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, the <code>usage</code> member of the <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> structure <strong class=\"purple\">must</strong> not include any bits that were not set in the <code>usage</code> member of the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure used to create <code>image</code>"
- }
- ],
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-imageViewFormatSwizzle-04465",
- "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>imageViewFormatSwizzle</code> is <code>VK_FALSE</code>, all elements of <code>components</code> <strong class=\"purple\">must</strong> have the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>"
- },
- {
- "vuid": "VUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466",
- "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>"
- }
- ],
- "(VK_KHR_video_decode_queue)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-04817",
- "text": " If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code>, then the <code>viewType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> and all members of <code>components</code> <strong class=\"purple\">must</strong> have the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>"
- }
- ],
- "(VK_KHR_video_encode_queue)": [
- {
- "vuid": "VUID-VkImageViewCreateInfo-image-04818",
- "text": " If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code>, then the <code>viewType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> and all members of <code>components</code> <strong class=\"purple\">must</strong> have the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>"
- }
- ]
- },
- "VkImageViewUsageCreateInfo": {
- "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-VkImageViewUsageCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkImageViewUsageCreateInfo-usage-parameter",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkImageViewUsageCreateInfo-usage-requiredbitmask",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ]
- },
- "VkImageSubresourceRange": {
- "core": [
- {
- "vuid": "VUID-VkImageSubresourceRange-levelCount-01720",
- "text": " If <code>levelCount</code> is not <code>VK_REMAINING_MIP_LEVELS</code>, it <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkImageSubresourceRange-layerCount-01721",
- "text": " If <code>layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, it <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkImageSubresourceRange-aspectMask-parameter",
- "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkImageSubresourceRange-aspectMask-requiredbitmask",
- "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageSubresourceRange-aspectMask-01670",
- "text": " If <code>aspectMask</code> includes <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, then it <strong class=\"purple\">must</strong> not include any of <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
- }
- ],
- "(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkImageSubresourceRange-aspectMask-02278",
- "text": " <code>aspectMask</code> <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>"
- }
- ]
- },
- "VkComponentMapping": {
- "core": [
- {
- "vuid": "VUID-VkComponentMapping-r-parameter",
- "text": " <code>r</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentSwizzle\">VkComponentSwizzle</a> value"
- },
- {
- "vuid": "VUID-VkComponentMapping-g-parameter",
- "text": " <code>g</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentSwizzle\">VkComponentSwizzle</a> value"
- },
- {
- "vuid": "VUID-VkComponentMapping-b-parameter",
- "text": " <code>b</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentSwizzle\">VkComponentSwizzle</a> value"
- },
- {
- "vuid": "VUID-VkComponentMapping-a-parameter",
- "text": " <code>a</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentSwizzle\">VkComponentSwizzle</a> value"
- }
- ]
- },
- "VkImageViewASTCDecodeModeEXT": {
- "(VK_EXT_astc_decode_mode)": [
- {
- "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02230",
- "text": " <code>decodeMode</code> <strong class=\"purple\">must</strong> be one of <code>VK_FORMAT_R16G16B16A16_SFLOAT</code>, <code>VK_FORMAT_R8G8B8A8_UNORM</code>, or <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>"
- },
- {
- "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231",
- "text": " If the <a href=\"#features-astc-decodeModeSharedExponent\"><code>decodeModeSharedExponent</code></a> feature is not enabled, <code>decodeMode</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>"
- },
- {
- "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02232",
- "text": " If <code>decodeMode</code> is <code>VK_FORMAT_R8G8B8A8_UNORM</code> the image view <strong class=\"purple\">must</strong> not include blocks using any of the ASTC HDR modes"
- },
- {
- "vuid": "VUID-VkImageViewASTCDecodeModeEXT-format-04084",
- "text": " <code>format</code> of the image view <strong class=\"purple\">must</strong> be one of the <a href=\"#appendix-compressedtex-astc\">ASTC Compressed Image Formats</a>"
- },
- {
- "vuid": "VUID-VkImageViewASTCDecodeModeEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT</code>"
- },
- {
- "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-parameter",
- "text": " <code>decodeMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- }
- ]
- },
- "vkDestroyImageView": {
- "core": [
- {
- "vuid": "VUID-vkDestroyImageView-imageView-01026",
- "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"
- },
- {
- "vuid": "VUID-vkDestroyImageView-imageView-parameter",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyImageView-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"
- },
- {
- "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>"
- }
- ]
- },
- "vkGetImageViewHandleNVX": {
- "(VK_NVX_image_view_handle)": [
- {
- "vuid": "VUID-vkGetImageViewHandleNVX-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetImageViewHandleNVX-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageViewHandleInfoNVX\">VkImageViewHandleInfoNVX</a> structure"
- }
- ]
- },
- "VkImageViewHandleInfoNVX": {
- "(VK_NVX_image_view_handle)": [
- {
- "vuid": "VUID-VkImageViewHandleInfoNVX-descriptorType-02654",
- "text": " <code>descriptorType</code> <strong class=\"purple\">must</strong> be <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>"
- },
- {
- "vuid": "VUID-VkImageViewHandleInfoNVX-sampler-02655",
- "text": " <code>sampler</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampler\">VkSampler</a> if <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>"
- },
- {
- "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-02656",
- "text": " If descriptorType is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, the image that <code>imageView</code> was created from <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> usage bit set"
- },
- {
- "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-02657",
- "text": " If descriptorType is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, the image that <code>imageView</code> was created from <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_USAGE_STORAGE_BIT</code> usage bit set"
- },
- {
- "vuid": "VUID-VkImageViewHandleInfoNVX-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX</code>"
- },
- {
- "vuid": "VUID-VkImageViewHandleInfoNVX-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-parameter",
- "text": " <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
- },
- {
- "vuid": "VUID-VkImageViewHandleInfoNVX-descriptorType-parameter",
- "text": " <code>descriptorType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value"
- },
- {
- "vuid": "VUID-VkImageViewHandleInfoNVX-sampler-parameter",
- "text": " If <code>sampler</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sampler</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampler\">VkSampler</a> handle"
- },
- {
- "vuid": "VUID-VkImageViewHandleInfoNVX-commonparent",
- "text": " Both of <code>imageView</code>, and <code>sampler</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>"
- }
- ]
- },
- "vkGetImageViewAddressNVX": {
- "(VK_NVX_image_view_handle)": [
- {
- "vuid": "VUID-vkGetImageViewAddressNVX-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetImageViewAddressNVX-imageView-parameter",
- "text": " <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
- },
- {
- "vuid": "VUID-vkGetImageViewAddressNVX-pProperties-parameter",
- "text": " <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageViewAddressPropertiesNVX\">VkImageViewAddressPropertiesNVX</a> structure"
- },
- {
- "vuid": "VUID-vkGetImageViewAddressNVX-imageView-parent",
- "text": " <code>imageView</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "VkImageViewAddressPropertiesNVX": {
- "(VK_NVX_image_view_handle)": [
- {
- "vuid": "VUID-VkImageViewAddressPropertiesNVX-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX</code>"
- },
- {
- "vuid": "VUID-VkImageViewAddressPropertiesNVX-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkImageViewMinLodCreateInfoEXT": {
- "(VK_EXT_image_view_min_lod)": [
- {
- "vuid": "VUID-VkImageViewMinLodCreateInfoEXT-minLod-06455",
- "text": " If the <a href=\"#features-minLod\"><code>minLod</code></a> feature is not enabled, <code>minLod</code> <strong class=\"purple\">must</strong> be <code>0.0</code>."
- },
- {
- "vuid": "VUID-VkImageViewMinLodCreateInfoEXT-minLod-06456",
- "text": " <code>minLod</code> <strong class=\"purple\">must</strong> be less or equal to the index of the last mipmap level accessible to the view."
- },
- {
- "vuid": "VUID-VkImageViewMinLodCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT</code>"
- }
- ]
- },
- "vkCreateAccelerationStructureNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-vkCreateAccelerationStructureNV-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateAccelerationStructureNV-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureCreateInfoNV\">VkAccelerationStructureCreateInfoNV</a> structure"
- },
- {
- "vuid": "VUID-vkCreateAccelerationStructureNV-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"
- },
- {
- "vuid": "VUID-vkCreateAccelerationStructureNV-pAccelerationStructure-parameter",
- "text": " <code>pAccelerationStructure</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
- }
- ]
- },
- "VkAccelerationStructureCreateInfoNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421",
- "text": " If <code>compactedSize</code> is not <code>0</code> then both <code>info.geometryCount</code> and <code>info.instanceCount</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoNV-info-parameter",
- "text": " <code>info</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a> structure"
- }
- ]
- },
- "VkAccelerationStructureInfoNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-geometryCount-02422",
- "text": " <code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxGeometryCount</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-instanceCount-02423",
- "text": " <code>instanceCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxInstanceCount</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-maxTriangleCount-02424",
- "text": " The total number of triangles in all geometries <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxTriangleCount</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-type-02425",
- "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV</code> then <code>geometryCount</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-type-02426",
- "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV</code> then <code>instanceCount</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-type-02786",
- "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV</code> then the <code>geometryType</code> member of each geometry in <code>pGeometries</code> <strong class=\"purple\">must</strong> be the same"
- },
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-flags-02592",
- "text": " If <code>flags</code> has the <code>VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV</code> bit set, then it <strong class=\"purple\">must</strong> not have the <code>VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV</code> bit set"
- },
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-scratch-02781",
- "text": " <code>scratch</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_RAY_TRACING_BIT_NV</code> usage flag"
- },
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-instanceData-02782",
- "text": " If <code>instanceData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>instanceData</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_RAY_TRACING_BIT_NV</code> usage flag"
- },
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeNV\">VkAccelerationStructureTypeNV</a> value"
- },
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBuildAccelerationStructureFlagBitsNV\">VkBuildAccelerationStructureFlagBitsNV</a> values"
- },
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-pGeometries-parameter",
- "text": " If <code>geometryCount</code> is not <code>0</code>, <code>pGeometries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>geometryCount</code> valid <a href=\"#VkGeometryNV\">VkGeometryNV</a> structures"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkAccelerationStructureInfoNV-type-04623",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
- }
- ]
- },
- "vkCreateAccelerationStructureKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkCreateAccelerationStructureKHR-accelerationStructure-03611",
- "text": " The <a href=\"#features-accelerationStructure\"><code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCreateAccelerationStructureKHR-deviceAddress-03488",
- "text": " If <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>deviceAddress</code> is not zero, the <a href=\"#features-accelerationStructureCaptureReplay\"><code>accelerationStructureCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCreateAccelerationStructureKHR-device-03489",
- "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\">bufferDeviceAddressMultiDevice</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCreateAccelerationStructureKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateAccelerationStructureKHR-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCreateAccelerationStructureKHR-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"
- },
- {
- "vuid": "VUID-vkCreateAccelerationStructureKHR-pAccelerationStructure-parameter",
- "text": " <code>pAccelerationStructure</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
- }
- ]
- },
- "VkAccelerationStructureCreateInfoKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-03612",
- "text": " If <code>deviceAddress</code> is not zero, <code>createFlags</code> <strong class=\"purple\">must</strong> include <code>VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-03613",
- "text": " If <code>createFlags</code> includes <code>VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR</code>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>::<code>accelerationStructureCaptureReplay</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-buffer-03614",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing <code>VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-buffer-03615",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-offset-03616",
- "text": " The sum of <code>offset</code> and <code>size</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-offset-03734",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>256</code> bytes"
- },
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-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=\"#VkAccelerationStructureMotionInfoNV\">VkAccelerationStructureMotionInfoNV</a>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-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-VkAccelerationStructureCreateInfoKHR-createFlags-parameter",
- "text": " <code>createFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccelerationStructureCreateFlagBitsKHR\">VkAccelerationStructureCreateFlagBitsKHR</a> values"
- },
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeKHR\">VkAccelerationStructureTypeKHR</a> value"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-flags-04954",
- "text": " If <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code> is set in <code>flags</code> and <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, one member of the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a pointer to a valid instance of <a href=\"#VkAccelerationStructureMotionInfoNV\">VkAccelerationStructureMotionInfoNV</a>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-flags-04955",
- "text": " If any geometry includes <code>VkAccelerationStructureGeometryMotionTrianglesDataNV</code> then <code>flags</code> <strong class=\"purple\">must</strong> contain <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code>"
- }
- ]
- },
- "VkAccelerationStructureMotionInfoNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-VkAccelerationStructureMotionInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureMotionInfoNV-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkGetAccelerationStructureBuildSizesKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-rayTracingPipeline-03617",
- "text": " The <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code></a> or <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-device-03618",
- "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\">bufferDeviceAddressMultiDevice</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03619",
- "text": " If <code>pBuildInfo-&gt;geometryCount</code> is not <code>0</code>, <code>pMaxPrimitiveCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pBuildInfo-&gt;geometryCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03785",
- "text": " If <code>pBuildInfo-&gt;pGeometries</code> or <code>pBuildInfo-&gt;ppGeometries</code> has a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, each <code>pMaxPrimitiveCounts</code>[i] <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxInstanceCount</code>"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-buildType-parameter",
- "text": " <code>buildType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureBuildTypeKHR\">VkAccelerationStructureBuildTypeKHR</a> value"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-parameter",
- "text": " <code>pBuildInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pMaxPrimitiveCounts-parameter",
- "text": " If <code>pMaxPrimitiveCounts</code> is not <code>NULL</code>, <code>pMaxPrimitiveCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pBuildInfo-&gt;geometryCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pSizeInfo-parameter",
- "text": " <code>pSizeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure"
- }
- ]
- },
- "VkAccelerationStructureBuildSizesInfoKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkAccelerationStructureBuildSizesInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildSizesInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkGeometryNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkGeometryNV-geometryType-03503",
- "text": " <code>geometryType</code> <strong class=\"purple\">must</strong> be <code>VK_GEOMETRY_TYPE_TRIANGLES_NV</code> or <code>VK_GEOMETRY_TYPE_AABBS_NV</code>"
- },
- {
- "vuid": "VUID-VkGeometryNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_NV</code>"
- },
- {
- "vuid": "VUID-VkGeometryNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkGeometryNV-geometryType-parameter",
- "text": " <code>geometryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryTypeKHR\">VkGeometryTypeKHR</a> value"
- },
- {
- "vuid": "VUID-VkGeometryNV-geometry-parameter",
- "text": " <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryDataNV\">VkGeometryDataNV</a> structure"
- },
- {
- "vuid": "VUID-VkGeometryNV-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryFlagBitsKHR\">VkGeometryFlagBitsKHR</a> values"
- }
- ]
- },
- "VkGeometryDataNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkGeometryDataNV-triangles-parameter",
- "text": " <code>triangles</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryTrianglesNV\">VkGeometryTrianglesNV</a> structure"
- },
- {
- "vuid": "VUID-VkGeometryDataNV-aabbs-parameter",
- "text": " <code>aabbs</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryAABBNV\">VkGeometryAABBNV</a> structure"
- }
- ]
- },
- "VkGeometryTrianglesNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkGeometryTrianglesNV-vertexOffset-02428",
- "text": " <code>vertexOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>vertexData</code>"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-vertexOffset-02429",
- "text": " <code>vertexOffset</code> <strong class=\"purple\">must</strong> be a multiple of the component size of <code>vertexFormat</code>"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-vertexFormat-02430",
- "text": " <code>vertexFormat</code> <strong class=\"purple\">must</strong> be one of <code>VK_FORMAT_R32G32B32_SFLOAT</code>, <code>VK_FORMAT_R32G32_SFLOAT</code>, <code>VK_FORMAT_R16G16B16_SFLOAT</code>, <code>VK_FORMAT_R16G16_SFLOAT</code>, <code>VK_FORMAT_R16G16_SNORM</code>, or <code>VK_FORMAT_R16G16B16_SNORM</code>"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-vertexStride-03818",
- "text": " <code>vertexStride</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>32</sup>-1</span>"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-indexOffset-02431",
- "text": " <code>indexOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>indexData</code>"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-indexOffset-02432",
- "text": " <code>indexOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of <code>indexType</code>"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-indexType-02433",
- "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be <code>VK_INDEX_TYPE_UINT16</code>, <code>VK_INDEX_TYPE_UINT32</code>, or <code>VK_INDEX_TYPE_NONE_NV</code>"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-indexData-02434",
- "text": " <code>indexData</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> if <code>indexType</code> is <code>VK_INDEX_TYPE_NONE_NV</code>"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-indexData-02435",
- "text": " <code>indexData</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle if <code>indexType</code> is not <code>VK_INDEX_TYPE_NONE_NV</code>"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-indexCount-02436",
- "text": " <code>indexCount</code> <strong class=\"purple\">must</strong> be <code>0</code> if <code>indexType</code> is <code>VK_INDEX_TYPE_NONE_NV</code>"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-transformOffset-02437",
- "text": " <code>transformOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>transformData</code>"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-transformOffset-02438",
- "text": " <code>transformOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>16</code>"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV</code>"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-vertexData-parameter",
- "text": " If <code>vertexData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>vertexData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-vertexFormat-parameter",
- "text": " <code>vertexFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-indexData-parameter",
- "text": " If <code>indexData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>indexData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-indexType-parameter",
- "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-transformData-parameter",
- "text": " If <code>transformData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>transformData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkGeometryTrianglesNV-commonparent",
- "text": " Each of <code>indexData</code>, <code>transformData</code>, and <code>vertexData</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>"
- }
- ]
- },
- "VkGeometryAABBNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkGeometryAABBNV-offset-02439",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>aabbData</code>"
- },
- {
- "vuid": "VUID-VkGeometryAABBNV-offset-02440",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>8</code>"
- },
- {
- "vuid": "VUID-VkGeometryAABBNV-stride-02441",
- "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>8</code>"
- },
- {
- "vuid": "VUID-VkGeometryAABBNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV</code>"
- },
- {
- "vuid": "VUID-VkGeometryAABBNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkGeometryAABBNV-aabbData-parameter",
- "text": " If <code>aabbData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>aabbData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- }
- ]
- },
- "vkDestroyAccelerationStructureKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02442",
- "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"
- },
- {
- "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parameter",
- "text": " If <code>accelerationStructure</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyAccelerationStructureKHR-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"
- },
- {
- "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>"
- }
- ]
- },
- "vkDestroyAccelerationStructureNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03752",
- "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"
- },
- {
- "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parameter",
- "text": " If <code>accelerationStructure</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyAccelerationStructureNV-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"
- },
- {
- "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>"
- }
- ]
- },
- "vkGetAccelerationStructureMemoryRequirementsNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a> structure"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-pMemoryRequirements-parameter",
- "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2KHR\">VkMemoryRequirements2KHR</a> structure"
- }
- ]
- },
- "VkAccelerationStructureMemoryRequirementsInfoNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureMemoryRequirementsTypeNV\">VkAccelerationStructureMemoryRequirementsTypeNV</a> value"
- },
- {
- "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-accelerationStructure-parameter",
- "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
- }
- ]
- },
- "vkBindAccelerationStructureMemoryNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-vkBindAccelerationStructureMemoryNV-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkBindAccelerationStructureMemoryNV-pBindInfos-parameter",
- "text": " <code>pBindInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <a href=\"#VkBindAccelerationStructureMemoryInfoNV\">VkBindAccelerationStructureMemoryInfoNV</a> structures"
- },
- {
- "vuid": "VUID-vkBindAccelerationStructureMemoryNV-bindInfoCount-arraylength",
- "text": " <code>bindInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkBindAccelerationStructureMemoryInfoNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-03620",
- "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> not already be backed by a memory object"
- },
- {
- "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03621",
- "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>"
- },
- {
- "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memory-03622",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <code>accelerationStructure</code> and <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV</code>"
- },
- {
- "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03623",
- "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <code>accelerationStructure</code> and <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV</code>"
- },
- {
- "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-size-03624",
- "text": " The <code>size</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <code>accelerationStructure</code> and <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>"
- },
- {
- "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-parameter",
- "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
- },
- {
- "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-pDeviceIndices-parameter",
- "text": " If <code>deviceIndexCount</code> is not <code>0</code>, <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>deviceIndexCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-commonparent",
- "text": " Both of <code>accelerationStructure</code>, and <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "vkGetAccelerationStructureHandleNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-vkGetAccelerationStructureHandleNV-dataSize-02240",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be large enough to contain the result of the query, as described above"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-02787",
- "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object via <a href=\"#vkBindAccelerationStructureMemoryNV\">vkBindAccelerationStructureMemoryNV</a>"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureHandleNV-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parameter",
- "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureHandleNV-pData-parameter",
- "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureHandleNV-dataSize-arraylength",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parent",
- "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkGetAccelerationStructureDeviceAddressKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504",
- "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\">bufferDeviceAddressMultiDevice</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureDeviceAddressInfoKHR\">VkAccelerationStructureDeviceAddressInfoKHR</a> structure"
- }
- ]
- },
- "VkAccelerationStructureDeviceAddressInfoKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-accelerationStructure-parameter",
- "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
- }
- ]
- },
- "vkGetBufferMemoryRequirements": {
- "core": [
- {
- "vuid": "VUID-vkGetBufferMemoryRequirements-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetBufferMemoryRequirements-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkGetBufferMemoryRequirements-pMemoryRequirements-parameter",
- "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure"
- },
- {
- "vuid": "VUID-vkGetBufferMemoryRequirements-buffer-parent",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkGetImageMemoryRequirements": {
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkGetImageMemoryRequirements-image-01588",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> not have been created with the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> flag set"
- }
- ],
- "(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-vkGetImageMemoryRequirements-image-04004",
- "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"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkGetImageMemoryRequirements-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetImageMemoryRequirements-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkGetImageMemoryRequirements-pMemoryRequirements-parameter",
- "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure"
- },
- {
- "vuid": "VUID-vkGetImageMemoryRequirements-image-parent",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkGetBufferMemoryRequirements2": {
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
- {
- "vuid": "VUID-vkGetBufferMemoryRequirements2-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetBufferMemoryRequirements2-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferMemoryRequirementsInfo2\">VkBufferMemoryRequirementsInfo2</a> structure"
- },
- {
- "vuid": "VUID-vkGetBufferMemoryRequirements2-pMemoryRequirements-parameter",
- "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure"
- }
- ]
- },
- "vkGetDeviceBufferMemoryRequirements": {
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkGetDeviceBufferMemoryRequirements-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceBufferMemoryRequirements-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceBufferMemoryRequirements\">VkDeviceBufferMemoryRequirements</a> structure"
- },
- {
- "vuid": "VUID-vkGetDeviceBufferMemoryRequirements-pMemoryRequirements-parameter",
- "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure"
- }
- ]
- },
- "VkBufferMemoryRequirementsInfo2": {
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
- {
- "vuid": "VUID-VkBufferMemoryRequirementsInfo2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryRequirementsInfo2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkBufferMemoryRequirementsInfo2-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- }
- ]
- },
- "VkDeviceBufferMemoryRequirements": {
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-VkDeviceBufferMemoryRequirements-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS</code>"
- },
- {
- "vuid": "VUID-VkDeviceBufferMemoryRequirements-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDeviceBufferMemoryRequirements-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a> structure"
- }
- ]
- },
- "vkGetImageMemoryRequirements2": {
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
- {
- "vuid": "VUID-vkGetImageMemoryRequirements2-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetImageMemoryRequirements2-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure"
- },
- {
- "vuid": "VUID-vkGetImageMemoryRequirements2-pMemoryRequirements-parameter",
- "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure"
- }
- ]
- },
- "vkGetDeviceImageMemoryRequirements": {
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkGetDeviceImageMemoryRequirements-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceImageMemoryRequirements-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceImageMemoryRequirements\">VkDeviceImageMemoryRequirements</a> structure"
- },
- {
- "vuid": "VUID-vkGetDeviceImageMemoryRequirements-pMemoryRequirements-parameter",
- "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure"
- }
- ]
- },
- "VkImageMemoryRequirementsInfo2": {
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01589",
- "text": " If <code>image</code> was created with a <em>multi-planar</em> format and the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> flag, there <strong class=\"purple\">must</strong> be a <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a> included in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure"
- },
- {
- "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01590",
- "text": " If <code>image</code> was not created with the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> flag, there <strong class=\"purple\">must</strong> not be a <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a> included in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-02279",
- "text": " If <code>image</code> was created with <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> and with <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then there <strong class=\"purple\">must</strong> be a <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a> included in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure"
- },
- {
- "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-02280",
- "text": " If <code>image</code> was created with a single-plane format and with any <code>tiling</code> other than <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then there <strong class=\"purple\">must</strong> not be a <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a> included in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01591",
- "text": " If <code>image</code> was created with a single-plane format, there <strong class=\"purple\">must</strong> not be a <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a> included in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01897",
- "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"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
- {
- "vuid": "VUID-VkImageMemoryRequirementsInfo2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2</code>"
- },
- {
- "vuid": "VUID-VkImageMemoryRequirementsInfo2-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=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a>"
- },
- {
- "vuid": "VUID-VkImageMemoryRequirementsInfo2-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-VkImageMemoryRequirementsInfo2-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- }
- ]
- },
- "VkDeviceImageMemoryRequirements": {
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06416",
- "text": " The <code>pCreateInfo</code>::<code>pNext</code> chain <strong class=\"purple\">must</strong> not contain a <a href=\"#VkImageSwapchainCreateInfoKHR\">VkImageSwapchainCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06417",
- "text": " If <code>pCreateInfo</code>::<code>format</code> specifies a <em>multi-planar</em> format and <code>pCreateInfo</code>::<code>flags</code> has <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> set then <code>planeAspect</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_NONE_KHR</code>"
- },
- {
- "vuid": "VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06419",
- "text": " If <code>pCreateInfo</code>::<code>flags</code> has <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> set and if the <code>pCreateInfo</code>::<code>tiling</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>format plane</em> for the image (that is, for a two-plane image <code>planeAspect</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, and for a three-plane image <code>planeAspect</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>)"
- },
- {
- "vuid": "VUID-VkDeviceImageMemoryRequirements-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS</code>"
- },
- {
- "vuid": "VUID-VkDeviceImageMemoryRequirements-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDeviceImageMemoryRequirements-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkDeviceImageMemoryRequirements-planeAspect-parameter",
- "text": " <code>planeAspect</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> value"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06420",
- "text": " If <code>pCreateInfo</code>::<code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>memory plane</em> for the image (that is, <code>aspectMask</code> <strong class=\"purple\">must</strong> specify a plane index that is 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>)"
- }
- ]
- },
- "VkImagePlaneMemoryRequirementsInfo": {
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02281",
- "text": " If the image&#8217;s <code>tiling</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>format plane</em> for the image (that is, for a two-plane image <code>planeAspect</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, and for a three-plane image <code>planeAspect</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>)"
- },
- {
- "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO</code>"
- },
- {
- "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-parameter",
- "text": " <code>planeAspect</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> value"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02282",
- "text": " If the image&#8217;s <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>memory plane</em> for the image (that is, <code>aspectMask</code> <strong class=\"purple\">must</strong> specify a plane index that is 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>)"
- }
- ]
- },
- "VkMemoryRequirements2": {
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
- {
- "vuid": "VUID-VkMemoryRequirements2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2</code>"
- },
- {
- "vuid": "VUID-VkMemoryRequirements2-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=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>"
- },
- {
- "vuid": "VUID-VkMemoryRequirements2-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
- }
- ]
- },
- "VkMemoryDedicatedRequirements": {
- "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
- {
- "vuid": "VUID-VkMemoryDedicatedRequirements-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS</code>"
- }
- ]
- },
- "vkBindBufferMemory": {
- "core": [
- {
- "vuid": "VUID-vkBindBufferMemory-buffer-01029",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> not already be backed by a memory object"
- },
- {
- "vuid": "VUID-vkBindBufferMemory-buffer-01030",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> not have been created with any sparse memory binding flags"
- },
- {
- "vuid": "VUID-vkBindBufferMemory-memoryOffset-01031",
- "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>"
- },
- {
- "vuid": "VUID-vkBindBufferMemory-memory-01035",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkBindBufferMemory-memoryOffset-01036",
- "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkBindBufferMemory-size-01037",
- "text": " The <code>size</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>"
- },
- {
- "vuid": "VUID-vkBindBufferMemory-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkBindBufferMemory-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkBindBufferMemory-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-vkBindBufferMemory-buffer-parent",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- },
- {
- "vuid": "VUID-vkBindBufferMemory-memory-parent",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
- {
- "vuid": "VUID-vkBindBufferMemory-buffer-01444",
- "text": " If <code>buffer</code> requires a dedicated allocation (as reported by <a href=\"#vkGetBufferMemoryRequirements2\">vkGetBufferMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>buffer</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> equal to <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkBindBufferMemory-memory-01508",
- "text": " If the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>buffer</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code>, and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkBindBufferMemory-None-01898",
- "text": " If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit set, the buffer <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
- },
- {
- "vuid": "VUID-vkBindBufferMemory-None-01899",
- "text": " If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit not set, the buffer <strong class=\"purple\">must</strong> not be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
- }
- ],
- "(VK_NV_dedicated_allocation)": [
- {
- "vuid": "VUID-vkBindBufferMemory-buffer-01038",
- "text": " If <code>buffer</code> was created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>buffer</code> equal to a buffer handle created with identical creation parameters to <code>buffer</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
- }
- ],
- "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
- {
- "vuid": "VUID-vkBindBufferMemory-buffer-01039",
- "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_external_memory)": [
- {
- "vuid": "VUID-vkBindBufferMemory-memory-02726",
- "text": " If the value of <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> used to allocate <code>memory</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> include at least one of the handles set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-vkBindBufferMemory-memory-02727",
- "text": " If <code>memory</code> was allocated by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-vkBindBufferMemory-memory-02985",
- "text": " If <code>memory</code> was allocated by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
- },
- {
- "vuid": "VUID-vkBindBufferMemory-memory-02986",
- "text": " If <code>memory</code> was allocated with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
- {
- "vuid": "VUID-vkBindBufferMemory-bufferDeviceAddress-03339",
- "text": " If the <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>::<code>bufferDeviceAddress</code> feature is enabled and <code>buffer</code> was created with the <code>VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code> bit set"
- }
- ],
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-vkBindBufferMemory-buffer-06408",
- "text": " If <code>buffer</code> was created with <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> chained to <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>pNext</code>, <code>memory</code> <strong class=\"purple\">must</strong> be allocated with a <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a> chained to <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a>::<code>pNext</code>"
- }
- ]
- },
- "vkBindBufferMemory2": {
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [
- {
- "vuid": "VUID-vkBindBufferMemory2-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkBindBufferMemory2-pBindInfos-parameter",
- "text": " <code>pBindInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <a href=\"#VkBindBufferMemoryInfo\">VkBindBufferMemoryInfo</a> structures"
- },
- {
- "vuid": "VUID-vkBindBufferMemory2-bindInfoCount-arraylength",
- "text": " <code>bindInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkBindBufferMemoryInfo": {
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01029",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> not already be backed by a memory object"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01030",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> not have been created with any sparse memory binding flags"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-memoryOffset-01031",
- "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-memory-01035",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code>"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-memoryOffset-01036",
- "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code>"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-size-01037",
- "text": " The <code>size</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetBufferMemoryRequirements</code> with <code>buffer</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO</code>"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-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=\"#VkBindBufferMemoryDeviceGroupInfo\">VkBindBufferMemoryDeviceGroupInfo</a>"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-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-VkBindBufferMemoryInfo-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-commonparent",
- "text": " Both of <code>buffer</code>, and <code>memory</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_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01444",
- "text": " If <code>buffer</code> requires a dedicated allocation (as reported by <a href=\"#vkGetBufferMemoryRequirements2\">vkGetBufferMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>buffer</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> equal to <code>buffer</code>"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-memory-01508",
- "text": " If the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>buffer</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>buffer</code>, and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-None-01898",
- "text": " If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit set, the buffer <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-None-01899",
- "text": " If <code>buffer</code> was created with the <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> bit not set, the buffer <strong class=\"purple\">must</strong> not be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)": [
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01038",
- "text": " If <code>buffer</code> was created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>buffer</code> equal to a buffer handle created with identical creation parameters to <code>buffer</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01039",
- "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_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-memory-02726",
- "text": " If the value of <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> used to allocate <code>memory</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> include at least one of the handles set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-memory-02727",
- "text": " If <code>memory</code> was allocated by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-memory-02985",
- "text": " If <code>memory</code> was allocated by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-memory-02986",
- "text": " If <code>memory</code> was allocated with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> when <code>buffer</code> was created"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-bufferDeviceAddress-03339",
- "text": " If the <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>::<code>bufferDeviceAddress</code> feature is enabled and <code>buffer</code> was created with the <code>VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT</code> bit set, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated with the <code>VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT</code> bit set"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-buffer-06408",
- "text": " If <code>buffer</code> was created with <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> chained to <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a>::<code>pNext</code>, <code>memory</code> <strong class=\"purple\">must</strong> be allocated with a <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a> chained to <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a>::<code>pNext</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkBindBufferMemoryInfo-pNext-01605",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindBufferMemoryDeviceGroupInfo\">VkBindBufferMemoryDeviceGroupInfo</a> structure, all instances of <code>memory</code> specified by <a href=\"#VkBindBufferMemoryDeviceGroupInfo\">VkBindBufferMemoryDeviceGroupInfo</a>::<code>pDeviceIndices</code> <strong class=\"purple\">must</strong> have been allocated"
- }
- ]
- },
- "VkBindBufferMemoryDeviceGroupInfo": {
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-deviceIndexCount-01606",
- "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-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-01607",
- "text": " All elements of <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be valid device indices"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO</code>"
- },
- {
- "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-parameter",
- "text": " If <code>deviceIndexCount</code> is not <code>0</code>, <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>deviceIndexCount</code> <code>uint32_t</code> values"
- }
- ]
- },
- "vkBindImageMemory": {
- "core": [
- {
- "vuid": "VUID-vkBindImageMemory-image-01044",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> not already be backed by a memory object"
- },
- {
- "vuid": "VUID-vkBindImageMemory-image-01045",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> not have been created with any sparse memory binding flags"
- },
- {
- "vuid": "VUID-vkBindImageMemory-memoryOffset-01046",
- "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>"
- },
- {
- "vuid": "VUID-vkBindImageMemory-memory-01047",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with <code>image</code>"
- },
- {
- "vuid": "VUID-vkBindImageMemory-memoryOffset-01048",
- "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with <code>image</code>"
- },
- {
- "vuid": "VUID-vkBindImageMemory-size-01049",
- "text": " The difference of the size of <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with the same <code>image</code>"
- },
- {
- "vuid": "VUID-vkBindImageMemory-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkBindImageMemory-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkBindImageMemory-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-vkBindImageMemory-image-parent",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- },
- {
- "vuid": "VUID-vkBindImageMemory-memory-parent",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
- {
- "vuid": "VUID-vkBindImageMemory-image-01445",
- "text": " If <code>image</code> requires a dedicated allocation (as reported by <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>image</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> equal to <code>image</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_NV_dedicated_allocation_image_aliasing)": [
- {
- "vuid": "VUID-vkBindImageMemory-memory-01509",
- "text": " If the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>image</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)": [
- {
- "vuid": "VUID-vkBindImageMemory-memory-02628",
- "text": " If the <a href=\"#features-dedicatedAllocationImageAliasing\">dedicated allocation image aliasing</a> feature is not enabled, and the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>image</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
- },
- {
- "vuid": "VUID-vkBindImageMemory-memory-02629",
- "text": " If the <a href=\"#features-dedicatedAllocationImageAliasing\">dedicated allocation image aliasing</a> feature is enabled, and the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero, and <code>image</code> <strong class=\"purple\">must</strong> be either equal to <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> or an image that was created using the same parameters in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, with the exception that <code>extent</code> and <code>arrayLayers</code> <strong class=\"purple\">may</strong> differ subject to the following restrictions: every dimension in the <code>extent</code> parameter of the image being bound <strong class=\"purple\">must</strong> be equal to or smaller than the original image for which the allocation was created; and the <code>arrayLayers</code> parameter of the image being bound <strong class=\"purple\">must</strong> be equal to or smaller than the original image for which the allocation was created"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkBindImageMemory-None-01901",
- "text": " If image was created with the <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> bit set, the image <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
- },
- {
- "vuid": "VUID-vkBindImageMemory-None-01902",
- "text": " If image was created with the <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> bit not set, the image <strong class=\"purple\">must</strong> not be bound to a memory object created with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
- }
- ],
- "(VK_NV_dedicated_allocation)": [
- {
- "vuid": "VUID-vkBindImageMemory-image-01050",
- "text": " If <code>image</code> was created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>image</code> equal to an image handle created with identical creation parameters to <code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
- }
- ],
- "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
- {
- "vuid": "VUID-vkBindImageMemory-image-01051",
- "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_external_memory)": [
- {
- "vuid": "VUID-vkBindImageMemory-memory-02728",
- "text": " If the value of <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> used to allocate <code>memory</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> include at least one of the handles set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-vkBindImageMemory-memory-02729",
- "text": " If <code>memory</code> was created by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-vkBindImageMemory-memory-02989",
- "text": " If <code>memory</code> was created by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
- },
- {
- "vuid": "VUID-vkBindImageMemory-memory-02990",
- "text": " If <code>memory</code> was created with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkBindImageMemory-image-01608",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> not have been created with the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> set"
- }
- ],
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-vkBindImageMemory-image-06392",
- "text": " If <code>image</code> was created with <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> chained to <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>pNext</code>, <code>memory</code> <strong class=\"purple\">must</strong> be allocated with a <a href=\"#VkImportMemoryBufferCollectionFUCHSIA\">VkImportMemoryBufferCollectionFUCHSIA</a> chained to <a href=\"#VkMemoryAllocateInfo\">VkMemoryAllocateInfo</a>::<code>pNext</code>"
- }
- ]
- },
- "vkBindImageMemory2": {
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkBindImageMemory2-pBindInfos-02858",
- "text": " If any <a href=\"#VkBindImageMemoryInfo\">VkBindImageMemoryInfo</a>::<code>image</code> was created with <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> then all planes of <a href=\"#VkBindImageMemoryInfo\">VkBindImageMemoryInfo</a>::<code>image</code> <strong class=\"purple\">must</strong> be bound individually in separate <code>pBindInfos</code>"
- },
- {
- "vuid": "VUID-vkBindImageMemory2-pBindInfos-04006",
- "text": " <code>pBindInfos</code> <strong class=\"purple\">must</strong> not refer to the same image subresource more than once"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [
- {
- "vuid": "VUID-vkBindImageMemory2-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkBindImageMemory2-pBindInfos-parameter",
- "text": " <code>pBindInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <a href=\"#VkBindImageMemoryInfo\">VkBindImageMemoryInfo</a> structures"
- },
- {
- "vuid": "VUID-vkBindImageMemory2-bindInfoCount-arraylength",
- "text": " <code>bindInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkBindImageMemoryInfo": {
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [
- {
- "vuid": "VUID-VkBindImageMemoryInfo-image-01044",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> not already be backed by a memory object"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-image-01045",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> not have been created with any sparse memory binding flags"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-memoryOffset-01046",
- "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO</code>"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-pNext-pNext",
- "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=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>, <a href=\"#VkBindImageMemorySwapchainInfoKHR\">VkBindImageMemorySwapchainInfoKHR</a>, or <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a>"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-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-VkBindImageMemoryInfo-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-commonparent",
- "text": " Both of <code>image</code>, and <code>memory</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_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
- {
- "vuid": "VUID-VkBindImageMemoryInfo-image-01445",
- "text": " If <code>image</code> requires a dedicated allocation (as reported by <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> in <a href=\"#VkMemoryDedicatedRequirements\">VkMemoryDedicatedRequirements</a>::<code>requiresDedicatedAllocation</code> for <code>image</code>), <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> equal to <code>image</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_NV_dedicated_allocation_image_aliasing)": [
- {
- "vuid": "VUID-VkBindImageMemoryInfo-memory-01509",
- "text": " If the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>image</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)": [
- {
- "vuid": "VUID-VkBindImageMemoryInfo-memory-02628",
- "text": " If the <a href=\"#features-dedicatedAllocationImageAliasing\">dedicated allocation image aliasing</a> feature is not enabled, and the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>image</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-memory-02629",
- "text": " If the <a href=\"#features-dedicatedAllocationImageAliasing\">dedicated allocation image aliasing</a> feature is enabled, and the <code>VkMemoryAllocateInfo</code> provided when <code>memory</code> was allocated included a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> structure in its <code>pNext</code> chain, and <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero, and <code>image</code> <strong class=\"purple\">must</strong> be either equal to <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a>::<code>image</code> or an image that was created using the same parameters in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>, with the exception that <code>extent</code> and <code>arrayLayers</code> <strong class=\"purple\">may</strong> differ subject to the following restrictions: every dimension in the <code>extent</code> parameter of the image being bound <strong class=\"purple\">must</strong> be equal to or smaller than the original image for which the allocation was created; and the <code>arrayLayers</code> parameter of the image being bound <strong class=\"purple\">must</strong> be equal to or smaller than the original image for which the allocation was created"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkBindImageMemoryInfo-None-01901",
- "text": " If image was created with the <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> bit set, the image <strong class=\"purple\">must</strong> be bound to a memory object allocated with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-None-01902",
- "text": " If image was created with the <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> bit not set, the image <strong class=\"purple\">must</strong> not be bound to a memory object created with a memory type that reports <code>VK_MEMORY_PROPERTY_PROTECTED_BIT</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)": [
- {
- "vuid": "VUID-VkBindImageMemoryInfo-image-01050",
- "text": " If <code>image</code> was created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkDedicatedAllocationMemoryAllocateInfoNV\">VkDedicatedAllocationMemoryAllocateInfoNV</a>::<code>image</code> equal to an image handle created with identical creation parameters to <code>image</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be zero"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
- {
- "vuid": "VUID-VkBindImageMemoryInfo-image-01051",
- "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_VERSION_1_1,VK_KHR_external_memory)": [
- {
- "vuid": "VUID-VkBindImageMemoryInfo-memory-02728",
- "text": " If the value of <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> used to allocate <code>memory</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> include at least one of the handles set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkBindImageMemoryInfo-memory-02729",
- "text": " If <code>memory</code> was created by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkBindImageMemoryInfo-memory-02989",
- "text": " If <code>memory</code> was created by a memory import operation, that is not <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> with a non-<code>NULL</code> <code>buffer</code> value, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-memory-02990",
- "text": " If <code>memory</code> was created with the <a href=\"#VkImportAndroidHardwareBufferInfoANDROID\">VkImportAndroidHardwareBufferInfoANDROID</a> memory import operation with a non-<code>NULL</code> <code>buffer</code> value, <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkBindImageMemoryInfo-memory-01612",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with <code>image</code>"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-memoryOffset-01613",
- "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with <code>image</code>"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-memory-01614",
- "text": " The difference of the size of <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements\">vkGetImageMemoryRequirements</a> with the same <code>image</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkBindImageMemoryInfo-pNext-01615",
- "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with <code>image</code>"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-pNext-01616",
- "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with <code>image</code>"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-pNext-01617",
- "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, the difference of the size of <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with the same <code>image</code>"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-pNext-01618",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>image</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_DISJOINT_BIT</code> bit set"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-pNext-01619",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with <code>image</code> and where <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a>::<code>planeAspect</code> corresponds to the <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a>::<code>planeAspect</code> in the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure&#8217;s <code>pNext</code> chain"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-pNext-01620",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with <code>image</code> and where <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a>::<code>planeAspect</code> corresponds to the <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a>::<code>planeAspect</code> in the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure&#8217;s <code>pNext</code> chain"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-pNext-01621",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a> structure, the difference of the size of <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetImageMemoryRequirements2\">vkGetImageMemoryRequirements2</a> with the same <code>image</code> and where <a href=\"#VkBindImagePlaneMemoryInfo\">VkBindImagePlaneMemoryInfo</a>::<code>planeAspect</code> corresponds to the <a href=\"#VkImagePlaneMemoryRequirementsInfo\">VkImagePlaneMemoryRequirementsInfo</a>::<code>planeAspect</code> in the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure&#8217;s <code>pNext</code> chain"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+!(VK_VERSION_1_1+VK_KHR_swapchain)+!(VK_KHR_device_group+VK_KHR_swapchain)": [
- {
- "vuid": "VUID-VkBindImageMemoryInfo-memory-01625",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "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"
- },
- {
- "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"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-pNext-01628",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a> structure, all elements of <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>::<code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> be valid rectangles contained within the dimensions of <code>image</code>"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-pNext-01629",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a> structure, the union of the areas of all elements of <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>::<code>pSplitInstanceBindRegions</code> that correspond to the same instance of <code>image</code> <strong class=\"purple\">must</strong> cover the entire image"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [
- {
- "vuid": "VUID-VkBindImageMemoryInfo-image-01630",
- "text": " If <code>image</code> was created with a valid swapchain handle in <a href=\"#VkImageSwapchainCreateInfoKHR\">VkImageSwapchainCreateInfoKHR</a>::<code>swapchain</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkBindImageMemorySwapchainInfoKHR\">VkBindImageMemorySwapchainInfoKHR</a> structure containing the same swapchain handle"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-pNext-01631",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemorySwapchainInfoKHR\">VkBindImageMemorySwapchainInfoKHR</a> structure, <code>memory</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkBindImageMemoryInfo-pNext-01632",
- "text": " If the <code>pNext</code> chain does not include a <a href=\"#VkBindImageMemorySwapchainInfoKHR\">VkBindImageMemorySwapchainInfoKHR</a> structure, <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- }
- ]
- },
- "VkBindImageMemoryDeviceGroupInfo": {
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "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"
- },
- {
- "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-01637",
- "text": " Elements of <code>pSplitInstanceBindRegions</code> that correspond to the same instance of an image <strong class=\"purple\">must</strong> not overlap"
- },
- {
- "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-offset-01638",
- "text": " The <code>offset.x</code> member of any element of <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block width (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.width</code>) of all non-metadata aspects of the image"
- },
- {
- "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-offset-01639",
- "text": " The <code>offset.y</code> member of any element of <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block height (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.height</code>) of all non-metadata aspects of the image"
- },
- {
- "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-extent-01640",
- "text": " The <code>extent.width</code> member of any element of <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else <code>extent.width</code> &#43; <code>offset.x</code> <strong class=\"purple\">must</strong> equal the width of the image subresource"
- },
- {
- "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"
- },
- {
- "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO</code>"
- },
- {
- "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-parameter",
- "text": " If <code>deviceIndexCount</code> is not <code>0</code>, <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>deviceIndexCount</code> <code>uint32_t</code> values"
- },
- {
- "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"
- }
- ]
- },
- "VkBindImageMemorySwapchainInfoKHR": {
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [
- {
- "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-imageIndex-01644",
- "text": " <code>imageIndex</code> <strong class=\"purple\">must</strong> be less than the number of images in <code>swapchain</code>"
- },
- {
- "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-parameter",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- }
- ]
- },
- "VkBindImagePlaneMemoryInfo": {
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-02283",
- "text": " If the image&#8217;s <code>tiling</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>format plane</em> for the image (that is, for a two-plane image <code>planeAspect</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, and for a three-plane image <code>planeAspect</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>)"
- },
- {
- "vuid": "VUID-VkBindImagePlaneMemoryInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO</code>"
- },
- {
- "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-parameter",
- "text": " <code>planeAspect</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> value"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-02284",
- "text": " If the image&#8217;s <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid <em>memory plane</em> for the image (that is, <code>aspectMask</code> <strong class=\"purple\">must</strong> specify a plane index that is 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>)"
- }
- ]
- },
- "vkCreateBufferCollectionFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-vkCreateBufferCollectionFUCHSIA-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateBufferCollectionFUCHSIA-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferCollectionCreateInfoFUCHSIA\">VkBufferCollectionCreateInfoFUCHSIA</a> structure"
- },
- {
- "vuid": "VUID-vkCreateBufferCollectionFUCHSIA-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"
- },
- {
- "vuid": "VUID-vkCreateBufferCollectionFUCHSIA-pCollection-parameter",
- "text": " <code>pCollection</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
- }
- ]
- },
- "VkBufferCollectionCreateInfoFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-VkBufferCollectionCreateInfoFUCHSIA-collectionToken-06393",
- "text": " <code>collectionToken</code> <strong class=\"purple\">must</strong> be a valid <code>zx_handle_t</code> to a Zircon channel allocated from Sysmem (<code>fuchsia.sysmem.Allocator</code>/AllocateSharedCollection) with <code>ZX_DEFAULT_CHANNEL_RIGHTS</code> rights"
- },
- {
- "vuid": "VUID-VkBufferCollectionCreateInfoFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkBufferCollectionCreateInfoFUCHSIA-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkSetBufferCollectionImageConstraintsFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-06394",
- "text": " <code>vkSetBufferCollectionImageConstraintsFUCHSIA</code> or <code>vkSetBufferCollectionBufferConstraintsFUCHSIA</code> <strong class=\"purple\">must</strong> not have already been called on <code>collection</code>"
- },
- {
- "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-parameter",
- "text": " <code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
- },
- {
- "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-pImageConstraintsInfo-parameter",
- "text": " <code>pImageConstraintsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageConstraintsInfoFUCHSIA\">VkImageConstraintsInfoFUCHSIA</a> structure"
- },
- {
- "vuid": "VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-parent",
- "text": " <code>collection</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "VkImageConstraintsInfoFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06395",
- "text": " All elements of <code>pFormatConstraints</code> <strong class=\"purple\">must</strong> have at least one bit set in its <a href=\"#VkImageFormatConstraintsInfoFUCHSIA\">VkImageFormatConstraintsInfoFUCHSIA</a>::<code>requiredFormatFeatures</code>"
- },
- {
- "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06396",
- "text": " If <code>pFormatConstraints</code>::<code>imageCreateInfo</code>::<code>usage</code> contains <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, then <code>pFormatConstraints</code>::<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06397",
- "text": " If <code>pFormatConstraints</code>::<code>imageCreateInfo</code>::<code>usage</code> contains <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, then <code>pFormatConstraints</code>::<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06398",
- "text": " If <code>pFormatConstraints</code>::<code>imageCreateInfo</code>::<code>usage</code> contains <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, then <code>pFormatConstraints</code>::<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06399",
- "text": " If <code>pFormatConstraints</code>::<code>imageCreateInfo</code>::<code>usage</code> contains <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, then <code>pFormatConstraints</code>::<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06400",
- "text": " If <code>pFormatConstraints</code>::<code>imageCreateInfo</code>::<code>usage</code> contains <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, then <code>pFormatConstraints</code>::<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain at least one of <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-parameter",
- "text": " <code>pFormatConstraints</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>formatConstraintsCount</code> valid <a href=\"#VkImageFormatConstraintsInfoFUCHSIA\">VkImageFormatConstraintsInfoFUCHSIA</a> structures"
- },
- {
- "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-bufferCollectionConstraints-parameter",
- "text": " <code>bufferCollectionConstraints</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionConstraintsInfoFUCHSIA\">VkBufferCollectionConstraintsInfoFUCHSIA</a> structure"
- },
- {
- "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageConstraintsInfoFlagBitsFUCHSIA\">VkImageConstraintsInfoFlagBitsFUCHSIA</a> values"
- },
- {
- "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-formatConstraintsCount-arraylength",
- "text": " <code>formatConstraintsCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_FUCHSIA_buffer_collection)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-VkImageConstraintsInfoFUCHSIA-attachmentFragmentShadingRate-06401",
- "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code> feature</a> is enabled, and <code>pFormatConstraints</code>::<code>imageCreateInfo</code>::<code>usage</code> contains <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>, then <code>pFormatConstraints</code>::<code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ]
- },
- "VkImageFormatConstraintsInfoFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-imageCreateInfo-parameter",
- "text": " <code>imageCreateInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-parameter",
- "text": " <code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFormatFeatureFlagBits\">VkFormatFeatureFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-requiredbitmask",
- "text": " <code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-pColorSpaces-parameter",
- "text": " <code>pColorSpaces</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>colorSpaceCount</code> valid <a href=\"#VkSysmemColorSpaceFUCHSIA\">VkSysmemColorSpaceFUCHSIA</a> structures"
- },
- {
- "vuid": "VUID-VkImageFormatConstraintsInfoFUCHSIA-colorSpaceCount-arraylength",
- "text": " <code>colorSpaceCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkBufferCollectionConstraintsInfoFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-VkBufferCollectionConstraintsInfoFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkBufferCollectionConstraintsInfoFUCHSIA-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkSysmemColorSpaceFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-VkSysmemColorSpaceFUCHSIA-colorSpace-06402",
- "text": " <code>colorSpace</code> <strong class=\"purple\">must</strong> be a <code>ColorSpaceType</code> as defined in <code>fuchsia.sysmem/image_formats.fidl</code>"
- },
- {
- "vuid": "VUID-VkSysmemColorSpaceFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkSysmemColorSpaceFUCHSIA-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkSetBufferCollectionBufferConstraintsFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-06403",
- "text": " <code>vkSetBufferCollectionImageConstraintsFUCHSIA</code> or <code>vkSetBufferCollectionBufferConstraintsFUCHSIA</code> <strong class=\"purple\">must</strong> not have already been called on <code>collection</code>"
- },
- {
- "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-parameter",
- "text": " <code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
- },
- {
- "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-pBufferConstraintsInfo-parameter",
- "text": " <code>pBufferConstraintsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferConstraintsInfoFUCHSIA\">VkBufferConstraintsInfoFUCHSIA</a> structure"
- },
- {
- "vuid": "VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-parent",
- "text": " <code>collection</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "VkBufferConstraintsInfoFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-06404",
- "text": " The <code>requiredFormatFeatures</code> bitmask of <code>VkFormatFeatureFlagBits</code> <strong class=\"purple\">must</strong> be chosen from among the buffer compatible format features listed in <a href=\"#buffer-compatible-format-features\">buffer compatible format features</a>"
- },
- {
- "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-createInfo-parameter",
- "text": " <code>createInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-parameter",
- "text": " <code>requiredFormatFeatures</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFormatFeatureFlagBits\">VkFormatFeatureFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkBufferConstraintsInfoFUCHSIA-bufferCollectionConstraints-parameter",
- "text": " <code>bufferCollectionConstraints</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionConstraintsInfoFUCHSIA\">VkBufferCollectionConstraintsInfoFUCHSIA</a> structure"
- }
- ]
- },
- "vkGetBufferCollectionPropertiesFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-None-06405",
- "text": " Prior to calling <a href=\"#vkGetBufferCollectionPropertiesFUCHSIA\">vkGetBufferCollectionPropertiesFUCHSIA</a>, the constraints on the buffer collection <strong class=\"purple\">must</strong> have been set by either <a href=\"#vkSetBufferCollectionImageConstraintsFUCHSIA\">vkSetBufferCollectionImageConstraintsFUCHSIA</a> or <a href=\"#vkSetBufferCollectionBufferConstraintsFUCHSIA\">vkSetBufferCollectionBufferConstraintsFUCHSIA</a>."
- },
- {
- "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-collection-parameter",
- "text": " <code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
- },
- {
- "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-pProperties-parameter",
- "text": " <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a> structure"
- },
- {
- "vuid": "VUID-vkGetBufferCollectionPropertiesFUCHSIA-collection-parent",
- "text": " <code>collection</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "VkBufferCollectionPropertiesFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-formatFeatures-parameter",
- "text": " <code>formatFeatures</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkFormatFeatureFlagBits\">VkFormatFeatureFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-formatFeatures-requiredbitmask",
- "text": " <code>formatFeatures</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-sysmemColorSpaceIndex-parameter",
- "text": " <code>sysmemColorSpaceIndex</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSysmemColorSpaceFUCHSIA\">VkSysmemColorSpaceFUCHSIA</a> structure"
- },
- {
- "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-samplerYcbcrConversionComponents-parameter",
- "text": " <code>samplerYcbcrConversionComponents</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentMapping\">VkComponentMapping</a> structure"
- },
- {
- "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYcbcrModel-parameter",
- "text": " <code>suggestedYcbcrModel</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrModelConversion\">VkSamplerYcbcrModelConversion</a> value"
- },
- {
- "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYcbcrRange-parameter",
- "text": " <code>suggestedYcbcrRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrRange\">VkSamplerYcbcrRange</a> value"
- },
- {
- "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedXChromaOffset-parameter",
- "text": " <code>suggestedXChromaOffset</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkChromaLocation\">VkChromaLocation</a> value"
- },
- {
- "vuid": "VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYChromaOffset-parameter",
- "text": " <code>suggestedYChromaOffset</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkChromaLocation\">VkChromaLocation</a> value"
- }
- ]
- },
- "VkImportMemoryBufferCollectionFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-VkImportMemoryBufferCollectionFUCHSIA-index-06406",
- "text": " <code>index</code> <strong class=\"purple\">must</strong> be less than the value retrieved as <a href=\"#VkBufferCollectionPropertiesFUCHSIA\">VkBufferCollectionPropertiesFUCHSIA</a>:bufferCount"
- },
- {
- "vuid": "VUID-VkImportMemoryBufferCollectionFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkImportMemoryBufferCollectionFUCHSIA-collection-parameter",
- "text": " <code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
- }
- ]
- },
- "vkDestroyBufferCollectionFUCHSIA": {
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-collection-06407",
- "text": " <a href=\"#VkImage\">VkImage</a> and <a href=\"#VkBuffer\">VkBuffer</a> objects that referenced <code>collection</code> upon creation by inclusion of a <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> or <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> chained to their <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> or <a href=\"#VkBufferCreateInfo\">VkBufferCreateInfo</a> structures respectively, <strong class=\"purple\">may</strong> outlive <code>collection</code>."
- },
- {
- "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-collection-parameter",
- "text": " <code>collection</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-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"
- },
- {
- "vuid": "VUID-vkDestroyBufferCollectionFUCHSIA-collection-parent",
- "text": " <code>collection</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCreateSampler": {
- "core": [
- {
- "vuid": "VUID-vkCreateSampler-maxSamplerAllocationCount-04110",
- "text": " There <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxSamplerAllocationCount</code> <a href=\"#VkSampler\">VkSampler</a> objects currently created on the device"
- },
- {
- "vuid": "VUID-vkCreateSampler-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateSampler-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSamplerCreateInfo\">VkSamplerCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateSampler-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"
- },
- {
- "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"
- }
- ]
- },
- "VkSamplerCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkSamplerCreateInfo-mipLodBias-01069",
- "text": " The absolute value of <code>mipLodBias</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxSamplerLodBias</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-maxLod-01973",
- "text": " <code>maxLod</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>minLod</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-anisotropyEnable-01070",
- "text": " If the <a href=\"#features-samplerAnisotropy\">anisotropic sampling</a> feature is not enabled, <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-anisotropyEnable-01071",
- "text": " If <code>anisotropyEnable</code> is <code>VK_TRUE</code>, <code>maxAnisotropy</code> <strong class=\"purple\">must</strong> be between <code>1.0</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxSamplerAnisotropy</code>, inclusive"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01072",
- "text": " If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>minFilter</code> and <code>magFilter</code> <strong class=\"purple\">must</strong> be equal"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01073",
- "text": " If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>mipmapMode</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_MIPMAP_MODE_NEAREST</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01074",
- "text": " If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>minLod</code> and <code>maxLod</code> <strong class=\"purple\">must</strong> be zero"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01075",
- "text": " If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>addressModeU</code> and <code>addressModeV</code> <strong class=\"purple\">must</strong> each be either <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code> or <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01076",
- "text": " If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01077",
- "text": " If <code>unnormalizedCoordinates</code> is <code>VK_TRUE</code>, <code>compareEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01078",
- "text": " If any of <code>addressModeU</code>, <code>addressModeV</code> or <code>addressModeW</code> are <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER</code>, <code>borderColor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBorderColor\">VkBorderColor</a> value"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01079",
- "text": " If <a href=\"#features-samplerMirrorClampToEdge\">samplerMirrorClampToEdge</a> is not enabled, and if the <code><a href=\"#VK_KHR_sampler_mirror_clamp_to_edge\">VK_KHR_sampler_mirror_clamp_to_edge</a></code> extension is not enabled, <code>addressModeU</code>, <code>addressModeV</code> and <code>addressModeW</code> <strong class=\"purple\">must</strong> not be <code>VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-compareEnable-01080",
- "text": " If <code>compareEnable</code> is <code>VK_TRUE</code>, <code>compareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-pNext-pNext",
- "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=\"#VkSamplerBorderColorComponentMappingCreateInfoEXT\">VkSamplerBorderColorComponentMappingCreateInfoEXT</a>, <a href=\"#VkSamplerCustomBorderColorCreateInfoEXT\">VkSamplerCustomBorderColorCreateInfoEXT</a>, <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>, or <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-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-VkSamplerCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSamplerCreateFlagBits\">VkSamplerCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-magFilter-parameter",
- "text": " <code>magFilter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-minFilter-parameter",
- "text": " <code>minFilter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-mipmapMode-parameter",
- "text": " <code>mipmapMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerMipmapMode\">VkSamplerMipmapMode</a> value"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-addressModeU-parameter",
- "text": " <code>addressModeU</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> value"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-addressModeV-parameter",
- "text": " <code>addressModeV</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> value"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-addressModeW-parameter",
- "text": " <code>addressModeW</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> value"
- }
- ],
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-VkSamplerCreateInfo-samplerMipLodBias-04467",
- "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>samplerMipLodBias</code> is <code>VK_FALSE</code>, <code>mipLodBias</code> <strong class=\"purple\">must</strong> be zero"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkSamplerCreateInfo-minFilter-01645",
- "text": " If <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a> is enabled and the <a href=\"#potential-format-features\">potential format features</a> of the sampler {YCbCr} conversion do not support <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT</code>, <code>minFilter</code> and <code>magFilter</code> <strong class=\"purple\">must</strong> be equal to the sampler {YCbCr} conversion&#8217;s <code>chromaFilter</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01646",
- "text": " If <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a> is enabled, <code>addressModeU</code>, <code>addressModeV</code>, and <code>addressModeW</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>, <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>, and <code>unnormalizedCoordinates</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [
- {
- "vuid": "VUID-VkSamplerCreateInfo-None-01647",
- "text": " The sampler reduction mode <strong class=\"purple\">must</strong> be set to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code> if <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a> is enabled"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-VkSamplerCreateInfo-magFilter-01081",
- "text": " If either <code>magFilter</code> or <code>minFilter</code> is <code>VK_FILTER_CUBIC_EXT</code>, <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- }
- ],
- "(VK_IMG_filter_cubic+VK_EXT_sampler_filter_minmax)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-VkSamplerCreateInfo-magFilter-01422",
- "text": " If either <code>magFilter</code> or <code>minFilter</code> is <code>VK_FILTER_CUBIC_EXT</code>, the <code>reductionMode</code> member of <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [
- {
- "vuid": "VUID-VkSamplerCreateInfo-compareEnable-01423",
- "text": " If <code>compareEnable</code> is <code>VK_TRUE</code>, the <code>reductionMode</code> member of <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkSamplerCreateInfo-flags-02574",
- "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>minFilter</code> and <code>magFilter</code> <strong class=\"purple\">must</strong> be equal"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-flags-02575",
- "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>mipmapMode</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLER_MIPMAP_MODE_NEAREST</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-flags-02576",
- "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>minLod</code> and <code>maxLod</code> <strong class=\"purple\">must</strong> be zero"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-flags-02577",
- "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>addressModeU</code> and <code>addressModeV</code> <strong class=\"purple\">must</strong> each be either <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code> or <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-flags-02578",
- "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-flags-02579",
- "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>compareEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-flags-02580",
- "text": " If <code>flags</code> includes <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code>, then <code>unnormalizedCoordinates</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- }
- ],
- "(VK_EXT_custom_border_color)": [
- {
- "vuid": "VUID-VkSamplerCreateInfo-borderColor-04011",
- "text": " If <code>borderColor</code> is one of <code>VK_BORDER_COLOR_FLOAT_CUSTOM_EXT</code> or <code>VK_BORDER_COLOR_INT_CUSTOM_EXT</code>, then a <a href=\"#VkSamplerCustomBorderColorCreateInfoEXT\">VkSamplerCustomBorderColorCreateInfoEXT</a> <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-customBorderColors-04085",
- "text": " If the <a href=\"#features-customBorderColors\"><code>customBorderColors</code></a> feature is not enabled, <code>borderColor</code> <strong class=\"purple\">must</strong> not be <code>VK_BORDER_COLOR_FLOAT_CUSTOM_EXT</code> or <code>VK_BORDER_COLOR_INT_CUSTOM_EXT</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-borderColor-04442",
- "text": " If <code>borderColor</code> is one of <code>VK_BORDER_COLOR_FLOAT_CUSTOM_EXT</code> or <code>VK_BORDER_COLOR_INT_CUSTOM_EXT</code>, and <a href=\"#VkSamplerCustomBorderColorCreateInfoEXT\">VkSamplerCustomBorderColorCreateInfoEXT</a>::<code>format</code> is not <code>VK_FORMAT_UNDEFINED</code>, <a href=\"#VkSamplerCustomBorderColorCreateInfoEXT\">VkSamplerCustomBorderColorCreateInfoEXT</a>::<code>customBorderColor</code> <strong class=\"purple\">must</strong> be within the range of values representable in <code>format</code>"
- },
- {
- "vuid": "VUID-VkSamplerCreateInfo-None-04012",
- "text": " The maximum number of samplers with custom border colors which <strong class=\"purple\">can</strong> be simultaneously created on a device is implementation-dependent and specified by the <a href=\"#limits-maxCustomBorderColorSamplers\">maxCustomBorderColorSamplers</a> member of the <a href=\"#VkPhysicalDeviceCustomBorderColorPropertiesEXT\">VkPhysicalDeviceCustomBorderColorPropertiesEXT</a> structure"
- }
- ]
- },
- "VkSamplerReductionModeCreateInfo": {
- "(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [
- {
- "vuid": "VUID-VkSamplerReductionModeCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkSamplerReductionModeCreateInfo-reductionMode-parameter",
- "text": " <code>reductionMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerReductionMode\">VkSamplerReductionMode</a> value"
- }
- ]
- },
- "vkDestroySampler": {
- "core": [
- {
- "vuid": "VUID-vkDestroySampler-sampler-01082",
- "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"
- },
- {
- "vuid": "VUID-vkDestroySampler-sampler-parameter",
- "text": " If <code>sampler</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sampler</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampler\">VkSampler</a> handle"
- },
- {
- "vuid": "VUID-vkDestroySampler-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"
- },
- {
- "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>"
- }
- ]
- },
- "VkSamplerYcbcrConversionInfo": {
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkSamplerYcbcrConversionInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO</code>"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionInfo-conversion-parameter",
- "text": " <code>conversion</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrConversion\">VkSamplerYcbcrConversion</a> handle"
- }
- ]
- },
- "vkCreateSamplerYcbcrConversion": {
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCreateSamplerYcbcrConversion-None-01648",
- "text": " The <a href=\"#features-samplerYcbcrConversion\">sampler {YCbCr} conversion feature</a> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCreateSamplerYcbcrConversion-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateSamplerYcbcrConversion-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSamplerYcbcrConversionCreateInfo\">VkSamplerYcbcrConversionCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateSamplerYcbcrConversion-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"
- },
- {
- "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"
- }
- ]
- },
- "VkSamplerYcbcrConversionCreateInfo": {
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-04060",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> represent unsigned normalized values (i.e. the format must be a <code>UNORM</code> format)"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01904",
- "text": " If an external format conversion is being created, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-04061",
- "text": " If an external format conversion is not being created, <code>format</code> <strong class=\"purple\">must</strong> represent unsigned normalized values (i.e. the format must be a <code>UNORM</code> format)"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01650",
- "text": " The <a href=\"#potential-format-features\">potential format features</a> of the sampler {YCbCr} conversion <strong class=\"purple\">must</strong> support <code>VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT</code> or <code>VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT</code>"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01651",
- "text": " If the <a href=\"#potential-format-features\">potential format features</a> of the sampler {YCbCr} conversion do not support <code>VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT</code>, <code>xChromaOffset</code> and <code>yChromaOffset</code> <strong class=\"purple\">must</strong> not be <code>VK_CHROMA_LOCATION_COSITED_EVEN</code> if the corresponding components are <a href=\"#textures-chroma-reconstruction\">downsampled</a>"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01652",
- "text": " If the <a href=\"#potential-format-features\">potential format features</a> of the sampler {YCbCr} conversion do not support <code>VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT</code>, <code>xChromaOffset</code> and <code>yChromaOffset</code> <strong class=\"purple\">must</strong> not be <code>VK_CHROMA_LOCATION_MIDPOINT</code> if the corresponding components are <a href=\"#textures-chroma-reconstruction\">downsampled</a>"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02581",
- "text": " If the format has a <code>_422</code> or <code>_420</code> suffix, then <code>components.g</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02582",
- "text": " If the format has a <code>_422</code> or <code>_420</code> suffix, then <code>components.a</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>, <code>VK_COMPONENT_SWIZZLE_ONE</code>, or <code>VK_COMPONENT_SWIZZLE_ZERO</code>"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02583",
- "text": " If the format has a <code>_422</code> or <code>_420</code> suffix, then <code>components.r</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a> or <code>VK_COMPONENT_SWIZZLE_B</code>"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02584",
- "text": " If the format has a <code>_422</code> or <code>_420</code> suffix, then <code>components.b</code> <strong class=\"purple\">must</strong> be the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a> or <code>VK_COMPONENT_SWIZZLE_R</code>"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02585",
- "text": " If the format has a <code>_422</code> or <code>_420</code> suffix, and if either <code>components.r</code> or <code>components.b</code> is the <a href=\"#resources-image-views-identity-mappings\">identity swizzle</a>, both values <strong class=\"purple\">must</strong> be the identity swizzle"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-01655",
- "text": " If <code>ycbcrModel</code> is not <code>VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY</code>, then <code>components.r</code>, <code>components.g</code>, and <code>components.b</code> <strong class=\"purple\">must</strong> correspond to components of the <code>format</code>; that is, <code>components.r</code>, <code>components.g</code>, and <code>components.b</code> <strong class=\"purple\">must</strong> not be <code>VK_COMPONENT_SWIZZLE_ZERO</code> or <code>VK_COMPONENT_SWIZZLE_ONE</code>, and <strong class=\"purple\">must</strong> not correspond to a component containing zero or one as a consequence of <a href=\"#textures-conversion-to-rgba\">conversion to RGBA</a>"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-02748",
- "text": " If <code>ycbcrRange</code> is <code>VK_SAMPLER_YCBCR_RANGE_ITU_NARROW</code> then the R, G and B components obtained by applying the <code>component</code> swizzle to <code>format</code> <strong class=\"purple\">must</strong> each have a bit-depth greater than or equal to 8"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656",
- "text": " If the <a href=\"#potential-format-features\">potential format features</a> of the sampler {YCbCr} conversion do not support <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT</code> <code>forceExplicitReconstruction</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-01657",
- "text": " If the <a href=\"#potential-format-features\">potential format features</a> of the sampler {YCbCr} conversion do not support <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT</code>, <code>chromaFilter</code> <strong class=\"purple\">must</strong> not be <code>VK_FILTER_LINEAR</code>"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-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=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-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-VkSamplerYcbcrConversionCreateInfo-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-parameter",
- "text": " <code>ycbcrModel</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrModelConversion\">VkSamplerYcbcrModelConversion</a> value"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-parameter",
- "text": " <code>ycbcrRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrRange\">VkSamplerYcbcrRange</a> value"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-parameter",
- "text": " <code>components</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentMapping\">VkComponentMapping</a> structure"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-parameter",
- "text": " <code>xChromaOffset</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkChromaLocation\">VkChromaLocation</a> value"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-yChromaOffset-parameter",
- "text": " <code>yChromaOffset</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkChromaLocation\">VkChromaLocation</a> value"
- },
- {
- "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-parameter",
- "text": " <code>chromaFilter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value"
- }
- ]
- },
- "vkDestroySamplerYcbcrConversion": {
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkDestroySamplerYcbcrConversion-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parameter",
- "text": " If <code>ycbcrConversion</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>ycbcrConversion</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSamplerYcbcrConversion\">VkSamplerYcbcrConversion</a> handle"
- },
- {
- "vuid": "VUID-vkDestroySamplerYcbcrConversion-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"
- },
- {
- "vuid": "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parent",
- "text": " If <code>ycbcrConversion</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "VkSamplerCustomBorderColorCreateInfoEXT": {
- "(VK_EXT_custom_border_color)": [
- {
- "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04013",
- "text": " If provided <code>format</code> is not <code>VK_FORMAT_UNDEFINED</code> then the <a href=\"#VkSamplerCreateInfo\">VkSamplerCreateInfo</a>::<code>borderColor</code> type <strong class=\"purple\">must</strong> match the sampled type of the provided <code>format</code>, as shown in the <em>SPIR-V Sampled Type</em> column of the <a href=\"#formats-numericformat\">Interpretation of Numeric Format</a> table"
- },
- {
- "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04014",
- "text": " If the <a href=\"#features-customBorderColorWithoutFormat\">customBorderColorWithoutFormat</a> feature is not enabled then <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>"
- },
- {
- "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04015",
- "text": " If the sampler is used to sample an image view of <code>VK_FORMAT_B4G4R4A4_UNORM_PACK16</code>, <code>VK_FORMAT_B5G6R5_UNORM_PACK16</code>, or <code>VK_FORMAT_B5G5R5A1_UNORM_PACK16</code> format then <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>"
- },
- {
- "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- }
- ]
- },
- "VkSamplerBorderColorComponentMappingCreateInfoEXT": {
- "(VK_EXT_border_color_swizzle)": [
- {
- "vuid": "VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-borderColorSwizzle-06437",
- "text": " The <a href=\"#features-borderColorSwizzle\"><code>borderColorSwizzle</code></a> feature <strong class=\"purple\">must</strong> be enabled."
- },
- {
- "vuid": "VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-components-parameter",
- "text": " <code>components</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkComponentMapping\">VkComponentMapping</a> structure"
- }
- ]
- },
- "vkCreateDescriptorSetLayout": {
- "core": [
- {
- "vuid": "VUID-vkCreateDescriptorSetLayout-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateDescriptorSetLayout-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateDescriptorSetLayout-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"
- },
- {
- "vuid": "VUID-vkCreateDescriptorSetLayout-pSetLayout-parameter",
- "text": " <code>pSetLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handle"
- }
- ]
- },
- "VkDescriptorSetLayoutCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-binding-00279",
- "text": " The <a href=\"#VkDescriptorSetLayoutBinding\">VkDescriptorSetLayoutBinding</a>::<code>binding</code> members of the elements of the <code>pBindings</code> array <strong class=\"purple\">must</strong> each have different values"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNext",
- "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=\"#VkDescriptorSetLayoutBindingFlagsCreateInfo\">VkDescriptorSetLayoutBindingFlagsCreateInfo</a> or <a href=\"#VkMutableDescriptorTypeCreateInfoVALVE\">VkMutableDescriptorTypeCreateInfoVALVE</a>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-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-VkDescriptorSetLayoutCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDescriptorSetLayoutCreateFlagBits\">VkDescriptorSetLayoutCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pBindings-parameter",
- "text": " If <code>bindingCount</code> is not <code>0</code>, <code>pBindings</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid <a href=\"#VkDescriptorSetLayoutBinding\">VkDescriptorSetLayoutBinding</a> structures"
- }
- ],
- "(VK_KHR_push_descriptor)": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-00280",
- "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, then all elements of <code>pBindings</code> <strong class=\"purple\">must</strong> not have a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-00281",
- "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, then the total number of elements of all bindings <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>::<code>maxPushDescriptors</code>"
- }
- ],
- "(VK_KHR_push_descriptor)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-02208",
- "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, then all elements of <code>pBindings</code> <strong class=\"purple\">must</strong> not have a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>"
- }
- ],
- "(VK_KHR_push_descriptor)+(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04590",
- "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04591",
- "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, <code>pBindings</code> <strong class=\"purple\">must</strong> not have a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-03000",
- "text": " If any binding has the <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code> bit set, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-03001",
- "text": " If any binding has the <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code> bit set, then all bindings <strong class=\"purple\">must</strong> not have <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04592",
- "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE</code>"
- }
- ],
- "(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04593",
- "text": " If any binding has a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>, then a <a href=\"#VkMutableDescriptorTypeCreateInfoVALVE\">VkMutableDescriptorTypeCreateInfoVALVE</a> <strong class=\"purple\">must</strong> be present in the <code>pNext</code> chain"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04594",
- "text": " If a binding has a <code>descriptorType</code> value of <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>, then <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-mutableDescriptorType-04595",
- "text": " If <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE\">VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE</a>::<code>mutableDescriptorType</code> is not enabled, <code>pBindings</code> <strong class=\"purple\">must</strong> not contain a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04596",
- "text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE</code>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE\">VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE</a>::<code>mutableDescriptorType</code> <strong class=\"purple\">must</strong> be enabled"
- }
- ]
- },
- "VkMutableDescriptorTypeCreateInfoVALVE": {
- "(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkMutableDescriptorTypeCreateInfoVALVE-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE</code>"
- },
- {
- "vuid": "VUID-VkMutableDescriptorTypeCreateInfoVALVE-pMutableDescriptorTypeLists-parameter",
- "text": " If <code>mutableDescriptorTypeListCount</code> is not <code>0</code>, <code>pMutableDescriptorTypeLists</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>mutableDescriptorTypeListCount</code> valid <a href=\"#VkMutableDescriptorTypeListVALVE\">VkMutableDescriptorTypeListVALVE</a> structures"
- }
- ]
- },
- "VkMutableDescriptorTypeListVALVE": {
- "(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkMutableDescriptorTypeListVALVE-descriptorTypeCount-04597",
- "text": " <code>descriptorTypeCount</code> <strong class=\"purple\">must</strong> not be <code>0</code> if the corresponding binding is of <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>"
- },
- {
- "vuid": "VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04598",
- "text": " <code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorTypeCount</code> valid, unique <a href=\"#VkDescriptorType\">VkDescriptorType</a> values if the given binding is of <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code> type"
- },
- {
- "vuid": "VUID-VkMutableDescriptorTypeListVALVE-descriptorTypeCount-04599",
- "text": " <code>descriptorTypeCount</code> <strong class=\"purple\">must</strong> be <code>0</code> if the corresponding binding is not of <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>"
- },
- {
- "vuid": "VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04600",
- "text": " <code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>"
- },
- {
- "vuid": "VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04601",
- "text": " <code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>"
- },
- {
- "vuid": "VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04602",
- "text": " <code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>"
- },
- {
- "vuid": "VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-parameter",
- "text": " If <code>descriptorTypeCount</code> is not <code>0</code>, <code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorTypeCount</code> valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> values"
- }
- ],
- "(VK_VALVE_mutable_descriptor_type)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
- {
- "vuid": "VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04603",
- "text": " <code>pDescriptorTypes</code> <strong class=\"purple\">must</strong> not contain <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>"
- }
- ]
- },
- "VkDescriptorSetLayoutBinding": {
- "core": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-00282",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and <code>descriptorCount</code> is not <code>0</code> and <code>pImmutableSamplers</code> is not <code>NULL</code>, <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorCount</code> valid <code>VkSampler</code> handles"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283",
- "text": " If <code>descriptorCount</code> is not <code>0</code>, <code>stageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-01510",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> and <code>descriptorCount</code> is not <code>0</code>, then <code>stageFlags</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-parameter",
- "text": " <code>descriptorType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-04604",
- "text": " If the <a href=\"#features-inlineUniformBlock\">inlineUniformBlock</a> feature is not enabled, <code>descriptorType</code> <strong class=\"purple\">must</strong> not be <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-02209",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-02210",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxInlineUniformBlockSize</code>"
- }
- ],
- "(VK_EXT_custom_border_color)": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutBinding-pImmutableSamplers-04009",
- "text": " The sampler objects indicated by <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> not have a <code>borderColor</code> with one of the values <code>VK_BORDER_COLOR_FLOAT_CUSTOM_EXT</code> or <code>VK_BORDER_COLOR_INT_CUSTOM_EXT</code>"
- }
- ],
- "(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-04605",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>, then <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkDescriptorSetLayoutBindingFlagsCreateInfo": {
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-bindingCount-03002",
- "text": " If <code>bindingCount</code> is not zero, <code>bindingCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>bindingCount</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03004",
- "text": " If an element of <code>pBindingFlags</code> includes <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code>, then all other elements of <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>pBindings</code> <strong class=\"purple\">must</strong> have a smaller value of <code>binding</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformBufferUpdateAfterBind-03005",
- "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingUniformBufferUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingSampledImageUpdateAfterBind-03006",
- "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingSampledImageUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, or <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageImageUpdateAfterBind-03007",
- "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingStorageImageUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageBufferUpdateAfterBind-03008",
- "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingStorageBufferUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformTexelBufferUpdateAfterBind-03009",
- "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingUniformTexelBufferUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageTexelBufferUpdateAfterBind-03010",
- "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingStorageTexelBufferUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-None-03011",
- "text": " All bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUpdateUnusedWhilePending-03012",
- "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingUpdateUnusedWhilePending</code> is not enabled, all elements of <code>pBindingFlags</code> <strong class=\"purple\">must</strong> not include <code>VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingPartiallyBound-03013",
- "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingPartiallyBound</code> is not enabled, all elements of <code>pBindingFlags</code> <strong class=\"purple\">must</strong> not include <code>VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingVariableDescriptorCount-03014",
- "text": " If <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>::<code>descriptorBindingVariableDescriptorCount</code> is not enabled, all elements of <code>pBindingFlags</code> <strong class=\"purple\">must</strong> not include <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03015",
- "text": " If an element of <code>pBindingFlags</code> includes <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code>, that element&#8217;s <code>descriptorType</code> <strong class=\"purple\">must</strong> not be <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-parameter",
- "text": " If <code>bindingCount</code> is not <code>0</code>, <code>pBindingFlags</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid combinations of <a href=\"#VkDescriptorBindingFlagBits\">VkDescriptorBindingFlagBits</a> values"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_KHR_push_descriptor)": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-flags-03003",
- "text": " If <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a>::<code>flags</code> includes <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>, then all elements of <code>pBindingFlags</code> <strong class=\"purple\">must</strong> not include <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>, <code>VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT</code>, or <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingInlineUniformBlockUpdateAfterBind-02211",
- "text": " If <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>::<code>descriptorBindingInlineUniformBlockUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingAccelerationStructureUpdateAfterBind-03570",
- "text": " If <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>::<code>descriptorBindingAccelerationStructureUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> or <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code>"
- }
- ]
- },
- "vkGetDescriptorSetLayoutSupport": {
- "(VK_VERSION_1_1,VK_KHR_maintenance3)": [
- {
- "vuid": "VUID-vkGetDescriptorSetLayoutSupport-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDescriptorSetLayoutSupport-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorSetLayoutCreateInfo\">VkDescriptorSetLayoutCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkGetDescriptorSetLayoutSupport-pSupport-parameter",
- "text": " <code>pSupport</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDescriptorSetLayoutSupport\">VkDescriptorSetLayoutSupport</a> structure"
- }
- ]
- },
- "VkDescriptorSetLayoutSupport": {
- "(VK_VERSION_1_1,VK_KHR_maintenance3)": [
- {
- "vuid": "VUID-VkDescriptorSetLayoutSupport-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutSupport-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=\"#VkDescriptorSetVariableDescriptorCountLayoutSupport\">VkDescriptorSetVariableDescriptorCountLayoutSupport</a>"
- },
- {
- "vuid": "VUID-VkDescriptorSetLayoutSupport-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
- }
- ]
- },
- "VkDescriptorSetVariableDescriptorCountLayoutSupport": {
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
- {
- "vuid": "VUID-VkDescriptorSetVariableDescriptorCountLayoutSupport-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT</code>"
- }
- ]
- },
- "vkDestroyDescriptorSetLayout": {
- "core": [
- {
- "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"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-vkDestroyDescriptorSetLayout-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parameter",
- "text": " If <code>descriptorSetLayout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>descriptorSetLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyDescriptorSetLayout-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"
- },
- {
- "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parent",
- "text": " If <code>descriptorSetLayout</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCreatePipelineLayout": {
- "core": [
- {
- "vuid": "VUID-vkCreatePipelineLayout-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreatePipelineLayout-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreatePipelineLayout-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"
- },
- {
- "vuid": "VUID-vkCreatePipelineLayout-pPipelineLayout-parameter",
- "text": " <code>pPipelineLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
- }
- ]
- },
- "VkPipelineLayoutCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-setLayoutCount-00286",
- "text": " <code>setLayoutCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxBoundDescriptorSets</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-00292",
- "text": " Any two elements of <code>pPushConstantRanges</code> <strong class=\"purple\">must</strong> not include the same stage in <code>stageFlags</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-parameter",
- "text": " If <code>setLayoutCount</code> is not <code>0</code>, <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>setLayoutCount</code> valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handles"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-parameter",
- "text": " If <code>pushConstantRangeCount</code> is not <code>0</code>, <code>pPushConstantRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pushConstantRangeCount</code> valid <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> structures"
- }
- ],
- "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00287",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible to any shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorSamplers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00288",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible to any shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorUniformBuffers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00289",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible to any shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorStorageBuffers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00290",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible to any shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorSampledImages</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00291",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible to any shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorStorageImages</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01676",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorInputAttachments</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01677",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetSamplers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01678",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetUniformBuffers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01679",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetUniformBuffersDynamic</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01680",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageBuffers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01681",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageBuffersDynamic</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01682",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetSampledImages</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01683",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageImages</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01684",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetInputAttachments</code>"
- }
- ],
- "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02212",
- "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxPerStageDescriptorInlineUniformBlocks</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02213",
- "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxDescriptorSetInlineUniformBlocks</code>"
- }
- ],
- "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-06531",
- "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceVulkan13Properties</code>::<code>maxInlineUniformTotalSize</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03016",
- "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorSamplers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03017",
- "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorUniformBuffers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03018",
- "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorStorageBuffers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03019",
- "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorSampledImages</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03020",
- "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorStorageImages</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03021",
- "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageDescriptorInputAttachments</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03022",
- "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindSamplers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03023",
- "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindUniformBuffers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03024",
- "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> and <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindStorageBuffers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03025",
- "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindSampledImages</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03026",
- "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindStorageImages</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03027",
- "text": " The total number of descriptors with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindInputAttachments</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03028",
- "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetSamplers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03029",
- "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetUniformBuffers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03030",
- "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetUniformBuffersDynamic</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03031",
- "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageBuffers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03032",
- "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageBuffersDynamic</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03033",
- "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetSampledImages</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03034",
- "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetStorageImages</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03035",
- "text": " The total number of descriptors in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDescriptorSetInputAttachments</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03036",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> and <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindSamplers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03037",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindUniformBuffers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03038",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindUniformBuffersDynamic</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03039",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindStorageBuffers</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03040",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindStorageBuffersDynamic</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03041",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindSampledImages</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03042",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, and <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindStorageImages</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03043",
- "text": " The total number of descriptors of the type <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDescriptorIndexingProperties</code>::<code>maxDescriptorSetUpdateAfterBindInputAttachments</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02214",
- "text": " The total number of bindings in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxPerStageDescriptorInlineUniformBlocks</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02215",
- "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02216",
- "text": " The total number of bindings in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxDescriptorSetInlineUniformBlocks</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02217",
- "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockProperties</code>::<code>maxDescriptorSetUpdateAfterBindInlineUniformBlocks</code>"
- }
- ],
- "(VK_KHR_push_descriptor)": [
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00293",
- "text": " <code>pSetLayouts</code> <strong class=\"purple\">must</strong> not contain more than one descriptor set layout that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code> set"
- }
- ],
- "(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03571",
- "text": " The total number of bindings in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxPerStageDescriptorAccelerationStructures</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03572",
- "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> accessible to any given shader stage across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxPerStageDescriptorUpdateAfterBindAccelerationStructures</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03573",
- "text": " The total number of bindings in descriptor set layouts created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxDescriptorSetAccelerationStructures</code>"
- },
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03574",
- "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxDescriptorSetUpdateAfterBindAccelerationStructures</code>"
- }
- ],
- "(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02381",
- "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxDescriptorSetAccelerationStructures</code>"
- }
- ],
- "(VK_EXT_fragment_density_map2)": [
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pImmutableSamplers-03566",
- "text": " The total number of <code>pImmutableSamplers</code> created with <code>flags</code> containing <code>VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT</code> or <code>VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT</code> across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxDescriptorSetSubsampledSamplers\"><code>VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</code>::<code>maxDescriptorSetSubsampledSamplers</code></a>"
- }
- ],
- "(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-04606",
- "text": " Any element of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> not have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE</code> bit set"
- }
- ]
- },
- "VkPushConstantRange": {
- "core": [
- {
- "vuid": "VUID-VkPushConstantRange-offset-00294",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code>"
- },
- {
- "vuid": "VUID-VkPushConstantRange-offset-00295",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-VkPushConstantRange-size-00296",
- "text": " <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkPushConstantRange-size-00297",
- "text": " <code>size</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-VkPushConstantRange-size-00298",
- "text": " <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code> minus <code>offset</code>"
- },
- {
- "vuid": "VUID-VkPushConstantRange-stageFlags-parameter",
- "text": " <code>stageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkPushConstantRange-stageFlags-requiredbitmask",
- "text": " <code>stageFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ]
- },
- "vkDestroyPipelineLayout": {
- "core": [
- {
- "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"
- },
- {
- "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>"
- },
- {
- "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"
- },
- {
- "vuid": "VUID-vkDestroyPipelineLayout-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-parameter",
- "text": " If <code>pipelineLayout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyPipelineLayout-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"
- },
- {
- "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-parent",
- "text": " If <code>pipelineLayout</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCreateDescriptorPool": {
- "core": [
- {
- "vuid": "VUID-vkCreateDescriptorPool-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateDescriptorPool-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorPoolCreateInfo\">VkDescriptorPoolCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateDescriptorPool-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"
- },
- {
- "vuid": "VUID-vkCreateDescriptorPool-pDescriptorPool-parameter",
- "text": " <code>pDescriptorPool</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle"
- }
- ]
- },
- "VkDescriptorPoolCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkDescriptorPoolCreateInfo-maxSets-00301",
- "text": " <code>maxSets</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkDescriptorPoolCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkDescriptorPoolCreateInfo-pNext-pNext",
- "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=\"#VkDescriptorPoolInlineUniformBlockCreateInfo\">VkDescriptorPoolInlineUniformBlockCreateInfo</a> or <a href=\"#VkMutableDescriptorTypeCreateInfoVALVE\">VkMutableDescriptorTypeCreateInfoVALVE</a>"
- },
- {
- "vuid": "VUID-VkDescriptorPoolCreateInfo-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-VkDescriptorPoolCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDescriptorPoolCreateFlagBits\">VkDescriptorPoolCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkDescriptorPoolCreateInfo-pPoolSizes-parameter",
- "text": " <code>pPoolSizes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>poolSizeCount</code> valid <a href=\"#VkDescriptorPoolSize\">VkDescriptorPoolSize</a> structures"
- },
- {
- "vuid": "VUID-VkDescriptorPoolCreateInfo-poolSizeCount-arraylength",
- "text": " <code>poolSizeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-04607",
- "text": " If <code>flags</code> has the <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE</code> bit set, then the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> bit <strong class=\"purple\">must</strong> not be set"
- }
- ],
- "(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkDescriptorPoolCreateInfo-mutableDescriptorType-04608",
- "text": " If <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE\">VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE</a>::<code>mutableDescriptorType</code> is not enabled, <code>pPoolSizes</code> <strong class=\"purple\">must</strong> not contain a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>"
- },
- {
- "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-04609",
- "text": " If <code>flags</code> has the <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE</code> bit set, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE\">VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE</a>::<code>mutableDescriptorType</code> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkDescriptorPoolCreateInfo-pPoolSizes-04787",
- "text": " If <code>pPoolSizes</code> contains a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>, any other <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code> element in <code>pPoolSizes</code> <strong class=\"purple\">must</strong> not have sets of supported descriptor types which partially overlap"
- }
- ]
- },
- "VkDescriptorPoolInlineUniformBlockCreateInfo": {
- "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
- {
- "vuid": "VUID-VkDescriptorPoolInlineUniformBlockCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO</code>"
- }
- ]
- },
- "VkDescriptorPoolSize": {
- "core": [
- {
- "vuid": "VUID-VkDescriptorPoolSize-descriptorCount-00302",
- "text": " <code>descriptorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkDescriptorPoolSize-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
- {
- "vuid": "VUID-VkDescriptorPoolSize-type-02218",
- "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- }
- ]
- },
- "vkDestroyDescriptorPool": {
- "core": [
- {
- "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"
- },
- {
- "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00304",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>descriptorPool</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00305",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>descriptorPool</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-vkDestroyDescriptorPool-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-parameter",
- "text": " If <code>descriptorPool</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>descriptorPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyDescriptorPool-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"
- },
- {
- "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-parent",
- "text": " If <code>descriptorPool</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkAllocateDescriptorSets": {
- "core": [
- {
- "vuid": "VUID-vkAllocateDescriptorSets-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkAllocateDescriptorSets-pAllocateInfo-parameter",
- "text": " <code>pAllocateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorSetAllocateInfo\">VkDescriptorSetAllocateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkAllocateDescriptorSets-pDescriptorSets-parameter",
- "text": " <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pAllocateInfo-&gt;descriptorSetCount</code> <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handles"
- },
- {
- "vuid": "VUID-vkAllocateDescriptorSets-pAllocateInfo::descriptorSetCount-arraylength",
- "text": " <code>pAllocateInfo-&gt;descriptorSetCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkDescriptorSetAllocateInfo": {
- "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-00306",
- "text": " <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>"
- },
- {
- "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorPool-00307",
- "text": " <code>descriptorPool</code> <strong class=\"purple\">must</strong> have enough free descriptor capacity remaining to allocate the descriptor sets of the specified layouts"
- }
- ],
- "(VK_KHR_push_descriptor)": [
- {
- "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308",
- "text": " Each element of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code> set"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
- {
- "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-03044",
- "text": " If any element of <code>pSetLayouts</code> was created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> bit set, <code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set"
- }
- ],
- "(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-04610",
- "text": " If any element of <code>pSetLayouts</code> was created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE</code> bit set, <code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE</code> flag set"
- }
- ],
- "core": [
- {
- "vuid": "VUID-VkDescriptorSetAllocateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetAllocateInfo-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=\"#VkDescriptorSetVariableDescriptorCountAllocateInfo\">VkDescriptorSetVariableDescriptorCountAllocateInfo</a>"
- },
- {
- "vuid": "VUID-VkDescriptorSetAllocateInfo-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-VkDescriptorSetAllocateInfo-descriptorPool-parameter",
- "text": " <code>descriptorPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle"
- },
- {
- "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-parameter",
- "text": " <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorSetCount</code> valid <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handles"
- },
- {
- "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylength",
- "text": " <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetAllocateInfo-commonparent",
- "text": " Both of <code>descriptorPool</code>, and the elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "VkDescriptorSetVariableDescriptorCountAllocateInfo": {
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
- {
- "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-descriptorSetCount-03045",
- "text": " If <code>descriptorSetCount</code> is not zero, <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> equal <a href=\"#VkDescriptorSetAllocateInfo\">VkDescriptorSetAllocateInfo</a>::<code>descriptorSetCount</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pSetLayouts-03046",
- "text": " If <a href=\"#VkDescriptorSetAllocateInfo\">VkDescriptorSetAllocateInfo</a>::<code>pSetLayouts</code>[i] has a variable descriptor count binding, then <code>pDescriptorCounts</code>[i] <strong class=\"purple\">must</strong> be less than or equal to the descriptor count specified for that binding when the descriptor set layout was created"
- },
- {
- "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pDescriptorCounts-parameter",
- "text": " If <code>descriptorSetCount</code> is not <code>0</code>, <code>pDescriptorCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorSetCount</code> <code>uint32_t</code> values"
- }
- ]
- },
- "vkFreeDescriptorSets": {
- "core": [
- {
- "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-00309",
- "text": " All submitted commands that refer to any element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> have completed execution"
- },
- {
- "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-00310",
- "text": " <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorSetCount</code> <code>VkDescriptorSet</code> handles, each element of which <strong class=\"purple\">must</strong> either be a valid handle or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-00312",
- "text": " <code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT</code> flag"
- },
- {
- "vuid": "VUID-vkFreeDescriptorSets-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-parameter",
- "text": " <code>descriptorPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle"
- },
- {
- "vuid": "VUID-vkFreeDescriptorSets-descriptorSetCount-arraylength",
- "text": " <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-parent",
- "text": " <code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- },
- {
- "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-parent",
- "text": " Each element of <code>pDescriptorSets</code> that is a valid handle <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>descriptorPool</code>"
- }
- ]
- },
- "vkResetDescriptorPool": {
- "core": [
- {
- "vuid": "VUID-vkResetDescriptorPool-descriptorPool-00313",
- "text": " All uses of <code>descriptorPool</code> (via any allocated descriptor sets) <strong class=\"purple\">must</strong> have completed execution"
- },
- {
- "vuid": "VUID-vkResetDescriptorPool-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkResetDescriptorPool-descriptorPool-parameter",
- "text": " <code>descriptorPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorPool\">VkDescriptorPool</a> handle"
- },
- {
- "vuid": "VUID-vkResetDescriptorPool-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-vkResetDescriptorPool-descriptorPool-parent",
- "text": " <code>descriptorPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkUpdateDescriptorSets": {
- "core": [
- {
- "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06236",
- "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, elements of the <code>pTexelBufferView</code> member of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>"
- },
- {
- "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06237",
- "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, the <code>buffer</code> member of any element of the <code>pBufferInfo</code> member of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>"
- },
- {
- "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06238",
- "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and <code>dstSet</code> was not allocated with a layout that included immutable samplers for <code>dstBinding</code> with <code>descriptorType</code>, the <code>sampler</code> member of any element of the <code>pImageInfo</code> member of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>"
- },
- {
- "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06239",
- "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> the <code>imageView</code> member of any element of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>"
- },
- {
- "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06493",
- "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, <code>pDescriptorWrites</code>[i].<code>pImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDescriptorWrites</code>[i].<code>descriptorCount</code> valid <code>VkDescriptorImageInfo</code> structures"
- },
- {
- "vuid": "VUID-vkUpdateDescriptorSets-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-parameter",
- "text": " If <code>descriptorWriteCount</code> is not <code>0</code>, <code>pDescriptorWrites</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorWriteCount</code> valid <a href=\"#VkWriteDescriptorSet\">VkWriteDescriptorSet</a> structures"
- },
- {
- "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorCopies-parameter",
- "text": " If <code>descriptorCopyCount</code> is not <code>0</code>, <code>pDescriptorCopies</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorCopyCount</code> valid <a href=\"#VkCopyDescriptorSet\">VkCopyDescriptorSet</a> structures"
- }
- ],
- "(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06240",
- "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code>, elements of the <code>pAccelerationStructures</code> member of a <a href=\"#VkWriteDescriptorSetAccelerationStructureKHR\">VkWriteDescriptorSetAccelerationStructureKHR</a> structure in the <code>pNext</code> chain of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>"
- }
- ],
- "(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-06241",
- "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code>, elements of the <code>pAccelerationStructures</code> member of a <a href=\"#VkWriteDescriptorSetAccelerationStructureNV\">VkWriteDescriptorSetAccelerationStructureNV</a> structure in the <code>pNext</code> chain of <code>pDescriptorWrites</code>[i] <strong class=\"purple\">must</strong> have been created on <code>device</code>"
- }
- ],
- "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
- {
- "vuid": "VUID-vkUpdateDescriptorSets-dstSet-00314",
- "text": " The <code>dstSet</code> member of each element of <code>pDescriptorWrites</code> or <code>pDescriptorCopies</code> <strong class=\"purple\">must</strong> not be used by any command that was recorded to a command buffer which is in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
- {
- "vuid": "VUID-vkUpdateDescriptorSets-None-03047",
- "text": " Descriptor bindings updated by this command which were created without the <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT</code> or <code>VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT</code> bits set <strong class=\"purple\">must</strong> not be used by any command that was recorded to a command buffer which is in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
- }
- ]
- },
- "VkWriteDescriptorSet": {
- "core": [
- {
- "vuid": "VUID-VkWriteDescriptorSet-dstBinding-00315",
- "text": " <code>dstBinding</code> <strong class=\"purple\">must</strong> be less than or equal to the maximum value of <code>binding</code> of all <a href=\"#VkDescriptorSetLayoutBinding\">VkDescriptorSetLayoutBinding</a> structures specified when <code>dstSet</code>&#8217;s descriptor set layout was created"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-dstBinding-00316",
- "text": " <code>dstBinding</code> <strong class=\"purple\">must</strong> be a binding with a non-zero <code>descriptorCount</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-00317",
- "text": " All consecutive bindings updated via a single <code>VkWriteDescriptorSet</code> structure, except those with a <code>descriptorCount</code> of zero, <strong class=\"purple\">must</strong> have identical <code>descriptorType</code> and <code>stageFlags</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-00318",
- "text": " All consecutive bindings updated via a single <code>VkWriteDescriptorSet</code> structure, except those with a <code>descriptorCount</code> of zero, <strong class=\"purple\">must</strong> all either use immutable samplers or <strong class=\"purple\">must</strong> all not use immutable samplers"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00319",
- "text": " <code>descriptorType</code> <strong class=\"purple\">must</strong> match the type of <code>dstBinding</code> within <code>dstSet</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-dstSet-00320",
- "text": " <code>dstSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handle"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-dstArrayElement-00321",
- "text": " The sum of <code>dstArrayElement</code> and <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of array elements in the descriptor set binding specified by <code>dstBinding</code>, and all applicable consecutive bindings, as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02994",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, each element of <code>pTexelBufferView</code> <strong class=\"purple\">must</strong> be either a valid <code>VkBufferView</code> handle or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02995",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> and the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, each element of <code>pTexelBufferView</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00324",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, <code>pBufferInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorCount</code> valid <code>VkDescriptorBufferInfo</code> structures"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00325",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and <code>dstSet</code> was not allocated with a layout that included immutable samplers for <code>dstBinding</code> with <code>descriptorType</code>, the <code>sampler</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a valid <code>VkSampler</code> object"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02996",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be either a valid <code>VkImageView</code> handle or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02997",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> and the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00327",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, the <code>offset</code> member of each element of <code>pBufferInfo</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minUniformBufferOffsetAlignment</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00328",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, the <code>offset</code> member of each element of <code>pBufferInfo</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minStorageBufferOffsetAlignment</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00329",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code>, <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code>, or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, and the <code>buffer</code> member of any element of <code>pBufferInfo</code> is the handle of a non-sparse buffer, then that buffer <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00330",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, the <code>buffer</code> member of each element of <code>pBufferInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT</code> set"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00331",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, the <code>buffer</code> member of each element of <code>pBufferInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_STORAGE_BUFFER_BIT</code> set"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00332",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code>, the <code>range</code> member of each element of <code>pBufferInfo</code>, or the effective range if <code>range</code> is <code>VK_WHOLE_SIZE</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxUniformBufferRange</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00333",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>, the <code>range</code> member of each element of <code>pBufferInfo</code>, or the effective range if <code>range</code> is <code>VK_WHOLE_SIZE</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxStorageBufferRange</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00334",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER</code>, the <code>VkBuffer</code> that each element of <code>pTexelBufferView</code> was created from <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code> set"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00335",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code>, the <code>VkBuffer</code> that each element of <code>pTexelBufferView</code> was created from <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code> set"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00336",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code> or <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with the identity swizzle"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00337",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> set"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04149",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code> the <code>imageLayout</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a member of the list given in <a href=\"#descriptorsets-sampledimage\">Sampled Image</a>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04150",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> the <code>imageLayout</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a member of the list given in <a href=\"#descriptorsets-combinedimagesampler\">Combined Image Sampler</a>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04151",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> the <code>imageLayout</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a member of the list given in <a href=\"#descriptorsets-inputattachment\">Input Attachment</a>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04152",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code> the <code>imageLayout</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> be a member of the list given in <a href=\"#descriptorsets-storageimage\">Storage Image</a>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00338",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> set"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00339",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_STORAGE_BIT</code> set"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02752",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, then <code>dstSet</code> <strong class=\"purple\">must</strong> not have been allocated with a layout that included immutable samplers for <code>dstBinding</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-pNext-pNext",
- "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=\"#VkWriteDescriptorSetAccelerationStructureKHR\">VkWriteDescriptorSetAccelerationStructureKHR</a>, <a href=\"#VkWriteDescriptorSetAccelerationStructureNV\">VkWriteDescriptorSetAccelerationStructureNV</a>, or <a href=\"#VkWriteDescriptorSetInlineUniformBlock\">VkWriteDescriptorSetInlineUniformBlock</a>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-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-VkWriteDescriptorSet-descriptorType-parameter",
- "text": " <code>descriptorType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-arraylength",
- "text": " <code>descriptorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-commonparent",
- "text": " Both of <code>dstSet</code>, and the elements of <code>pTexelBufferView</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_3,VK_EXT_inline_uniform_block)": [
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02219",
- "text": " If <code>descriptorType</code> 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>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02220",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>descriptorCount</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02221",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkWriteDescriptorSetInlineUniformBlock\">VkWriteDescriptorSetInlineUniformBlock</a> structure whose <code>dataSize</code> member equals <code>descriptorCount</code>"
- }
- ],
- "(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02382",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkWriteDescriptorSetAccelerationStructureKHR\">VkWriteDescriptorSetAccelerationStructureKHR</a> structure whose <code>accelerationStructureCount</code> member equals <code>descriptorCount</code>"
- }
- ],
- "(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-03817",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkWriteDescriptorSetAccelerationStructureNV\">VkWriteDescriptorSetAccelerationStructureNV</a> structure whose <code>accelerationStructureCount</code> member equals <code>descriptorCount</code>"
- }
- ],
- "(VK_VULKAN_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01946",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, then the <code>imageView</code> member of each <code>pImageInfo</code> element <strong class=\"purple\">must</strong> have been created without a <code>VkSamplerYcbcrConversionInfo</code> structure in its <code>pNext</code> chain"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02738",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and if any element of <code>pImageInfo</code> has a <code>imageView</code> member that was created with a <code>VkSamplerYcbcrConversionInfo</code> structure in its <code>pNext</code> chain, then <code>dstSet</code> <strong class=\"purple\">must</strong> have been allocated with a layout that included immutable samplers for <code>dstBinding</code>, and the corresponding immutable sampler <strong class=\"purple\">must</strong> have been created with an <em>identically defined</em> <code>VkSamplerYcbcrConversionInfo</code> object"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01948",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code>, and <code>dstSet</code> was allocated with a layout that included immutable samplers for <code>dstBinding</code>, then the <code>imageView</code> member of each element of <code>pImageInfo</code> which corresponds to an immutable sampler that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a> <strong class=\"purple\">must</strong> have been created with a <code>VkSamplerYcbcrConversionInfo</code> structure in its <code>pNext</code> chain with an <em>identically defined</em> <code>VkSamplerYcbcrConversionInfo</code> to the corresponding immutable sampler"
- }
- ],
- "(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkWriteDescriptorSet-dstSet-04611",
- "text": " If the <code>VkDescriptorSetLayoutBinding</code> for <code>dstSet</code> at <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>, the new active descriptor type <code>descriptorType</code> <strong class=\"purple\">must</strong> exist in the corresponding <code>pMutableDescriptorTypeLists</code> list for <code>dstBinding</code>"
- }
- ],
- "(VK_EXT_image_view_min_lod)": [
- {
- "vuid": "VUID-VkWriteDescriptorSet-descriptorType-06450",
- "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, the <code>imageView</code> member of each element of <code>pImageInfo</code> <strong class=\"purple\">must</strong> have either been created without a <a href=\"#VkImageViewMinLodCreateInfoEXT\">VkImageViewMinLodCreateInfoEXT</a> present in the <code>pNext</code> chain or with a <a href=\"#VkImageViewMinLodCreateInfoEXT\">VkImageViewMinLodCreateInfoEXT</a>::<code>minLod</code> of <code>0.0</code>"
- }
- ]
- },
- "VkDescriptorBufferInfo": {
- "core": [
- {
- "vuid": "VUID-VkDescriptorBufferInfo-offset-00340",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-VkDescriptorBufferInfo-range-00341",
- "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>range</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkDescriptorBufferInfo-range-00342",
- "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>range</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code> minus <code>offset</code>"
- },
- {
- "vuid": "VUID-VkDescriptorBufferInfo-buffer-02998",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, <code>buffer</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkDescriptorBufferInfo-buffer-parameter",
- "text": " If <code>buffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- }
- ],
- "(VK_EXT_robustness2)": [
- {
- "vuid": "VUID-VkDescriptorBufferInfo-buffer-02999",
- "text": " If <code>buffer</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>offset</code> <strong class=\"purple\">must</strong> be zero and <code>range</code> <strong class=\"purple\">must</strong> be <code>VK_WHOLE_SIZE</code>"
- }
- ]
- },
- "VkDescriptorImageInfo": {
- "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-VkDescriptorImageInfo-imageView-00343",
- "text": " <code>imageView</code> <strong class=\"purple\">must</strong> not be 2D or 2D array image view created from a 3D image"
- }
- ],
- "core": [
- {
- "vuid": "VUID-VkDescriptorImageInfo-imageView-01976",
- "text": " If <code>imageView</code> is created from a depth/stencil image, the <code>aspectMask</code> used to create the <code>imageView</code> <strong class=\"purple\">must</strong> include either <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code> but not both"
- },
- {
- "vuid": "VUID-VkDescriptorImageInfo-imageLayout-00344",
- "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> match the actual <a href=\"#VkImageLayout\">VkImageLayout</a> of each subresource accessible from <code>imageView</code> at the time this descriptor is accessed as defined by the <a href=\"#resources-image-layouts-matching-rule\">image layout matching rules</a>"
- },
- {
- "vuid": "VUID-VkDescriptorImageInfo-commonparent",
- "text": " Both of <code>imageView</code>, and <code>sampler</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_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkDescriptorImageInfo-sampler-01564",
- "text": " If <code>sampler</code> is used and the <a href=\"#VkFormat\">VkFormat</a> of the image is a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, the image <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>, and the <code>aspectMask</code> of the <code>imageView</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code> or (for three-plane formats only) <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
- }
- ],
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-VkDescriptorImageInfo-mutableComparisonSamplers-04450",
- "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>mutableComparisonSamplers</code> is <code>VK_FALSE</code>, then <code>sampler</code> <strong class=\"purple\">must</strong> have been created with <a href=\"#VkSamplerCreateInfo\">VkSamplerCreateInfo</a>::<code>compareEnable</code> set to <code>VK_FALSE</code>"
- }
- ]
- },
- "VkWriteDescriptorSetInlineUniformBlock": {
- "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
- {
- "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-02222",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlock-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlock-pData-parameter",
- "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-arraylength",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkWriteDescriptorSetAccelerationStructureKHR": {
- "(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-02236",
- "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be equal to <code>descriptorCount</code> in the extended structure"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03579",
- "text": " Each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created with a <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03580",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, each element of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-parameter",
- "text": " <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handles"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-arraylength",
- "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkWriteDescriptorSetAccelerationStructureNV": {
- "(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-03747",
- "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be equal to <code>descriptorCount</code> in the extended structure"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03748",
- "text": " Each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created with <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03749",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, each member of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV</code>"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-parameter",
- "text": " <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handles"
- },
- {
- "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-arraylength",
- "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkCopyDescriptorSet": {
- "core": [
- {
- "vuid": "VUID-VkCopyDescriptorSet-srcBinding-00345",
- "text": " <code>srcBinding</code> <strong class=\"purple\">must</strong> be a valid binding within <code>srcSet</code>"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-srcArrayElement-00346",
- "text": " The sum of <code>srcArrayElement</code> and <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of array elements in the descriptor set binding specified by <code>srcBinding</code>, and all applicable consecutive bindings, as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-dstBinding-00347",
- "text": " <code>dstBinding</code> <strong class=\"purple\">must</strong> be a valid binding within <code>dstSet</code>"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-dstArrayElement-00348",
- "text": " The sum of <code>dstArrayElement</code> and <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of array elements in the descriptor set binding specified by <code>dstBinding</code>, and all applicable consecutive bindings, as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02632",
- "text": " The type of <code>dstBinding</code> within <code>dstSet</code> <strong class=\"purple\">must</strong> be equal to the type of <code>srcBinding</code> within <code>srcSet</code>"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-srcSet-00349",
- "text": " If <code>srcSet</code> is equal to <code>dstSet</code>, then the source and destination ranges of descriptors <strong class=\"purple\">must</strong> not overlap, where the ranges <strong class=\"purple\">may</strong> include array elements from consecutive bindings as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02753",
- "text": " If the descriptor type of the descriptor set binding specified by <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLER</code>, then <code>dstSet</code> <strong class=\"purple\">must</strong> not have been allocated with a layout that included immutable samplers for <code>dstBinding</code>"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET</code>"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-srcSet-parameter",
- "text": " <code>srcSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handle"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-dstSet-parameter",
- "text": " <code>dstSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handle"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-commonparent",
- "text": " Both of <code>dstSet</code>, and <code>srcSet</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
- {
- "vuid": "VUID-VkCopyDescriptorSet-srcBinding-02223",
- "text": " If the descriptor type of the descriptor set binding specified by <code>srcBinding</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>srcArrayElement</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02224",
- "text": " If the descriptor type of the descriptor set binding specified by <code>dstBinding</code> 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>"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-srcBinding-02225",
- "text": " If the descriptor type of the descriptor set binding specified by either <code>srcBinding</code> or <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>descriptorCount</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
- {
- "vuid": "VUID-VkCopyDescriptorSet-srcSet-01918",
- "text": " If <code>srcSet</code>&#8217;s layout was created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set, then <code>dstSet</code>&#8217;s layout <strong class=\"purple\">must</strong> also have been created with the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-srcSet-01920",
- "text": " If the descriptor pool from which <code>srcSet</code> was allocated was created with the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set, then the descriptor pool from which <code>dstSet</code> was allocated <strong class=\"purple\">must</strong> also have been created with the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkCopyDescriptorSet-srcSet-04885",
- "text": " If <code>srcSet</code>&#8217;s layout was created with neither <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> nor <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE</code> flags set, then <code>dstSet</code>&#8217;s layout <strong class=\"purple\">must</strong> have been created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-srcSet-04887",
- "text": " If the descriptor pool from which <code>srcSet</code> was allocated was created with neither <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> nor <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE</code> flags set, then the descriptor pool from which <code>dstSet</code> was allocated <strong class=\"purple\">must</strong> have been created without the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+!(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkCopyDescriptorSet-srcSet-04886",
- "text": " If <code>srcSet</code>&#8217;s layout was created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set, then <code>dstSet</code>&#8217;s layout <strong class=\"purple\">must</strong> also have been created without the <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT</code> flag set"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-srcSet-04888",
- "text": " If the descriptor pool from which <code>srcSet</code> was allocated was created without the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set, then the descriptor pool from which <code>dstSet</code> was allocated <strong class=\"purple\">must</strong> also have been created without the <code>VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT</code> flag set"
- }
- ],
- "(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkCopyDescriptorSet-dstSet-04612",
- "text": " If <code>VkDescriptorSetLayoutBinding</code> for <code>dstSet</code> at <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>, the new active descriptor type <strong class=\"purple\">must</strong> exist in the corresponding <code>pMutableDescriptorTypeLists</code> list for <code>dstBinding</code> if the new active descriptor type is not <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-srcSet-04613",
- "text": " If <code>VkDescriptorSetLayoutBinding</code> for <code>srcSet</code> at <code>srcBinding</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code> and the <code>VkDescriptorSetLayoutBinding</code> for <code>dstSet</code> at <code>dstBinding</code> is not <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>, the active descriptor type for the source descriptor <strong class=\"purple\">must</strong> match the descriptor type of <code>dstBinding</code>"
- },
- {
- "vuid": "VUID-VkCopyDescriptorSet-dstSet-04614",
- "text": " If <code>VkDescriptorSetLayoutBinding</code> for <code>dstSet</code> at <code>dstBinding</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>, and the new active descriptor type is <code>VK_DESCRIPTOR_TYPE_MUTABLE_VALVE</code>, the <code>pMutableDescriptorTypeLists</code> for <code>srcBinding</code> and <code>dstBinding</code> <strong class=\"purple\">must</strong> match exactly"
- }
- ]
- },
- "vkCreateDescriptorUpdateTemplate": {
- "(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"
- },
- {
- "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDescriptorUpdateTemplateCreateInfo\">VkDescriptorUpdateTemplateCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateDescriptorUpdateTemplate-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"
- },
- {
- "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pDescriptorUpdateTemplate-parameter",
- "text": " <code>pDescriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDescriptorUpdateTemplate\">VkDescriptorUpdateTemplate</a> handle"
- }
- ]
- },
- "VkDescriptorUpdateTemplateCreateInfo": {
- "(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"
- },
- {
- "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-pDescriptorUpdateEntries-parameter",
- "text": " <code>pDescriptorUpdateEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorUpdateEntryCount</code> valid <a href=\"#VkDescriptorUpdateTemplateEntry\">VkDescriptorUpdateTemplateEntry</a> structures"
- },
- {
- "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-parameter",
- "text": " <code>templateType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorUpdateTemplateType\">VkDescriptorUpdateTemplateType</a> value"
- },
- {
- "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-descriptorUpdateEntryCount-arraylength",
- "text": " <code>descriptorUpdateEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-commonparent",
- "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)": [
- {
- "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"
- },
- {
- "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00352",
- "text": " If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR</code>, <code>pipelineLayout</code> <strong class=\"purple\">must</strong> be a valid <code>VkPipelineLayout</code> handle"
- },
- {
- "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00353",
- "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_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_VALVE</code>"
- }
- ]
- },
- "VkDescriptorUpdateTemplateEntry": {
- "(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"
- },
- {
- "vuid": "VUID-VkDescriptorUpdateTemplateEntry-dstArrayElement-00355",
- "text": " <code>dstArrayElement</code> and <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings, as described by <a href=\"#descriptorsets-updates-consecutive\">consecutive binding updates</a>"
- },
- {
- "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptorType-parameter",
- "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)": [
- {
- "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>"
- },
- {
- "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227",
- "text": " If <code>descriptor</code> type is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>descriptorCount</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>"
- }
- ]
- },
- "vkDestroyDescriptorUpdateTemplate": {
- "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
- {
- "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"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parameter",
- "text": " If <code>descriptorUpdateTemplate</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorUpdateTemplate\">VkDescriptorUpdateTemplate</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-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"
- },
- {
- "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parent",
- "text": " If <code>descriptorUpdateTemplate</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkUpdateDescriptorSetWithTemplate": {
- "(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>"
- },
- {
- "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parameter",
- "text": " <code>descriptorSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handle"
- },
- {
- "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parameter",
- "text": " <code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorUpdateTemplate\">VkDescriptorUpdateTemplate</a> handle"
- },
- {
- "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parent",
- "text": " <code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCmdBindDescriptorSets": {
- "core": [
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358",
- "text": " Each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> have been allocated with a <code>VkDescriptorSetLayout</code> that matches (is the same as, or identically defined as) the <code>VkDescriptorSetLayout</code> at set <em>n</em> in <code>layout</code>, where <em>n</em> is the sum of <code>firstSet</code> and the index into <code>pDescriptorSets</code>"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359",
- "text": " <code>dynamicOffsetCount</code> <strong class=\"purple\">must</strong> be equal to the total number of dynamic descriptors in <code>pDescriptorSets</code>"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-firstSet-00360",
- "text": " The sum of <code>firstSet</code> and <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971",
- "text": " Each element of <code>pDynamicOffsets</code> which corresponds to a descriptor binding with type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minUniformBufferOffsetAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972",
- "text": " Each element of <code>pDynamicOffsets</code> which corresponds to a descriptor binding with type <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceLimits</code>::<code>minStorageBufferOffsetAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979",
- "text": " For each dynamic uniform or storage buffer binding in <code>pDescriptorSets</code>, the sum of the effective offset, as defined above, and the range of the binding <strong class=\"purple\">must</strong> be less than or equal to the size of the buffer"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameter",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-layout-parameter",
- "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-parameter",
- "text": " <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorSetCount</code> valid <a href=\"#VkDescriptorSet\">VkDescriptorSet</a> handles"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-parameter",
- "text": " If <code>dynamicOffsetCount</code> is not <code>0</code>, <code>pDynamicOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dynamicOffsetCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylength",
- "text": " <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-commonparent",
- "text": " Each of <code>commandBuffer</code>, <code>layout</code>, and the elements of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-04616",
- "text": " Each element of <code>pDescriptorSets</code> <strong class=\"purple\">must</strong> not have been allocated from a <code>VkDescriptorPool</code> with the <code>VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE</code> flag set"
- }
- ]
- },
- "vkCmdPushDescriptorSetKHR": {
- "(VK_KHR_push_descriptor)": [
- {
- "vuid": "VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetKHR-set-00364",
- "text": " <code>set</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>::<code>setLayoutCount</code> provided when <code>layout</code> was created"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetKHR-set-00365",
- "text": " <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>"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-06494",
- "text": " For each element <span class=\"eq\">i</span> where <code>pDescriptorWrites</code>[i].<code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code>, <code>pDescriptorWrites</code>[i].<code>pImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDescriptorWrites</code>[i].<code>descriptorCount</code> valid <code>VkDescriptorImageInfo</code> structures"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-parameter",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetKHR-layout-parameter",
- "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-parameter",
- "text": " <code>pDescriptorWrites</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>descriptorWriteCount</code> valid <a href=\"#VkWriteDescriptorSet\">VkWriteDescriptorSet</a> structures"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetKHR-descriptorWriteCount-arraylength",
- "text": " <code>descriptorWriteCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetKHR-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "vkCmdPushDescriptorSetWithTemplateKHR": {
- "(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
- {
- "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-00366",
- "text": " The <code>pipelineBindPoint</code> specified during the creation of the descriptor update template <strong class=\"purple\">must</strong> be supported by the <code>commandBuffer</code>&#8217;s parent <code>VkCommandPool</code>&#8217;s queue family"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-pData-01686",
- "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>"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-parameter",
- "text": " <code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorUpdateTemplate\">VkDescriptorUpdateTemplate</a> handle"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-parameter",
- "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent",
- "text": " Each of <code>commandBuffer</code>, <code>descriptorUpdateTemplate</code>, and <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "vkCmdPushConstants": {
- "core": [
- {
- "vuid": "VUID-vkCmdPushConstants-offset-01795",
- "text": " For each byte in the range specified by <code>offset</code> and <code>size</code> and for each shader stage in <code>stageFlags</code>, there <strong class=\"purple\">must</strong> be a push constant range in <code>layout</code> that includes that byte and that stage"
- },
- {
- "vuid": "VUID-vkCmdPushConstants-offset-01796",
- "text": " For each byte in the range specified by <code>offset</code> and <code>size</code> and for each push constant range that overlaps that byte, <code>stageFlags</code> <strong class=\"purple\">must</strong> include all stages in that push constant range&#8217;s <a href=\"#VkPushConstantRange\">VkPushConstantRange</a>::<code>stageFlags</code>"
- },
- {
- "vuid": "VUID-vkCmdPushConstants-offset-00368",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdPushConstants-size-00369",
- "text": " <code>size</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdPushConstants-offset-00370",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code>"
- },
- {
- "vuid": "VUID-vkCmdPushConstants-size-00371",
- "text": " <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code> minus <code>offset</code>"
- },
- {
- "vuid": "VUID-vkCmdPushConstants-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdPushConstants-layout-parameter",
- "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
- },
- {
- "vuid": "VUID-vkCmdPushConstants-stageFlags-parameter",
- "text": " <code>stageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdPushConstants-stageFlags-requiredbitmask",
- "text": " <code>stageFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdPushConstants-pValues-parameter",
- "text": " <code>pValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>size</code> bytes"
- },
- {
- "vuid": "VUID-vkCmdPushConstants-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdPushConstants-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdPushConstants-size-arraylength",
- "text": " <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdPushConstants-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>layout</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "vkGetBufferDeviceAddress": {
- "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_EXT_buffer_device_address)": [
- {
- "vuid": "VUID-vkGetBufferDeviceAddress-bufferDeviceAddress-03324",
- "text": " The <a href=\"#features-bufferDeviceAddress\">bufferDeviceAddress</a> or <a href=\"#features-bufferDeviceAddressEXT\"><code>VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</code>::<code>bufferDeviceAddress</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkGetBufferDeviceAddress-device-03325",
- "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\">bufferDeviceAddressMultiDevice</a> or <a href=\"#features-bufferDeviceAddressMultiDeviceEXT\"><code>VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</code>::<code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+!(VK_EXT_buffer_device_address)": [
- {
- "vuid": "VUID-vkGetBufferDeviceAddress-None-06542",
- "text": " The <a href=\"#features-bufferDeviceAddress\">bufferDeviceAddress</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkGetBufferDeviceAddress-device-06543",
- "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\">bufferDeviceAddressMultiDevice</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)": [
- {
- "vuid": "VUID-vkGetBufferDeviceAddress-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetBufferDeviceAddress-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferDeviceAddressInfo\">VkBufferDeviceAddressInfo</a> structure"
- }
- ]
- },
- "VkBufferDeviceAddressInfo": {
- "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)": [
- {
- "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-02600",
- "text": " If <code>buffer</code> is non-sparse and was not created with the <code>VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT</code> flag, then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-02601",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferDeviceAddressInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO</code>"
- },
- {
- "vuid": "VUID-VkBufferDeviceAddressInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- }
- ]
- },
- "vkGetBufferOpaqueCaptureAddress": {
- "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
- {
- "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-None-03326",
- "text": " The <a href=\"#features-bufferDeviceAddress\">bufferDeviceAddress</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-device-03327",
- "text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\">bufferDeviceAddressMultiDevice</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBufferDeviceAddressInfo\">VkBufferDeviceAddressInfo</a> structure"
- }
- ]
- },
- "BaryCoordNV": {
- "(VK_NV_fragment_shader_barycentric)": [
- {
- "vuid": "VUID-BaryCoordNV-BaryCoordNV-04154",
- "text": " The <code>BaryCoordNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-BaryCoordNV-BaryCoordNV-04155",
- "text": " The variable decorated with <code>BaryCoordNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-BaryCoordNV-BaryCoordNV-04156",
- "text": " The variable decorated with <code>BaryCoordNV</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
- }
- ]
- },
- "BaryCoordNoPerspAMD": {
- "(VK_AMD_shader_explicit_vertex_parameter)": [
- {
- "vuid": "VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04157",
- "text": " The <code>BaryCoordNoPerspAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04158",
- "text": " The variable decorated with <code>BaryCoordNoPerspAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04159",
- "text": " The variable decorated with <code>BaryCoordNoPerspAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values"
- }
- ]
- },
- "BaryCoordNoPerspNV": {
- "(VK_NV_fragment_shader_barycentric)": [
- {
- "vuid": "VUID-BaryCoordNoPerspNV-BaryCoordNoPerspNV-04160",
- "text": " The <code>BaryCoordNoPerspNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-BaryCoordNoPerspNV-BaryCoordNoPerspNV-04161",
- "text": " The variable decorated with <code>BaryCoordNoPerspNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-BaryCoordNoPerspNV-BaryCoordNoPerspNV-04162",
- "text": " The variable decorated with <code>BaryCoordNoPerspNV</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
- }
- ]
- },
- "BaryCoordNoPerspCentroidAMD": {
- "(VK_AMD_shader_explicit_vertex_parameter)": [
- {
- "vuid": "VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04163",
- "text": " The <code>BaryCoordNoPerspCentroidAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04164",
- "text": " The variable decorated with <code>BaryCoordNoPerspCentroidAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04165",
- "text": " The variable decorated with <code>BaryCoordNoPerspCentroidAMD</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
- }
- ]
- },
- "BaryCoordNoPerspSampleAMD": {
- "(VK_AMD_shader_explicit_vertex_parameter)": [
- {
- "vuid": "VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04166",
- "text": " The <code>BaryCoordNoPerspSampleAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04167",
- "text": " The variable decorated with <code>BaryCoordNoPerspSampleAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04168",
- "text": " The variable decorated with <code>BaryCoordNoPerspSampleAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values"
- }
- ]
- },
- "BaryCoordPullModelAMD": {
- "(VK_AMD_shader_explicit_vertex_parameter)": [
- {
- "vuid": "VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04169",
- "text": " The <code>BaryCoordPullModelAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04170",
- "text": " The variable decorated with <code>BaryCoordPullModelAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04171",
- "text": " The variable decorated with <code>BaryCoordPullModelAMD</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
- }
- ]
- },
- "BaryCoordSmoothAMD": {
- "(VK_AMD_shader_explicit_vertex_parameter)": [
- {
- "vuid": "VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04172",
- "text": " The <code>BaryCoordSmoothAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04173",
- "text": " The variable decorated with <code>BaryCoordSmoothAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04174",
- "text": " The variable decorated with <code>BaryCoordSmoothAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values"
- }
- ]
- },
- "BaryCoordSmoothCentroidAMD": {
- "(VK_AMD_shader_explicit_vertex_parameter)": [
- {
- "vuid": "VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04175",
- "text": " The <code>BaryCoordSmoothCentroidAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04176",
- "text": " The variable decorated with <code>BaryCoordSmoothCentroidAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04177",
- "text": " The variable decorated with <code>BaryCoordSmoothCentroidAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values"
- }
- ]
- },
- "BaryCoordSmoothSampleAMD": {
- "(VK_AMD_shader_explicit_vertex_parameter)": [
- {
- "vuid": "VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04178",
- "text": " The <code>BaryCoordSmoothSampleAMD</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04179",
- "text": " The variable decorated with <code>BaryCoordSmoothSampleAMD</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04180",
- "text": " The variable decorated with <code>BaryCoordSmoothSampleAMD</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values"
- }
- ]
- },
- "BaseInstance": {
- "(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)": [
- {
- "vuid": "VUID-BaseInstance-BaseInstance-04181",
- "text": " The <code>BaseInstance</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-BaseInstance-BaseInstance-04182",
- "text": " The variable decorated with <code>BaseInstance</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-BaseInstance-BaseInstance-04183",
- "text": " The variable decorated with <code>BaseInstance</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "BaseVertex": {
- "(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)": [
- {
- "vuid": "VUID-BaseVertex-BaseVertex-04184",
- "text": " The <code>BaseVertex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-BaseVertex-BaseVertex-04185",
- "text": " The variable decorated with <code>BaseVertex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-BaseVertex-BaseVertex-04186",
- "text": " The variable decorated with <code>BaseVertex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "ClipDistance": {
- "core": [
- {
- "vuid": "VUID-ClipDistance-ClipDistance-04187",
- "text": " The <code>ClipDistance</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code>, <code>Vertex</code>, <code>Fragment</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-ClipDistance-ClipDistance-04188",
- "text": " The variable decorated with <code>ClipDistance</code> within the <code>MeshNV</code> or <code>Vertex</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-ClipDistance-ClipDistance-04189",
- "text": " The variable decorated with <code>ClipDistance</code> within the <code>Fragment</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-ClipDistance-ClipDistance-04190",
- "text": " The variable decorated with <code>ClipDistance</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> not be declared in a {StorageClass} other than <code>Input</code> or <code>Output</code>"
- },
- {
- "vuid": "VUID-ClipDistance-ClipDistance-04191",
- "text": " The variable decorated with <code>ClipDistance</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit floating-point values"
- }
- ]
- },
- "ClipDistancePerViewNV": {
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04192",
- "text": " The <code>ClipDistancePerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04193",
- "text": " The variable decorated with <code>ClipDistancePerViewNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04194",
- "text": " The variable decorated with <code>ClipDistancePerViewNV</code> <strong class=\"purple\">must</strong> also be decorated with the <code>PerViewNV</code> decoration"
- },
- {
- "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04195",
- "text": " The variable decorated with <code>ClipDistancePerViewNV</code> <strong class=\"purple\">must</strong> be declared as a two-dimensional array of 32-bit floating-point values"
- }
- ]
- },
- "CullDistance": {
- "core": [
- {
- "vuid": "VUID-CullDistance-CullDistance-04196",
- "text": " The <code>CullDistance</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code>, <code>Vertex</code>, <code>Fragment</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-CullDistance-CullDistance-04197",
- "text": " The variable decorated with <code>CullDistance</code> within the <code>MeshNV</code> or <code>Vertex</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-CullDistance-CullDistance-04198",
- "text": " The variable decorated with <code>CullDistance</code> within the <code>Fragment</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-CullDistance-CullDistance-04199",
- "text": " The variable decorated with <code>CullDistance</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> not be declared using a {StorageClass} other than <code>Input</code> or <code>Output</code>"
- },
- {
- "vuid": "VUID-CullDistance-CullDistance-04200",
- "text": " The variable decorated with <code>CullDistance</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit floating-point values"
- }
- ]
- },
- "CullDistancePerViewNV": {
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04201",
- "text": " The <code>CullDistancePerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04202",
- "text": " The variable decorated with <code>CullDistancePerViewNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04203",
- "text": " The variable decorated with <code>CullDistancePerViewNV</code> <strong class=\"purple\">must</strong> also be decorated with the <code>PerViewNV</code> decoration"
- },
- {
- "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04204",
- "text": " The variable decorated with <code>CullDistancePerViewNV</code> <strong class=\"purple\">must</strong> be declared as a two-dimensional array of 32-bit floating-point values"
- }
- ]
- },
- "CurrentRayTimeNV": {
- "(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-CurrentRayTimeNV-CurrentRayTimeNV-04942",
- "text": " The <code>CurrentRayTimeNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-CurrentRayTimeNV-CurrentRayTimeNV-04943",
- "text": " The variable decorated with <code>CurrentRayTimeNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-CurrentRayTimeNV-CurrentRayTimeNV-04944",
- "text": " The variable decorated with <code>CurrentRayTimeNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value"
- }
- ]
- },
- "DeviceIndex": {
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-DeviceIndex-DeviceIndex-04205",
- "text": " The variable decorated with <code>DeviceIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-DeviceIndex-DeviceIndex-04206",
- "text": " The variable decorated with <code>DeviceIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "DrawIndex": {
- "(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)": [
- {
- "vuid": "VUID-DrawIndex-DrawIndex-04207",
- "text": " The <code>DrawIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-DrawIndex-DrawIndex-04208",
- "text": " The variable decorated with <code>DrawIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-DrawIndex-DrawIndex-04209",
- "text": " The variable decorated with <code>DrawIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "FragCoord": {
- "core": [
- {
- "vuid": "VUID-FragCoord-FragCoord-04210",
- "text": " The <code>FragCoord</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-FragCoord-FragCoord-04211",
- "text": " The variable decorated with <code>FragCoord</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-FragCoord-FragCoord-04212",
- "text": " The variable decorated with <code>FragCoord</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit floating-point values"
- }
- ]
- },
- "FragDepth": {
- "core": [
- {
- "vuid": "VUID-FragDepth-FragDepth-04213",
- "text": " The <code>FragDepth</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-FragDepth-FragDepth-04214",
- "text": " The variable decorated with <code>FragDepth</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-FragDepth-FragDepth-04215",
- "text": " The variable decorated with <code>FragDepth</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value"
- },
- {
- "vuid": "VUID-FragDepth-FragDepth-04216",
- "text": " If the shader dynamically writes to the variable decorated with <code>FragDepth</code>, the <code>DepthReplacing</code> {ExecutionMode} <strong class=\"purple\">must</strong> be declared"
- }
- ]
- },
- "FragInvocationCountEXT": {
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-FragInvocationCountEXT-FragInvocationCountEXT-04217",
- "text": " The <code>FragInvocationCountEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-FragInvocationCountEXT-FragInvocationCountEXT-04218",
- "text": " The variable decorated with <code>FragInvocationCountEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-FragInvocationCountEXT-FragInvocationCountEXT-04219",
- "text": " The variable decorated with <code>FragInvocationCountEXT</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "FragSizeEXT": {
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-FragSizeEXT-FragSizeEXT-04220",
- "text": " The <code>FragSizeEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-FragSizeEXT-FragSizeEXT-04221",
- "text": " The variable decorated with <code>FragSizeEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-FragSizeEXT-FragSizeEXT-04222",
- "text": " The variable decorated with <code>FragSizeEXT</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit integer values"
- }
- ]
- },
- "FragStencilRefEXT": {
- "(VK_EXT_shader_stencil_export)": [
- {
- "vuid": "VUID-FragStencilRefEXT-FragStencilRefEXT-04223",
- "text": " The <code>FragStencilRefEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-FragStencilRefEXT-FragStencilRefEXT-04224",
- "text": " The variable decorated with <code>FragStencilRefEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-FragStencilRefEXT-FragStencilRefEXT-04225",
- "text": " The variable decorated with <code>FragStencilRefEXT</code> <strong class=\"purple\">must</strong> be declared as a scalar integer value"
- }
- ]
- },
- "FragmentSizeNV": {
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-FragmentSizeNV-FragmentSizeNV-04226",
- "text": " The <code>FragmentSizeNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-FragmentSizeNV-FragmentSizeNV-04227",
- "text": " The variable decorated with <code>FragmentSizeNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-FragmentSizeNV-FragmentSizeNV-04228",
- "text": " The variable decorated with <code>FragmentSizeNV</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit integer values"
- }
- ]
- },
- "FrontFacing": {
- "core": [
- {
- "vuid": "VUID-FrontFacing-FrontFacing-04229",
- "text": " The <code>FrontFacing</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-FrontFacing-FrontFacing-04230",
- "text": " The variable decorated with <code>FrontFacing</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-FrontFacing-FrontFacing-04231",
- "text": " The variable decorated with <code>FrontFacing</code> <strong class=\"purple\">must</strong> be declared as a boolean value"
- }
- ]
- },
- "FullyCoveredEXT": {
- "(VK_EXT_conservative_rasterization)": [
- {
- "vuid": "VUID-FullyCoveredEXT-FullyCoveredEXT-04232",
- "text": " The <code>FullyCoveredEXT</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-FullyCoveredEXT-FullyCoveredEXT-04233",
- "text": " The variable decorated with <code>FullyCoveredEXT</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-FullyCoveredEXT-FullyCoveredEXT-04234",
- "text": " The variable decorated with <code>FullyCoveredEXT</code> <strong class=\"purple\">must</strong> be declared as a boolean value"
- }
- ],
- "(VK_EXT_conservative_rasterization)+(VK_EXT_post_depth_coverage)": [
- {
- "vuid": "VUID-FullyCoveredEXT-conservativeRasterizationPostDepthCoverage-04235",
- "text": " If <code>VkPhysicalDeviceConservativeRasterizationPropertiesEXT</code>::<code>conservativeRasterizationPostDepthCoverage</code> is not supported the <code>PostDepthCoverage</code> {ExecutionMode} <strong class=\"purple\">must</strong> not be declared, when a variable with the <code>FullyCoveredEXT</code> decoration is declared"
- }
- ]
- },
- "GlobalInvocationId": {
- "core": [
- {
- "vuid": "VUID-GlobalInvocationId-GlobalInvocationId-04236",
- "text": " The <code>GlobalInvocationId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-GlobalInvocationId-GlobalInvocationId-04237",
- "text": " The variable decorated with <code>GlobalInvocationId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-GlobalInvocationId-GlobalInvocationId-04238",
- "text": " The variable decorated with <code>GlobalInvocationId</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values"
- }
- ]
- },
- "HelperInvocation": {
- "core": [
- {
- "vuid": "VUID-HelperInvocation-HelperInvocation-04239",
- "text": " The <code>HelperInvocation</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-HelperInvocation-HelperInvocation-04240",
- "text": " The variable decorated with <code>HelperInvocation</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-HelperInvocation-HelperInvocation-04241",
- "text": " The variable decorated with <code>HelperInvocation</code> <strong class=\"purple\">must</strong> be declared as a boolean value"
- }
- ]
- },
- "HitKindKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-HitKindKHR-HitKindKHR-04242",
- "text": " The <code>HitKindKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>AnyHitKHR</code> or <code>ClosestHitKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-HitKindKHR-HitKindKHR-04243",
- "text": " The variable decorated with <code>HitKindKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-HitKindKHR-HitKindKHR-04244",
- "text": " The variable decorated with <code>HitKindKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "HitTNV": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-HitTNV-HitTNV-04245",
- "text": " The <code>HitTNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>AnyHitNV</code> or <code>ClosestHitNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-HitTNV-HitTNV-04246",
- "text": " The variable decorated with <code>HitTNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-HitTNV-HitTNV-04247",
- "text": " The variable decorated with <code>HitTNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value"
- }
- ]
- },
- "IncomingRayFlagsKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04248",
- "text": " The <code>IncomingRayFlagsKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04249",
- "text": " The variable decorated with <code>IncomingRayFlagsKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04250",
- "text": " The variable decorated with <code>IncomingRayFlagsKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "InstanceCustomIndexKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04251",
- "text": " The <code>InstanceCustomIndexKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04252",
- "text": " The variable decorated with <code>InstanceCustomIndexKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04253",
- "text": " The variable decorated with <code>InstanceCustomIndexKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "InstanceId": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-InstanceId-InstanceId-04254",
- "text": " The <code>InstanceId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-InstanceId-InstanceId-04255",
- "text": " The variable decorated with <code>InstanceId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-InstanceId-InstanceId-04256",
- "text": " The variable decorated with <code>InstanceId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "InvocationId": {
- "core": [
- {
- "vuid": "VUID-InvocationId-InvocationId-04257",
- "text": " The <code>InvocationId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationControl</code> or <code>Geometry</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-InvocationId-InvocationId-04258",
- "text": " The variable decorated with <code>InvocationId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-InvocationId-InvocationId-04259",
- "text": " The variable decorated with <code>InvocationId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "InvocationsPerPixelNV": {
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04260",
- "text": " The <code>InvocationsPerPixelNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04261",
- "text": " The variable decorated with <code>InvocationsPerPixelNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04262",
- "text": " The variable decorated with <code>InvocationsPerPixelNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "InstanceIndex": {
- "core": [
- {
- "vuid": "VUID-InstanceIndex-InstanceIndex-04263",
- "text": " The <code>InstanceIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-InstanceIndex-InstanceIndex-04264",
- "text": " The variable decorated with <code>InstanceIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-InstanceIndex-InstanceIndex-04265",
- "text": " The variable decorated with <code>InstanceIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "LaunchIdKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-LaunchIdKHR-LaunchIdKHR-04266",
- "text": " The <code>LaunchIdKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>RayGenerationKHR</code>, <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, <code>MissKHR</code>, or <code>CallableKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-LaunchIdKHR-LaunchIdKHR-04267",
- "text": " The variable decorated with <code>LaunchIdKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-LaunchIdKHR-LaunchIdKHR-04268",
- "text": " The variable decorated with <code>LaunchIdKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values"
- }
- ]
- },
- "LaunchSizeKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-LaunchSizeKHR-LaunchSizeKHR-04269",
- "text": " The <code>LaunchSizeKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>RayGenerationKHR</code>, <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, <code>MissKHR</code>, or <code>CallableKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-LaunchSizeKHR-LaunchSizeKHR-04270",
- "text": " The variable decorated with <code>LaunchSizeKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-LaunchSizeKHR-LaunchSizeKHR-04271",
- "text": " The variable decorated with <code>LaunchSizeKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values"
- }
- ]
- },
- "Layer": {
- "core": [
- {
- "vuid": "VUID-Layer-Layer-04272",
- "text": " The <code>Layer</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationEvaluation</code>, <code>Geometry</code>, or <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-Layer-Layer-04274",
- "text": " The variable decorated with <code>Layer</code> within the <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-Layer-Layer-04275",
- "text": " The variable decorated with <code>Layer</code> within the <code>Fragment</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-Layer-Layer-04276",
- "text": " The variable decorated with <code>Layer</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ],
- "(VK_VERSION_1_2)": [
- {
- "vuid": "VUID-Layer-Layer-04273",
- "text": " If the <a href=\"#features-shaderOutputLayer\">shaderOutputLayer</a> feature is not enabled then the <code>Layer</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Geometry</code> or <code>Fragment</code> {ExecutionModel}"
- }
- ]
- },
- "LayerPerViewNV": {
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04277",
- "text": " The <code>LayerPerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04278",
- "text": " The variable decorated with <code>LayerPerViewNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04279",
- "text": " The variable decorated with <code>LayerPerViewNV</code> <strong class=\"purple\">must</strong> also be decorated with the <code>PerViewNV</code> decoration"
- },
- {
- "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04280",
- "text": " The variable decorated with <code>LayerPerViewNV</code> <strong class=\"purple\">must</strong> be declared as an array of scalar 32-bit integer values"
- }
- ]
- },
- "LocalInvocationId": {
- "core": [
- {
- "vuid": "VUID-LocalInvocationId-LocalInvocationId-04281",
- "text": " The <code>LocalInvocationId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-LocalInvocationId-LocalInvocationId-04282",
- "text": " The variable decorated with <code>LocalInvocationId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-LocalInvocationId-LocalInvocationId-04283",
- "text": " The variable decorated with <code>LocalInvocationId</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values"
- }
- ]
- },
- "LocalInvocationIndex": {
- "core": [
- {
- "vuid": "VUID-LocalInvocationIndex-LocalInvocationIndex-04284",
- "text": " The <code>LocalInvocationIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-LocalInvocationIndex-LocalInvocationIndex-04285",
- "text": " The variable decorated with <code>LocalInvocationIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-LocalInvocationIndex-LocalInvocationIndex-04286",
- "text": " The variable decorated with <code>LocalInvocationIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "MeshViewCountNV": {
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-MeshViewCountNV-MeshViewCountNV-04287",
- "text": " The <code>MeshViewCountNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> or <code>TaskNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-MeshViewCountNV-MeshViewCountNV-04288",
- "text": " The variable decorated with <code>MeshViewCountNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-MeshViewCountNV-MeshViewCountNV-04289",
- "text": " The variable decorated with <code>MeshViewCountNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "MeshViewIndicesNV": {
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-MeshViewIndicesNV-MeshViewIndicesNV-04290",
- "text": " The <code>MeshViewIndicesNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> or <code>TaskNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-MeshViewIndicesNV-MeshViewIndicesNV-04291",
- "text": " The variable decorated with <code>MeshViewIndicesNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-MeshViewIndicesNV-MeshViewIndicesNV-04292",
- "text": " The variable decorated with <code>MeshViewIndicesNV</code> <strong class=\"purple\">must</strong> be declared as an array of scalar 32-bit integer values"
- }
- ]
- },
- "NumSubgroups": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-NumSubgroups-NumSubgroups-04293",
- "text": " The <code>NumSubgroups</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-NumSubgroups-NumSubgroups-04294",
- "text": " The variable decorated with <code>NumSubgroups</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-NumSubgroups-NumSubgroups-04295",
- "text": " The variable decorated with <code>NumSubgroups</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "NumWorkgroups": {
- "core": [
- {
- "vuid": "VUID-NumWorkgroups-NumWorkgroups-04296",
- "text": " The <code>NumWorkgroups</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-NumWorkgroups-NumWorkgroups-04297",
- "text": " The variable decorated with <code>NumWorkgroups</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-NumWorkgroups-NumWorkgroups-04298",
- "text": " The variable decorated with <code>NumWorkgroups</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values"
- }
- ]
- },
- "ObjectRayDirectionKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04299",
- "text": " The <code>ObjectRayDirectionKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04300",
- "text": " The variable decorated with <code>ObjectRayDirectionKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04301",
- "text": " The variable decorated with <code>ObjectRayDirectionKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
- }
- ]
- },
- "ObjectRayOriginKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04302",
- "text": " The <code>ObjectRayOriginKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04303",
- "text": " The variable decorated with <code>ObjectRayOriginKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04304",
- "text": " The variable decorated with <code>ObjectRayOriginKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
- }
- ]
- },
- "ObjectToWorldKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-ObjectToWorldKHR-ObjectToWorldKHR-04305",
- "text": " The <code>ObjectToWorldKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-ObjectToWorldKHR-ObjectToWorldKHR-04306",
- "text": " The variable decorated with <code>ObjectToWorldKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-ObjectToWorldKHR-ObjectToWorldKHR-04307",
- "text": " The variable decorated with <code>ObjectToWorldKHR</code> <strong class=\"purple\">must</strong> be declared as a matrix with four columns of three-component vectors of 32-bit floating-point values"
- }
- ]
- },
- "PatchVertices": {
- "core": [
- {
- "vuid": "VUID-PatchVertices-PatchVertices-04308",
- "text": " The <code>PatchVertices</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationControl</code> or <code>TessellationEvaluation</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-PatchVertices-PatchVertices-04309",
- "text": " The variable decorated with <code>PatchVertices</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-PatchVertices-PatchVertices-04310",
- "text": " The variable decorated with <code>PatchVertices</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "PointCoord": {
- "core": [
- {
- "vuid": "VUID-PointCoord-PointCoord-04311",
- "text": " The <code>PointCoord</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-PointCoord-PointCoord-04312",
- "text": " The variable decorated with <code>PointCoord</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-PointCoord-PointCoord-04313",
- "text": " The variable decorated with <code>PointCoord</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values"
- }
- ]
- },
- "PointSize": {
- "core": [
- {
- "vuid": "VUID-PointSize-PointSize-04314",
- "text": " The <code>PointSize</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-PointSize-PointSize-04315",
- "text": " The variable decorated with <code>PointSize</code> within the <code>MeshNV</code> or <code>Vertex</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-PointSize-PointSize-04316",
- "text": " The variable decorated with <code>PointSize</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> not be declared using a {StorageClass} other than <code>Input</code> or <code>Output</code>"
- },
- {
- "vuid": "VUID-PointSize-PointSize-04317",
- "text": " The variable decorated with <code>PointSize</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value"
- }
- ]
- },
- "Position": {
- "core": [
- {
- "vuid": "VUID-Position-Position-04318",
- "text": " The <code>Position</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-Position-Position-04319",
- "text": " The variable decorated with <code>Position</code> within <code>MeshNV</code> or <code>Vertex</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-Position-Position-04320",
- "text": " The variable decorated with <code>Position</code> within <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> not be declared using a {StorageClass} other than <code>Input</code> or <code>Output</code>"
- },
- {
- "vuid": "VUID-Position-Position-04321",
- "text": " The variable decorated with <code>Position</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit floating-point values"
- }
- ]
- },
- "PositionPerViewNV": {
- "(VK_NVX_multiview_per_view_attributes)": [
- {
- "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04322",
- "text": " The <code>PositionPerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04323",
- "text": " The variable decorated with <code>PositionPerViewNV</code> within the <code>Vertex</code>, or <code>MeshNV</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04324",
- "text": " The variable decorated with <code>PositionPerViewNV</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> not be declared using a {StorageClass} other than <code>Input</code> or <code>Output</code>"
- },
- {
- "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04325",
- "text": " The variable decorated with <code>PositionPerViewNV</code> <strong class=\"purple\">must</strong> be declared as an array of four-component vector of 32-bit floating-point values with at least as many elements as the maximum view in the subpass&#8217;s view mask plus one"
- },
- {
- "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04326",
- "text": " The array variable decorated with <code>PositionPerViewNV</code> <strong class=\"purple\">must</strong> only be indexed by a constant or specialization constant"
- }
- ]
- },
- "PrimitiveCountNV": {
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-PrimitiveCountNV-PrimitiveCountNV-04327",
- "text": " The <code>PrimitiveCountNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-PrimitiveCountNV-PrimitiveCountNV-04328",
- "text": " The variable decorated with <code>PrimitiveCountNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-PrimitiveCountNV-PrimitiveCountNV-04329",
- "text": " The variable decorated with <code>PrimitiveCountNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "PrimitiveId": {
- "core": [
- {
- "vuid": "VUID-PrimitiveId-PrimitiveId-04330",
- "text": " The <code>PrimitiveId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code>, <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, <code>Geometry</code>, or <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-PrimitiveId-Fragment-04331",
- "text": " If pipeline contains both the <code>Fragment</code> and <code>Geometry</code> {ExecutionModel} and a variable decorated with <code>PrimitiveId</code> is read from <code>Fragment</code> shader, then the <code>Geometry</code> shader <strong class=\"purple\">must</strong> write to the output variables decorated with <code>PrimitiveId</code> in all execution paths"
- },
- {
- "vuid": "VUID-PrimitiveId-Fragment-04332",
- "text": " If pipeline contains both the <code>Fragment</code> and <code>MeshNV</code> {ExecutionModel} and a variable decorated with <code>PrimitiveId</code> is read from <code>Fragment</code> shader, then the <code>MeshNV</code> shader <strong class=\"purple\">must</strong> write to the output variables decorated with <code>PrimitiveId</code> in all execution paths"
- },
- {
- "vuid": "VUID-PrimitiveId-Fragment-04333",
- "text": " If <code>Fragment</code> {ExecutionModel} contains a variable decorated with <code>PrimitiveId</code>, then either the <code>MeshShadingNV</code>, <code>Geometry</code> or <code>Tessellation</code> capability <strong class=\"purple\">must</strong> also be declared"
- },
- {
- "vuid": "VUID-PrimitiveId-PrimitiveId-04334",
- "text": " The variable decorated with <code>PrimitiveId</code> within the <code>TessellationControl</code>, <code>TessellationEvaluation</code>, <code>Fragment</code>, <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-PrimitiveId-PrimitiveId-04335",
- "text": " The variable decorated with <code>PrimitiveId</code> within the <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> or <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-PrimitiveId-PrimitiveId-04336",
- "text": " The variable decorated with <code>PrimitiveId</code> within the <code>MeshNV</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-PrimitiveId-PrimitiveId-04337",
- "text": " The variable decorated with <code>PrimitiveId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "PrimitiveIndicesNV": {
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04338",
- "text": " The <code>PrimitiveIndicesNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04339",
- "text": " The variable decorated with <code>PrimitiveIndicesNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04340",
- "text": " The variable decorated with <code>PrimitiveIndicesNV</code> <strong class=\"purple\">must</strong> be declared as an array of scalar 32-bit integer values"
- },
- {
- "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04341",
- "text": " All index values of the array decorated with <code>PrimitiveIndicesNV</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0, N-1]</span>, where <span class=\"eq\">N</span> is the value specified by the <code>OutputVertices</code> {ExecutionMode}"
- },
- {
- "vuid": "VUID-PrimitiveIndicesNV-OutputPoints-04342",
- "text": " If the {ExecutionMode} is <code>OutputPoints</code>, then the array decorated with <code>PrimitiveIndicesNV</code> must be the size of the value specified by <code>OutputPrimitivesNV</code>"
- },
- {
- "vuid": "VUID-PrimitiveIndicesNV-OutputLinesNV-04343",
- "text": " If the {ExecutionMode} is <code>OutputLinesNV</code>, then the array decorated with <code>PrimitiveIndicesNV</code> must be the size of two times the value specified by <code>OutputPrimitivesNV</code>"
- },
- {
- "vuid": "VUID-PrimitiveIndicesNV-OutputTrianglesNV-04344",
- "text": " If the {ExecutionMode} is <code>OutputTrianglesNV</code>, then the array decorated with <code>PrimitiveIndicesNV</code> must be the size of three times the value specified by <code>OutputPrimitivesNV</code>"
- }
- ]
- },
- "PrimitiveShadingRateKHR": {
- "(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04484",
- "text": " The <code>PrimitiveShadingRateKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code>, <code>Vertex</code>, or <code>Geometry</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04485",
- "text": " The variable decorated with <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04486",
- "text": " The variable decorated with <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- },
- {
- "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04487",
- "text": " The value written to <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> include no more than one of <code>Vertical2Pixels</code> and <code>Vertical4Pixels</code>"
- },
- {
- "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04488",
- "text": " The value written to <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> include no more than one of <code>Horizontal2Pixels</code> and <code>Horizontal4Pixels</code>"
- },
- {
- "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04489",
- "text": " The value written to <code>PrimitiveShadingRateKHR</code> <strong class=\"purple\">must</strong> not have any bits set other than those defined by <strong>Fragment Shading Rate Flags</strong> enumerants in the SPIR-V specification"
- }
- ]
- },
- "RayGeometryIndexKHR": {
- "(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04345",
- "text": " The <code>RayGeometryIndexKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04346",
- "text": " The variable decorated with <code>RayGeometryIndexKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04347",
- "text": " The variable decorated with <code>RayGeometryIndexKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "RayTmaxKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-RayTmaxKHR-RayTmaxKHR-04348",
- "text": " The <code>RayTmaxKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-RayTmaxKHR-RayTmaxKHR-04349",
- "text": " The variable decorated with <code>RayTmaxKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-RayTmaxKHR-RayTmaxKHR-04350",
- "text": " The variable decorated with <code>RayTmaxKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value"
- }
- ]
- },
- "RayTminKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-RayTminKHR-RayTminKHR-04351",
- "text": " The <code>RayTminKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-RayTminKHR-RayTminKHR-04352",
- "text": " The variable decorated with <code>RayTminKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-RayTminKHR-RayTminKHR-04353",
- "text": " The variable decorated with <code>RayTminKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit floating-point value"
- }
- ]
- },
- "SampleId": {
- "core": [
- {
- "vuid": "VUID-SampleId-SampleId-04354",
- "text": " The <code>SampleId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-SampleId-SampleId-04355",
- "text": " The variable decorated with <code>SampleId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-SampleId-SampleId-04356",
- "text": " The variable decorated with <code>SampleId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "SampleMask": {
- "core": [
- {
- "vuid": "VUID-SampleMask-SampleMask-04357",
- "text": " The <code>SampleMask</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-SampleMask-SampleMask-04358",
- "text": " The variable decorated with <code>SampleMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> or <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-SampleMask-SampleMask-04359",
- "text": " The variable decorated with <code>SampleMask</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit integer values"
- }
- ]
- },
- "SamplePosition": {
- "core": [
- {
- "vuid": "VUID-SamplePosition-SamplePosition-04360",
- "text": " The <code>SamplePosition</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-SamplePosition-SamplePosition-04361",
- "text": " The variable decorated with <code>SamplePosition</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-SamplePosition-SamplePosition-04362",
- "text": " The variable decorated with <code>SamplePosition</code> <strong class=\"purple\">must</strong> be declared as a two-component vector of 32-bit floating-point values"
- }
- ]
- },
- "ShadingRateKHR": {
- "(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-ShadingRateKHR-ShadingRateKHR-04490",
- "text": " The <code>ShadingRateKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-ShadingRateKHR-ShadingRateKHR-04491",
- "text": " The variable decorated with <code>ShadingRateKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-ShadingRateKHR-ShadingRateKHR-04492",
- "text": " The variable decorated with <code>ShadingRateKHR</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "SMCountNV": {
- "(VK_NV_shader_sm_builtins)": [
- {
- "vuid": "VUID-SMCountNV-SMCountNV-04363",
- "text": " The variable decorated with <code>SMCountNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-SMCountNV-SMCountNV-04364",
- "text": " The variable decorated with <code>SMCountNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "SMIDNV": {
- "(VK_NV_shader_sm_builtins)": [
- {
- "vuid": "VUID-SMIDNV-SMIDNV-04365",
- "text": " The variable decorated with <code>SMIDNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-SMIDNV-SMIDNV-04366",
- "text": " The variable decorated with <code>SMIDNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "SubgroupId": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-SubgroupId-SubgroupId-04367",
- "text": " The <code>SubgroupId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-SubgroupId-SubgroupId-04368",
- "text": " The variable decorated with <code>SubgroupId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-SubgroupId-SubgroupId-04369",
- "text": " The variable decorated with <code>SubgroupId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "SubgroupEqMask": {
- "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [
- {
- "vuid": "VUID-SubgroupEqMask-SubgroupEqMask-04370",
- "text": " The variable decorated with <code>SubgroupEqMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-SubgroupEqMask-SubgroupEqMask-04371",
- "text": " The variable decorated with <code>SubgroupEqMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values"
- }
- ]
- },
- "SubgroupGeMask": {
- "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [
- {
- "vuid": "VUID-SubgroupGeMask-SubgroupGeMask-04372",
- "text": " The variable decorated with <code>SubgroupGeMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-SubgroupGeMask-SubgroupGeMask-04373",
- "text": " The variable decorated with <code>SubgroupGeMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values"
- }
- ]
- },
- "SubgroupGtMask": {
- "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [
- {
- "vuid": "VUID-SubgroupGtMask-SubgroupGtMask-04374",
- "text": " The variable decorated with <code>SubgroupGtMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-SubgroupGtMask-SubgroupGtMask-04375",
- "text": " The variable decorated with <code>SubgroupGtMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values"
- }
- ]
- },
- "SubgroupLeMask": {
- "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [
- {
- "vuid": "VUID-SubgroupLeMask-SubgroupLeMask-04376",
- "text": " The variable decorated with <code>SubgroupLeMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-SubgroupLeMask-SubgroupLeMask-04377",
- "text": " The variable decorated with <code>SubgroupLeMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values"
- }
- ]
- },
- "SubgroupLtMask": {
- "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [
- {
- "vuid": "VUID-SubgroupLtMask-SubgroupLtMask-04378",
- "text": " The variable decorated with <code>SubgroupLtMask</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-SubgroupLtMask-SubgroupLtMask-04379",
- "text": " The variable decorated with <code>SubgroupLtMask</code> <strong class=\"purple\">must</strong> be declared as a four-component vector of 32-bit integer values"
- }
- ]
- },
- "SubgroupLocalInvocationId": {
- "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [
- {
- "vuid": "VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04380",
- "text": " The variable decorated with <code>SubgroupLocalInvocationId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04381",
- "text": " The variable decorated with <code>SubgroupLocalInvocationId</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "SubgroupSize": {
- "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [
- {
- "vuid": "VUID-SubgroupSize-SubgroupSize-04382",
- "text": " The variable decorated with <code>SubgroupSize</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-SubgroupSize-SubgroupSize-04383",
- "text": " The variable decorated with <code>SubgroupSize</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "TaskCountNV": {
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-TaskCountNV-TaskCountNV-04384",
- "text": " The <code>TaskCountNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TaskNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-TaskCountNV-TaskCountNV-04385",
- "text": " The variable decorated with <code>TaskCountNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-TaskCountNV-TaskCountNV-04386",
- "text": " The variable decorated with <code>TaskCountNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "TessCoord": {
- "core": [
- {
- "vuid": "VUID-TessCoord-TessCoord-04387",
- "text": " The <code>TessCoord</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationEvaluation</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-TessCoord-TessCoord-04388",
- "text": " The variable decorated with <code>TessCoord</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-TessCoord-TessCoord-04389",
- "text": " The variable decorated with <code>TessCoord</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
- }
- ]
- },
- "TessLevelOuter": {
- "core": [
- {
- "vuid": "VUID-TessLevelOuter-TessLevelOuter-04390",
- "text": " The <code>TessLevelOuter</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationControl</code> or <code>TessellationEvaluation</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-TessLevelOuter-TessLevelOuter-04391",
- "text": " The variable decorated with <code>TessLevelOuter</code> within the <code>TessellationControl</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-TessLevelOuter-TessLevelOuter-04392",
- "text": " The variable decorated with <code>TessLevelOuter</code> within the <code>TessellationEvaluation</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-TessLevelOuter-TessLevelOuter-04393",
- "text": " The variable decorated with <code>TessLevelOuter</code> <strong class=\"purple\">must</strong> be declared as an array of size four, containing 32-bit floating-point values"
- }
- ]
- },
- "TessLevelInner": {
- "core": [
- {
- "vuid": "VUID-TessLevelInner-TessLevelInner-04394",
- "text": " The <code>TessLevelInner</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>TessellationControl</code> or <code>TessellationEvaluation</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-TessLevelInner-TessLevelInner-04395",
- "text": " The variable decorated with <code>TessLevelInner</code> within the <code>TessellationControl</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-TessLevelInner-TessLevelInner-04396",
- "text": " The variable decorated with <code>TessLevelInner</code> within the <code>TessellationEvaluation</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-TessLevelInner-TessLevelInner-04397",
- "text": " The variable decorated with <code>TessLevelInner</code> <strong class=\"purple\">must</strong> be declared as an array of size two, containing 32-bit floating-point values"
- }
- ]
- },
- "VertexIndex": {
- "core": [
- {
- "vuid": "VUID-VertexIndex-VertexIndex-04398",
- "text": " The <code>VertexIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-VertexIndex-VertexIndex-04399",
- "text": " The variable decorated with <code>VertexIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-VertexIndex-VertexIndex-04400",
- "text": " The variable decorated with <code>VertexIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "ViewIndex": {
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-ViewIndex-ViewIndex-04401",
- "text": " The <code>ViewIndex</code> decoration <strong class=\"purple\">must</strong> not be used within the <code>GLCompute</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-ViewIndex-ViewIndex-04402",
- "text": " The variable decorated with <code>ViewIndex</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-ViewIndex-ViewIndex-04403",
- "text": " The variable decorated with <code>ViewIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "ViewportIndex": {
- "core": [
- {
- "vuid": "VUID-ViewportIndex-ViewportIndex-04404",
- "text": " The <code>ViewportIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationEvaluation</code>, <code>Geometry</code>, or <code>Fragment</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-ViewportIndex-ViewportIndex-04406",
- "text": " The variable decorated with <code>ViewportIndex</code> within the <code>MeshNV</code>, <code>Vertex</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-ViewportIndex-ViewportIndex-04407",
- "text": " The variable decorated with <code>ViewportIndex</code> within the <code>Fragment</code> {ExecutionModel} <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-ViewportIndex-ViewportIndex-04408",
- "text": " The variable decorated with <code>ViewportIndex</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ],
- "(VK_VERSION_1_2)": [
- {
- "vuid": "VUID-ViewportIndex-ViewportIndex-04405",
- "text": " If the <a href=\"#features-shaderOutputViewportIndex\">shaderOutputViewportIndex</a> feature is not enabled then the <code>ViewportIndex</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Geometry</code> or <code>Fragment</code> {ExecutionModel}"
- }
- ]
- },
- "ViewportMaskNV": {
- "(VK_NV_viewport_array2)": [
- {
- "vuid": "VUID-ViewportMaskNV-ViewportMaskNV-04409",
- "text": " The <code>ViewportMaskNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code>, <code>MeshNV</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-ViewportMaskNV-ViewportMaskNV-04410",
- "text": " The variable decorated with <code>ViewportMaskNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-ViewportMaskNV-ViewportMaskNV-04411",
- "text": " The variable decorated with <code>ViewportMaskNV</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit integer values"
- }
- ]
- },
- "ViewportMaskPerViewNV": {
- "(VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2)": [
- {
- "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04412",
- "text": " The <code>ViewportMaskPerViewNV</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>Vertex</code>, <code>MeshNV</code>, <code>TessellationControl</code>, <code>TessellationEvaluation</code>, or <code>Geometry</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04413",
- "text": " The variable decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Output</code> {StorageClass}"
- },
- {
- "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04414",
- "text": " The variable decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> be declared as an array of 32-bit integer values"
- },
- {
- "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04415",
- "text": " The array decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> be a size less than or equal to 32"
- },
- {
- "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04416",
- "text": " The array decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> be a size greater than the maximum view in the subpass&#8217;s view mask"
- },
- {
- "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04417",
- "text": " The array variable decorated with <code>ViewportMaskPerViewNV</code> <strong class=\"purple\">must</strong> only be indexed by a constant or specialization constant"
- }
- ]
- },
- "WarpsPerSMNV": {
- "(VK_NV_shader_sm_builtins)": [
- {
- "vuid": "VUID-WarpsPerSMNV-WarpsPerSMNV-04418",
- "text": " The variable decorated with <code>WarpsPerSMNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-WarpsPerSMNV-WarpsPerSMNV-04419",
- "text": " The variable decorated with <code>WarpsPerSMNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "WarpIDNV": {
- "(VK_NV_shader_sm_builtins)": [
- {
- "vuid": "VUID-WarpIDNV-WarpIDNV-04420",
- "text": " The variable decorated with <code>WarpIDNV</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-WarpIDNV-WarpIDNV-04421",
- "text": " The variable decorated with <code>WarpIDNV</code> <strong class=\"purple\">must</strong> be declared as a scalar 32-bit integer value"
- }
- ]
- },
- "WorkgroupId": {
- "core": [
- {
- "vuid": "VUID-WorkgroupId-WorkgroupId-04422",
- "text": " The <code>WorkgroupId</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-WorkgroupId-WorkgroupId-04423",
- "text": " The variable decorated with <code>WorkgroupId</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-WorkgroupId-WorkgroupId-04424",
- "text": " The variable decorated with <code>WorkgroupId</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values"
- }
- ]
- },
- "WorkgroupSize": {
- "core": [
- {
- "vuid": "VUID-WorkgroupSize-WorkgroupSize-04425",
- "text": " The <code>WorkgroupSize</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>GLCompute</code>, <code>MeshNV</code>, or <code>TaskNV</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-WorkgroupSize-WorkgroupSize-04426",
- "text": " The variable decorated with <code>WorkgroupSize</code> <strong class=\"purple\">must</strong> be a specialization constant or a constant"
- },
- {
- "vuid": "VUID-WorkgroupSize-WorkgroupSize-04427",
- "text": " The variable decorated with <code>WorkgroupSize</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit integer values"
- }
- ]
- },
- "WorldRayDirectionKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04428",
- "text": " The <code>WorldRayDirectionKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04429",
- "text": " The variable decorated with <code>WorldRayDirectionKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04430",
- "text": " The variable decorated with <code>WorldRayDirectionKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
- }
- ]
- },
- "WorldRayOriginKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-WorldRayOriginKHR-WorldRayOriginKHR-04431",
- "text": " The <code>WorldRayOriginKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, <code>ClosestHitKHR</code>, or <code>MissKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-WorldRayOriginKHR-WorldRayOriginKHR-04432",
- "text": " The variable decorated with <code>WorldRayOriginKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-WorldRayOriginKHR-WorldRayOriginKHR-04433",
- "text": " The variable decorated with <code>WorldRayOriginKHR</code> <strong class=\"purple\">must</strong> be declared as a three-component vector of 32-bit floating-point values"
- }
- ]
- },
- "WorldToObjectKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-WorldToObjectKHR-WorldToObjectKHR-04434",
- "text": " The <code>WorldToObjectKHR</code> decoration <strong class=\"purple\">must</strong> be used only within the <code>IntersectionKHR</code>, <code>AnyHitKHR</code>, or <code>ClosestHitKHR</code> {ExecutionModel}"
- },
- {
- "vuid": "VUID-WorldToObjectKHR-WorldToObjectKHR-04435",
- "text": " The variable decorated with <code>WorldToObjectKHR</code> <strong class=\"purple\">must</strong> be declared using the <code>Input</code> {StorageClass}"
- },
- {
- "vuid": "VUID-WorldToObjectKHR-WorldToObjectKHR-04436",
- "text": " The variable decorated with <code>WorldToObjectKHR</code> <strong class=\"purple\">must</strong> be declared as a matrix with four columns of three-component vectors of 32-bit floating-point values"
- }
- ]
- },
- "vkCreateQueryPool": {
- "core": [
- {
- "vuid": "VUID-vkCreateQueryPool-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateQueryPool-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkQueryPoolCreateInfo\">VkQueryPoolCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreateQueryPool-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"
- },
- {
- "vuid": "VUID-vkCreateQueryPool-pQueryPool-parameter",
- "text": " <code>pQueryPool</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
- }
- ]
- },
- "VkQueryPoolCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00791",
- "text": " If the <a href=\"#features-pipelineStatisticsQuery\">pipeline statistics queries</a> feature is not enabled, <code>queryType</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code>"
- },
- {
- "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00792",
- "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code>, <code>pipelineStatistics</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryPipelineStatisticFlagBits\">VkQueryPipelineStatisticFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkQueryPoolCreateInfo-queryCount-02763",
- "text": " <code>queryCount</code> <strong class=\"purple\">must</strong> be greater than 0"
- },
- {
- "vuid": "VUID-VkQueryPoolCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkQueryPoolCreateInfo-pNext-pNext",
- "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=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a>, <a href=\"#VkQueryPoolPerformanceQueryCreateInfoINTEL\">VkQueryPoolPerformanceQueryCreateInfoINTEL</a>, <a href=\"#VkVideoDecodeH264ProfileEXT\">VkVideoDecodeH264ProfileEXT</a>, <a href=\"#VkVideoDecodeH265ProfileEXT\">VkVideoDecodeH265ProfileEXT</a>, <a href=\"#VkVideoEncodeH264ProfileEXT\">VkVideoEncodeH264ProfileEXT</a>, <a href=\"#VkVideoEncodeH265ProfileEXT\">VkVideoEncodeH265ProfileEXT</a>, or <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a>"
- },
- {
- "vuid": "VUID-VkQueryPoolCreateInfo-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-VkQueryPoolCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkQueryPoolCreateInfo-queryType-parameter",
- "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value"
- }
- ],
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-VkQueryPoolCreateInfo-queryType-03222",
- "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"
- }
- ]
- },
- "VkQueryPoolPerformanceCreateInfoKHR": {
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-queueFamilyIndex-03236",
- "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be a valid queue family index of the device"
- },
- {
- "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-performanceCounterQueryPools-03237",
- "text": " The <a href=\"#features-performanceCounterQueryPools\"><code>performanceCounterQueryPools</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-03321",
- "text": " Each element of <code>pCounterIndices</code> <strong class=\"purple\">must</strong> be in the range of counters reported by <code>vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR</code> for the queue family specified in <code>queueFamilyIndex</code>"
- },
- {
- "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-parameter",
- "text": " <code>pCounterIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterIndexCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-counterIndexCount-arraylength",
- "text": " <code>counterIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR": {
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pPerformanceQueryCreateInfo-parameter",
- "text": " <code>pPerformanceQueryCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pNumPasses-parameter",
- "text": " <code>pNumPasses</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- }
- ]
- },
- "vkDestroyQueryPool": {
- "core": [
- {
- "vuid": "VUID-vkDestroyQueryPool-queryPool-00793",
- "text": " All submitted commands that refer to <code>queryPool</code> <strong class=\"purple\">must</strong> have completed execution"
- },
- {
- "vuid": "VUID-vkDestroyQueryPool-queryPool-00794",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>queryPool</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyQueryPool-queryPool-00795",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>queryPool</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-vkDestroyQueryPool-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyQueryPool-queryPool-parameter",
- "text": " If <code>queryPool</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyQueryPool-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"
- },
- {
- "vuid": "VUID-vkDestroyQueryPool-queryPool-parent",
- "text": " If <code>queryPool</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "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>"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-vkCmdResetQueryPool-None-02841",
- "text": " All queries used by the command <strong class=\"purple\">must</strong> not be active"
- },
- {
- "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdResetQueryPool-queryPool-parameter",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
- },
- {
- "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations"
- },
- {
- "vuid": "VUID-vkCmdResetQueryPool-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdResetQueryPool-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-vkCmdResetQueryPool-firstQuery-02862",
- "text": " If <code>queryPool</code> was created with <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, this command <strong class=\"purple\">must</strong> not be recorded in a command buffer that, either directly or through secondary command buffers, also contains begin commands for a query from the set of queries <span class=\"eq\">[<code>firstQuery</code>, <code>firstQuery</code> &#43; <code>queryCount</code> - 1]</span>"
- }
- ]
- },
- "vkResetQueryPool": {
- "(VK_VERSION_1_2,VK_EXT_host_query_reset)": [
- {
- "vuid": "VUID-vkResetQueryPool-None-02665",
- "text": " The <a href=\"#features-hostQueryReset\">hostQueryReset</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "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>"
- },
- {
- "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>"
- },
- {
- "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"
- },
- {
- "vuid": "VUID-vkResetQueryPool-firstQuery-02742",
- "text": " The range of queries specified by <code>firstQuery</code> and <code>queryCount</code> in <code>queryPool</code> <strong class=\"purple\">must</strong> not be in use by calls to <a href=\"#vkGetQueryPoolResults\">vkGetQueryPoolResults</a> or <code>vkResetQueryPool</code> in other threads"
- },
- {
- "vuid": "VUID-vkResetQueryPool-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkResetQueryPool-queryPool-parameter",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
- },
- {
- "vuid": "VUID-vkResetQueryPool-queryPool-parent",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCmdBeginQuery": {
- "core": [
- {
- "vuid": "VUID-vkCmdBeginQuery-None-00807",
- "text": " All queries used by the command <strong class=\"purple\">must</strong> be unavailable"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-queryType-02804",
- "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_TIMESTAMP</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-queryType-00800",
- "text": " If the <a href=\"#features-occlusionQueryPrecise\">precise occlusion queries</a> feature is not enabled, or the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_OCCLUSION</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_CONTROL_PRECISE_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-query-00802",
- "text": " <code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-queryType-00803",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_OCCLUSION</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-queryType-00804",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> and any of the <code>pipelineStatistics</code> indicate graphics operations, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-queryType-00805",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> and any of the <code>pipelineStatistics</code> indicate compute operations, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-queryPool-01922",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> that differs from that of any queries that are <a href=\"#queries-operation-active\">active</a> within <code>commandBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-queryPool-parameter",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryControlFlagBits\">VkQueryControlFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkCmdBeginQuery-queryType-04728",
- "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>"
- }
- ],
- "(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-vkCmdBeginQuery-queryType-04729",
- "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV</code>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdBeginQuery-commandBuffer-01885",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdBeginQuery-query-00808",
- "text": " If called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
- }
- ],
- "(VK_KHR_video_encode_queue)": [
- {
- "vuid": "VUID-vkCmdBeginQuery-queryType-04862",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support <a href=\"#video-encode-operations\">video encode operations</a>"
- }
- ],
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdBeginQuery-queryType-02327",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-queryType-02328",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> then <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackQueries</code> <strong class=\"purple\">must</strong> be supported"
- }
- ],
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-vkCmdBeginQuery-queryPool-03223",
- "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <a href=\"#profiling-lock\">profiling lock</a> <strong class=\"purple\">must</strong> have been held before <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> was called on <code>commandBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-queryPool-03224",
- "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR</code>, the query begin <strong class=\"purple\">must</strong> be the first recorded command in <code>commandBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-queryPool-03225",
- "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR</code>, the begin command <strong class=\"purple\">must</strong> not be recorded within a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-queryPool-03226",
- "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and another query pool with a <code>queryType</code> <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> has been used within <code>commandBuffer</code>, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as <code>commandBuffer</code>, the <a href=\"#features-performanceCounterMultipleQueryPools\"><code>performanceCounterMultipleQueryPools</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdBeginQuery-None-02863",
- "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, this command <strong class=\"purple\">must</strong> not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a <code>vkCmdResetQueryPool</code> command affecting the same query"
- }
- ]
- },
- "vkCmdBeginQueryIndexedEXT": {
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-None-00807",
- "text": " All queries used by the command <strong class=\"purple\">must</strong> be unavailable"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02804",
- "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_TIMESTAMP</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00800",
- "text": " If the <a href=\"#features-occlusionQueryPrecise\">precise occlusion queries</a> feature is not enabled, or the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_OCCLUSION</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_CONTROL_PRECISE_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-query-00802",
- "text": " <code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00803",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_OCCLUSION</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00804",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> and any of the <code>pipelineStatistics</code> indicate graphics operations, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00805",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> and any of the <code>pipelineStatistics</code> indicate compute operations, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-04753",
- "text": " If the <code>queryPool</code> was created with the same <code>queryType</code> as that of another <a href=\"#queries-operation-active\">active</a> query within <code>commandBuffer</code>, then <code>index</code> <strong class=\"purple\">must</strong> not match the index used for the active query"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02338",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02339",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>index</code> parameter <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreams</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02340",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>index</code> <strong class=\"purple\">must</strong> be zero"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02341",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> then <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackQueries</code> <strong class=\"purple\">must</strong> be supported"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-parameter",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryControlFlagBits\">VkQueryControlFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-04728",
- "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-04729",
- "text": " The <code>queryType</code> used to create <code>queryPool</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-01885",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-query-00808",
- "text": " If called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_KHR_video_encode_queue)": [
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-04862",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR</code> the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support <a href=\"#video-encode-operations\">video encode operations</a>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03223",
- "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <a href=\"#profiling-lock\">profiling lock</a> <strong class=\"purple\">must</strong> have been held before <a href=\"#vkBeginCommandBuffer\">vkBeginCommandBuffer</a> was called on <code>commandBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03224",
- "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR</code>, the query begin <strong class=\"purple\">must</strong> be the first recorded command in <code>commandBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03225",
- "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR</code>, the begin command <strong class=\"purple\">must</strong> not be recorded within a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03226",
- "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and another query pool with a <code>queryType</code> <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> has been used within <code>commandBuffer</code>, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as <code>commandBuffer</code>, the <a href=\"#features-performanceCounterMultipleQueryPools\"><code>performanceCounterMultipleQueryPools</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdBeginQueryIndexedEXT-None-02863",
- "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, this command <strong class=\"purple\">must</strong> not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a <code>vkCmdResetQueryPool</code> command affecting the same query"
- }
- ]
- },
- "vkCmdEndQuery": {
- "core": [
- {
- "vuid": "VUID-vkCmdEndQuery-None-01923",
- "text": " All queries used by the command <strong class=\"purple\">must</strong> be <a href=\"#queries-operation-active\">active</a>"
- },
- {
- "vuid": "VUID-vkCmdEndQuery-query-00810",
- "text": " <code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
- },
- {
- "vuid": "VUID-vkCmdEndQuery-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdEndQuery-queryPool-parameter",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
- },
- {
- "vuid": "VUID-vkCmdEndQuery-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdEndQuery-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, decode, or encode operations"
- },
- {
- "vuid": "VUID-vkCmdEndQuery-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdEndQuery-commandBuffer-01886",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdEndQuery-query-00812",
- "text": " If <code>vkCmdEndQuery</code> is called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
- }
- ],
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-vkCmdEndQuery-queryPool-03227",
- "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one or more of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR</code>, the <a href=\"#vkCmdEndQuery\">vkCmdEndQuery</a> <strong class=\"purple\">must</strong> be the last recorded command in <code>commandBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdEndQuery-queryPool-03228",
- "text": " If <code>queryPool</code> was created with a <code>queryType</code> of <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> and one or more of the counters used to create <code>queryPool</code> was <code>VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR</code>, the <a href=\"#vkCmdEndQuery\">vkCmdEndQuery</a> <strong class=\"purple\">must</strong> not be recorded within a render pass instance"
- }
- ]
- },
- "vkCmdEndQueryIndexedEXT": {
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdEndQueryIndexedEXT-None-02342",
- "text": " All queries used by the command <strong class=\"purple\">must</strong> be <a href=\"#queries-operation-active\">active</a>"
- },
- {
- "vuid": "VUID-vkCmdEndQueryIndexedEXT-query-02343",
- "text": " <code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
- },
- {
- "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-02346",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>index</code> parameter <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreams</code>"
- },
- {
- "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-02347",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> the <code>index</code> <strong class=\"purple\">must</strong> be zero"
- },
- {
- "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-02723",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT</code> <code>index</code> <strong class=\"purple\">must</strong> equal the <code>index</code> used to begin the query"
- },
- {
- "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryPool-parameter",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
- },
- {
- "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdEndQueryIndexedEXT-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-02344",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdEndQueryIndexedEXT-query-02345",
- "text": " If <code>vkCmdEndQueryIndexedEXT</code> is called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
- }
- ]
- },
- "vkGetQueryPoolResults": {
- "core": [
- {
- "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>"
- },
- {
- "vuid": "VUID-vkGetQueryPoolResults-flags-00815",
- "text": " If <code>VK_QUERY_RESULT_64_BIT</code> is set in <code>flags</code> then <code>pData</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>8</code>"
- },
- {
- "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>"
- },
- {
- "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>"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-vkGetQueryPoolResults-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetQueryPoolResults-queryPool-parameter",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
- },
- {
- "vuid": "VUID-vkGetQueryPoolResults-pData-parameter",
- "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
- },
- {
- "vuid": "VUID-vkGetQueryPoolResults-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryResultFlagBits\">VkQueryResultFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkGetQueryPoolResults-dataSize-arraylength",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkGetQueryPoolResults-queryPool-parent",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ],
- "!(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-vkGetQueryPoolResults-flags-02827",
- "text": " If <code>VK_QUERY_RESULT_64_BIT</code> is not set in <code>flags</code>, then <code>pData</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>4</code>"
- }
- ],
- "(VK_KHR_performance_query)": [
- {
- "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>"
- },
- {
- "vuid": "VUID-vkGetQueryPoolResults-queryType-03229",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then <code>pData</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of the size of <a href=\"#VkPerformanceCounterResultKHR\">VkPerformanceCounterResultKHR</a>"
- },
- {
- "vuid": "VUID-vkGetQueryPoolResults-queryType-04519",
- "text": " If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be large enough to contain <code>VkQueryPoolPerformanceCreateInfoKHR</code>::<code>counterIndexCount</code> used to create <code>queryPool</code> times the size of <a href=\"#VkPerformanceCounterResultKHR\">VkPerformanceCounterResultKHR</a>"
- },
- {
- "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_PARTIAL_BIT</code> or <code>VK_QUERY_RESULT_64_BIT</code>"
- },
- {
- "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>"
- }
- ],
- "(VK_KHR_video_queue)": [
- {
- "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>, <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkGetQueryPoolResults-flags-04811",
- "text": " If <code>flags</code> includes <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, it <strong class=\"purple\">must</strong> not include <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>"
- }
- ]
- },
- "vkCmdCopyQueryPoolResults": {
- "core": [
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-dstOffset-00819",
- "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>"
- },
- {
- "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>"
- },
- {
- "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>"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-00823",
- "text": " If <code>VK_QUERY_RESULT_64_BIT</code> is set in <code>flags</code> then <code>dstOffset</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>8</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have enough storage, from <code>dstOffset</code>, to contain the result of each query, as described <a href=\"#queries-operation-memorylayout\">here</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826",
- "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-queryPool-parameter",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryResultFlagBits\">VkQueryResultFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-commonparent",
- "text": " Each of <code>commandBuffer</code>, <code>dstBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_KHR_performance_query)": [
- {
- "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>"
- },
- {
- "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_PARTIAL_BIT</code> or <code>VK_QUERY_RESULT_64_BIT</code>"
- },
- {
- "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>"
- }
- ],
- "(VK_INTEL_performance_query)": [
- {
- "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>"
- }
- ]
- },
- "vkCmdWriteTimestamp2": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-stage-03929",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-stage-03930",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-synchronization2-03858",
- "text": " The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-stage-03859",
- "text": " <code>stage</code> <strong class=\"purple\">must</strong> only include a single pipeline stage"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-stage-03860",
- "text": " <code>stage</code> <strong class=\"purple\">must</strong> only include stages valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-queryPool-03861",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> of <code>VK_QUERY_TYPE_TIMESTAMP</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-queryPool-03862",
- "text": " The query identified by <code>queryPool</code> and <code>query</code> <strong class=\"purple\">must</strong> be <em>unavailable</em>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-timestampValidBits-03863",
- "text": " The command pool&#8217;s queue family <strong class=\"purple\">must</strong> support a non-zero <code>timestampValidBits</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-query-04903",
- "text": " <code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-stage-parameter",
- "text": " <code>stage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-queryPool-parameter",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, compute, decode, or encode operations"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-stage-03931",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-stage-03932",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-stage-03933",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-stage-03934",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-stage-03935",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-stage-04956",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-stage-04957",
- "text": " If the <a href=\"#features-subpassShading\">subpass shading</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-stage-04995",
- "text": " If the <a href=\"#features-invocationMask\">invocation mask image</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-None-03864",
- "text": " All queries used by the command <strong class=\"purple\">must</strong> be unavailable"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp2-query-03865",
- "text": " If <code>vkCmdWriteTimestamp2</code> is called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
- }
- ]
- },
- "vkCmdWriteTimestamp": {
- "core": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04074",
- "text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> be a <a href=\"#synchronization-pipeline-stages-supported\">valid stage</a> for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04075",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04076",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp-queryPool-01416",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> of <code>VK_QUERY_TYPE_TIMESTAMP</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp-queryPool-00828",
- "text": " The query identified by <code>queryPool</code> and <code>query</code> <strong class=\"purple\">must</strong> be <em>unavailable</em>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp-timestampValidBits-00829",
- "text": " The command pool&#8217;s queue family <strong class=\"purple\">must</strong> support a non-zero <code>timestampValidBits</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp-query-04904",
- "text": " <code>query</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-parameter",
- "text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> value"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp-queryPool-parameter",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, compute, decode, or encode operations"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04077",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04078",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04079",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- }
- ],
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04080",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code> or <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04081",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp-synchronization2-06489",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_NONE</code>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-06490",
- "text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_NONE</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdWriteTimestamp-None-00830",
- "text": " All queries used by the command <strong class=\"purple\">must</strong> be unavailable"
- },
- {
- "vuid": "VUID-vkCmdWriteTimestamp-query-00831",
- "text": " If <code>vkCmdWriteTimestamp</code> is called within a render pass instance, the sum of <code>query</code> and the number of bits set in the current subpass&#8217;s view mask <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
- }
- ]
- },
- "vkAcquireProfilingLockKHR": {
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-vkAcquireProfilingLockKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkAcquireProfilingLockKHR-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAcquireProfilingLockInfoKHR\">VkAcquireProfilingLockInfoKHR</a> structure"
- }
- ]
- },
- "VkAcquireProfilingLockInfoKHR": {
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-VkAcquireProfilingLockInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkAcquireProfilingLockInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkAcquireProfilingLockInfoKHR-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkReleaseProfilingLockKHR": {
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-vkReleaseProfilingLockKHR-device-03235",
- "text": " The profiling lock of <code>device</code> <strong class=\"purple\">must</strong> have been held via a previous successful call to <a href=\"#vkAcquireProfilingLockKHR\">vkAcquireProfilingLockKHR</a>"
- },
- {
- "vuid": "VUID-vkReleaseProfilingLockKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- }
- ]
- },
- "vkInitializePerformanceApiINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-vkInitializePerformanceApiINTEL-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkInitializePerformanceApiINTEL-pInitializeInfo-parameter",
- "text": " <code>pInitializeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkInitializePerformanceApiInfoINTEL\">VkInitializePerformanceApiInfoINTEL</a> structure"
- }
- ]
- },
- "VkInitializePerformanceApiInfoINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-VkInitializePerformanceApiInfoINTEL-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL</code>"
- },
- {
- "vuid": "VUID-VkInitializePerformanceApiInfoINTEL-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkUninitializePerformanceApiINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-vkUninitializePerformanceApiINTEL-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- }
- ]
- },
- "vkGetPerformanceParameterINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-vkGetPerformanceParameterINTEL-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPerformanceParameterINTEL-parameter-parameter",
- "text": " <code>parameter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceParameterTypeINTEL\">VkPerformanceParameterTypeINTEL</a> value"
- },
- {
- "vuid": "VUID-vkGetPerformanceParameterINTEL-pValue-parameter",
- "text": " <code>pValue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPerformanceValueINTEL\">VkPerformanceValueINTEL</a> structure"
- }
- ]
- },
- "VkPerformanceValueINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-VkPerformanceValueINTEL-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceValueTypeINTEL\">VkPerformanceValueTypeINTEL</a> value"
- },
- {
- "vuid": "VUID-VkPerformanceValueINTEL-valueString-parameter",
- "text": " If <code>type</code> is <code>VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL</code>, the <code>valueString</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- }
- ]
- },
- "VkQueryPoolPerformanceQueryCreateInfoINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL</code>"
- },
- {
- "vuid": "VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-performanceCountersSampling-parameter",
- "text": " <code>performanceCountersSampling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPoolSamplingModeINTEL\">VkQueryPoolSamplingModeINTEL</a> value"
- }
- ]
- },
- "vkCmdSetPerformanceMarkerINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-pMarkerInfo-parameter",
- "text": " <code>pMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPerformanceMarkerInfoINTEL\">VkPerformanceMarkerInfoINTEL</a> structure"
- },
- {
- "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations"
- }
- ]
- },
- "VkPerformanceMarkerInfoINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-VkPerformanceMarkerInfoINTEL-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL</code>"
- },
- {
- "vuid": "VUID-VkPerformanceMarkerInfoINTEL-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkCmdSetPerformanceStreamMarkerINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-pMarkerInfo-parameter",
- "text": " <code>pMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPerformanceStreamMarkerInfoINTEL\">VkPerformanceStreamMarkerInfoINTEL</a> structure"
- },
- {
- "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations"
- }
- ]
- },
- "VkPerformanceStreamMarkerInfoINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-marker-02735",
- "text": " The value written by the application into <code>marker</code> <strong class=\"purple\">must</strong> only used the valid bits as reported by <a href=\"#vkGetPerformanceParameterINTEL\">vkGetPerformanceParameterINTEL</a> with the <code>VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL</code>"
- },
- {
- "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL</code>"
- },
- {
- "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkCmdSetPerformanceOverrideINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-02736",
- "text": " <code>pOverrideInfo</code> <strong class=\"purple\">must</strong> not be used with a <a href=\"#VkPerformanceOverrideTypeINTEL\">VkPerformanceOverrideTypeINTEL</a> that is not reported available by <code>vkGetPerformanceParameterINTEL</code>"
- },
- {
- "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-parameter",
- "text": " <code>pOverrideInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPerformanceOverrideInfoINTEL\">VkPerformanceOverrideInfoINTEL</a> structure"
- },
- {
- "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations"
- }
- ]
- },
- "VkPerformanceOverrideInfoINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-VkPerformanceOverrideInfoINTEL-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL</code>"
- },
- {
- "vuid": "VUID-VkPerformanceOverrideInfoINTEL-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkPerformanceOverrideInfoINTEL-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceOverrideTypeINTEL\">VkPerformanceOverrideTypeINTEL</a> value"
- }
- ]
- },
- "vkAcquirePerformanceConfigurationINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-pAcquireInfo-parameter",
- "text": " <code>pAcquireInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPerformanceConfigurationAcquireInfoINTEL\">VkPerformanceConfigurationAcquireInfoINTEL</a> structure"
- },
- {
- "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-pConfiguration-parameter",
- "text": " <code>pConfiguration</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPerformanceConfigurationINTEL\">VkPerformanceConfigurationINTEL</a> handle"
- }
- ]
- },
- "VkPerformanceConfigurationAcquireInfoINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL</code>"
- },
- {
- "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceConfigurationTypeINTEL\">VkPerformanceConfigurationTypeINTEL</a> value"
- }
- ]
- },
- "vkQueueSetPerformanceConfigurationINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-queue-parameter",
- "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
- },
- {
- "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-configuration-parameter",
- "text": " <code>configuration</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceConfigurationINTEL\">VkPerformanceConfigurationINTEL</a> handle"
- },
- {
- "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-commonparent",
- "text": " Both of <code>configuration</code>, and <code>queue</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "vkReleasePerformanceConfigurationINTEL": {
- "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [
- {
- "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-02737",
- "text": " <code>configuration</code> <strong class=\"purple\">must</strong> not be released before all command buffers submitted while the configuration was set are in <a href=\"#commandbuffers-lifecycle\">pending state</a>"
- },
- {
- "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-parameter",
- "text": " If <code>configuration</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>configuration</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceConfigurationINTEL\">VkPerformanceConfigurationINTEL</a> handle"
- },
- {
- "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-parent",
- "text": " If <code>configuration</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "VkQueueFamilyQueryResultStatusProperties2KHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkQueueFamilyQueryResultStatusProperties2KHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR</code>"
- }
- ]
- },
- "vkCmdClearColorImage": {
- "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-vkCmdClearColorImage-image-01993",
- "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>image</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkCmdClearColorImage-image-00002",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-image-00003",
- "text": " If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-imageLayout-00004",
- "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresource ranges of <code>image</code> specified in <code>pRanges</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-aspectMask-02498",
- "text": " The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>aspectMask</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each only include <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-baseMipLevel-01470",
- "text": " The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>baseMipLevel</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-pRanges-01692",
- "text": " For each <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> element of <code>pRanges</code>, if the <code>levelCount</code> member is not <code>VK_REMAINING_MIP_LEVELS</code>, then <span class=\"eq\"><code>baseMipLevel</code> &#43; <code>levelCount</code></span> <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"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-baseArrayLayer-01472",
- "text": " The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>baseArrayLayer</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-pRanges-01693",
- "text": " For each <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> element of <code>pRanges</code>, if the <code>layerCount</code> member is not <code>VK_REMAINING_ARRAY_LAYERS</code>, then <span class=\"eq\"><code>baseArrayLayer</code> &#43; <code>layerCount</code></span> <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"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-image-00007",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> not have a compressed or depth/stencil format"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-pColor-04961",
- "text": " <code>pColor</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkClearColorValue\">VkClearColorValue</a> union"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-imageLayout-parameter",
- "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-pRanges-parameter",
- "text": " <code>pRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>rangeCount</code> valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structures"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-rangeCount-arraylength",
- "text": " <code>rangeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>image</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_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdClearColorImage-image-01545",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> not use any of the <a href=\"#formats-requiring-sampler-ycbcr-conversion\">formats that require a sampler Y&#8217;C<sub>B</sub>C<sub>R</sub> conversion</a>"
- }
- ],
- "!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkCmdClearColorImage-imageLayout-00005",
- "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkCmdClearColorImage-imageLayout-01394",
- "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdClearColorImage-commandBuffer-01805",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>image</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdClearColorImage-commandBuffer-01806",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <strong class=\"purple\">must</strong> not be an unprotected image"
- }
- ]
- },
- "vkCmdClearDepthStencilImage": {
- "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-image-01994",
- "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>image</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>"
- }
- ],
- "!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-image-00009",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02658",
- "text": " If the <code>aspect</code> member of any element of <code>pRanges</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>image</code> was created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>::<code>stencilUsage</code> used to create <code>image</code>"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02659",
- "text": " If the <code>aspect</code> member of any element of <code>pRanges</code> includes <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, and <code>image</code> was not created with <a href=\"#VkImageStencilUsageCreateInfo\">separate stencil usage</a>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> used to create <code>image</code>"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02660",
- "text": " If the <code>aspect</code> member of any element of <code>pRanges</code> includes <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> <strong class=\"purple\">must</strong> have been included in the <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> used to create <code>image</code>"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-image-00010",
- "text": " If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-00011",
- "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresource ranges of <code>image</code> specified in <code>pRanges</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-00012",
- "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be either of <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-aspectMask-02824",
- "text": " The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>aspectMask</code> member of each element of the <code>pRanges</code> array <strong class=\"purple\">must</strong> not include bits other than <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-image-02825",
- "text": " If the <code>image</code>&#8217;s format does not have a stencil component, then the <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>aspectMask</code> member of each element of the <code>pRanges</code> array <strong class=\"purple\">must</strong> not include the <code>VK_IMAGE_ASPECT_STENCIL_BIT</code> bit"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-image-02826",
- "text": " If the <code>image</code>&#8217;s format does not have a depth component, then the <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>aspectMask</code> member of each element of the <code>pRanges</code> array <strong class=\"purple\">must</strong> not include the <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> bit"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474",
- "text": " The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>baseMipLevel</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-01694",
- "text": " For each <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> element of <code>pRanges</code>, if the <code>levelCount</code> member is not <code>VK_REMAINING_MIP_LEVELS</code>, then <span class=\"eq\"><code>baseMipLevel</code> &#43; <code>levelCount</code></span> <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"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476",
- "text": " The <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a>::<code>baseArrayLayer</code> members of the elements of the <code>pRanges</code> array <strong class=\"purple\">must</strong> each be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-01695",
- "text": " For each <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> element of <code>pRanges</code>, if the <code>layerCount</code> member is not <code>VK_REMAINING_ARRAY_LAYERS</code>, then <span class=\"eq\"><code>baseArrayLayer</code> &#43; <code>layerCount</code></span> <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"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-image-00014",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> have a depth/stencil format"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-parameter",
- "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter",
- "text": " <code>pDepthStencil</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkClearDepthStencilValue\">VkClearDepthStencilValue</a> structure"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-parameter",
- "text": " <code>pRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>rangeCount</code> valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structures"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength",
- "text": " <code>rangeCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-01807",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>image</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-01808",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>image</code> <strong class=\"purple\">must</strong> not be an unprotected image"
- }
- ]
- },
- "vkCmdClearAttachments": {
- "core": [
- {
- "vuid": "VUID-vkCmdClearAttachments-aspectMask-02501",
- "text": " If the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, then the <code>colorAttachment</code> member of that element <strong class=\"purple\">must</strong> either refer to a color attachment which is <code>VK_ATTACHMENT_UNUSED</code>, or <strong class=\"purple\">must</strong> be a valid color attachment"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-aspectMask-02502",
- "text": " If the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, then the current subpass' depth/stencil attachment <strong class=\"purple\">must</strong> either be <code>VK_ATTACHMENT_UNUSED</code>, or <strong class=\"purple\">must</strong> have a depth component"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-aspectMask-02503",
- "text": " If the <code>aspectMask</code> member of any element of <code>pAttachments</code> contains <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>, then the current subpass' depth/stencil attachment <strong class=\"purple\">must</strong> either be <code>VK_ATTACHMENT_UNUSED</code>, or <strong class=\"purple\">must</strong> have a stencil component"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-rect-02682",
- "text": " The <code>rect</code> member of each element of <code>pRects</code> <strong class=\"purple\">must</strong> have an <code>extent.width</code> greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-rect-02683",
- "text": " The <code>rect</code> member of each element of <code>pRects</code> <strong class=\"purple\">must</strong> have an <code>extent.height</code> greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-pRects-00016",
- "text": " The rectangular region specified by each element of <code>pRects</code> <strong class=\"purple\">must</strong> be contained within the render area of the current render pass instance"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-pRects-00017",
- "text": " The layers specified by each element of <code>pRects</code> <strong class=\"purple\">must</strong> be contained within every attachment that <code>pAttachments</code> refers to"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-layerCount-01934",
- "text": " The <code>layerCount</code> member of each element of <code>pRects</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-pAttachments-parameter",
- "text": " <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkClearAttachment\">VkClearAttachment</a> structures"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-pRects-parameter",
- "text": " <code>pRects</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>rectCount</code> <a href=\"#VkClearRect\">VkClearRect</a> structures"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-attachmentCount-arraylength",
- "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-rectCount-arraylength",
- "text": " <code>rectCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdClearAttachments-commandBuffer-02504",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, each attachment to be cleared <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdClearAttachments-commandBuffer-02505",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, each attachment to be cleared <strong class=\"purple\">must</strong> not be an unprotected image"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdClearAttachments-baseArrayLayer-00018",
- "text": " If the render pass instance this is recorded in uses multiview, then <code>baseArrayLayer</code> <strong class=\"purple\">must</strong> be zero and <code>layerCount</code> <strong class=\"purple\">must</strong> be one"
- }
- ]
- },
- "VkClearAttachment": {
- "core": [
- {
- "vuid": "VUID-VkClearAttachment-aspectMask-00019",
- "text": " If <code>aspectMask</code> includes <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, it <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
- },
- {
- "vuid": "VUID-VkClearAttachment-aspectMask-00020",
- "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_METADATA_BIT</code>"
- },
- {
- "vuid": "VUID-VkClearAttachment-clearValue-00021",
- "text": " <code>clearValue</code> <strong class=\"purple\">must</strong> be a valid <code>VkClearValue</code> union"
- },
- {
- "vuid": "VUID-VkClearAttachment-aspectMask-parameter",
- "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkClearAttachment-aspectMask-requiredbitmask",
- "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkClearAttachment-aspectMask-02246",
- "text": " <code>aspectMask</code> <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>"
- }
- ]
- },
- "VkClearDepthStencilValue": {
- "(VK_EXT_depth_range_unrestricted)": [
- {
- "vuid": "VUID-VkClearDepthStencilValue-depth-00022",
- "text": " Unless the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>depth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
- }
- ],
- "!(VK_EXT_depth_range_unrestricted)": [
- {
- "vuid": "VUID-VkClearDepthStencilValue-depth-02506",
- "text": " <code>depth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
- }
- ]
- },
- "vkCmdFillBuffer": {
- "core": [
- {
- "vuid": "VUID-vkCmdFillBuffer-dstOffset-00024",
- "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdFillBuffer-dstOffset-00025",
- "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdFillBuffer-size-00026",
- "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdFillBuffer-size-00027",
- "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>dstOffset</code>"
- },
- {
- "vuid": "VUID-vkCmdFillBuffer-size-00028",
- "text": " If <code>size</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>size</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdFillBuffer-dstBuffer-00029",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdFillBuffer-dstBuffer-00031",
- "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdFillBuffer-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdFillBuffer-dstBuffer-parameter",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdFillBuffer-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdFillBuffer-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics or compute operations"
- },
- {
- "vuid": "VUID-vkCmdFillBuffer-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdFillBuffer-commonparent",
- "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)": [
- {
- "vuid": "VUID-vkCmdFillBuffer-commandBuffer-00030",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics or compute operations"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdFillBuffer-commandBuffer-01811",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
- },
- {
- "vuid": "VUID-vkCmdFillBuffer-commandBuffer-01812",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer"
- }
- ]
- },
- "vkCmdUpdateBuffer": {
- "core": [
- {
- "vuid": "VUID-vkCmdUpdateBuffer-dstOffset-00032",
- "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00033",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>dstOffset</code>"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-00034",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-00035",
- "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-dstOffset-00036",
- "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00037",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be less than or equal to <code>65536</code>"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00038",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-parameter",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-pData-parameter",
- "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-dataSize-arraylength",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-commonparent",
- "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)": [
- {
- "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-01813",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
- },
- {
- "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-01814",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer"
- }
- ]
- },
- "vkCmdCopyBuffer": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01822",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01823",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01824",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkCmdCopyBuffer-srcOffset-00113",
- "text": " The <code>srcOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the size of <code>srcBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-dstOffset-00114",
- "text": " The <code>dstOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-size-00115",
- "text": " The <code>size</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>srcBuffer</code> minus <code>srcOffset</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-size-00116",
- "text": " The <code>size</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>dstOffset</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-pRegions-00117",
- "text": " The union of the source regions, and the union of the destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-00118",
- "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_SRC_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-00119",
- "text": " If <code>srcBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-00120",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-00121",
- "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-parameter",
- "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-parameter",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-pRegions-parameter",
- "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferCopy\">VkBufferCopy</a> structures"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-regionCount-arraylength",
- "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer-commonparent",
- "text": " Each of <code>commandBuffer</code>, <code>dstBuffer</code>, and <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "VkBufferCopy": {
- "core": [
- {
- "vuid": "VUID-VkBufferCopy-size-01988",
- "text": " The <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkCmdCopyBuffer2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-01822",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-01823",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-01824",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer2-pCopyBufferInfo-parameter",
- "text": " <code>pCopyBufferInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyBufferInfo2\">VkCopyBufferInfo2</a> structure"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdCopyBuffer2-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ]
- },
- "VkCopyBufferInfo2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-VkCopyBufferInfo2-srcOffset-00113",
- "text": " The <code>srcOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the size of <code>srcBuffer</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-dstOffset-00114",
- "text": " The <code>dstOffset</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-size-00115",
- "text": " The <code>size</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>srcBuffer</code> minus <code>srcOffset</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-size-00116",
- "text": " The <code>size</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>dstOffset</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-pRegions-00117",
- "text": " The union of the source regions, and the union of the destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-srcBuffer-00118",
- "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_SRC_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-srcBuffer-00119",
- "text": " If <code>srcBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-dstBuffer-00120",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-dstBuffer-00121",
- "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-srcBuffer-parameter",
- "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-dstBuffer-parameter",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-pRegions-parameter",
- "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferCopy2\">VkBufferCopy2</a> structures"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-regionCount-arraylength",
- "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferInfo2-commonparent",
- "text": " Both of <code>dstBuffer</code>, and <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "VkBufferCopy2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-VkBufferCopy2-size-01988",
- "text": " The <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkBufferCopy2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_COPY_2</code>"
- },
- {
- "vuid": "VUID-VkBufferCopy2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkCmdCopyImage": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdCopyImage-commandBuffer-01825",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-commandBuffer-01826",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-commandBuffer-01827",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkCmdCopyImage-pRegions-00124",
- "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-00126",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImageLayout-00128",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-00131",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImageLayout-00133",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-00136",
- "text": " The sample count of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> match"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcSubresource-01696",
- "text": " The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstSubresource-01697",
- "text": " The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcSubresource-01698",
- "text": " The <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> &#43; <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstSubresource-01699",
- "text": " The <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> &#43; <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcOffset-01783",
- "text": " The <code>srcOffset</code> and <code>extent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstOffset-01784",
- "text": " The <code>dstOffset</code> and <code>extent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-aspectMask-00142",
- "text": " For each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-aspectMask-00143",
- "text": " For each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcOffset-00144",
- "text": " For each element of <code>pRegions</code>, <code>srcOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcOffset-00145",
- "text": " For each element of <code>pRegions</code>, <code>srcOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-00146",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcOffset-00147",
- "text": " For each element of <code>pRegions</code>, <code>srcOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-01785",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-01786",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-01787",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-01788",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstOffset-00150",
- "text": " For each element of <code>pRegions</code>, <code>dstOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstOffset-00151",
- "text": " For each element of <code>pRegions</code>, <code>dstOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-00152",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstOffset-00153",
- "text": " For each element of <code>pRegions</code>, <code>dstOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-01727",
- "text": " If <code>srcImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, all members of <code>srcOffset</code> <strong class=\"purple\">must</strong> be a multiple of the corresponding dimensions of the compressed texel block"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-01728",
- "text": " If <code>srcImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block width or <span class=\"eq\">(<code>extent.width</code> &#43; <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> equal the width of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-01729",
- "text": " If <code>srcImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block height or <span class=\"eq\">(<code>extent.height</code> &#43; <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> equal the height of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-01730",
- "text": " If <code>srcImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block depth or <span class=\"eq\">(<code>extent.depth</code> &#43; <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> equal the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-01731",
- "text": " If <code>dstImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, all members of <code>dstOffset</code> <strong class=\"purple\">must</strong> be a multiple of the corresponding dimensions of the compressed texel block"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-01732",
- "text": " If <code>dstImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block width or <span class=\"eq\">(<code>extent.width</code> &#43; <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> equal the width of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-01733",
- "text": " If <code>dstImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block height or <span class=\"eq\">(<code>extent.height</code> &#43; <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> equal the height of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-01734",
- "text": " If <code>dstImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block depth or <span class=\"eq\">(<code>extent.depth</code> &#43; <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> equal the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-parameter",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImageLayout-parameter",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-parameter",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImageLayout-parameter",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-pRegions-parameter",
- "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageCopy\">VkImageCopy</a> structures"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-regionCount-arraylength",
- "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-commonparent",
- "text": " Each of <code>commandBuffer</code>, <code>dstImage</code>, and <code>srcImage</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)": [
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-01995",
- "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-01996",
- "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-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>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-04444",
- "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-srcImage-01790",
- "text": " If <code>srcImage</code> and <code>dstImage</code> are both 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>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-01791",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, and <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> equal <code>srcSubresource.layerCount</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-01792",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, and <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> equal <code>dstSubresource.layerCount</code>"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-00127",
- "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-00132",
- "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-00135",
- "text": " The <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be compatible, as defined <a href=\"#copies-images-format-compatibility\">above</a>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-01546",
- "text": " If <code>srcImage</code> is non-sparse then the image or <em>disjoint</em> plane to be copied <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-01547",
- "text": " If <code>dstImage</code> is non-sparse then the image or <em>disjoint</em> plane that is the destination of the copy <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-01548",
- "text": " If the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\"><em>multi-planar format</em></a>, the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be compatible, as defined <a href=\"#copies-images-format-compatibility\">above</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-None-01549",
- "text": " In a copy to or from a plane of a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image</a>, the <a href=\"#VkFormat\">VkFormat</a> of the image and plane <strong class=\"purple\">must</strong> be compatible according to <a href=\"#formats-compatible-planes\">the description of compatible planes</a> for the plane being copied"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-01551",
- "text": " If neither <code>srcImage</code> nor <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> and <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> match"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-01552",
- "text": " If <code>srcImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-01553",
- "text": " If <code>srcImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-01554",
- "text": " If <code>dstImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-01555",
- "text": " If <code>dstImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-01556",
- "text": " If <code>srcImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>dstImage</code> does not have a multi-planar image format, then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-01557",
- "text": " If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>srcImage</code> does not have a multi-planar image format, then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- }
- ],
- "!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkCmdCopyImage-srcImageLayout-00129",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImageLayout-00134",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkCmdCopyImage-srcImageLayout-01917",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage-dstImageLayout-01395",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdCopyImage-dstImage-02542",
- "text": " <code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-vkCmdCopyImage-srcImage-00139",
- "text": " If 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-01789",
- "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>"
- }
- ]
- },
- "VkImageCopy": {
- "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageCopy-aspectMask-00137",
- "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_maintenance1)": [
- {
- "vuid": "VUID-VkImageCopy-layerCount-00138",
- "text": " The <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-VkImageCopy-extent-00140",
- "text": " The number of slices of the <code>extent</code> (for 3D) or layers of the <code>srcSubresource</code> (for non-3D) <strong class=\"purple\">must</strong> match the number of slices of the <code>extent</code> (for 3D) or layers of the <code>dstSubresource</code> (for non-3D)"
- }
- ],
- "core": [
- {
- "vuid": "VUID-VkImageCopy-srcSubresource-parameter",
- "text": " <code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
- },
- {
- "vuid": "VUID-VkImageCopy-dstSubresource-parameter",
- "text": " <code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
- }
- ]
- },
- "VkImageSubresourceLayers": {
- "core": [
- {
- "vuid": "VUID-VkImageSubresourceLayers-aspectMask-00167",
- "text": " If <code>aspectMask</code> contains <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, it <strong class=\"purple\">must</strong> not contain either of <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageSubresourceLayers-aspectMask-00168",
- "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_METADATA_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageSubresourceLayers-layerCount-01700",
- "text": " <code>layerCount</code> <strong class=\"purple\">must</strong> be greater than 0"
- },
- {
- "vuid": "VUID-VkImageSubresourceLayers-aspectMask-parameter",
- "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask",
- "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ],
- "(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkImageSubresourceLayers-aspectMask-02247",
- "text": " <code>aspectMask</code> <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>"
- }
- ]
- },
- "vkCmdCopyImage2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdCopyImage2-commandBuffer-01825",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdCopyImage2-commandBuffer-01826",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdCopyImage2-commandBuffer-01827",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-vkCmdCopyImage2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyImage2-pCopyImageInfo-parameter",
- "text": " <code>pCopyImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyImageInfo2\">VkCopyImageInfo2</a> structure"
- },
- {
- "vuid": "VUID-vkCmdCopyImage2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyImage2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdCopyImage2-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ]
- },
- "VkCopyImageInfo2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-VkCopyImageInfo2-pRegions-00124",
- "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-00126",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-00128",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-00131",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-00133",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-00136",
- "text": " The sample count of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> match"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcSubresource-01696",
- "text": " The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstSubresource-01697",
- "text": " The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcSubresource-01698",
- "text": " The <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> &#43; <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstSubresource-01699",
- "text": " The <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> &#43; <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcOffset-01783",
- "text": " The <code>srcOffset</code> and <code>extent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstOffset-01784",
- "text": " The <code>dstOffset</code> and <code>extent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-aspectMask-00142",
- "text": " For each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-aspectMask-00143",
- "text": " For each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcOffset-00144",
- "text": " For each element of <code>pRegions</code>, <code>srcOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcOffset-00145",
- "text": " For each element of <code>pRegions</code>, <code>srcOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-00146",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcOffset-00147",
- "text": " For each element of <code>pRegions</code>, <code>srcOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01785",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-01786",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01787",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-01788",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstOffset-00150",
- "text": " For each element of <code>pRegions</code>, <code>dstOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstOffset-00151",
- "text": " For each element of <code>pRegions</code>, <code>dstOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-00152",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstOffset-00153",
- "text": " For each element of <code>pRegions</code>, <code>dstOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01727",
- "text": " If <code>srcImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, all members of <code>srcOffset</code> <strong class=\"purple\">must</strong> be a multiple of the corresponding dimensions of the compressed texel block"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01728",
- "text": " If <code>srcImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block width or <span class=\"eq\">(<code>extent.width</code> &#43; <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> equal the width of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01729",
- "text": " If <code>srcImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block height or <span class=\"eq\">(<code>extent.height</code> &#43; <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> equal the height of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01730",
- "text": " If <code>srcImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block depth or <span class=\"eq\">(<code>extent.depth</code> &#43; <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> equal the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-01731",
- "text": " If <code>dstImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, all members of <code>dstOffset</code> <strong class=\"purple\">must</strong> be a multiple of the corresponding dimensions of the compressed texel block"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-01732",
- "text": " If <code>dstImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block width or <span class=\"eq\">(<code>extent.width</code> &#43; <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> equal the width of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-01733",
- "text": " If <code>dstImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block height or <span class=\"eq\">(<code>extent.height</code> &#43; <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> equal the height of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-01734",
- "text": " If <code>dstImage</code> is a <a href=\"#blocked-image\">blocked image</a>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block depth or <span class=\"eq\">(<code>extent.depth</code> &#43; <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> equal the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-parameter",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-parameter",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-parameter",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-parameter",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-pRegions-parameter",
- "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageCopy2\">VkImageCopy2</a> structures"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-regionCount-arraylength",
- "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-commonparent",
- "text": " Both of <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01995",
- "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-01996",
- "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-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>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-04444",
- "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-srcImage-01790",
- "text": " If <code>srcImage</code> and <code>dstImage</code> are both 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>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01791",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, and <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> equal <code>srcSubresource.layerCount</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-01792",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, and <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> equal <code>dstSubresource.layerCount</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-00127",
- "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-00132",
- "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-00135",
- "text": " The <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be compatible, as defined <a href=\"#copies-images-format-compatibility\">above</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01546",
- "text": " If <code>srcImage</code> is non-sparse then the image or <em>disjoint</em> plane to be copied <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-01547",
- "text": " If <code>dstImage</code> is non-sparse then the image or <em>disjoint</em> plane that is the destination of the copy <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01548",
- "text": " If the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> is not a <a href=\"#formats-requiring-sampler-ycbcr-conversion\"><em>multi-planar format</em></a>, the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be compatible, as defined <a href=\"#copies-images-format-compatibility\">above</a>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-None-01549",
- "text": " In a copy to or from a plane of a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image</a>, the <a href=\"#VkFormat\">VkFormat</a> of the image and plane <strong class=\"purple\">must</strong> be compatible according to <a href=\"#formats-compatible-planes\">the description of compatible planes</a> for the plane being copied"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01551",
- "text": " If neither <code>srcImage</code> nor <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> and <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> match"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01552",
- "text": " If <code>srcImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01553",
- "text": " If <code>srcImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-01554",
- "text": " If <code>dstImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">two planes</a> then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code> or <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-01555",
- "text": " If <code>dstImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#formats-requiring-sampler-ycbcr-conversion\">three planes</a> then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-01556",
- "text": " If <code>srcImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>dstImage</code> does not have a multi-planar image format, then for each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-01557",
- "text": " If <code>dstImage</code> has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>srcImage</code> does not have a multi-planar image format, then for each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-00129",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-00134",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImageLayout-01917",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
- },
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImageLayout-01395",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkCopyImageInfo2-dstImage-02542",
- "text": " <code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-VkCopyImageInfo2-srcImage-00139",
- "text": " If 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-01789",
- "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>"
- }
- ]
- },
- "VkImageCopy2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkImageCopy2-aspectMask-00137",
- "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_maintenance1)": [
- {
- "vuid": "VUID-VkImageCopy2-layerCount-00138",
- "text": " The <code>layerCount</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)": [
- {
- "vuid": "VUID-VkImageCopy2-extent-00140",
- "text": " The number of slices of the <code>extent</code> (for 3D) or layers of the <code>srcSubresource</code> (for non-3D) <strong class=\"purple\">must</strong> match the number of slices of the <code>extent</code> (for 3D) or layers of the <code>dstSubresource</code> (for non-3D)"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-VkImageCopy2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_COPY_2</code>"
- },
- {
- "vuid": "VUID-VkImageCopy2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImageCopy2-srcSubresource-parameter",
- "text": " <code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
- },
- {
- "vuid": "VUID-VkImageCopy2-dstSubresource-parameter",
- "text": " <code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
- }
- ]
- },
- "vkCmdCopyBufferToImage": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01828",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01829",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01830",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-06217",
- "text": " The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00171",
- "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> be large enough to contain all buffer locations that are accessed according to <a href=\"#copies-buffers-images-addressing\">Buffer and Image Addressing</a>, for each element of <code>pRegions</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00173",
- "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-00174",
- "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_SRC_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-00176",
- "text": " If <code>srcBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00177",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00178",
- "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00179",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-00180",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-01701",
- "text": " The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-01702",
- "text": " The <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-01793",
- "text": " The <code>imageOffset</code> and <code>imageExtent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-04477",
- "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code>, for each element of <code>pRegions</code>, the <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-06218",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-06219",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> &#43; <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-srcImage-00199",
- "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-00200",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-srcImage-00201",
- "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-bufferRowLength-00203",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block width"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-bufferImageHeight-00204",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block height"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-00205",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, all members of <code>imageOffset</code> <strong class=\"purple\">must</strong> be a multiple of the corresponding dimensions of the compressed texel block"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-00206",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block size in bytes"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00207",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>imageExtent.width</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block width or <span class=\"eq\">(<code>imageExtent.width</code> &#43; <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> equal the width of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00208",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block height or <span class=\"eq\">(<code>imageExtent.height</code> &#43; <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> equal the height of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00209",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block depth or <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> equal the depth of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-aspectMask-00211",
- "text": " For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in {imageparam}"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-baseArrayLayer-00213",
- "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-04725",
- "text": " If {imageparam} is not a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferRowLength</code> multiplied by the texel block size of {imageparam} <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-04726",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the compressed texel block width and then multiplied by the texel block size of {imageparam} <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-04052",
- "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-srcImage-04053",
- "text": " If {imageparam} has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-parameter",
- "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-parameter",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-parameter",
- "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferImageCopy\">VkBufferImageCopy</a> structures"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-regionCount-arraylength",
- "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-commonparent",
- "text": " Each of <code>commandBuffer</code>, <code>dstImage</code>, and <code>srcBuffer</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)": [
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-01997",
- "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>"
- }
- ],
- "!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-00181",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-01396",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-02543",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- }
- ],
- "!(VK_EXT_depth_range_unrestricted)": [
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-None-00214",
- "text": " For each element of <code>pRegions</code> whose <code>imageSubresource</code> contains a depth aspect, the data in <code>srcBuffer</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-00193",
- "text": " If {imageparam} does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-01558",
- "text": " If {imageparam} does not have either a depth/stencil or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-01559",
- "text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage-aspectMask-01560",
- "text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code> (with <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code> valid only for image formats with three planes)"
- }
- ]
- },
- "vkCmdCopyImageToBuffer": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01831",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01832",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01833",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-06220",
- "text": " The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00183",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be large enough to contain all buffer locations that are accessed according to <a href=\"#copies-buffers-images-addressing\">Buffer and Image Addressing</a>, for each element of <code>pRegions</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00184",
- "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00186",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00187",
- "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-00191",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-00192",
- "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00188",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-01703",
- "text": " The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-01704",
- "text": " The <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-01794",
- "text": " The <code>imageOffset</code> and <code>imageExtent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-06221",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-06222",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.y</code> and <span class=\"eq\">(imageExtent.height &#43; <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00199",
- "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-00200",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00201",
- "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-bufferRowLength-00203",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block width"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-bufferImageHeight-00204",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block height"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-00205",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, all members of <code>imageOffset</code> <strong class=\"purple\">must</strong> be a multiple of the corresponding dimensions of the compressed texel block"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-00206",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block size in bytes"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00207",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>imageExtent.width</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block width or <span class=\"eq\">(<code>imageExtent.width</code> &#43; <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> equal the width of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00208",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block height or <span class=\"eq\">(<code>imageExtent.height</code> &#43; <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> equal the height of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00209",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block depth or <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> equal the depth of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-aspectMask-00211",
- "text": " For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in {imageparam}"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-baseArrayLayer-00213",
- "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-04725",
- "text": " If {imageparam} is not a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferRowLength</code> multiplied by the texel block size of {imageparam} <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-04726",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the compressed texel block width and then multiplied by the texel block size of {imageparam} <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-04052",
- "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-04053",
- "text": " If {imageparam} has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-parameter",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-parameter",
- "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferImageCopy\">VkBufferImageCopy</a> structures"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-regionCount-arraylength",
- "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-commonparent",
- "text": " Each of <code>commandBuffer</code>, <code>dstBuffer</code>, and <code>srcImage</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)": [
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-01998",
- "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>"
- }
- ],
- "!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-00190",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-02544",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-00193",
- "text": " If {imageparam} does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-01558",
- "text": " If {imageparam} does not have either a depth/stencil or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-01559",
- "text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer-aspectMask-01560",
- "text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code> (with <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code> valid only for image formats with three planes)"
- }
- ]
- },
- "VkBufferImageCopy": {
- "core": [
- {
- "vuid": "VUID-VkBufferImageCopy-bufferRowLength-00195",
- "text": " <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>width</code> member of <code>imageExtent</code>"
- },
- {
- "vuid": "VUID-VkBufferImageCopy-bufferImageHeight-00196",
- "text": " <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>height</code> member of <code>imageExtent</code>"
- },
- {
- "vuid": "VUID-VkBufferImageCopy-aspectMask-00212",
- "text": " The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set"
- },
- {
- "vuid": "VUID-VkBufferImageCopy-imageSubresource-parameter",
- "text": " <code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
- }
- ]
- },
- "vkCmdCopyBufferToImage2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-01828",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-01829",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-01830",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter",
- "text": " <code>pCopyBufferToImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyBufferToImageInfo2\">VkCopyBufferToImageInfo2</a> structure"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdCopyBufferToImage2-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ]
- },
- "VkCopyBufferToImageInfo2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_QCOM_rotated_copy_commands)": [
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-00172",
- "text": " The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>dstImage</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)": [
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-04565",
- "text": " If the image region specified by each element of <code>pRegions</code> does not contain <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, it <strong class=\"purple\">must</strong> be a region that is contained within the specified <code>imageSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554",
- "text": " If the image region specified by each element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, the rotated destination region as described in <a href=\"#copies-buffers-images-rotation-addressing\">Buffer and Image Addressing with Rotation</a> <strong class=\"purple\">must</strong> be contained within <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555",
- "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>dstImage</code> <strong class=\"purple\">must</strong> not be a <a href=\"#blocked-image\">blocked image</a>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203",
- "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>dstImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-06204",
- "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>dstImage</code> <strong class=\"purple\">must</strong> not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-00171",
- "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> be large enough to contain all buffer locations that are accessed according to <a href=\"#copies-buffers-images-addressing\">Buffer and Image Addressing</a>, for each element of <code>pRegions</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-00173",
- "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-srcBuffer-00174",
- "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_SRC_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-srcBuffer-00176",
- "text": " If <code>srcBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00177",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00178",
- "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-00179",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-dstImageLayout-00180",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-01701",
- "text": " The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-imageSubresource-01702",
- "text": " The <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-imageOffset-01793",
- "text": " The <code>imageOffset</code> and <code>imageExtent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-commandBuffer-04477",
- "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code>, for each element of <code>pRegions</code>, the <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-06223",
- "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-06224",
- "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> &#43; <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-srcImage-00199",
- "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-imageOffset-00200",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-srcImage-00201",
- "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-bufferRowLength-00203",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block width"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-bufferImageHeight-00204",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block height"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-imageOffset-00205",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, all members of <code>imageOffset</code> <strong class=\"purple\">must</strong> be a multiple of the corresponding dimensions of the compressed texel block"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-bufferOffset-00206",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block size in bytes"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00207",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>imageExtent.width</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block width or <span class=\"eq\">(<code>imageExtent.width</code> &#43; <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> equal the width of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00208",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block height or <span class=\"eq\">(<code>imageExtent.height</code> &#43; <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> equal the height of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00209",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block depth or <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> equal the depth of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-aspectMask-00211",
- "text": " For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in {imageparam}"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-baseArrayLayer-00213",
- "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-04725",
- "text": " If {imageparam} is not a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferRowLength</code> multiplied by the texel block size of {imageparam} <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-04726",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the compressed texel block width and then multiplied by the texel block size of {imageparam} <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-commandBuffer-04052",
- "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-srcImage-04053",
- "text": " If {imageparam} has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter",
- "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-parameter",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-parameter",
- "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferImageCopy2\">VkBufferImageCopy2</a> structures"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-regionCount-arraylength",
- "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-commonparent",
- "text": " Both of <code>dstImage</code>, and <code>srcBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-01997",
- "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>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-dstImageLayout-00181",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-dstImageLayout-01396",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-dstImage-02543",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_EXT_depth_range_unrestricted)": [
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-None-00214",
- "text": " For each element of <code>pRegions</code> whose <code>imageSubresource</code> contains a depth aspect, the data in <code>srcBuffer</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-bufferOffset-00193",
- "text": " If {imageparam} does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-bufferOffset-01558",
- "text": " If {imageparam} does not have either a depth/stencil or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-bufferOffset-01559",
- "text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
- },
- {
- "vuid": "VUID-VkCopyBufferToImageInfo2-aspectMask-01560",
- "text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code> (with <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code> valid only for image formats with three planes)"
- }
- ]
- },
- "vkCmdCopyImageToBuffer2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-01831",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-01832",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be a protected buffer"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-01833",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstBuffer</code> <strong class=\"purple\">must</strong> not be an unprotected buffer"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer2-pCopyImageToBufferInfo-parameter",
- "text": " <code>pCopyImageToBufferInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyImageToBufferInfo2\">VkCopyImageToBufferInfo2</a> structure"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdCopyImageToBuffer2-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ]
- },
- "VkCopyImageToBufferInfo2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_QCOM_rotated_copy_commands)": [
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-00182",
- "text": " The image region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>srcImage</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)": [
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-04566",
- "text": " If the image region specified by each element of <code>pRegions</code> does not contain <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, it <strong class=\"purple\">must</strong> be contained within the specified <code>imageSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557",
- "text": " If the image region specified by each element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, the rotated source region as described in <a href=\"#copies-buffers-images-rotation-addressing\">Buffer and Image Addressing with Rotation</a> <strong class=\"purple\">must</strong> be contained within <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558",
- "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> not be a <a href=\"#blocked-image\">blocked image</a>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205",
- "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-06206",
- "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-00183",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be large enough to contain all buffer locations that are accessed according to <a href=\"#copies-buffers-images-addressing\">Buffer and Image Addressing</a>, for each element of <code>pRegions</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-00184",
- "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00186",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00187",
- "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-dstBuffer-00191",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-dstBuffer-00192",
- "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00188",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImageLayout-00189",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-imageSubresource-01703",
- "text": " The <code>imageSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-imageSubresource-01704",
- "text": " The <span class=\"eq\"><code>imageSubresource.baseArrayLayer</code> &#43; <code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-01794",
- "text": " The <code>imageOffset</code> and <code>imageExtent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-00197",
- "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.x</code> and <span class=\"eq\">(<code>imageExtent.width</code> &#43; <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>imageSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-00198",
- "text": " For each element of <code>pRegions</code> not containing <code>VkCopyCommandTransformInfoQCOM</code> in its <code>pNext</code> chain, <code>imageOffset.y</code> and <span class=\"eq\">(<code>imageExtent.height</code> &#43; <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>imageSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00199",
- "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-00200",
- "text": " For each element of <code>pRegions</code>, <code>imageOffset.z</code> and <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-00201",
- "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>imageOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-bufferRowLength-00203",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block width"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-bufferImageHeight-00204",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block height"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-imageOffset-00205",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, all members of <code>imageOffset</code> <strong class=\"purple\">must</strong> be a multiple of the corresponding dimensions of the compressed texel block"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-bufferOffset-00206",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block size in bytes"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00207",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>imageExtent.width</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block width or <span class=\"eq\">(<code>imageExtent.width</code> &#43; <code>imageOffset.x</code>)</span> <strong class=\"purple\">must</strong> equal the width of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00208",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>imageExtent.height</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block height or <span class=\"eq\">(<code>imageExtent.height</code> &#43; <code>imageOffset.y</code>)</span> <strong class=\"purple\">must</strong> equal the height of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00209",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>imageExtent.depth</code> <strong class=\"purple\">must</strong> be a multiple of the compressed texel block depth or <span class=\"eq\">(<code>imageExtent.depth</code> &#43; <code>imageOffset.z</code>)</span> <strong class=\"purple\">must</strong> equal the depth of the specified <code>imageSubresource</code> of {imageparam}"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-aspectMask-00211",
- "text": " For each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in {imageparam}"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-baseArrayLayer-00213",
- "text": " If {imageparam} is of type <code>VK_IMAGE_TYPE_3D</code>, for each element of <code>pRegions</code>, <code>imageSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>imageSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-04725",
- "text": " If {imageparam} is not a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferRowLength</code> multiplied by the texel block size of {imageparam} <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-04726",
- "text": " If {imageparam} is a <a href=\"#blocked-image\">blocked image</a>, for each element of <code>pRegions</code>, <code>bufferRowLength</code> divided by the compressed texel block width and then multiplied by the texel block size of {imageparam} <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>31</sup>-1</span>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-commandBuffer-04052",
- "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-04053",
- "text": " If {imageparam} has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-parameter",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImageLayout-parameter",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-dstBuffer-parameter",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-parameter",
- "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkBufferImageCopy2\">VkBufferImageCopy2</a> structures"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-regionCount-arraylength",
- "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-commonparent",
- "text": " Both of <code>dstBuffer</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-01998",
- "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImageLayout-00190",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImageLayout-01397",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code>, <code>VK_IMAGE_LAYOUT_GENERAL</code>, or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-srcImage-02544",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-bufferOffset-00193",
- "text": " If {imageparam} does not have a depth/stencil format, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-bufferOffset-01558",
- "text": " If {imageparam} does not have either a depth/stencil or a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format&#8217;s texel block size"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-bufferOffset-01559",
- "text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of the compatible format for the format and the <code>aspectMask</code> of the <code>imageSubresource</code> as defined in <a href=\"#formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>"
- },
- {
- "vuid": "VUID-VkCopyImageToBufferInfo2-aspectMask-01560",
- "text": " If {imageparam} has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then for each element of <code>pRegions</code>, <code>imageSubresource.aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_PLANE_0_BIT</code>, <code>VK_IMAGE_ASPECT_PLANE_1_BIT</code>, or <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code> (with <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code> valid only for image formats with three planes)"
- }
- ]
- },
- "VkBufferImageCopy2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-VkBufferImageCopy2-bufferRowLength-00195",
- "text": " <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>width</code> member of <code>imageExtent</code>"
- },
- {
- "vuid": "VUID-VkBufferImageCopy2-bufferImageHeight-00196",
- "text": " <code>bufferImageHeight</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>height</code> member of <code>imageExtent</code>"
- },
- {
- "vuid": "VUID-VkBufferImageCopy2-aspectMask-00212",
- "text": " The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class=\"purple\">must</strong> only have a single bit set"
- },
- {
- "vuid": "VUID-VkBufferImageCopy2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2</code>"
- },
- {
- "vuid": "VUID-VkBufferImageCopy2-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=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a>"
- },
- {
- "vuid": "VUID-VkBufferImageCopy2-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-VkBufferImageCopy2-imageSubresource-parameter",
- "text": " <code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
- }
- ]
- },
- "VkCopyCommandTransformInfoQCOM": {
- "(VK_QCOM_rotated_copy_commands)": [
- {
- "vuid": "VUID-VkCopyCommandTransformInfoQCOM-transform-04560",
- "text": " <code>transform</code> <strong class=\"purple\">must</strong> be <code>VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR</code>, <code>VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR</code>, or <code>VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkCopyCommandTransformInfoQCOM-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM</code>"
- }
- ]
- },
- "vkCmdBlitImage": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdBlitImage-commandBuffer-01834",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-commandBuffer-01835",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-commandBuffer-01836",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkCmdBlitImage-pRegions-00215",
- "text": " The source region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a region that is contained within <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-pRegions-00216",
- "text": " The destination region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a region that is contained within <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-pRegions-00217",
- "text": " The union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory with any texel that <strong class=\"purple\">may</strong> be sampled during the blit operation"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcImage-01999",
- "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_BLIT_SRC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcImage-00219",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcImage-00220",
- "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcImageLayout-00221",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstImage-02000",
- "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_BLIT_DST_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstImage-00224",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstImage-00225",
- "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstImageLayout-00226",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcImage-00229",
- "text": " If either of <code>srcImage</code> or <code>dstImage</code> was created with a signed integer <a href=\"#VkFormat\">VkFormat</a>, the other <strong class=\"purple\">must</strong> also have been created with a signed integer <a href=\"#VkFormat\">VkFormat</a>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcImage-00230",
- "text": " If either of <code>srcImage</code> or <code>dstImage</code> was created with an unsigned integer <a href=\"#VkFormat\">VkFormat</a>, the other <strong class=\"purple\">must</strong> also have been created with an unsigned integer <a href=\"#VkFormat\">VkFormat</a>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcImage-00231",
- "text": " If either of <code>srcImage</code> or <code>dstImage</code> was created with a depth/stencil format, the other <strong class=\"purple\">must</strong> have exactly the same format"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcImage-00232",
- "text": " If <code>srcImage</code> was created with a depth/stencil format, <code>filter</code> <strong class=\"purple\">must</strong> be <code>VK_FILTER_NEAREST</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcImage-00233",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value of <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstImage-00234",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value of <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-filter-02001",
- "text": " If <code>filter</code> is <code>VK_FILTER_LINEAR</code>, then the <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcSubresource-01705",
- "text": " The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstSubresource-01706",
- "text": " The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcSubresource-01707",
- "text": " The <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> &#43; <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstSubresource-01708",
- "text": " The <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> &#43; <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcImage-00240",
- "text": " If 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-vkCmdBlitImage-aspectMask-00241",
- "text": " For each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-aspectMask-00242",
- "text": " For each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcOffset-00243",
- "text": " For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].x and <code>srcOffsets</code>[1].x <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcOffset-00244",
- "text": " For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].y and <code>srcOffsets</code>[1].y <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcImage-00245",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffsets</code>[0].y <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcOffsets</code>[1].y <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcOffset-00246",
- "text": " For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].z and <code>srcOffsets</code>[1].z <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcImage-00247",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffsets</code>[0].z <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcOffsets</code>[1].z <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstOffset-00248",
- "text": " For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].x and <code>dstOffsets</code>[1].x <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstOffset-00249",
- "text": " For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].y and <code>dstOffsets</code>[1].y <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstImage-00250",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffsets</code>[0].y <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstOffsets</code>[1].y <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstOffset-00251",
- "text": " For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].z and <code>dstOffsets</code>[1].z <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstImage-00252",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffsets</code>[0].z <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstOffsets</code>[1].z <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcImage-parameter",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-srcImageLayout-parameter",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstImage-parameter",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstImageLayout-parameter",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-pRegions-parameter",
- "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageBlit\">VkImageBlit</a> structures"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-filter-parameter",
- "text": " <code>filter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-regionCount-arraylength",
- "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-commonparent",
- "text": " Each of <code>commandBuffer</code>, <code>dstImage</code>, and <code>srcImage</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_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdBlitImage-srcImage-06421",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> not use a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">format that requires a sampler Y&#8217;C<sub>B</sub>C<sub>R</sub> conversion</a>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstImage-06422",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> not use a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">format that requires a sampler Y&#8217;C<sub>B</sub>C<sub>R</sub> conversion</a>"
- }
- ],
- "!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkCmdBlitImage-srcImageLayout-00222",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstImageLayout-00227",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkCmdBlitImage-srcImageLayout-01398",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-dstImageLayout-01399",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdBlitImage-filter-02002",
- "text": " If <code>filter</code> is <code>VK_FILTER_CUBIC_EXT</code>, then the <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage-filter-00237",
- "text": " If <code>filter</code> is <code>VK_FILTER_CUBIC_EXT</code>, <code>srcImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdBlitImage-dstImage-02545",
- "text": " <code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- }
- ]
- },
- "VkImageBlit": {
- "core": [
- {
- "vuid": "VUID-VkImageBlit-aspectMask-00238",
- "text": " The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
- },
- {
- "vuid": "VUID-VkImageBlit-layerCount-00239",
- "text": " The <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
- },
- {
- "vuid": "VUID-VkImageBlit-srcSubresource-parameter",
- "text": " <code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
- },
- {
- "vuid": "VUID-VkImageBlit-dstSubresource-parameter",
- "text": " <code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
- }
- ]
- },
- "vkCmdBlitImage2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdBlitImage2-commandBuffer-01834",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdBlitImage2-commandBuffer-01835",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdBlitImage2-commandBuffer-01836",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-vkCmdBlitImage2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBlitImage2-pBlitImageInfo-parameter",
- "text": " <code>pBlitImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkBlitImageInfo2\">VkBlitImageInfo2</a> structure"
- },
- {
- "vuid": "VUID-vkCmdBlitImage2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBlitImage2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBlitImage2-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ]
- },
- "VkBlitImageInfo2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-VkBlitImageInfo2-pRegions-00215",
- "text": " The source region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a region that is contained within <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-pRegions-00216",
- "text": " The destination region specified by each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a region that is contained within <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-pRegions-00217",
- "text": " The union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory with any texel that <strong class=\"purple\">may</strong> be sampled during the blit operation"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImage-01999",
- "text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_BLIT_SRC_BIT</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImage-00219",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImage-00220",
- "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImageLayout-00221",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstImage-02000",
- "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_BLIT_DST_BIT</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstImage-00224",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstImage-00225",
- "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstImageLayout-00226",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImage-00229",
- "text": " If either of <code>srcImage</code> or <code>dstImage</code> was created with a signed integer <a href=\"#VkFormat\">VkFormat</a>, the other <strong class=\"purple\">must</strong> also have been created with a signed integer <a href=\"#VkFormat\">VkFormat</a>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImage-00230",
- "text": " If either of <code>srcImage</code> or <code>dstImage</code> was created with an unsigned integer <a href=\"#VkFormat\">VkFormat</a>, the other <strong class=\"purple\">must</strong> also have been created with an unsigned integer <a href=\"#VkFormat\">VkFormat</a>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImage-00231",
- "text": " If either of <code>srcImage</code> or <code>dstImage</code> was created with a depth/stencil format, the other <strong class=\"purple\">must</strong> have exactly the same format"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImage-00232",
- "text": " If <code>srcImage</code> was created with a depth/stencil format, <code>filter</code> <strong class=\"purple\">must</strong> be <code>VK_FILTER_NEAREST</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImage-00233",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value of <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstImage-00234",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with a <code>samples</code> value of <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-filter-02001",
- "text": " If <code>filter</code> is <code>VK_FILTER_LINEAR</code>, then the <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcSubresource-01705",
- "text": " The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstSubresource-01706",
- "text": " The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcSubresource-01707",
- "text": " The <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> &#43; <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstSubresource-01708",
- "text": " The <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> &#43; <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImage-00240",
- "text": " If 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-VkBlitImageInfo2-aspectMask-00241",
- "text": " For each element of <code>pRegions</code>, <code>srcSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-aspectMask-00242",
- "text": " For each element of <code>pRegions</code>, <code>dstSubresource.aspectMask</code> <strong class=\"purple\">must</strong> specify aspects present in <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcOffset-00243",
- "text": " For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].x and <code>srcOffsets</code>[1].x <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcOffset-00244",
- "text": " For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].y and <code>srcOffsets</code>[1].y <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImage-00245",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffsets</code>[0].y <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcOffsets</code>[1].y <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcOffset-00246",
- "text": " For each element of <code>pRegions</code>, <code>srcOffsets</code>[0].z and <code>srcOffsets</code>[1].z <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImage-00247",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffsets</code>[0].z <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcOffsets</code>[1].z <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstOffset-00248",
- "text": " For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].x and <code>dstOffsets</code>[1].x <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstOffset-00249",
- "text": " For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].y and <code>dstOffsets</code>[1].y <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstImage-00250",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffsets</code>[0].y <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstOffsets</code>[1].y <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstOffset-00251",
- "text": " For each element of <code>pRegions</code>, <code>dstOffsets</code>[0].z and <code>dstOffsets</code>[1].z <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstImage-00252",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffsets</code>[0].z <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstOffsets</code>[1].z <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImage-parameter",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImageLayout-parameter",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstImage-parameter",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstImageLayout-parameter",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-pRegions-parameter",
- "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageBlit2\">VkImageBlit2</a> structures"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-filter-parameter",
- "text": " <code>filter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFilter\">VkFilter</a> value"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-regionCount-arraylength",
- "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-commonparent",
- "text": " Both of <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImage-06421",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> not use a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">format that requires a sampler Y&#8217;C<sub>B</sub>C<sub>R</sub> conversion</a>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstImage-06422",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> not use a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">format that requires a sampler Y&#8217;C<sub>B</sub>C<sub>R</sub> conversion</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImageLayout-00222",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstImageLayout-00227",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkBlitImageInfo2-srcImageLayout-01398",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-dstImageLayout-01399",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-VkBlitImageInfo2-filter-02002",
- "text": " If <code>filter</code> is <code>VK_FILTER_CUBIC_EXT</code>, then the <a href=\"#resources-image-format-features\">format features</a> of <code>srcImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2-filter-00237",
- "text": " If <code>filter</code> is <code>VK_FILTER_CUBIC_EXT</code>, <code>srcImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkBlitImageInfo2-dstImage-02545",
- "text": " <code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)": [
- {
- "vuid": "VUID-VkBlitImageInfo2-pRegions-04561",
- "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> not be block-compressed images"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2KHR-pRegions-06207",
- "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> be of type <code>VK_IMAGE_TYPE_2D</code>"
- },
- {
- "vuid": "VUID-VkBlitImageInfo2KHR-pRegions-06208",
- "text": " If any element of <code>pRegions</code> contains <a href=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a> in its <code>pNext</code> chain, then <code>srcImage</code> <strong class=\"purple\">must</strong> not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>"
- }
- ]
- },
- "VkImageBlit2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-VkImageBlit2-aspectMask-00238",
- "text": " The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
- },
- {
- "vuid": "VUID-VkImageBlit2-layerCount-00239",
- "text": " The <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
- },
- {
- "vuid": "VUID-VkImageBlit2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_BLIT_2</code>"
- },
- {
- "vuid": "VUID-VkImageBlit2-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=\"#VkCopyCommandTransformInfoQCOM\">VkCopyCommandTransformInfoQCOM</a>"
- },
- {
- "vuid": "VUID-VkImageBlit2-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-VkImageBlit2-srcSubresource-parameter",
- "text": " <code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
- },
- {
- "vuid": "VUID-VkImageBlit2-dstSubresource-parameter",
- "text": " <code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
- }
- ]
- },
- "vkCmdResolveImage": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdResolveImage-commandBuffer-01837",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-commandBuffer-01838",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-commandBuffer-01839",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkCmdResolveImage-pRegions-00255",
- "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-srcImage-00256",
- "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-srcImage-00257",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to any valid sample count value other than <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstImage-00258",
- "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstImage-00259",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-srcImageLayout-00260",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstImageLayout-00262",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstImage-02003",
- "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_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-srcImage-01386",
- "text": " <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with the same image format"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-srcSubresource-01709",
- "text": " The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstSubresource-01710",
- "text": " The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-srcSubresource-01711",
- "text": " The <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> &#43; <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstSubresource-01712",
- "text": " The <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> &#43; <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-srcImage-04446",
- "text": " If either <code>srcImage</code> or <code>dstImage</code> are 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>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-srcImage-04447",
- "text": " If either <code>srcImage</code> or <code>dstImage</code> are 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-vkCmdResolveImage-srcOffset-00269",
- "text": " For each element of <code>pRegions</code>, <code>srcOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-srcOffset-00270",
- "text": " For each element of <code>pRegions</code>, <code>srcOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-srcImage-00271",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-srcOffset-00272",
- "text": " For each element of <code>pRegions</code>, <code>srcOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-srcImage-00273",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstOffset-00274",
- "text": " For each element of <code>pRegions</code>, <code>dstOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstOffset-00275",
- "text": " For each element of <code>pRegions</code>, <code>dstOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstImage-00276",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstOffset-00277",
- "text": " For each element of <code>pRegions</code>, <code>dstOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstImage-00278",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-srcImage-parameter",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-srcImageLayout-parameter",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstImage-parameter",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstImageLayout-parameter",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-pRegions-parameter",
- "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageResolve\">VkImageResolve</a> structures"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-regionCount-arraylength",
- "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-commonparent",
- "text": " Each of <code>commandBuffer</code>, <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkCmdResolveImage-srcImageLayout-00261",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstImageLayout-00263",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkCmdResolveImage-srcImageLayout-01400",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage-dstImageLayout-01401",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_NV_linear_color_attachment)": [
- {
- "vuid": "VUID-vkCmdResolveImage-linearColorAttachment-06519",
- "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, the <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
- }
- ],
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdResolveImage-dstImage-02546",
- "text": " <code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- }
- ]
- },
- "VkImageResolve": {
- "core": [
- {
- "vuid": "VUID-VkImageResolve-aspectMask-00266",
- "text": " The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> only contain <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageResolve-layerCount-00267",
- "text": " The <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
- },
- {
- "vuid": "VUID-VkImageResolve-srcSubresource-parameter",
- "text": " <code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
- },
- {
- "vuid": "VUID-VkImageResolve-dstSubresource-parameter",
- "text": " <code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
- }
- ]
- },
- "vkCmdWriteBufferMarker2AMD": {
- "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03929",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03930",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893",
- "text": " The <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03894",
- "text": " <code>stage</code> <strong class=\"purple\">must</strong> include only a single pipeline stage"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03895",
- "text": " <code>stage</code> <strong class=\"purple\">must</strong> include only stages that are valid for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896",
- "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03897",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03898",
- "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899",
- "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-parameter",
- "text": " <code>stage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits2\">VkPipelineStageFlagBits2</a> values"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameter",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-commonparent",
- "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_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03931",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT</code>"
- }
- ],
- "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03932",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- }
- ],
- "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03933",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- }
- ],
- "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03934",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-03935",
- "text": " If the <a href=\"#features-taskShader\">task shaders</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-04956",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV</code>"
- }
- ],
- "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-04957",
- "text": " If the <a href=\"#features-subpassShading\">subpass shading</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI</code>"
- }
- ],
- "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-04995",
- "text": " If the <a href=\"#features-invocationMask\">invocation mask image</a> feature is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI</code>"
- }
- ]
- },
- "vkCmdWriteBufferMarkerAMD": {
- "(VK_AMD_buffer_marker)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04074",
- "text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> be a <a href=\"#synchronization-pipeline-stages-supported\">valid stage</a> for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04075",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04076",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798",
- "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01799",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_TRANSFER_DST_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01800",
- "text": " If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01801",
- "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-parameter",
- "text": " If <code>pipelineStage</code> is not <code>0</code>, <code>pipelineStage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> value"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-parameter",
- "text": " <code>dstBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commonparent",
- "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_AMD_buffer_marker)+(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04077",
- "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>"
- }
- ],
- "(VK_AMD_buffer_marker)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04078",
- "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>"
- }
- ],
- "(VK_AMD_buffer_marker)+(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04079",
- "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>"
- }
- ],
- "(VK_AMD_buffer_marker)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04080",
- "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code> or <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>"
- }
- ],
- "(VK_AMD_buffer_marker)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04081",
- "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
- }
- ],
- "(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-synchronization2-06489",
- "text": " If the <a href=\"#features-synchronization2\"><code>synchronization2</code></a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_NONE</code>"
- }
- ],
- "(VK_AMD_buffer_marker)+!(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-06490",
- "text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_NONE</code>"
- }
- ]
- },
- "vkCmdResolveImage2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdResolveImage2-commandBuffer-01837",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>srcImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdResolveImage2-commandBuffer-01838",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be a protected image"
- },
- {
- "vuid": "VUID-vkCmdResolveImage2-commandBuffer-01839",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, <code>dstImage</code> <strong class=\"purple\">must</strong> not be an unprotected image"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-vkCmdResolveImage2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdResolveImage2-pResolveImageInfo-parameter",
- "text": " <code>pResolveImageInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkResolveImageInfo2\">VkResolveImageInfo2</a> structure"
- },
- {
- "vuid": "VUID-vkCmdResolveImage2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdResolveImage2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdResolveImage2-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ]
- },
- "VkResolveImageInfo2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-VkResolveImageInfo2-pRegions-00255",
- "text": " The union of all source regions, and the union of all destination regions, specified by the elements of <code>pRegions</code>, <strong class=\"purple\">must</strong> not overlap in memory"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-srcImage-00256",
- "text": " If <code>srcImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-srcImage-00257",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> have a sample count equal to any valid sample count value other than <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstImage-00258",
- "text": " If <code>dstImage</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstImage-00259",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> have a sample count equal to <code>VK_SAMPLE_COUNT_1_BIT</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-srcImageLayout-00260",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>srcImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstImageLayout-00262",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> specify the layout of the image subresources of <code>dstImage</code> specified in <code>pRegions</code> at the time this command is executed on a <code>VkDevice</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstImage-02003",
- "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_COLOR_ATTACHMENT_BIT</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-srcImage-01386",
- "text": " <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with the same image format"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-srcSubresource-01709",
- "text": " The <code>srcSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstSubresource-01710",
- "text": " The <code>dstSubresource.mipLevel</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-srcSubresource-01711",
- "text": " The <span class=\"eq\"><code>srcSubresource.baseArrayLayer</code> &#43; <code>srcSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>srcImage</code> was created"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstSubresource-01712",
- "text": " The <span class=\"eq\"><code>dstSubresource.baseArrayLayer</code> &#43; <code>dstSubresource.layerCount</code></span> of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>dstImage</code> was created"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-srcImage-04446",
- "text": " If either <code>srcImage</code> or <code>dstImage</code> are 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>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-srcImage-04447",
- "text": " If either <code>srcImage</code> or <code>dstImage</code> are 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-VkResolveImageInfo2-srcOffset-00269",
- "text": " For each element of <code>pRegions</code>, <code>srcOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>srcOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-srcOffset-00270",
- "text": " For each element of <code>pRegions</code>, <code>srcOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>srcOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-srcImage-00271",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-srcOffset-00272",
- "text": " For each element of <code>pRegions</code>, <code>srcOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>srcOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>srcSubresource</code> of <code>srcImage</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-srcImage-00273",
- "text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>srcOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstOffset-00274",
- "text": " For each element of <code>pRegions</code>, <code>dstOffset.x</code> and <span class=\"eq\">(<code>extent.width</code> &#43; <code>dstOffset.x</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the width of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstOffset-00275",
- "text": " For each element of <code>pRegions</code>, <code>dstOffset.y</code> and <span class=\"eq\">(<code>extent.height</code> &#43; <code>dstOffset.y</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the height of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstImage-00276",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.y</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstOffset-00277",
- "text": " For each element of <code>pRegions</code>, <code>dstOffset.z</code> and <span class=\"eq\">(<code>extent.depth</code> &#43; <code>dstOffset.z</code>)</span> <strong class=\"purple\">must</strong> both be greater than or equal to <code>0</code> and less than or equal to the depth of the specified <code>dstSubresource</code> of <code>dstImage</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstImage-00278",
- "text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_1D</code> or <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>dstOffset.z</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-srcImage-parameter",
- "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-srcImageLayout-parameter",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstImage-parameter",
- "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstImageLayout-parameter",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-pRegions-parameter",
- "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href=\"#VkImageResolve2\">VkImageResolve2</a> structures"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-regionCount-arraylength",
- "text": " <code>regionCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-commonparent",
- "text": " Both of <code>dstImage</code>, and <code>srcImage</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkResolveImageInfo2-srcImageLayout-00261",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstImageLayout-00263",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkResolveImageInfo2-srcImageLayout-01400",
- "text": " <code>srcImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-VkResolveImageInfo2-dstImageLayout-01401",
- "text": " <code>dstImageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code>, <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_NV_linear_color_attachment)": [
- {
- "vuid": "VUID-VkResolveImageInfo2-linearColorAttachment-06519",
- "text": " If the <a href=\"#features-linearColorAttachment\"><code>linearColorAttachment</code></a> feature is enabled and the image is created with <code>VK_IMAGE_TILING_LINEAR</code>, the <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkResolveImageInfo2-dstImage-02546",
- "text": " <code>dstImage</code> and <code>srcImage</code> <strong class=\"purple\">must</strong> not have been created with <code>flags</code> containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code>"
- }
- ]
- },
- "VkImageResolve2": {
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)": [
- {
- "vuid": "VUID-VkImageResolve2-aspectMask-00266",
- "text": " The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> only contain <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageResolve2-layerCount-00267",
- "text": " The <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
- },
- {
- "vuid": "VUID-VkImageResolve2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2</code>"
- },
- {
- "vuid": "VUID-VkImageResolve2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImageResolve2-srcSubresource-parameter",
- "text": " <code>srcSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
- },
- {
- "vuid": "VUID-VkImageResolve2-dstSubresource-parameter",
- "text": " <code>dstSubresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceLayers\">VkImageSubresourceLayers</a> structure"
- }
- ]
- },
- "VkPipelineInputAssemblyStateCreateInfo": {
- "!(VK_EXT_primitive_topology_list_restart)": [
- {
- "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00428",
- "text": " If <code>topology</code> is <code>VK_PRIMITIVE_TOPOLOGY_POINT_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY</code>, <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY</code> or <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, <code>primitiveRestartEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- }
- ],
- "(VK_EXT_primitive_topology_list_restart)": [
- {
- "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252",
- "text": " If <code>topology</code> is <code>VK_PRIMITIVE_TOPOLOGY_POINT_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY</code> or <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY</code>, and <code>primitiveRestartEnable</code> is <code>VK_TRUE</code>, the <a href=\"#features-primitiveTopologyListRestart\"><code>primitiveTopologyListRestart</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253",
- "text": " If <code>topology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, and <code>primitiveRestartEnable</code> is <code>VK_TRUE</code>, the <a href=\"#features-primitiveTopologyPatchListRestart\"><code>primitiveTopologyPatchListRestart</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "core": [
- {
- "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429",
- "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, <code>topology</code> <strong class=\"purple\">must</strong> not be any of <code>VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY</code>, <code>VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY</code>, <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY</code> or <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY</code>"
- },
- {
- "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430",
- "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, <code>topology</code> <strong class=\"purple\">must</strong> not be <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>"
- },
- {
- "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameter",
- "text": " <code>topology</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrimitiveTopology\">VkPrimitiveTopology</a> value"
- }
- ],
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452",
- "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>triangleFans</code> is <code>VK_FALSE</code>, <code>topology</code> <strong class=\"purple\">must</strong> not be <code>VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN</code>"
- }
- ]
- },
- "vkCmdSetPrimitiveRestartEnable": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-None-04866",
- "text": " The <a href=\"#features-extendedDynamicState2\">extendedDynamicState2</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdSetPrimitiveTopology": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-vkCmdSetPrimitiveTopology-None-03347",
- "text": " The <a href=\"#features-extendedDynamicState\">extendedDynamicState</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdSetPrimitiveTopology-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetPrimitiveTopology-primitiveTopology-parameter",
- "text": " <code>primitiveTopology</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrimitiveTopology\">VkPrimitiveTopology</a> value"
- },
- {
- "vuid": "VUID-vkCmdSetPrimitiveTopology-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetPrimitiveTopology-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdBindIndexBuffer": {
- "core": [
- {
- "vuid": "VUID-vkCmdBindIndexBuffer-offset-00431",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdBindIndexBuffer-offset-00432",
- "text": " The sum of <code>offset</code> and the address of the range of <code>VkDeviceMemory</code> object that is backing <code>buffer</code>, <strong class=\"purple\">must</strong> be a multiple of the type indicated by <code>indexType</code>"
- },
- {
- "vuid": "VUID-vkCmdBindIndexBuffer-buffer-00433",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDEX_BUFFER_BIT</code> flag"
- },
- {
- "vuid": "VUID-vkCmdBindIndexBuffer-buffer-00434",
- "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindIndexBuffer-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindIndexBuffer-indexType-parameter",
- "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value"
- },
- {
- "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBindIndexBuffer-commonparent",
- "text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkCmdBindIndexBuffer-indexType-02507",
- "text": " <code>indexType</code> <strong class=\"purple\">must</strong> not be <code>VK_INDEX_TYPE_NONE_KHR</code>"
- }
- ],
- "(VK_EXT_index_type_uint8)": [
- {
- "vuid": "VUID-vkCmdBindIndexBuffer-indexType-02765",
- "text": " If <code>indexType</code> is <code>VK_INDEX_TYPE_UINT8_EXT</code>, the <a href=\"#features-indexTypeUint8\">indexTypeUint8</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ]
- },
- "vkCmdDraw": {
- "core": [
- {
- "vuid": "VUID-vkCmdDraw-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDraw-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDraw-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDraw-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDraw-renderPass-02684",
- "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDraw-subpass-02685",
- "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-02686",
- "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-06537",
- "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-06538",
- "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-06539",
- "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDraw-blendEnable-04727",
- "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-vkCmdDraw-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-04007",
- "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-04008",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-02721",
- "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
- },
- {
- "vuid": "VUID-vkCmdDraw-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDraw-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDraw-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdDraw-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDraw-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDraw-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDraw-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDraw-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDraw-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDraw-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDraw-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDraw-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDraw-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDraw-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDraw-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDraw-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDraw-commandBuffer-02712",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
- },
- {
- "vuid": "VUID-vkCmdDraw-commandBuffer-02713",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
- },
- {
- "vuid": "VUID-vkCmdDraw-commandBuffer-04617",
- "text": " If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\">RayQueryKHR</a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDraw-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDraw-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDraw-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDraw-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDraw-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDraw-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDraw-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDraw-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688",
- "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
- }
- ],
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-02689",
- "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDraw-viewportCount-03417",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDraw-scissorCount-03418",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDraw-viewportCount-03419",
- "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDraw-primitiveTopology-03420",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopologyEXT\">vkCmdSetPrimitiveTopologyEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopologyEXT</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-vkCmdDraw-viewportCount-04137",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDraw-viewportCount-04138",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdDraw-viewportCount-04139",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDraw-viewportCount-04140",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04141",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04142",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdDraw-None-04876",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-04877",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDraw-logicOp-04878",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-04879",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- }
- ],
- "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552",
- "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdDraw-imageView-06172",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDraw-imageView-06173",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdDraw-viewMask-06178",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
- },
- {
- "vuid": "VUID-vkCmdDraw-colorAttachmentCount-06179",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDraw-colorAttachmentCount-06180",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDraw-pDepthAttachment-06181",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDraw-pStencilAttachment-06182",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdDraw-imageView-06174",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDraw-imageView-06175",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdDraw-imageView-06176",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDraw-imageView-06177",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkCmdDraw-imageView-06183",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdDraw-imageView-06184",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-vkCmdDraw-colorAttachmentCount-06185",
- "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDraw-pDepthAttachment-06186",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDraw-pStencilAttachment-06187",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDraw-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDraw-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDraw-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDraw-renderPass-06198",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDraw-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDraw-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDraw-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDraw-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDraw-stage-06481",
- "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
- }
- ]
- },
- "vkCmdDrawIndexed": {
- "core": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-renderPass-02684",
- "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-subpass-02685",
- "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02686",
- "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-06537",
- "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-06538",
- "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-06539",
- "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-blendEnable-04727",
- "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-04007",
- "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-04008",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02721",
- "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-firstIndex-04932",
- "text": " <span class=\"eq\">(<code>indexSize</code> {times} (<code>firstIndex</code> &#43; <code>indexCount</code>) &#43; <code>offset</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the bound index buffer, with <code>indexSize</code> being based on the type specified by <code>indexType</code>, where the index buffer, <code>indexType</code>, and <code>offset</code> are specified via <code>vkCmdBindIndexBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02712",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02713",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-04617",
- "text": " If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\">RayQueryKHR</a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688",
- "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
- }
- ],
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689",
- "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-viewportCount-03417",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-scissorCount-03418",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-viewportCount-03419",
- "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-primitiveTopology-03420",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopologyEXT\">vkCmdSetPrimitiveTopologyEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopologyEXT</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04137",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04138",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04139",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04140",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04141",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04142",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-04876",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-04877",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-logicOp-04878",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-04879",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- }
- ],
- "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552",
- "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-imageView-06172",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-imageView-06173",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-viewMask-06178",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-06179",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-06180",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-pDepthAttachment-06181",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-pStencilAttachment-06182",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-imageView-06174",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-imageView-06175",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-imageView-06176",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-imageView-06177",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-imageView-06183",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-imageView-06184",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-06185",
- "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-pDepthAttachment-06186",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-pStencilAttachment-06187",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-renderPass-06198",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-stage-06481",
- "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
- }
- ]
- },
- "vkCmdDrawMultiEXT": {
- "(VK_EXT_multi_draw)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-renderPass-02684",
- "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-subpass-02685",
- "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02686",
- "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-06537",
- "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-06538",
- "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-06539",
- "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-blendEnable-04727",
- "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-04007",
- "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-04008",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02721",
- "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-04933",
- "text": " The <a href=\"#features-multiDraw\">multiDraw</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-drawCount-04934",
- "text": " <code>drawCount</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceMultiDrawPropertiesEXT</code>::<code>maxMultiDrawCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-drawCount-04935",
- "text": " If <code>drawCount</code> is greater than zero, <code>pVertexInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to memory containing one or more valid instances of <a href=\"#VkMultiDrawInfoEXT\">VkMultiDrawInfoEXT</a> structures"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-stride-04936",
- "text": " <code>stride</code> must be a multiple of 4"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- }
- ],
- "(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02712",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02713",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-04617",
- "text": " If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\">RayQueryKHR</a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688",
- "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689",
- "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-03417",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-scissorCount-03418",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-03419",
- "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-primitiveTopology-03420",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopologyEXT\">vkCmdSetPrimitiveTopologyEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopologyEXT</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04137",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04138",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04139",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04140",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04141",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04142",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-04876",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-04877",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-logicOp-04878",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-04879",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552",
- "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06172",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06173",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-viewMask-06178",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06180",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06181",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06182",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06174",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06175",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06176",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06177",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06183",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-imageView-06184",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06185",
- "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06186",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-renderPass-06198",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-stage-06481",
- "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
- }
- ]
- },
- "vkCmdDrawMultiIndexedEXT": {
- "(VK_EXT_multi_draw)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684",
- "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-subpass-02685",
- "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02686",
- "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06537",
- "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06538",
- "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06539",
- "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727",
- "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04007",
- "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04008",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02721",
- "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04937",
- "text": " The <a href=\"#features-multiDraw\">multiDraw</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-firstIndex-04938",
- "text": " <span class=\"eq\">(<code>indexSize</code> {times} (<code>firstIndex</code> &#43; <code>indexCount</code>) &#43; <code>offset</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the bound index buffer, with <code>indexSize</code> being based on the type specified by <code>indexType</code>, where the index buffer, <code>indexType</code>, and <code>offset</code> are specified via <code>vkCmdBindIndexBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939",
- "text": " <code>drawCount</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceMultiDrawPropertiesEXT</code>::<code>maxMultiDrawCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04940",
- "text": " If <code>drawCount</code> is greater than zero, <code>pIndexInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to memory containing one or more valid instances of <a href=\"#VkMultiDrawIndexedInfoEXT\">VkMultiDrawIndexedInfoEXT</a> structures"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stride-04941",
- "text": " <code>stride</code> must be a multiple of 4"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pVertexOffset-parameter",
- "text": " If <code>pVertexOffset</code> is not <code>NULL</code>, <code>pVertexOffset</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>int32_t</code> value"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- }
- ],
- "(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02713",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-04617",
- "text": " If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\">RayQueryKHR</a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688",
- "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-02689",
- "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419",
- "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitiveTopology-03420",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopologyEXT\">vkCmdSetPrimitiveTopologyEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopologyEXT</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04137",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04138",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04139",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04140",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04141",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04142",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04876",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04877",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-logicOp-04878",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04879",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552",
- "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06172",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06173",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06180",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06181",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06182",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06174",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06175",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06176",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06177",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06183",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06184",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06185",
- "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06186",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-renderPass-06198",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stage-06481",
- "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
- }
- ]
- },
- "vkCmdDrawIndirect": {
- "core": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-renderPass-02684",
- "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-subpass-02685",
- "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02686",
- "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-06537",
- "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-06538",
- "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-06539",
- "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-blendEnable-04727",
- "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-04007",
- "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-04008",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02721",
- "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-buffer-02708",
- "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-buffer-02709",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-offset-02710",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-drawCount-02718",
- "text": " If the <a href=\"#features-multiDrawIndirect\">multi-draw indirect</a> feature is not enabled, <code>drawCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-drawCount-02719",
- "text": " <code>drawCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-firstInstance-00478",
- "text": " If the <a href=\"#features-drawIndirectFirstInstance\">drawIndirectFirstInstance</a> feature is not enabled, all the <code>firstInstance</code> members of the <code>VkDrawIndirectCommand</code> structures accessed by this command <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-drawCount-00476",
- "text": " If <code>drawCount</code> is greater than <code>1</code>, <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawIndirectCommand</code>)"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-drawCount-00487",
- "text": " If <code>drawCount</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; <code>sizeof</code>(<a href=\"#VkDrawIndirectCommand\">VkDrawIndirectCommand</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-drawCount-00488",
- "text": " If <code>drawCount</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>drawCount</code> - 1) &#43; <code>offset</code> &#43; <code>sizeof</code>(<a href=\"#VkDrawIndirectCommand\">VkDrawIndirectCommand</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-commonparent",
- "text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688",
- "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
- }
- ],
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689",
- "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-viewportCount-03417",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-scissorCount-03418",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-viewportCount-03419",
- "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-primitiveTopology-03420",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopologyEXT\">vkCmdSetPrimitiveTopologyEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopologyEXT</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04137",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04138",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04139",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04140",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04141",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04142",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-04876",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-04877",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-logicOp-04878",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-04879",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- }
- ],
- "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552",
- "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-imageView-06172",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-imageView-06173",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-viewMask-06178",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-06179",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-06180",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-pDepthAttachment-06181",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-pStencilAttachment-06182",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-imageView-06174",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-imageView-06175",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-imageView-06176",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-imageView-06177",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-imageView-06183",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-imageView-06184",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-06185",
- "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-pDepthAttachment-06186",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-pStencilAttachment-06187",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-renderPass-06198",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-stage-06481",
- "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
- }
- ]
- },
- "VkDrawIndirectCommand": {
- "core": [
- {
- "vuid": "VUID-VkDrawIndirectCommand-None-00500",
- "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
- },
- {
- "vuid": "VUID-VkDrawIndirectCommand-firstInstance-00501",
- "text": " If the <a href=\"#features-drawIndirectFirstInstance\">drawIndirectFirstInstance</a> feature is not enabled, <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCmdDrawIndirectCount": {
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-renderPass-02684",
- "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-subpass-02685",
- "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02686",
- "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-06537",
- "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-06538",
- "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-06539",
- "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-blendEnable-04727",
- "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-04007",
- "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-04008",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02721",
- "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-buffer-02708",
- "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-buffer-02709",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-offset-02710",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02714",
- "text": " If <code>countBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02715",
- "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-countBufferOffset-02716",
- "text": " <code>countBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02717",
- "text": " The count stored in <code>countBuffer</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-countBufferOffset-04129",
- "text": " <span class=\"eq\">(<code>countBufferOffset</code> &#43; <code>sizeof</code>(uint32_t))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>countBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-stride-03110",
- "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to sizeof(<code>VkDrawIndirectCommand</code>)"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-maxDrawCount-03111",
- "text": " If <code>maxDrawCount</code> is greater than or equal to <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>maxDrawCount</code> - 1) &#43; <code>offset</code> &#43; sizeof(<code>VkDrawIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-03121",
- "text": " If the count stored in <code>countBuffer</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; sizeof(<code>VkDrawIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-03122",
- "text": " If the count stored in <code>countBuffer</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>drawCount</code> - 1) &#43; <code>offset</code> &#43; sizeof(<code>VkDrawIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-parameter",
- "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-commonparent",
- "text": " Each of <code>buffer</code>, <code>commandBuffer</code>, and <code>countBuffer</code> <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_draw_indirect_count)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688",
- "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689",
- "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-03417",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-scissorCount-03418",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-03419",
- "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-primitiveTopology-03420",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopologyEXT\">vkCmdSetPrimitiveTopologyEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopologyEXT</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04137",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04138",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04139",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04140",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04141",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04142",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-04876",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-04877",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-logicOp-04878",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-04879",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552",
- "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06172",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06173",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-viewMask-06178",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06180",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06181",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06182",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06174",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06175",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06176",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06177",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06183",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-imageView-06184",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185",
- "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-renderPass-06198",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-stage-06481",
- "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-04445",
- "text": " If <a href=\"#features-drawIndirectCount\">drawIndirectCount</a> is not enabled this function <strong class=\"purple\">must</strong> not be used"
- }
- ]
- },
- "vkCmdDrawIndexedIndirect": {
- "core": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-renderPass-02684",
- "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-subpass-02685",
- "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02686",
- "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06537",
- "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06538",
- "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06539",
- "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-blendEnable-04727",
- "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04007",
- "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04008",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02721",
- "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-02708",
- "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-02709",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-offset-02710",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-02718",
- "text": " If the <a href=\"#features-multiDrawIndirect\">multi-draw indirect</a> feature is not enabled, <code>drawCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-02719",
- "text": " <code>drawCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00528",
- "text": " If <code>drawCount</code> is greater than <code>1</code>, <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawIndexedIndirectCommand</code>)"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-firstInstance-00530",
- "text": " If the <a href=\"#features-drawIndirectFirstInstance\">drawIndirectFirstInstance</a> feature is not enabled, all the <code>firstInstance</code> members of the <code>VkDrawIndexedIndirectCommand</code> structures accessed by this command <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00539",
- "text": " If <code>drawCount</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; <code>sizeof</code>(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00540",
- "text": " If <code>drawCount</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>drawCount</code> - 1) &#43; <code>offset</code> &#43; <code>sizeof</code>(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-commonparent",
- "text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688",
- "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
- }
- ],
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689",
- "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-03417",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-scissorCount-03418",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-03419",
- "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-primitiveTopology-03420",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopologyEXT\">vkCmdSetPrimitiveTopologyEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopologyEXT</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04137",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04138",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04139",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04140",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04141",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04142",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04876",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04877",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-logicOp-04878",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04879",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- }
- ],
- "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552",
- "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06172",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06173",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-viewMask-06178",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06180",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06182",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06174",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06175",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06176",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06177",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06183",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06184",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185",
- "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-renderPass-06198",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-stage-06481",
- "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
- }
- ]
- },
- "VkDrawIndexedIndirectCommand": {
- "core": [
- {
- "vuid": "VUID-VkDrawIndexedIndirectCommand-None-00552",
- "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
- },
- {
- "vuid": "VUID-VkDrawIndexedIndirectCommand-indexSize-00553",
- "text": " <span class=\"eq\">(<code>indexSize</code> {times} (<code>firstIndex</code> &#43; <code>indexCount</code>) &#43; <code>offset</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to the size of the bound index buffer, with <code>indexSize</code> being based on the type specified by <code>indexType</code>, where the index buffer, <code>indexType</code>, and <code>offset</code> are specified via <code>vkCmdBindIndexBuffer</code>"
- },
- {
- "vuid": "VUID-VkDrawIndexedIndirectCommand-firstInstance-00554",
- "text": " If the <a href=\"#features-drawIndirectFirstInstance\">drawIndirectFirstInstance</a> feature is not enabled, <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCmdDrawIndexedIndirectCount": {
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684",
- "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-subpass-02685",
- "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02686",
- "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06537",
- "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06538",
- "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06539",
- "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727",
- "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04007",
- "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04008",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02721",
- "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-02708",
- "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-02709",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-offset-02710",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714",
- "text": " If <code>countBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715",
- "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-02716",
- "text": " <code>countBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02717",
- "text": " The count stored in <code>countBuffer</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129",
- "text": " <span class=\"eq\">(<code>countBufferOffset</code> &#43; <code>sizeof</code>(uint32_t))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>countBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stride-03142",
- "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to sizeof(<code>VkDrawIndexedIndirectCommand</code>)"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143",
- "text": " If <code>maxDrawCount</code> is greater than or equal to <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>maxDrawCount</code> - 1) &#43; <code>offset</code> &#43; sizeof(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03153",
- "text": " If count stored in <code>countBuffer</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; sizeof(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03154",
- "text": " If count stored in <code>countBuffer</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>drawCount</code> - 1) &#43; <code>offset</code> &#43; sizeof(<code>VkDrawIndexedIndirectCommand</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-parameter",
- "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commonparent",
- "text": " Each of <code>buffer</code>, <code>commandBuffer</code>, and <code>countBuffer</code> <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_draw_indirect_count)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688",
- "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689",
- "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419",
- "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-03420",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopologyEXT\">vkCmdSetPrimitiveTopologyEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopologyEXT</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04137",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04138",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04139",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04140",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04141",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04142",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04876",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04877",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04879",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552",
- "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06172",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06173",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06180",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06181",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06182",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06174",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06175",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06176",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06177",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06183",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06184",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185",
- "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stage-06481",
- "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04445",
- "text": " If <a href=\"#features-drawIndirectCount\">drawIndirectCount</a> is not enabled this function <strong class=\"purple\">must</strong> not be used"
- }
- ]
- },
- "vkCmdDrawIndirectByteCountEXT": {
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684",
- "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685",
- "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02686",
- "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06537",
- "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06538",
- "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06539",
- "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727",
- "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04007",
- "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04008",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02721",
- "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287",
- "text": " <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>transformFeedback</code> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288",
- "text": " The implementation <strong class=\"purple\">must</strong> support <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackDraw</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-02289",
- "text": " <code>vertexStride</code> <strong class=\"purple\">must</strong> be greater than 0 and less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxTransformFeedbackBufferDataStride</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567",
- "text": " If <code>counterBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290",
- "text": " <code>counterBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBufferOffset-04568",
- "text": " <code>counterBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-parameter",
- "text": " <code>counterBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>counterBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_EXT_transform_feedback)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688",
- "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689",
- "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419",
- "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopologyEXT\">vkCmdSetPrimitiveTopologyEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopologyEXT</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04137",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04138",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04139",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04140",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04141",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04142",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04876",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04877",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04879",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552",
- "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06172",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06173",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06174",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06175",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06176",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06177",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185",
- "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stage-06481",
- "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
- }
- ]
- },
- "vkCmdBeginConditionalRenderingEXT": {
- "(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-None-01980",
- "text": " Conditional rendering <strong class=\"purple\">must</strong> not already be <a href=\"#active-conditional-rendering\">active</a>"
- },
- {
- "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-pConditionalRenderingBegin-parameter",
- "text": " <code>pConditionalRenderingBegin</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkConditionalRenderingBeginInfoEXT\">VkConditionalRenderingBeginInfoEXT</a> structure"
- },
- {
- "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- }
- ]
- },
- "VkConditionalRenderingBeginInfoEXT": {
- "(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981",
- "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-01982",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT</code> bit set"
- },
- {
- "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01983",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>buffer</code> by at least 32 bits"
- },
- {
- "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01984",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of 4"
- },
- {
- "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkConditionalRenderingFlagBitsEXT\">VkConditionalRenderingFlagBitsEXT</a> values"
- }
- ]
- },
- "vkCmdEndConditionalRenderingEXT": {
- "(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01985",
- "text": " Conditional rendering <strong class=\"purple\">must</strong> be <a href=\"#active-conditional-rendering\">active</a>"
- },
- {
- "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01986",
- "text": " If conditional rendering was made <a href=\"#active-conditional-rendering\">active</a> outside of a render pass instance, it <strong class=\"purple\">must</strong> not be ended inside a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01987",
- "text": " If conditional rendering was made <a href=\"#active-conditional-rendering\">active</a> within a subpass it <strong class=\"purple\">must</strong> be ended in the same subpass"
- },
- {
- "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- }
- ]
- },
- "vkCmdDrawMeshTasksNV": {
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-renderPass-02684",
- "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-subpass-02685",
- "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02686",
- "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06537",
- "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06538",
- "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06539",
- "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-blendEnable-04727",
- "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-taskCount-02119",
- "text": " <code>taskCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesNV</code>::<code>maxDrawMeshTasksCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- }
- ],
- "(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688",
- "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689",
- "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-03417",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-scissorCount-03418",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-03419",
- "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04137",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04138",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04139",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04140",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04141",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04142",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04876",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04877",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-logicOp-04878",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552",
- "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06172",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06173",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-viewMask-06178",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06180",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06181",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06182",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06174",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06175",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06176",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06177",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06183",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06184",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06185",
- "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06186",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-renderPass-06198",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-stage-06480",
- "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>"
- }
- ]
- },
- "vkCmdDrawMeshTasksIndirectNV": {
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684",
- "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02685",
- "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02686",
- "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06537",
- "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06538",
- "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06539",
- "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727",
- "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708",
- "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-offset-02710",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02718",
- "text": " If the <a href=\"#features-multiDrawIndirect\">multi-draw indirect</a> feature is not enabled, <code>drawCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02719",
- "text": " <code>drawCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02146",
- "text": " If <code>drawCount</code> is greater than <code>1</code>, <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>)"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02156",
- "text": " If <code>drawCount</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; <code>sizeof</code>(<a href=\"#VkDrawMeshTasksIndirectCommandNV\">VkDrawMeshTasksIndirectCommandNV</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157",
- "text": " If <code>drawCount</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>drawCount</code> - 1) &#43; <code>offset</code> &#43; <code>sizeof</code>(<a href=\"#VkDrawMeshTasksIndirectCommandNV\">VkDrawMeshTasksIndirectCommandNV</a>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commonparent",
- "text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688",
- "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689",
- "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419",
- "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04137",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04138",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04139",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04140",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04141",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04142",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04876",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04877",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552",
- "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06172",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06173",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06174",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06175",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06176",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06177",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185",
- "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stage-06480",
- "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>"
- }
- ]
- },
- "VkDrawMeshTasksIndirectCommandNV": {
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkDrawMeshTasksIndirectCommandNV-taskCount-02175",
- "text": " <code>taskCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesNV</code>::<code>maxDrawMeshTasksCount</code>"
- }
- ]
- },
- "vkCmdDrawMeshTasksIndirectCountNV": {
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684",
- "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685",
- "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02686",
- "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537",
- "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06538",
- "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539",
- "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727",
- "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708",
- "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-offset-02710",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714",
- "text": " If <code>countBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715",
- "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02716",
- "text": " <code>countBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02717",
- "text": " The count stored in <code>countBuffer</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129",
- "text": " <span class=\"eq\">(<code>countBufferOffset</code> &#43; <code>sizeof</code>(uint32_t))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>countBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182",
- "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code> and <strong class=\"purple\">must</strong> be greater than or equal to <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>)"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183",
- "text": " If <code>maxDrawCount</code> is greater than or equal to <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>maxDrawCount</code> - 1) &#43; <code>offset</code> &#43; <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02191",
- "text": " If the count stored in <code>countBuffer</code> is equal to <code>1</code>, <span class=\"eq\">(<code>offset</code> &#43; <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02192",
- "text": " If the count stored in <code>countBuffer</code> is greater than <code>1</code>, <span class=\"eq\">(<code>stride</code> {times} (<code>drawCount</code> - 1) &#43; <code>offset</code> &#43; <code>sizeof</code>(<code>VkDrawMeshTasksIndirectCommandNV</code>))</span> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameter",
- "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparent",
- "text": " Each of <code>buffer</code>, <code>commandBuffer</code>, and <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688",
- "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689",
- "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419",
- "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04137",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04138",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04139",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04140",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04141",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04142",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552",
- "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06172",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06173",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06174",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06175",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06176",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06177",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185",
- "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-06480",
- "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_VERSION_1_2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04445",
- "text": " If <a href=\"#features-drawIndirectCount\">drawIndirectCount</a> is not enabled this function <strong class=\"purple\">must</strong> not be used"
- }
- ]
- },
- "VkPipelineVertexInputStateCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-vertexBindingDescriptionCount-00613",
- "text": " <code>vertexBindingDescriptionCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
- },
- {
- "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-vertexAttributeDescriptionCount-00614",
- "text": " <code>vertexAttributeDescriptionCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributes</code>"
- },
- {
- "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-binding-00615",
- "text": " For every <code>binding</code> specified by each element of <code>pVertexAttributeDescriptions</code>, a <code>VkVertexInputBindingDescription</code> <strong class=\"purple\">must</strong> exist in <code>pVertexBindingDescriptions</code> with the same value of <code>binding</code>"
- },
- {
- "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616",
- "text": " All elements of <code>pVertexBindingDescriptions</code> <strong class=\"purple\">must</strong> describe distinct binding numbers"
- },
- {
- "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617",
- "text": " All elements of <code>pVertexAttributeDescriptions</code> <strong class=\"purple\">must</strong> describe distinct attribute locations"
- },
- {
- "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-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=\"#VkPipelineVertexInputDivisorStateCreateInfoEXT\">VkPipelineVertexInputDivisorStateCreateInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-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-VkPipelineVertexInputStateCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-parameter",
- "text": " If <code>vertexBindingDescriptionCount</code> is not <code>0</code>, <code>pVertexBindingDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexBindingDescriptionCount</code> valid <a href=\"#VkVertexInputBindingDescription\">VkVertexInputBindingDescription</a> structures"
- },
- {
- "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameter",
- "text": " If <code>vertexAttributeDescriptionCount</code> is not <code>0</code>, <code>pVertexAttributeDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexAttributeDescriptionCount</code> valid <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a> structures"
- }
- ]
- },
- "VkVertexInputBindingDescription": {
- "core": [
- {
- "vuid": "VUID-VkVertexInputBindingDescription-binding-00618",
- "text": " <code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
- },
- {
- "vuid": "VUID-VkVertexInputBindingDescription-stride-00619",
- "text": " <code>stride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindingStride</code>"
- },
- {
- "vuid": "VUID-VkVertexInputBindingDescription-inputRate-parameter",
- "text": " <code>inputRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVertexInputRate\">VkVertexInputRate</a> value"
- }
- ],
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-VkVertexInputBindingDescription-stride-04456",
- "text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of, and at least as large as, <a href=\"#VkPhysicalDevicePortabilitySubsetPropertiesKHR\">VkPhysicalDevicePortabilitySubsetPropertiesKHR</a>::<code>minVertexInputBindingStrideAlignment</code>"
- }
- ]
- },
- "VkVertexInputAttributeDescription": {
- "core": [
- {
- "vuid": "VUID-VkVertexInputAttributeDescription-location-00620",
- "text": " <code>location</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributes</code>"
- },
- {
- "vuid": "VUID-VkVertexInputAttributeDescription-binding-00621",
- "text": " <code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
- },
- {
- "vuid": "VUID-VkVertexInputAttributeDescription-offset-00622",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributeOffset</code>"
- },
- {
- "vuid": "VUID-VkVertexInputAttributeDescription-format-00623",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be allowed as a vertex buffer format, as specified by the <code>VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT</code> flag in <code>VkFormatProperties</code>::<code>bufferFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code>"
- },
- {
- "vuid": "VUID-VkVertexInputAttributeDescription-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- }
- ],
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-VkVertexInputAttributeDescription-vertexAttributeAccessBeyondStride-04457",
- "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>vertexAttributeAccessBeyondStride</code> is <code>VK_FALSE</code>, the sum of <code>offset</code> plus the size of the vertex attribute data described by <code>format</code> <strong class=\"purple\">must</strong> not be greater than <code>stride</code> in the <a href=\"#VkVertexInputBindingDescription\">VkVertexInputBindingDescription</a> referenced in <code>binding</code>"
- }
- ]
- },
- "vkCmdSetVertexInputEXT": {
- "(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdSetVertexInputEXT-None-04790",
- "text": " The <a href=\"#features-vertexInputDynamicState\">vertexInputDynamicState</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdSetVertexInputEXT-vertexBindingDescriptionCount-04791",
- "text": " <code>vertexBindingDescriptionCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
- },
- {
- "vuid": "VUID-vkCmdSetVertexInputEXT-vertexAttributeDescriptionCount-04792",
- "text": " <code>vertexAttributeDescriptionCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributes</code>"
- },
- {
- "vuid": "VUID-vkCmdSetVertexInputEXT-binding-04793",
- "text": " For every <code>binding</code> specified by each element of <code>pVertexAttributeDescriptions</code>, a <code>VkVertexInputBindingDescription2EXT</code> <strong class=\"purple\">must</strong> exist in <code>pVertexBindingDescriptions</code> with the same value of <code>binding</code>"
- },
- {
- "vuid": "VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-04794",
- "text": " All elements of <code>pVertexBindingDescriptions</code> <strong class=\"purple\">must</strong> describe distinct binding numbers"
- },
- {
- "vuid": "VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-04795",
- "text": " All elements of <code>pVertexAttributeDescriptions</code> <strong class=\"purple\">must</strong> describe distinct attribute locations"
- },
- {
- "vuid": "VUID-vkCmdSetVertexInputEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-parameter",
- "text": " If <code>vertexBindingDescriptionCount</code> is not <code>0</code>, <code>pVertexBindingDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexBindingDescriptionCount</code> valid <a href=\"#VkVertexInputBindingDescription2EXT\">VkVertexInputBindingDescription2EXT</a> structures"
- },
- {
- "vuid": "VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-parameter",
- "text": " If <code>vertexAttributeDescriptionCount</code> is not <code>0</code>, <code>pVertexAttributeDescriptions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexAttributeDescriptionCount</code> valid <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a> structures"
- },
- {
- "vuid": "VUID-vkCmdSetVertexInputEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetVertexInputEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "VkVertexInputBindingDescription2EXT": {
- "(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-VkVertexInputBindingDescription2EXT-binding-04796",
- "text": " <code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
- },
- {
- "vuid": "VUID-VkVertexInputBindingDescription2EXT-stride-04797",
- "text": " <code>stride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindingStride</code>"
- },
- {
- "vuid": "VUID-VkVertexInputBindingDescription2EXT-divisor-04798",
- "text": " If the <a href=\"#features-vertexAttributeInstanceRateZeroDivisor\">vertexAttributeInstanceRateZeroDivisor</a> feature is not enabled, <code>divisor</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVertexInputBindingDescription2EXT-divisor-04799",
- "text": " If the <a href=\"#features-vertexAttributeInstanceRateDivisor\">vertexAttributeInstanceRateDivisor</a> feature is not enabled, <code>divisor</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkVertexInputBindingDescription2EXT-divisor-06226",
- "text": " <code>divisor</code> <strong class=\"purple\">must</strong> be a value between <code>0</code> and <code>VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</code>::<code>maxVertexAttribDivisor</code>, inclusive"
- },
- {
- "vuid": "VUID-VkVertexInputBindingDescription2EXT-divisor-06227",
- "text": " If <code>divisor</code> is not <code>1</code> then <code>inputRate</code> <strong class=\"purple\">must</strong> be of type <code>VK_VERTEX_INPUT_RATE_INSTANCE</code>"
- },
- {
- "vuid": "VUID-VkVertexInputBindingDescription2EXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT</code>"
- },
- {
- "vuid": "VUID-VkVertexInputBindingDescription2EXT-inputRate-parameter",
- "text": " <code>inputRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVertexInputRate\">VkVertexInputRate</a> value"
- }
- ]
- },
- "VkVertexInputAttributeDescription2EXT": {
- "(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-VkVertexInputAttributeDescription2EXT-location-06228",
- "text": " <code>location</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributes</code>"
- },
- {
- "vuid": "VUID-VkVertexInputAttributeDescription2EXT-binding-06229",
- "text": " <code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
- },
- {
- "vuid": "VUID-VkVertexInputAttributeDescription2EXT-offset-06230",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputAttributeOffset</code>"
- },
- {
- "vuid": "VUID-VkVertexInputAttributeDescription2EXT-format-04805",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be allowed as a vertex buffer format, as specified by the <code>VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT</code> flag in <code>VkFormatProperties</code>::<code>bufferFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code>"
- },
- {
- "vuid": "VUID-VkVertexInputAttributeDescription2EXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT</code>"
- },
- {
- "vuid": "VUID-VkVertexInputAttributeDescription2EXT-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- }
- ],
- "(VK_EXT_vertex_input_dynamic_state)+(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-VkVertexInputAttributeDescription2EXT-vertexAttributeAccessBeyondStride-04806",
- "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>vertexAttributeAccessBeyondStride</code> is <code>VK_FALSE</code>, the sum of <code>offset</code> plus the size of the vertex attribute data described by <code>format</code> <strong class=\"purple\">must</strong> not be greater than <code>stride</code> in the <a href=\"#VkVertexInputBindingDescription2EXT\">VkVertexInputBindingDescription2EXT</a> referenced in <code>binding</code>"
- }
- ]
- },
- "vkCmdBindVertexBuffers": {
- "core": [
- {
- "vuid": "VUID-vkCmdBindVertexBuffers-firstBinding-00624",
- "text": " <code>firstBinding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers-firstBinding-00625",
- "text": " The sum of <code>firstBinding</code> and <code>bindingCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers-pOffsets-00626",
- "text": " All elements of <code>pOffsets</code> <strong class=\"purple\">must</strong> be less than the size of the corresponding element in <code>pBuffers</code>"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-00627",
- "text": " All elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_VERTEX_BUFFER_BIT</code> flag"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-00628",
- "text": " Each element of <code>pBuffers</code> that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-04001",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, all elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-parameter",
- "text": " <code>pBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkBuffer\">VkBuffer</a> handles"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers-pOffsets-parameter",
- "text": " <code>pOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <code>VkDeviceSize</code> values"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers-bindingCount-arraylength",
- "text": " <code>bindingCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers-commonparent",
- "text": " Both of <code>commandBuffer</code>, and the elements of <code>pBuffers</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_EXT_robustness2)": [
- {
- "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-04002",
- "text": " If an element of <code>pBuffers</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <code>pOffsets</code> <strong class=\"purple\">must</strong> be zero"
- }
- ]
- },
- "vkCmdBindVertexBuffers2": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-firstBinding-03355",
- "text": " <code>firstBinding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-firstBinding-03356",
- "text": " The sum of <code>firstBinding</code> and <code>bindingCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-pOffsets-03357",
- "text": " All elements of <code>pOffsets</code> <strong class=\"purple\">must</strong> be less than the size of the corresponding element in <code>pBuffers</code>"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-pSizes-03358",
- "text": " If <code>pSizes</code> is not <code>NULL</code>, all elements of <code>pOffsets</code> plus <code>pSizes</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the corresponding element in <code>pBuffers</code>"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-03359",
- "text": " All elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_VERTEX_BUFFER_BIT</code> flag"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-03360",
- "text": " Each element of <code>pBuffers</code> that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-04111",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, all elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-pStrides-03362",
- "text": " If <code>pStrides</code> is not <code>NULL</code> each element of <code>pStrides</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindingStride</code>"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-pStrides-06209",
- "text": " If <code>pStrides</code> is not <code>NULL</code> each element of <code>pStrides</code> <strong class=\"purple\">must</strong> be either 0 or greater than or equal to the maximum extent of all vertex input attributes fetched from the corresponding binding, where the extent is calculated as the <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>offset</code> plus <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>format</code> size"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-parameter",
- "text": " <code>pBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkBuffer\">VkBuffer</a> handles"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-pOffsets-parameter",
- "text": " <code>pOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <code>VkDeviceSize</code> values"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-pSizes-parameter",
- "text": " If <code>pSizes</code> is not <code>NULL</code>, <code>pSizes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <code>VkDeviceSize</code> values"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-pStrides-parameter",
- "text": " If <code>pStrides</code> is not <code>NULL</code>, <code>pStrides</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <code>VkDeviceSize</code> values"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-bindingCount-arraylength",
- "text": " If any of <code>pSizes</code>, or <code>pStrides</code> are not <code>NULL</code>, <code>bindingCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-commonparent",
- "text": " Both of <code>commandBuffer</code>, and the elements of <code>pBuffers</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_3,VK_EXT_extended_dynamic_state)+(VK_EXT_robustness2)": [
- {
- "vuid": "VUID-vkCmdBindVertexBuffers2-pBuffers-04112",
- "text": " If an element of <code>pBuffers</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <code>pOffsets</code> <strong class=\"purple\">must</strong> be zero"
- }
- ]
- },
- "VkPipelineVertexInputDivisorStateCreateInfoEXT": {
- "(VK_EXT_vertex_attribute_divisor)": [
- {
- "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-pVertexBindingDivisors-parameter",
- "text": " <code>pVertexBindingDivisors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vertexBindingDivisorCount</code> <a href=\"#VkVertexInputBindingDivisorDescriptionEXT\">VkVertexInputBindingDivisorDescriptionEXT</a> structures"
- },
- {
- "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-vertexBindingDivisorCount-arraylength",
- "text": " <code>vertexBindingDivisorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkVertexInputBindingDivisorDescriptionEXT": {
- "(VK_EXT_vertex_attribute_divisor)": [
- {
- "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-binding-01869",
- "text": " <code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>"
- },
- {
- "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateZeroDivisor-02228",
- "text": " If the <code>vertexAttributeInstanceRateZeroDivisor</code> feature is not enabled, <code>divisor</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateDivisor-02229",
- "text": " If the <code>vertexAttributeInstanceRateDivisor</code> feature is not enabled, <code>divisor</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-divisor-01870",
- "text": " <code>divisor</code> <strong class=\"purple\">must</strong> be a value between <code>0</code> and <code>VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</code>::<code>maxVertexAttribDivisor</code>, inclusive"
- },
- {
- "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-inputRate-01871",
- "text": " <a href=\"#VkVertexInputBindingDescription\">VkVertexInputBindingDescription</a>::<code>inputRate</code> <strong class=\"purple\">must</strong> be of type <code>VK_VERTEX_INPUT_RATE_INSTANCE</code> for this <code>binding</code>"
- }
- ]
- },
- "VkPipelineTessellationStateCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214",
- "text": " <code>patchControlPoints</code> <strong class=\"purple\">must</strong> be greater than zero and less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTessellationPatchSize</code>"
- },
- {
- "vuid": "VUID-VkPipelineTessellationStateCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineTessellationStateCreateInfo-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=\"#VkPipelineTessellationDomainOriginStateCreateInfo\">VkPipelineTessellationDomainOriginStateCreateInfo</a>"
- },
- {
- "vuid": "VUID-VkPipelineTessellationStateCreateInfo-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-VkPipelineTessellationStateCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "VkPipelineTessellationDomainOriginStateCreateInfo": {
- "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-VkPipelineTessellationDomainOriginStateCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineTessellationDomainOriginStateCreateInfo-domainOrigin-parameter",
- "text": " <code>domainOrigin</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkTessellationDomainOrigin\">VkTessellationDomainOrigin</a> value"
- }
- ]
- },
- "vkCmdBindTransformFeedbackBuffersEXT": {
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-transformFeedback-02355",
- "text": " <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>transformFeedback</code> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02356",
- "text": " <code>firstBinding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02357",
- "text": " The sum of <code>firstBinding</code> and <code>bindingCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02358",
- "text": " All elements of <code>pOffsets</code> <strong class=\"purple\">must</strong> be less than the size of the corresponding element in <code>pBuffers</code>"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02359",
- "text": " All elements of <code>pOffsets</code> <strong class=\"purple\">must</strong> be a multiple of 4"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02360",
- "text": " All elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT</code> flag"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pSize-02361",
- "text": " If the optional <code>pSize</code> array is specified, each element of <code>pSizes</code> <strong class=\"purple\">must</strong> either be <code>VK_WHOLE_SIZE</code>, or be less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBufferSize</code>"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pSizes-02362",
- "text": " All elements of <code>pSizes</code> <strong class=\"purple\">must</strong> be either <code>VK_WHOLE_SIZE</code>, or less than or equal to the size of the corresponding buffer in <code>pBuffers</code>"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02363",
- "text": " All elements of <code>pOffsets</code> plus <code>pSizes</code>, where the <code>pSizes</code>, element is not <code>VK_WHOLE_SIZE</code>, <strong class=\"purple\">must</strong> be less than or equal to the size of the corresponding buffer in <code>pBuffers</code>"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02364",
- "text": " Each element of <code>pBuffers</code> that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-None-02365",
- "text": " Transform feedback <strong class=\"purple\">must</strong> not be active when the <code>vkCmdBindTransformFeedbackBuffersEXT</code> command is recorded"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-parameter",
- "text": " <code>pBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> valid <a href=\"#VkBuffer\">VkBuffer</a> handles"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-parameter",
- "text": " <code>pOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindingCount</code> <code>VkDeviceSize</code> values"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-bindingCount-arraylength",
- "text": " <code>bindingCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commonparent",
- "text": " Both of <code>commandBuffer</code>, and the elements of <code>pBuffers</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "vkCmdBeginTransformFeedbackEXT": {
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-transformFeedback-02366",
- "text": " <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>transformFeedback</code> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-02367",
- "text": " Transform feedback <strong class=\"purple\">must</strong> not be active"
- },
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02368",
- "text": " <code>firstCounterBuffer</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02369",
- "text": " The sum of <code>firstCounterBuffer</code> and <code>counterBufferCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-counterBufferCount-02607",
- "text": " If <code>counterBufferCount</code> is not <code>0</code>, and <code>pCounterBuffers</code> is not <code>NULL</code>, <code>pCounterBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterBufferCount</code> <code>VkBuffer</code> handles that are either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-02370",
- "text": " For each buffer handle in the array, if it is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> reference a buffer large enough to hold 4 bytes at the corresponding offset from the <code>pCounterBufferOffsets</code> array"
- },
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffer-02371",
- "text": " If <code>pCounterBuffer</code> is <code>NULL</code>, then <code>pCounterBufferOffsets</code> <strong class=\"purple\">must</strong> also be <code>NULL</code>"
- },
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffers-02372",
- "text": " For each buffer handle in the <code>pCounterBuffers</code> array that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing <code>VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT</code>"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-04128",
- "text": " The last <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a> of the bound graphics pipeline <strong class=\"purple\">must</strong> have been declared with the <code>Xfb</code> execution mode"
- },
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-parameter",
- "text": " If <code>counterBufferCount</code> is not <code>0</code>, and <code>pCounterBufferOffsets</code> is not <code>NULL</code>, <code>pCounterBufferOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterBufferCount</code> <code>VkDeviceSize</code> values"
- },
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commonparent",
- "text": " Both of <code>commandBuffer</code>, and the elements of <code>pCounterBuffers</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_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-02373",
- "text": " Transform feedback <strong class=\"purple\">must</strong> not be made active in a render pass instance with multiview enabled"
- }
- ]
- },
- "vkCmdEndTransformFeedbackEXT": {
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdEndTransformFeedbackEXT-transformFeedback-02374",
- "text": " <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>transformFeedback</code> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdEndTransformFeedbackEXT-None-02375",
- "text": " Transform feedback <strong class=\"purple\">must</strong> be active"
- },
- {
- "vuid": "VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02376",
- "text": " <code>firstCounterBuffer</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>"
- },
- {
- "vuid": "VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02377",
- "text": " The sum of <code>firstCounterBuffer</code> and <code>counterBufferCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBuffers</code>"
- },
- {
- "vuid": "VUID-vkCmdEndTransformFeedbackEXT-counterBufferCount-02608",
- "text": " If <code>counterBufferCount</code> is not <code>0</code>, and <code>pCounterBuffers</code> is not <code>NULL</code>, <code>pCounterBuffers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterBufferCount</code> <code>VkBuffer</code> handles that are either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-02378",
- "text": " For each buffer handle in the array, if it is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> reference a buffer large enough to hold 4 bytes at the corresponding offset from the <code>pCounterBufferOffsets</code> array"
- },
- {
- "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffer-02379",
- "text": " If <code>pCounterBuffer</code> is <code>NULL</code>, then <code>pCounterBufferOffsets</code> <strong class=\"purple\">must</strong> also be <code>NULL</code>"
- },
- {
- "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffers-02380",
- "text": " For each buffer handle in the <code>pCounterBuffers</code> array that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing <code>VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT</code>"
- },
- {
- "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-parameter",
- "text": " If <code>counterBufferCount</code> is not <code>0</code>, and <code>pCounterBufferOffsets</code> is not <code>NULL</code>, <code>pCounterBufferOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>counterBufferCount</code> <code>VkDeviceSize</code> values"
- },
- {
- "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdEndTransformFeedbackEXT-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commonparent",
- "text": " Both of <code>commandBuffer</code>, and the elements of <code>pCounterBuffers</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>"
- }
- ]
- },
- "VkPipelineViewportSwizzleStateCreateInfoNV": {
- "(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-01215",
- "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> set in <code>VkPipelineViewportStateCreateInfo</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-pViewportSwizzles-parameter",
- "text": " <code>pViewportSwizzles</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkViewportSwizzleNV\">VkViewportSwizzleNV</a> structures"
- },
- {
- "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-arraylength",
- "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkViewportSwizzleNV": {
- "(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-VkViewportSwizzleNV-x-parameter",
- "text": " <code>x</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkViewportCoordinateSwizzleNV\">VkViewportCoordinateSwizzleNV</a> value"
- },
- {
- "vuid": "VUID-VkViewportSwizzleNV-y-parameter",
- "text": " <code>y</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkViewportCoordinateSwizzleNV\">VkViewportCoordinateSwizzleNV</a> value"
- },
- {
- "vuid": "VUID-VkViewportSwizzleNV-z-parameter",
- "text": " <code>z</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkViewportCoordinateSwizzleNV\">VkViewportCoordinateSwizzleNV</a> value"
- },
- {
- "vuid": "VUID-VkViewportSwizzleNV-w-parameter",
- "text": " <code>w</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkViewportCoordinateSwizzleNV\">VkViewportCoordinateSwizzleNV</a> value"
- }
- ]
- },
- "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT": {
- "(VK_EXT_provoking_vertex)": [
- {
- "vuid": "VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-04883",
- "text": " If <code>provokingVertexMode</code> is <code>VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT</code>, then the <a href=\"#features-provokingVertexLast\">provokingVertexLast</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-parameter",
- "text": " <code>provokingVertexMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkProvokingVertexModeEXT\">VkProvokingVertexModeEXT</a> value"
- }
- ]
- },
- "VkPipelineViewportDepthClipControlCreateInfoEXT": {
- "(VK_EXT_depth_clip_control)": [
- {
- "vuid": "VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-negativeOneToOne-06470",
- "text": " If <a href=\"#features-depthClipControl\">depthClipControl</a> is not enabled, <code>negativeOneToOne</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT</code>"
- }
- ]
- },
- "VkPipelineViewportWScalingStateCreateInfoNV": {
- "(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-VkPipelineViewportWScalingStateCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportWScalingStateCreateInfoNV-viewportCount-arraylength",
- "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkCmdSetViewportWScalingNV": {
- "(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-vkCmdSetViewportWScalingNV-firstViewport-01324",
- "text": " The sum of <code>firstViewport</code> and <code>viewportCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxViewports</code>, inclusive"
- },
- {
- "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetViewportWScalingNV-pViewportWScalings-parameter",
- "text": " <code>pViewportWScalings</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> <a href=\"#VkViewportWScalingNV\">VkViewportWScalingNV</a> structures"
- },
- {
- "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdSetViewportWScalingNV-viewportCount-arraylength",
- "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkPipelineViewportStateCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> not be greater than <code>1</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled, <code>scissorCount</code> <strong class=\"purple\">must</strong> not be greater than <code>1</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-01218",
- "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219",
- "text": " <code>scissorCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-x-02821",
- "text": " The <code>x</code> and <code>y</code> members of <code>offset</code> member of any element of <code>pScissors</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-offset-02822",
- "text": " Evaluation of <span class=\"eq\">(<code>offset.x</code> &#43; <code>extent.width</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-offset-02823",
- "text": " Evaluation of <span class=\"eq\">(<code>offset.y</code> &#43; <code>extent.height</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-pNext-pNext",
- "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=\"#VkPipelineViewportCoarseSampleOrderStateCreateInfoNV\">VkPipelineViewportCoarseSampleOrderStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportDepthClipControlCreateInfoEXT\">VkPipelineViewportDepthClipControlCreateInfoEXT</a>, <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>, or <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>"
- },
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-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-VkPipelineViewportStateCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ],
- "!(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01220",
- "text": " <code>scissorCount</code> and <code>viewportCount</code> <strong class=\"purple\">must</strong> be identical"
- },
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-arraylength",
- "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-arraylength",
- "text": " <code>scissorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134",
- "text": " If the graphics pipeline is being created without <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> set then <code>scissorCount</code> and <code>viewportCount</code> <strong class=\"purple\">must</strong> be identical"
- },
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135",
- "text": " If the graphics pipeline is being created with <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> set then <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>0</code>, otherwise it <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136",
- "text": " If the graphics pipeline is being created with <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> set then <code>scissorCount</code> <strong class=\"purple\">must</strong> be <code>0</code>, otherwise it <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726",
- "text": " If the <code>viewportWScalingEnable</code> member of a <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> structure included in the <code>pNext</code> chain is <code>VK_TRUE</code>, the <code>viewportCount</code> member of the <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> structure <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>::<code>viewportCount</code>"
- }
- ]
- },
- "vkCmdSetViewportWithCount": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-vkCmdSetViewportWithCount-None-03393",
- "text": " The <a href=\"#features-extendedDynamicState\">extendedDynamicState</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdSetViewportWithCount-viewportCount-03394",
- "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive"
- },
- {
- "vuid": "VUID-vkCmdSetViewportWithCount-viewportCount-03395",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdSetViewportWithCount-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetViewportWithCount-pViewports-parameter",
- "text": " <code>pViewports</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkViewport\">VkViewport</a> structures"
- },
- {
- "vuid": "VUID-vkCmdSetViewportWithCount-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetViewportWithCount-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdSetViewportWithCount-viewportCount-arraylength",
- "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_inherited_viewport_scissor)": [
- {
- "vuid": "VUID-vkCmdSetViewportWithCount-commandBuffer-04819",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not have <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled"
- }
- ]
- },
- "vkCmdSetScissorWithCount": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-vkCmdSetScissorWithCount-None-03396",
- "text": " The <a href=\"#features-extendedDynamicState\">extendedDynamicState</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdSetScissorWithCount-scissorCount-03397",
- "text": " <code>scissorCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive"
- },
- {
- "vuid": "VUID-vkCmdSetScissorWithCount-scissorCount-03398",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled, <code>scissorCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdSetScissorWithCount-x-03399",
- "text": " The <code>x</code> and <code>y</code> members of <code>offset</code> member of any element of <code>pScissors</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetScissorWithCount-offset-03400",
- "text": " Evaluation of <span class=\"eq\">(<code>offset.x</code> &#43; <code>extent.width</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>"
- },
- {
- "vuid": "VUID-vkCmdSetScissorWithCount-offset-03401",
- "text": " Evaluation of <span class=\"eq\">(<code>offset.y</code> &#43; <code>extent.height</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>"
- },
- {
- "vuid": "VUID-vkCmdSetScissorWithCount-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetScissorWithCount-pScissors-parameter",
- "text": " <code>pScissors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>scissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
- },
- {
- "vuid": "VUID-vkCmdSetScissorWithCount-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetScissorWithCount-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdSetScissorWithCount-scissorCount-arraylength",
- "text": " <code>scissorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_inherited_viewport_scissor)": [
- {
- "vuid": "VUID-vkCmdSetScissorWithCount-commandBuffer-04820",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not have <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled"
- }
- ]
- },
- "vkCmdSetViewport": {
- "core": [
- {
- "vuid": "VUID-vkCmdSetViewport-firstViewport-01223",
- "text": " The sum of <code>firstViewport</code> and <code>viewportCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive"
- },
- {
- "vuid": "VUID-vkCmdSetViewport-firstViewport-01224",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled, <code>firstViewport</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetViewport-viewportCount-01225",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdSetViewport-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetViewport-pViewports-parameter",
- "text": " <code>pViewports</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkViewport\">VkViewport</a> structures"
- },
- {
- "vuid": "VUID-vkCmdSetViewport-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetViewport-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdSetViewport-viewportCount-arraylength",
- "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_NV_inherited_viewport_scissor)": [
- {
- "vuid": "VUID-vkCmdSetViewport-commandBuffer-04821",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not have <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled"
- }
- ]
- },
- "VkViewport": {
- "core": [
- {
- "vuid": "VUID-VkViewport-width-01770",
- "text": " <code>width</code> <strong class=\"purple\">must</strong> be greater than <code>0.0</code>"
- },
- {
- "vuid": "VUID-VkViewport-width-01771",
- "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-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]"
- },
- {
- "vuid": "VUID-VkViewport-x-01774",
- "text": " <code>x</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>viewportBoundsRange</code>[0]"
- },
- {
- "vuid": "VUID-VkViewport-x-01232",
- "text": " <span class=\"eq\">(<code>x</code> &#43; <code>width</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to <code>viewportBoundsRange</code>[1]"
- },
- {
- "vuid": "VUID-VkViewport-y-01775",
- "text": " <code>y</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>viewportBoundsRange</code>[0]"
- },
- {
- "vuid": "VUID-VkViewport-y-01233",
- "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]"
- }
- ],
- "!(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)": [
- {
- "vuid": "VUID-VkViewport-height-01772",
- "text": " <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",
- "text": " <code>y</code> <strong class=\"purple\">must</strong> be less than or equal to <code>viewportBoundsRange</code>[1]"
- },
- {
- "vuid": "VUID-VkViewport-y-01777",
- "text": " <span class=\"eq\">(<code>y</code> &#43; <code>height</code>)</span> <strong class=\"purple\">must</strong> be greater than or equal to <code>viewportBoundsRange</code>[0]"
- }
- ],
- "(VK_EXT_depth_range_unrestricted)": [
- {
- "vuid": "VUID-VkViewport-minDepth-01234",
- "text": " Unless <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>minDepth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
- },
- {
- "vuid": "VUID-VkViewport-maxDepth-01235",
- "text": " Unless <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>maxDepth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
- }
- ],
- "!(VK_EXT_depth_range_unrestricted)": [
- {
- "vuid": "VUID-VkViewport-minDepth-02540",
- "text": " <code>minDepth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
- },
- {
- "vuid": "VUID-VkViewport-maxDepth-02541",
- "text": " <code>maxDepth</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
- }
- ]
- },
- "VkPipelineRasterizationStateCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782",
- "text": " If the <a href=\"#features-depthClamp\">depth clamping</a> feature is not enabled, <code>depthClampEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNext",
- "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=\"#VkPipelineRasterizationConservativeStateCreateInfoEXT\">VkPipelineRasterizationConservativeStateCreateInfoEXT</a>, <a href=\"#VkPipelineRasterizationDepthClipStateCreateInfoEXT\">VkPipelineRasterizationDepthClipStateCreateInfoEXT</a>, <a href=\"#VkPipelineRasterizationLineStateCreateInfoEXT\">VkPipelineRasterizationLineStateCreateInfoEXT</a>, <a href=\"#VkPipelineRasterizationProvokingVertexStateCreateInfoEXT\">VkPipelineRasterizationProvokingVertexStateCreateInfoEXT</a>, <a href=\"#VkPipelineRasterizationStateRasterizationOrderAMD\">VkPipelineRasterizationStateRasterizationOrderAMD</a>, or <a href=\"#VkPipelineRasterizationStateStreamCreateInfoEXT\">VkPipelineRasterizationStateStreamCreateInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-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-VkPipelineRasterizationStateCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameter",
- "text": " <code>polygonMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPolygonMode\">VkPolygonMode</a> value"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameter",
- "text": " <code>cullMode</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCullModeFlagBits\">VkCullModeFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameter",
- "text": " <code>frontFace</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFrontFace\">VkFrontFace</a> value"
- }
- ],
- "!(VK_NV_fill_rectangle)": [
- {
- "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01413",
- "text": " If the <a href=\"#features-fillModeNonSolid\">non-solid fill modes</a> feature is not enabled, <code>polygonMode</code> <strong class=\"purple\">must</strong> be <code>VK_POLYGON_MODE_FILL</code>"
- }
- ],
- "(VK_NV_fill_rectangle)": [
- {
- "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507",
- "text": " If the <a href=\"#features-fillModeNonSolid\">non-solid fill modes</a> feature is not enabled, <code>polygonMode</code> <strong class=\"purple\">must</strong> be <code>VK_POLYGON_MODE_FILL</code> or <code>VK_POLYGON_MODE_FILL_RECTANGLE_NV</code>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414",
- "text": " If the <code><a href=\"#VK_NV_fill_rectangle\">VK_NV_fill_rectangle</a></code> extension is not enabled, <code>polygonMode</code> <strong class=\"purple\">must</strong> not be <code>VK_POLYGON_MODE_FILL_RECTANGLE_NV</code>"
- }
- ],
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-pointPolygons-04458",
- "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>pointPolygons</code> is <code>VK_FALSE</code>, and <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, <code>polygonMode</code> <strong class=\"purple\">must</strong> not be <code>VK_POLYGON_MODE_POINT</code>"
- }
- ]
- },
- "VkPipelineRasterizationDepthClipStateCreateInfoEXT": {
- "(VK_EXT_depth_clip_enable)": [
- {
- "vuid": "VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "VkPipelineMultisampleStateCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784",
- "text": " If the <a href=\"#features-sampleRateShading\">sample rate shading</a> feature is not enabled, <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785",
- "text": " If the <a href=\"#features-alphaToOne\">alpha to one</a> feature is not enabled, <code>alphaToOneEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786",
- "text": " <code>minSampleShading</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>"
- },
- {
- "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNext",
- "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=\"#VkPipelineCoverageModulationStateCreateInfoNV\">VkPipelineCoverageModulationStateCreateInfoNV</a>, <a href=\"#VkPipelineCoverageReductionStateCreateInfoNV\">VkPipelineCoverageReductionStateCreateInfoNV</a>, <a href=\"#VkPipelineCoverageToColorStateCreateInfoNV\">VkPipelineCoverageToColorStateCreateInfoNV</a>, or <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-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-VkPipelineMultisampleStateCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-parameter",
- "text": " <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
- },
- {
- "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-pSampleMask-parameter",
- "text": " If <code>pSampleMask</code> is not <code>NULL</code>, <code>pSampleMask</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of \\(\\lceil{\\mathit{rasterizationSamples} \\over 32}\\rceil\\) <code>VkSampleMask</code> values"
- }
- ],
- "(VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415",
- "text": " If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the subpass has any color attachments and <code>rasterizationSamples</code> is greater than the number of color samples, then <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- }
- ]
- },
- "vkCmdSetRasterizerDiscardEnable": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-None-04871",
- "text": " The <a href=\"#features-extendedDynamicState2\">extendedDynamicState2</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "VkPipelineRasterizationStateStreamCreateInfoEXT": {
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324",
- "text": " <code>VkPhysicalDeviceTransformFeedbackFeaturesEXT</code>::<code>geometryStreams</code> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02325",
- "text": " <code>rasterizationStream</code> <strong class=\"purple\">must</strong> be less than <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>::<code>maxTransformFeedbackStreams</code>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02326",
- "text": " <code>rasterizationStream</code> <strong class=\"purple\">must</strong> be zero if <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackRasterizationStreamSelect</code> is <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "VkPipelineRasterizationStateRasterizationOrderAMD": {
- "(VK_AMD_rasterization_order)": [
- {
- "vuid": "VUID-VkPipelineRasterizationStateRasterizationOrderAMD-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD</code>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationStateRasterizationOrderAMD-rasterizationOrder-parameter",
- "text": " <code>rasterizationOrder</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRasterizationOrderAMD\">VkRasterizationOrderAMD</a> value"
- }
- ]
- },
- "VkPipelineSampleLocationsStateCreateInfoEXT": {
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sampleLocationsInfo-parameter",
- "text": " <code>sampleLocationsInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a> structure"
- }
- ]
- },
- "VkSampleLocationsInfoEXT": {
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-01526",
- "text": " <code>sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> be a bit value that is set in <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>::<code>sampleLocationSampleCounts</code>"
- },
- {
- "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsCount-01527",
- "text": " <code>sampleLocationsCount</code> <strong class=\"purple\">must</strong> equal <span class=\"eq\"><code>sampleLocationsPerPixel</code> {times} <code>sampleLocationGridSize.width</code> {times} <code>sampleLocationGridSize.height</code></span>"
- },
- {
- "vuid": "VUID-VkSampleLocationsInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkSampleLocationsInfoEXT-pSampleLocations-parameter",
- "text": " If <code>sampleLocationsCount</code> is not <code>0</code>, <code>pSampleLocations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>sampleLocationsCount</code> <a href=\"#VkSampleLocationEXT\">VkSampleLocationEXT</a> structures"
- }
- ]
- },
- "vkCmdSetSampleLocationsEXT": {
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdSetSampleLocationsEXT-sampleLocationsPerPixel-01529",
- "text": " The <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with"
- },
- {
- "vuid": "VUID-vkCmdSetSampleLocationsEXT-variableSampleLocations-01530",
- "text": " If <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>::<code>variableSampleLocations</code> is <code>VK_FALSE</code> then the current render pass <strong class=\"purple\">must</strong> have been begun by specifying a <a href=\"#VkRenderPassSampleLocationsBeginInfoEXT\">VkRenderPassSampleLocationsBeginInfoEXT</a> structure whose <code>pPostSubpassSampleLocations</code> member contains an element with a <code>subpassIndex</code> matching the current subpass index and the <code>sampleLocationsInfo</code> member of that element <strong class=\"purple\">must</strong> match the sample locations state pointed to by <code>pSampleLocationsInfo</code>"
- },
- {
- "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetSampleLocationsEXT-pSampleLocationsInfo-parameter",
- "text": " <code>pSampleLocationsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a> structure"
- },
- {
- "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkGetPhysicalDeviceFragmentShadingRatesKHR": {
- "(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRateCount-parameter",
- "text": " <code>pFragmentShadingRateCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRates-parameter",
- "text": " If the value referenced by <code>pFragmentShadingRateCount</code> is not <code>0</code>, and <code>pFragmentShadingRates</code> is not <code>NULL</code>, <code>pFragmentShadingRates</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pFragmentShadingRateCount</code> <a href=\"#VkPhysicalDeviceFragmentShadingRateKHR\">VkPhysicalDeviceFragmentShadingRateKHR</a> structures"
- }
- ]
- },
- "VkPhysicalDeviceFragmentShadingRateKHR": {
- "(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkPipelineFragmentShadingRateStateCreateInfoKHR": {
- "(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-VkPipelineFragmentShadingRateStateCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkPipelineFragmentShadingRateStateCreateInfoKHR-combinerOps-parameter",
- "text": " Any given element of <code>combinerOps</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value"
- }
- ]
- },
- "vkCmdSetFragmentShadingRateKHR": {
- "(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04507",
- "text": " If <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> is not enabled, <code>pFragmentSize-&gt;width</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04508",
- "text": " If <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> is not enabled, <code>pFragmentSize-&gt;height</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04509",
- "text": " One of <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a>, <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a>, or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-primitiveFragmentShadingRate-04510",
- "text": " If the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code> feature</a> is not enabled, <code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-attachmentFragmentShadingRate-04511",
- "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code> feature</a> is not enabled, <code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-fragmentSizeNonTrivialCombinerOps-04512",
- "text": " If the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentSizeNonTrivialCombinerOps</code></a> limit is not supported, elements of <code>combinerOps</code> <strong class=\"purple\">must</strong> be either <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04513",
- "text": " <code>pFragmentSize-&gt;width</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04514",
- "text": " <code>pFragmentSize-&gt;height</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04515",
- "text": " <code>pFragmentSize-&gt;width</code> <strong class=\"purple\">must</strong> be a power-of-two value"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04516",
- "text": " <code>pFragmentSize-&gt;height</code> <strong class=\"purple\">must</strong> be a power-of-two value"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04517",
- "text": " <code>pFragmentSize-&gt;width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04518",
- "text": " <code>pFragmentSize-&gt;height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-parameter",
- "text": " <code>pFragmentSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkExtent2D\">VkExtent2D</a> structure"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-combinerOps-parameter",
- "text": " Any given element of <code>combinerOps</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "VkPipelineFragmentShadingRateEnumStateCreateInfoNV": {
- "(VK_NV_fragment_shading_rate_enums)": [
- {
- "vuid": "VUID-VkPipelineFragmentShadingRateEnumStateCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkPipelineFragmentShadingRateEnumStateCreateInfoNV-shadingRateType-parameter",
- "text": " <code>shadingRateType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateTypeNV\">VkFragmentShadingRateTypeNV</a> value"
- },
- {
- "vuid": "VUID-VkPipelineFragmentShadingRateEnumStateCreateInfoNV-shadingRate-parameter",
- "text": " <code>shadingRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateNV\">VkFragmentShadingRateNV</a> value"
- },
- {
- "vuid": "VUID-VkPipelineFragmentShadingRateEnumStateCreateInfoNV-combinerOps-parameter",
- "text": " Any given element of <code>combinerOps</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value"
- }
- ]
- },
- "vkCmdSetFragmentShadingRateEnumNV": {
- "(VK_NV_fragment_shading_rate_enums)": [
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04576",
- "text": " If <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> is not enabled, <code>shadingRate</code> <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-supersampleFragmentShadingRates-04577",
- "text": " If <a href=\"#features-supersampleFragmentShadingRates\"><code>supersampleFragmentShadingRates</code></a> is not enabled, <code>shadingRate</code> <strong class=\"purple\">must</strong> not be <code>VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV</code>, <code>VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV</code>, or <code>VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-noInvocationFragmentShadingRates-04578",
- "text": " If <a href=\"#features-noInvocationFragmentShadingRates\"><code>noInvocationFragmentShadingRates</code></a> is not enabled, <code>shadingRate</code> <strong class=\"purple\">must</strong> not be <code>VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentShadingRateEnums-04579",
- "text": " <a href=\"#features-fragmentShadingRateEnums\"><code>fragmentShadingRateEnums</code></a> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04580",
- "text": " One of <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a>, <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code></a>, or <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code></a> <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-primitiveFragmentShadingRate-04581",
- "text": " If the <a href=\"#features-primitiveFragmentShadingRate\"><code>primitiveFragmentShadingRate</code> feature</a> is not enabled, <code>combinerOps</code>[0] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-attachmentFragmentShadingRate-04582",
- "text": " If the <a href=\"#features-attachmentFragmentShadingRate\"><code>attachmentFragmentShadingRate</code> feature</a> is not enabled, <code>combinerOps</code>[1] <strong class=\"purple\">must</strong> be <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentSizeNonTrivialCombinerOps-04583",
- "text": " If the <a href=\"#limits-fragmentShadingRateNonTrivialCombinerOps\"><code>fragmentSizeNonTrivialCombinerOps</code></a> limit is not supported, elements of <code>combinerOps</code> <strong class=\"purple\">must</strong> be either <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR</code> or <code>VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-shadingRate-parameter",
- "text": " <code>shadingRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateNV\">VkFragmentShadingRateNV</a> value"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-combinerOps-parameter",
- "text": " Any given element of <code>combinerOps</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFragmentShadingRateCombinerOpKHR\">VkFragmentShadingRateCombinerOpKHR</a> value"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "VkPipelineViewportShadingRateImageStateCreateInfoNV": {
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02054",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02055",
- "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-shadingRateImageEnable-02056",
- "text": " If <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater or equal to the <code>viewportCount</code> member of <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>"
- },
- {
- "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV</code>"
- }
- ]
- },
- "vkCmdBindShadingRateImageNV": {
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdBindShadingRateImageNV-None-02058",
- "text": " The <a href=\"#features-shadingRateImage\">shading rate image</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02059",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle of type <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>"
- },
- {
- "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02060",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have a format of <code>VK_FORMAT_R8_UINT</code>"
- },
- {
- "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02061",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value including <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02062",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> match the actual <a href=\"#VkImageLayout\">VkImageLayout</a> of each subresource accessible from <code>imageView</code> at the time the subresource is accessed"
- },
- {
- "vuid": "VUID-vkCmdBindShadingRateImageNV-imageLayout-02063",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV</code> or <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-parameter",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindShadingRateImageNV-imageLayout-parameter",
- "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdBindShadingRateImageNV-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>imageView</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>"
- }
- ]
- },
- "vkCmdSetViewportShadingRatePaletteNV": {
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-None-02064",
- "text": " The <a href=\"#features-shadingRateImage\">shading rate image</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02067",
- "text": " The sum of <code>firstViewport</code> and <code>viewportCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive"
- },
- {
- "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02068",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled, <code>firstViewport</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-02069",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-pShadingRatePalettes-parameter",
- "text": " <code>pShadingRatePalettes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkShadingRatePaletteNV\">VkShadingRatePaletteNV</a> structures"
- },
- {
- "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-arraylength",
- "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkShadingRatePaletteNV": {
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-02071",
- "text": " <code>shadingRatePaletteEntryCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceShadingRateImagePropertiesNV</code>::<code>shadingRatePaletteSize</code>, inclusive"
- },
- {
- "vuid": "VUID-VkShadingRatePaletteNV-pShadingRatePaletteEntries-parameter",
- "text": " <code>pShadingRatePaletteEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>shadingRatePaletteEntryCount</code> valid <a href=\"#VkShadingRatePaletteEntryNV\">VkShadingRatePaletteEntryNV</a> values"
- },
- {
- "vuid": "VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-arraylength",
- "text": " <code>shadingRatePaletteEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV": {
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-02072",
- "text": " If <code>sampleOrderType</code> is not <code>VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV</code>, <code>customSamplerOrderCount</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-02234",
- "text": " The array <code>pCustomSampleOrders</code> <strong class=\"purple\">must</strong> not contain two structures with matching values for both the <code>shadingRate</code> and <code>sampleCount</code> members"
- },
- {
- "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-parameter",
- "text": " <code>sampleOrderType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoarseSampleOrderTypeNV\">VkCoarseSampleOrderTypeNV</a> value"
- },
- {
- "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-parameter",
- "text": " If <code>customSampleOrderCount</code> is not <code>0</code>, <code>pCustomSampleOrders</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>customSampleOrderCount</code> valid <a href=\"#VkCoarseSampleOrderCustomNV\">VkCoarseSampleOrderCustomNV</a> structures"
- }
- ]
- },
- "VkCoarseSampleOrderCustomNV": {
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkCoarseSampleOrderCustomNV-shadingRate-02073",
- "text": " <code>shadingRate</code> <strong class=\"purple\">must</strong> be a shading rate that generates fragments with more than one pixel"
- },
- {
- "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074",
- "text": " <code>sampleCount</code> <strong class=\"purple\">must</strong> correspond to a sample count enumerated in <a href=\"#VkSampleCountFlags\">VkSampleCountFlags</a> whose corresponding bit is set in <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>framebufferNoAttachmentsSampleCounts</code>"
- },
- {
- "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075",
- "text": " <code>sampleLocationCount</code> <strong class=\"purple\">must</strong> be equal to the product of <code>sampleCount</code>, the fragment width for <code>shadingRate</code>, and the fragment height for <code>shadingRate</code>"
- },
- {
- "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02076",
- "text": " <code>sampleLocationCount</code> <strong class=\"purple\">must</strong> be less than or equal to the value of <code>VkPhysicalDeviceShadingRateImagePropertiesNV</code>::<code>shadingRateMaxCoarseSamples</code>"
- },
- {
- "vuid": "VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-02077",
- "text": " The array <code>pSampleLocations</code> <strong class=\"purple\">must</strong> contain exactly one entry for every combination of valid values for <code>pixelX</code>, <code>pixelY</code>, and <code>sample</code> in the structure <a href=\"#VkCoarseSampleOrderCustomNV\">VkCoarseSampleOrderCustomNV</a>"
- },
- {
- "vuid": "VUID-VkCoarseSampleOrderCustomNV-shadingRate-parameter",
- "text": " <code>shadingRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShadingRatePaletteEntryNV\">VkShadingRatePaletteEntryNV</a> value"
- },
- {
- "vuid": "VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-parameter",
- "text": " <code>pSampleLocations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>sampleLocationCount</code> <a href=\"#VkCoarseSampleLocationNV\">VkCoarseSampleLocationNV</a> structures"
- },
- {
- "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-arraylength",
- "text": " <code>sampleLocationCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkCoarseSampleLocationNV": {
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkCoarseSampleLocationNV-pixelX-02078",
- "text": " <code>pixelX</code> <strong class=\"purple\">must</strong> be less than the width (in pixels) of the fragment"
- },
- {
- "vuid": "VUID-VkCoarseSampleLocationNV-pixelY-02079",
- "text": " <code>pixelY</code> <strong class=\"purple\">must</strong> be less than the height (in pixels) of the fragment"
- },
- {
- "vuid": "VUID-VkCoarseSampleLocationNV-sample-02080",
- "text": " <code>sample</code> <strong class=\"purple\">must</strong> be less than the number of coverage samples in each pixel belonging to the fragment"
- }
- ]
- },
- "vkCmdSetCoarseSampleOrderNV": {
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-02081",
- "text": " If <code>sampleOrderType</code> is not <code>VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV</code>, <code>customSamplerOrderCount</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-02235",
- "text": " The array <code>pCustomSampleOrders</code> <strong class=\"purple\">must</strong> not contain two structures with matching values for both the <code>shadingRate</code> and <code>sampleCount</code> members"
- },
- {
- "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-parameter",
- "text": " <code>sampleOrderType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoarseSampleOrderTypeNV\">VkCoarseSampleOrderTypeNV</a> value"
- },
- {
- "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-parameter",
- "text": " If <code>customSampleOrderCount</code> is not <code>0</code>, <code>pCustomSampleOrders</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>customSampleOrderCount</code> valid <a href=\"#VkCoarseSampleOrderCustomNV\">VkCoarseSampleOrderCustomNV</a> structures"
- },
- {
- "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "VkPipelineRasterizationLineStateCreateInfoEXT": {
- "(VK_EXT_line_rasterization)": [
- {
- "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02768",
- "text": " If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-rectangularLines\">rectangularLines</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02769",
- "text": " If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-bresenhamLines\">bresenhamLines</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02770",
- "text": " If <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-bresenhamLines\">smoothLines</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02771",
- "text": " If <code>stippledLineEnable</code> is <code>VK_TRUE</code> and <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT</code>, then the <a href=\"#features-stippledRectangularLines\">stippledRectangularLines</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02772",
- "text": " If <code>stippledLineEnable</code> is <code>VK_TRUE</code> and <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT</code>, then the <a href=\"#features-stippledBresenhamLines\">stippledBresenhamLines</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02773",
- "text": " If <code>stippledLineEnable</code> is <code>VK_TRUE</code> and <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT</code>, then the <a href=\"#features-stippledSmoothLines\">stippledSmoothLines</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02774",
- "text": " If <code>stippledLineEnable</code> is <code>VK_TRUE</code> and <code>lineRasterizationMode</code> is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT</code>, then the <a href=\"#features-stippledRectangularLines\">stippledRectangularLines</a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-parameter",
- "text": " <code>lineRasterizationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLineRasterizationModeEXT\">VkLineRasterizationModeEXT</a> value"
- }
- ]
- },
- "vkCmdSetLineWidth": {
- "core": [
- {
- "vuid": "VUID-vkCmdSetLineWidth-lineWidth-00788",
- "text": " If the <a href=\"#features-wideLines\">wide lines</a> feature is not enabled, <code>lineWidth</code> <strong class=\"purple\">must</strong> be <code>1.0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdSetLineStippleEXT": {
- "(VK_EXT_line_rasterization)": [
- {
- "vuid": "VUID-vkCmdSetLineStippleEXT-lineStippleFactor-02776",
- "text": " <code>lineStippleFactor</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[1,256]</span>"
- },
- {
- "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdSetFrontFace": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-vkCmdSetFrontFace-None-03383",
- "text": " The <a href=\"#features-extendedDynamicState\">extendedDynamicState</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdSetFrontFace-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetFrontFace-frontFace-parameter",
- "text": " <code>frontFace</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFrontFace\">VkFrontFace</a> value"
- },
- {
- "vuid": "VUID-vkCmdSetFrontFace-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetFrontFace-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdSetCullMode": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-vkCmdSetCullMode-None-03384",
- "text": " The <a href=\"#features-extendedDynamicState\">extendedDynamicState</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdSetCullMode-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetCullMode-cullMode-parameter",
- "text": " <code>cullMode</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCullModeFlagBits\">VkCullModeFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdSetCullMode-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetCullMode-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdSetDepthBiasEnable": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-vkCmdSetDepthBiasEnable-None-04872",
- "text": " The <a href=\"#features-extendedDynamicState2\">extendedDynamicState2</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdSetDepthBiasEnable-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetDepthBiasEnable-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetDepthBiasEnable-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdSetDepthBias": {
- "core": [
- {
- "vuid": "VUID-vkCmdSetDepthBias-depthBiasClamp-00790",
- "text": " If the <a href=\"#features-depthBiasClamp\">depth bias clamping</a> feature is not enabled, <code>depthBiasClamp</code> <strong class=\"purple\">must</strong> be <code>0.0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "VkPipelineRasterizationConservativeStateCreateInfoEXT": {
- "(VK_EXT_conservative_rasterization)": [
- {
- "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-extraPrimitiveOverestimationSize-01769",
- "text": " <code>extraPrimitiveOverestimationSize</code> <strong class=\"purple\">must</strong> be in the range of <code>0.0</code> to <code>VkPhysicalDeviceConservativeRasterizationPropertiesEXT</code>::<code>maxExtraPrimitiveOverestimationSize</code> inclusive"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-conservativeRasterizationMode-parameter",
- "text": " <code>conservativeRasterizationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkConservativeRasterizationModeEXT\">VkConservativeRasterizationModeEXT</a> value"
- }
- ]
- },
- "VkPipelineDiscardRectangleStateCreateInfoEXT": {
- "(VK_EXT_discard_rectangles)": [
- {
- "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleCount-00582",
- "text": " <code>discardRectangleCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDiscardRectanglePropertiesEXT</code>::<code>maxDiscardRectangles</code>"
- },
- {
- "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleMode-parameter",
- "text": " <code>discardRectangleMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDiscardRectangleModeEXT\">VkDiscardRectangleModeEXT</a> value"
- }
- ]
- },
- "vkCmdSetDiscardRectangleEXT": {
- "(VK_EXT_discard_rectangles)": [
- {
- "vuid": "VUID-vkCmdSetDiscardRectangleEXT-firstDiscardRectangle-00585",
- "text": " The sum of <code>firstDiscardRectangle</code> and <code>discardRectangleCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>::<code>maxDiscardRectangles</code>"
- },
- {
- "vuid": "VUID-vkCmdSetDiscardRectangleEXT-x-00587",
- "text": " The <code>x</code> and <code>y</code> member of <code>offset</code> in each <a href=\"#VkRect2D\">VkRect2D</a> element of <code>pDiscardRectangles</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetDiscardRectangleEXT-offset-00588",
- "text": " Evaluation of <span class=\"eq\">(<code>offset.x</code> &#43; <code>extent.width</code>)</span> in each <a href=\"#VkRect2D\">VkRect2D</a> element of <code>pDiscardRectangles</code> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow"
- },
- {
- "vuid": "VUID-vkCmdSetDiscardRectangleEXT-offset-00589",
- "text": " Evaluation of <span class=\"eq\">(<code>offset.y</code> &#43; <code>extent.height</code>)</span> in each <a href=\"#VkRect2D\">VkRect2D</a> element of <code>pDiscardRectangles</code> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow"
- },
- {
- "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetDiscardRectangleEXT-pDiscardRectangles-parameter",
- "text": " <code>pDiscardRectangles</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>discardRectangleCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
- },
- {
- "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdSetDiscardRectangleEXT-discardRectangleCount-arraylength",
- "text": " <code>discardRectangleCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_EXT_discard_rectangles)+(VK_NV_inherited_viewport_scissor)": [
- {
- "vuid": "VUID-vkCmdSetDiscardRectangleEXT-viewportScissor2D-04788",
- "text": " If this command is recorded in a secondary command buffer with <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled, then this function <strong class=\"purple\">must</strong> not be called"
- }
- ]
- },
- "vkCmdSetScissor": {
- "core": [
- {
- "vuid": "VUID-vkCmdSetScissor-firstScissor-00592",
- "text": " The sum of <code>firstScissor</code> and <code>scissorCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive"
- },
- {
- "vuid": "VUID-vkCmdSetScissor-firstScissor-00593",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled, <code>firstScissor</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetScissor-scissorCount-00594",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled, <code>scissorCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdSetScissor-x-00595",
- "text": " The <code>x</code> and <code>y</code> members of <code>offset</code> member of any element of <code>pScissors</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetScissor-offset-00596",
- "text": " Evaluation of <span class=\"eq\">(<code>offset.x</code> &#43; <code>extent.width</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>"
- },
- {
- "vuid": "VUID-vkCmdSetScissor-offset-00597",
- "text": " Evaluation of <span class=\"eq\">(<code>offset.y</code> &#43; <code>extent.height</code>)</span> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow for any element of <code>pScissors</code>"
- },
- {
- "vuid": "VUID-vkCmdSetScissor-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetScissor-pScissors-parameter",
- "text": " <code>pScissors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>scissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
- },
- {
- "vuid": "VUID-vkCmdSetScissor-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetScissor-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdSetScissor-scissorCount-arraylength",
- "text": " <code>scissorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ],
- "(VK_NV_inherited_viewport_scissor)": [
- {
- "vuid": "VUID-vkCmdSetScissor-viewportScissor2D-04789",
- "text": " If this command is recorded in a secondary command buffer with <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>::<code>viewportScissor2D</code> enabled, then this function <strong class=\"purple\">must</strong> not be called"
- }
- ]
- },
- "VkPipelineViewportExclusiveScissorStateCreateInfoNV": {
- "(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02027",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled, <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02028",
- "text": " <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>"
- },
- {
- "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02029",
- "text": " <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or greater than or equal to the <code>viewportCount</code> member of <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>"
- },
- {
- "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV</code>"
- }
- ]
- },
- "vkCmdSetExclusiveScissorNV": {
- "(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-vkCmdSetExclusiveScissorNV-None-02031",
- "text": " The <a href=\"#features-exclusiveScissor\">exclusive scissor</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02034",
- "text": " The sum of <code>firstExclusiveScissor</code> and <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>, inclusive"
- },
- {
- "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02035",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled, <code>firstExclusiveScissor</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-02036",
- "text": " If the <a href=\"#features-multiViewport\">multiple viewports</a> feature is not enabled, <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-vkCmdSetExclusiveScissorNV-x-02037",
- "text": " The <code>x</code> and <code>y</code> members of <code>offset</code> in each member of <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetExclusiveScissorNV-offset-02038",
- "text": " Evaluation of <span class=\"eq\">(<code>offset.x</code> &#43; <code>extent.width</code>)</span> for each member of <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow"
- },
- {
- "vuid": "VUID-vkCmdSetExclusiveScissorNV-offset-02039",
- "text": " Evaluation of <span class=\"eq\">(<code>offset.y</code> &#43; <code>extent.height</code>)</span> for each member of <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> not cause a signed integer addition overflow"
- },
- {
- "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetExclusiveScissorNV-pExclusiveScissors-parameter",
- "text": " <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>exclusiveScissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
- },
- {
- "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-arraylength",
- "text": " <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkPipelineDepthStencilStateCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598",
- "text": " If the <a href=\"#features-depthBounds\">depth bounds testing</a> feature is not enabled, <code>depthBoundsTestEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineDepthStencilStateCreateFlagBits\">VkPipelineDepthStencilStateCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameter",
- "text": " <code>depthCompareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value"
- },
- {
- "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-front-parameter",
- "text": " <code>front</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOpState\">VkStencilOpState</a> structure"
- },
- {
- "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-back-parameter",
- "text": " <code>back</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOpState\">VkStencilOpState</a> structure"
- }
- ],
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-separateStencilMaskRef-04453",
- "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>separateStencilMaskRef</code> is <code>VK_FALSE</code>, and the value of <a href=\"#VkPipelineDepthStencilStateCreateInfo\">VkPipelineDepthStencilStateCreateInfo</a>::<code>stencilTestEnable</code> is <code>VK_TRUE</code>, and the value of <a href=\"#VkPipelineRasterizationStateCreateInfo\">VkPipelineRasterizationStateCreateInfo</a>::<code>cullMode</code> is <code>VK_CULL_MODE_NONE</code>, the value of <code>reference</code> in each of the <a href=\"#VkStencilOpState\">VkStencilOpState</a> structs in <code>front</code> and <code>back</code> <strong class=\"purple\">must</strong> be the same"
- }
- ],
- "(VK_ARM_rasterization_order_attachment_access)": [
- {
- "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderDepthAttachmentAccess-06463",
- "text": " If the <a href=\"#features-rasterizationOrderDepthAttachmentAccess\"><code>rasterizationOrderDepthAttachmentAccess</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM</code>"
- },
- {
- "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderStencilAttachmentAccess-06464",
- "text": " If the <a href=\"#features-rasterizationOrderStencilAttachmentAccess\"><code>rasterizationOrderStencilAttachmentAccess</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM</code>"
- }
- ]
- },
- "vkCmdSetDepthBoundsTestEnable": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-None-03349",
- "text": " The <a href=\"#features-extendedDynamicState\">extendedDynamicState</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdSetDepthBounds": {
- "(VK_EXT_depth_range_unrestricted)": [
- {
- "vuid": "VUID-vkCmdSetDepthBounds-minDepthBounds-00600",
- "text": " Unless the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>minDepthBounds</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
- },
- {
- "vuid": "VUID-vkCmdSetDepthBounds-maxDepthBounds-00601",
- "text": " Unless the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is enabled <code>maxDepthBounds</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
- }
- ],
- "!(VK_EXT_depth_range_unrestricted)": [
- {
- "vuid": "VUID-vkCmdSetDepthBounds-minDepthBounds-02508",
- "text": " <code>minDepthBounds</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
- },
- {
- "vuid": "VUID-vkCmdSetDepthBounds-maxDepthBounds-02509",
- "text": " <code>maxDepthBounds</code> <strong class=\"purple\">must</strong> be between <code>0.0</code> and <code>1.0</code>, inclusive"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdSetStencilTestEnable": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-vkCmdSetStencilTestEnable-None-03350",
- "text": " The <a href=\"#features-extendedDynamicState\">extendedDynamicState</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdSetStencilTestEnable-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetStencilTestEnable-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetStencilTestEnable-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdSetStencilOp": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-vkCmdSetStencilOp-None-03351",
- "text": " The <a href=\"#features-extendedDynamicState\">extendedDynamicState</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdSetStencilOp-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetStencilOp-faceMask-parameter",
- "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkStencilFaceFlagBits\">VkStencilFaceFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdSetStencilOp-faceMask-requiredbitmask",
- "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetStencilOp-failOp-parameter",
- "text": " <code>failOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdSetStencilOp-passOp-parameter",
- "text": " <code>passOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdSetStencilOp-depthFailOp-parameter",
- "text": " <code>depthFailOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdSetStencilOp-compareOp-parameter",
- "text": " <code>compareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdSetStencilOp-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetStencilOp-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "VkStencilOpState": {
- "core": [
- {
- "vuid": "VUID-VkStencilOpState-failOp-parameter",
- "text": " <code>failOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value"
- },
- {
- "vuid": "VUID-VkStencilOpState-passOp-parameter",
- "text": " <code>passOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value"
- },
- {
- "vuid": "VUID-VkStencilOpState-depthFailOp-parameter",
- "text": " <code>depthFailOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkStencilOp\">VkStencilOp</a> value"
- },
- {
- "vuid": "VUID-VkStencilOpState-compareOp-parameter",
- "text": " <code>compareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value"
- }
- ]
- },
- "vkCmdSetStencilCompareMask": {
- "core": [
- {
- "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetStencilCompareMask-faceMask-parameter",
- "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkStencilFaceFlagBits\">VkStencilFaceFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmask",
- "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdSetStencilWriteMask": {
- "core": [
- {
- "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetStencilWriteMask-faceMask-parameter",
- "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkStencilFaceFlagBits\">VkStencilFaceFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmask",
- "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdSetStencilReference": {
- "core": [
- {
- "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetStencilReference-faceMask-parameter",
- "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkStencilFaceFlagBits\">VkStencilFaceFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkCmdSetStencilReference-faceMask-requiredbitmask",
- "text": " <code>faceMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdSetDepthTestEnable": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-vkCmdSetDepthTestEnable-None-03352",
- "text": " The <a href=\"#features-extendedDynamicState\">extendedDynamicState</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdSetDepthTestEnable-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetDepthTestEnable-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetDepthTestEnable-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdSetDepthCompareOp": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-vkCmdSetDepthCompareOp-None-03353",
- "text": " The <a href=\"#features-extendedDynamicState\">extendedDynamicState</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdSetDepthCompareOp-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetDepthCompareOp-depthCompareOp-parameter",
- "text": " <code>depthCompareOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompareOp\">VkCompareOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdSetDepthCompareOp-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetDepthCompareOp-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "vkCmdSetDepthWriteEnable": {
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-vkCmdSetDepthWriteEnable-None-03354",
- "text": " The <a href=\"#features-extendedDynamicState\">extendedDynamicState</a> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdSetDepthWriteEnable-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetDepthWriteEnable-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetDepthWriteEnable-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "VkPipelineRepresentativeFragmentTestStateCreateInfoNV": {
- "(VK_NV_representative_fragment_test)": [
- {
- "vuid": "VUID-VkPipelineRepresentativeFragmentTestStateCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV</code>"
- }
- ]
- },
- "VkPipelineCoverageToColorStateCreateInfoNV": {
- "(VK_NV_fragment_coverage_to_color)": [
- {
- "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-coverageToColorEnable-01404",
- "text": " If <code>coverageToColorEnable</code> is <code>VK_TRUE</code>, then the render pass subpass indicated by <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> and <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>subpass</code> <strong class=\"purple\">must</strong> have a color attachment at the location selected by <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>"
- },
- {
- "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "VkPipelineCoverageReductionStateCreateInfoNV": {
- "(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)": [
- {
- "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-coverageReductionMode-parameter",
- "text": " <code>coverageReductionMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoverageReductionModeNV\">VkCoverageReductionModeNV</a> value"
- }
- ]
- },
- "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV": {
- "(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinationCount-parameter",
- "text": " <code>pCombinationCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinations-parameter",
- "text": " If the value referenced by <code>pCombinationCount</code> is not <code>0</code>, and <code>pCombinations</code> is not <code>NULL</code>, <code>pCombinations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCombinationCount</code> <a href=\"#VkFramebufferMixedSamplesCombinationNV\">VkFramebufferMixedSamplesCombinationNV</a> structures"
- }
- ]
- },
- "VkFramebufferMixedSamplesCombinationNV": {
- "(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)": [
- {
- "vuid": "VUID-VkFramebufferMixedSamplesCombinationNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV</code>"
- },
- {
- "vuid": "VUID-VkFramebufferMixedSamplesCombinationNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkPipelineCoverageModulationStateCreateInfoNV": {
- "(VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationTableEnable-01405",
- "text": " If <code>coverageModulationTableEnable</code> is <code>VK_TRUE</code>, <code>coverageModulationTableCount</code> <strong class=\"purple\">must</strong> be equal to the number of rasterization samples divided by the number of color samples in the subpass"
- },
- {
- "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationMode-parameter",
- "text": " <code>coverageModulationMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoverageModulationModeNV\">VkCoverageModulationModeNV</a> value"
- }
- ]
- },
- "VkPipelineColorBlendStateCreateInfo": {
- "core": [
- {
- "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605",
- "text": " If the <a href=\"#features-independentBlend\">independent blending</a> feature is not enabled, all elements of <code>pAttachments</code> <strong class=\"purple\">must</strong> be identical"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606",
- "text": " If the <a href=\"#features-logicOp\">logic operations</a> feature is not enabled, <code>logicOpEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607",
- "text": " If <code>logicOpEnable</code> is <code>VK_TRUE</code>, <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNext",
- "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=\"#VkPipelineColorBlendAdvancedStateCreateInfoEXT\">VkPipelineColorBlendAdvancedStateCreateInfoEXT</a> or <a href=\"#VkPipelineColorWriteCreateInfoEXT\">VkPipelineColorWriteCreateInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-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-VkPipelineColorBlendStateCreateInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineColorBlendStateCreateFlagBits\">VkPipelineColorBlendStateCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-parameter",
- "text": " If <code>attachmentCount</code> is not <code>0</code>, <code>pAttachments</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> valid <a href=\"#VkPipelineColorBlendAttachmentState\">VkPipelineColorBlendAttachmentState</a> structures"
- }
- ],
- "(VK_ARM_rasterization_order_attachment_access)": [
- {
- "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-rasterizationOrderColorAttachmentAccess-06465",
- "text": " If the <a href=\"#features-rasterizationOrderColorAttachmentAccess\"><code>rasterizationOrderColorAttachmentAccess</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM</code>"
- }
- ]
- },
- "VkPipelineColorBlendAttachmentState": {
- "core": [
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608",
- "text": " If the <a href=\"#features-dualSrcBlend\">dual source blending</a> feature is not enabled, <code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609",
- "text": " If the <a href=\"#features-dualSrcBlend\">dual source blending</a> feature is not enabled, <code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610",
- "text": " If the <a href=\"#features-dualSrcBlend\">dual source blending</a> feature is not enabled, <code>srcAlphaBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611",
- "text": " If the <a href=\"#features-dualSrcBlend\">dual source blending</a> feature is not enabled, <code>dstAlphaBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR</code>, <code>VK_BLEND_FACTOR_SRC1_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameter",
- "text": " <code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-parameter",
- "text": " <code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-parameter",
- "text": " <code>colorBlendOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOp\">VkBlendOp</a> value"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-parameter",
- "text": " <code>srcAlphaBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-parameter",
- "text": " <code>dstAlphaBlendFactor</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendFactor\">VkBlendFactor</a> value"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameter",
- "text": " <code>alphaBlendOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOp\">VkBlendOp</a> value"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameter",
- "text": " <code>colorWriteMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkColorComponentFlagBits\">VkColorComponentFlagBits</a> values"
- }
- ],
- "(VK_EXT_blend_operation_advanced)": [
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406",
- "text": " If either of <code>colorBlendOp</code> or <code>alphaBlendOp</code> is an <a href=\"#framebuffer-blend-advanced\">advanced blend operation</a>, then <code>colorBlendOp</code> <strong class=\"purple\">must</strong> equal <code>alphaBlendOp</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01407",
- "text": " If <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>::<code>advancedBlendIndependentBlend</code> is <code>VK_FALSE</code> and <code>colorBlendOp</code> is an <a href=\"#framebuffer-blend-advanced\">advanced blend operation</a>, then <code>colorBlendOp</code> <strong class=\"purple\">must</strong> be the same for all attachments"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01408",
- "text": " If <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>::<code>advancedBlendIndependentBlend</code> is <code>VK_FALSE</code> and <code>alphaBlendOp</code> is an <a href=\"#framebuffer-blend-advanced\">advanced blend operation</a>, then <code>alphaBlendOp</code> <strong class=\"purple\">must</strong> be the same for all attachments"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409",
- "text": " If <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>::<code>advancedBlendAllOperations</code> is <code>VK_FALSE</code>, then <code>colorBlendOp</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_OP_ZERO_EXT</code>, <code>VK_BLEND_OP_SRC_EXT</code>, <code>VK_BLEND_OP_DST_EXT</code>, <code>VK_BLEND_OP_SRC_OVER_EXT</code>, <code>VK_BLEND_OP_DST_OVER_EXT</code>, <code>VK_BLEND_OP_SRC_IN_EXT</code>, <code>VK_BLEND_OP_DST_IN_EXT</code>, <code>VK_BLEND_OP_SRC_OUT_EXT</code>, <code>VK_BLEND_OP_DST_OUT_EXT</code>, <code>VK_BLEND_OP_SRC_ATOP_EXT</code>, <code>VK_BLEND_OP_DST_ATOP_EXT</code>, <code>VK_BLEND_OP_XOR_EXT</code>, <code>VK_BLEND_OP_INVERT_EXT</code>, <code>VK_BLEND_OP_INVERT_RGB_EXT</code>, <code>VK_BLEND_OP_LINEARDODGE_EXT</code>, <code>VK_BLEND_OP_LINEARBURN_EXT</code>, <code>VK_BLEND_OP_VIVIDLIGHT_EXT</code>, <code>VK_BLEND_OP_LINEARLIGHT_EXT</code>, <code>VK_BLEND_OP_PINLIGHT_EXT</code>, <code>VK_BLEND_OP_HARDMIX_EXT</code>, <code>VK_BLEND_OP_PLUS_EXT</code>, <code>VK_BLEND_OP_PLUS_CLAMPED_EXT</code>, <code>VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT</code>, <code>VK_BLEND_OP_PLUS_DARKER_EXT</code>, <code>VK_BLEND_OP_MINUS_EXT</code>, <code>VK_BLEND_OP_MINUS_CLAMPED_EXT</code>, <code>VK_BLEND_OP_CONTRAST_EXT</code>, <code>VK_BLEND_OP_INVERT_OVG_EXT</code>, <code>VK_BLEND_OP_RED_EXT</code>, <code>VK_BLEND_OP_GREEN_EXT</code>, or <code>VK_BLEND_OP_BLUE_EXT</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410",
- "text": " If <code>colorBlendOp</code> or <code>alphaBlendOp</code> is an <a href=\"#framebuffer-blend-advanced\">advanced blend operation</a>, then <code>colorAttachmentCount</code> of the subpass this pipeline is compiled against <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>::<code>advancedBlendMaxColorAttachments</code>"
- }
- ],
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04454",
- "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>constantAlphaColorBlendFactors</code> is <code>VK_FALSE</code>, <code>srcColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code> or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04455",
- "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>constantAlphaColorBlendFactors</code> is <code>VK_FALSE</code>, <code>dstColorBlendFactor</code> <strong class=\"purple\">must</strong> not be <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code> or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>"
- }
- ]
- },
- "vkCmdSetBlendConstants": {
- "core": [
- {
- "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "VkPipelineColorBlendAdvancedStateCreateInfoEXT": {
- "(VK_EXT_blend_operation_advanced)": [
- {
- "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-srcPremultiplied-01424",
- "text": " If the <a href=\"#limits-advancedBlendNonPremultipliedSrcColor\">non-premultiplied source color</a> property is not supported, <code>srcPremultiplied</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-dstPremultiplied-01425",
- "text": " If the <a href=\"#limits-advancedBlendNonPremultipliedDstColor\">non-premultiplied destination color</a> property is not supported, <code>dstPremultiplied</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-01426",
- "text": " If the <a href=\"#limits-advancedBlendCorrelatedOverlap\">correlated overlap</a> property is not supported, <code>blendOverlap</code> <strong class=\"purple\">must</strong> be <code>VK_BLEND_OVERLAP_UNCORRELATED_EXT</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-parameter",
- "text": " <code>blendOverlap</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBlendOverlapEXT\">VkBlendOverlapEXT</a> value"
- }
- ]
- },
- "vkCmdSetLogicOpEXT": {
- "(VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdSetLogicOpEXT-None-04867",
- "text": " The <a href=\"#features-extendedDynamicState2LogicOp\">extendedDynamicState2LogicOp</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdSetLogicOpEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetLogicOpEXT-logicOp-parameter",
- "text": " <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdSetLogicOpEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetLogicOpEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- }
- ]
- },
- "VkPipelineColorWriteCreateInfoEXT": {
- "(VK_EXT_color_write_enable)": [
- {
- "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-pAttachments-04801",
- "text": " If the <a href=\"#features-colorWriteEnable\">colorWriteEnable</a> feature is not enabled, all elements of <code>pColorWriteEnables</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-04802",
- "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be equal to the <code>attachmentCount</code> member of the <code>VkPipelineColorBlendStateCreateInfo</code> structure specified during pipeline creation"
- },
- {
- "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkPipelineColorWriteCreateInfoEXT-pColorWriteEnables-parameter",
- "text": " If <code>attachmentCount</code> is not <code>0</code>, <code>pColorWriteEnables</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> <code>VkBool32</code> values"
- }
- ]
- },
- "vkCmdSetColorWriteEnableEXT": {
- "(VK_EXT_color_write_enable)": [
- {
- "vuid": "VUID-vkCmdSetColorWriteEnableEXT-None-04803",
- "text": " The <a href=\"#features-colorWriteEnable\">colorWriteEnable</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-04804",
- "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be equal to the <code>attachmentCount</code> member of the <code>VkPipelineColorBlendStateCreateInfo</code> structure specified during pipeline creation"
- },
- {
- "vuid": "VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetColorWriteEnableEXT-pColorWriteEnables-parameter",
- "text": " <code>pColorWriteEnables</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>attachmentCount</code> <code>VkBool32</code> values"
- },
- {
- "vuid": "VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-arraylength",
- "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkCmdDispatch": {
- "core": [
- {
- "vuid": "VUID-vkCmdDispatch-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatch-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatch-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatch-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDispatch-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDispatch-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDispatch-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDispatch-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDispatch-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDispatch-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDispatch-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDispatch-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDispatch-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDispatch-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDispatch-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDispatch-groupCountX-00386",
- "text": " <code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0]"
- },
- {
- "vuid": "VUID-vkCmdDispatch-groupCountY-00387",
- "text": " <code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1]"
- },
- {
- "vuid": "VUID-vkCmdDispatch-groupCountZ-00388",
- "text": " <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2]"
- },
- {
- "vuid": "VUID-vkCmdDispatch-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDispatch-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDispatch-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdDispatch-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDispatch-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDispatch-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatch-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatch-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDispatch-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDispatch-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDispatch-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatch-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDispatch-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDispatch-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDispatch-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDispatch-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDispatch-commandBuffer-02712",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
- },
- {
- "vuid": "VUID-vkCmdDispatch-commandBuffer-02713",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
- },
- {
- "vuid": "VUID-vkCmdDispatch-commandBuffer-04617",
- "text": " If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\">RayQueryKHR</a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDispatch-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDispatch-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDispatch-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDispatch-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDispatch-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDispatch-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDispatch-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDispatch-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ]
- },
- "vkCmdDispatchIndirect": {
- "core": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-buffer-02708",
- "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-buffer-02709",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-offset-02710",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-offset-00407",
- "text": " The sum of <code>offset</code> and the size of <code>VkDispatchIndirectCommand</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-commonparent",
- "text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ]
- },
- "VkDispatchIndirectCommand": {
- "core": [
- {
- "vuid": "VUID-VkDispatchIndirectCommand-x-00417",
- "text": " <code>x</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0]"
- },
- {
- "vuid": "VUID-VkDispatchIndirectCommand-y-00418",
- "text": " <code>y</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1]"
- },
- {
- "vuid": "VUID-VkDispatchIndirectCommand-z-00419",
- "text": " <code>z</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2]"
- }
- ]
- },
- "vkCmdDispatchBase": {
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00421",
- "text": " <code>baseGroupX</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0]"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00422",
- "text": " <code>baseGroupY</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1]"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-baseGroupZ-00423",
- "text": " <code>baseGroupZ</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2]"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-groupCountX-00424",
- "text": " <code>groupCountX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0] minus <code>baseGroupX</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-groupCountY-00425",
- "text": " <code>groupCountY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1] minus <code>baseGroupY</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-groupCountZ-00426",
- "text": " <code>groupCountZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2] minus <code>baseGroupZ</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00427",
- "text": " If any of <code>baseGroupX</code>, <code>baseGroupY</code>, or <code>baseGroupZ</code> are not zero, then the bound compute pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02712",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02713",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-commandBuffer-04617",
- "text": " If any of the shader stages of the <code>VkPipeline</code> bound to the pipeline bind point used by this command uses the <a href=\"#spirvenv-capabilities-table-RayQueryKHR\">RayQueryKHR</a> capability, then <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ]
- },
- "vkCmdSubpassShadingHUAWEI": {
- "(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-04931",
- "text": " This command must be called in a subpass with bind point <code>VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI</code>. No draw commands can be called in the same subpass. Only one <a href=\"#vkCmdSubpassShadingHUAWEI\">vkCmdSubpassShadingHUAWEI</a> command can be called in a subpass"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- }
- ],
- "(VK_HUAWEI_subpass_shading)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_HUAWEI_subpass_shading)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_HUAWEI_subpass_shading)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_HUAWEI_subpass_shading)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_HUAWEI_subpass_shading)+(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "(VK_HUAWEI_subpass_shading)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_HUAWEI_subpass_shading)+(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ]
- },
- "vkCreateIndirectCommandsLayoutNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-deviceGeneratedCommands-02929",
- "text": " The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkIndirectCommandsLayoutCreateInfoNV\">VkIndirectCommandsLayoutCreateInfoNV</a> structure"
- },
- {
- "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-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"
- },
- {
- "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pIndirectCommandsLayout-parameter",
- "text": " <code>pIndirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkIndirectCommandsLayoutNV\">VkIndirectCommandsLayoutNV</a> handle"
- }
- ]
- },
- "VkIndirectCommandsLayoutCreateInfoNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930",
- "text": " The <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-02931",
- "text": " <code>tokenCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxIndirectCommandsTokenCount</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02932",
- "text": " If <code>pTokens</code> contains an entry of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV</code> it <strong class=\"purple\">must</strong> be the first element of the array and there <strong class=\"purple\">must</strong> be only a single element of such token type"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02933",
- "text": " If <code>pTokens</code> contains an entry of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV</code> there <strong class=\"purple\">must</strong> be only a single element of such token type"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02934",
- "text": " All state tokens in <code>pTokens</code> <strong class=\"purple\">must</strong> occur prior work provoking tokens (<code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV</code>)"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02935",
- "text": " The content of <code>pTokens</code> <strong class=\"purple\">must</strong> include one single work provoking token that is compatible with the <code>pipelineBindPoint</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-02936",
- "text": " <code>streamCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code> and less or equal to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxIndirectCommandsStreamCount</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-02937",
- "text": " each element of <code>pStreamStrides</code> <strong class=\"purple\">must</strong> be greater than `0`and less than or equal to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxIndirectCommandsStreamStride</code>. Furthermore the alignment of each token input <strong class=\"purple\">must</strong> be ensured"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkIndirectCommandsLayoutUsageFlagBitsNV\">VkIndirectCommandsLayoutUsageFlagBitsNV</a> values"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-parameter",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-parameter",
- "text": " <code>pTokens</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>tokenCount</code> valid <a href=\"#VkIndirectCommandsLayoutTokenNV\">VkIndirectCommandsLayoutTokenNV</a> structures"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-parameter",
- "text": " <code>pStreamStrides</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>streamCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-arraylength",
- "text": " <code>tokenCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-arraylength",
- "text": " <code>streamCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkDestroyIndirectCommandsLayoutNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02938",
- "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"
- },
- {
- "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parameter",
- "text": " If <code>indirectCommandsLayout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsLayoutNV\">VkIndirectCommandsLayoutNV</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-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"
- },
- {
- "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>"
- }
- ]
- },
- "VkIndirectCommandsStreamNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-02942",
- "text": " The <code>buffer</code>&#8217;s usage flag <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-VkIndirectCommandsStreamNV-offset-02943",
- "text": " The <code>offset</code> <strong class=\"purple\">must</strong> be aligned to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>minIndirectCommandsBufferOffsetAlignment</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-02975",
- "text": " If <code>buffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- }
- ]
- },
- "VkBindShaderGroupIndirectCommandNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkBindShaderGroupIndirectCommandNV-None-02944",
- "text": " The current bound graphics pipeline, as well as the pipelines it may reference, <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code>"
- },
- {
- "vuid": "VUID-VkBindShaderGroupIndirectCommandNV-index-02945",
- "text": " The <code>index</code> <strong class=\"purple\">must</strong> be within range of the accessible shader groups of the current bound graphics pipeline. See <a href=\"#vkCmdBindPipelineShaderGroupNV\">vkCmdBindPipelineShaderGroupNV</a> for further details"
- }
- ]
- },
- "VkBindIndexBufferIndirectCommandNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-None-02946",
- "text": " The buffer&#8217;s usage flag from which the address was acquired <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDEX_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-bufferAddress-02947",
- "text": " The <code>bufferAddress</code> <strong class=\"purple\">must</strong> be aligned to the <code>indexType</code> used"
- },
- {
- "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-None-02948",
- "text": " Each element of the buffer from which the address was acquired and that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-indexType-parameter",
- "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value"
- }
- ]
- },
- "VkBindVertexBufferIndirectCommandNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkBindVertexBufferIndirectCommandNV-None-02949",
- "text": " The buffer&#8217;s usage flag from which the address was acquired <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_VERTEX_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-VkBindVertexBufferIndirectCommandNV-None-02950",
- "text": " Each element of the buffer from which the address was acquired and that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- }
- ]
- },
- "VkIndirectCommandsLayoutTokenNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-stream-02951",
- "text": " <code>stream</code> <strong class=\"purple\">must</strong> be smaller than <code>VkIndirectCommandsLayoutCreateInfoNV</code>::<code>streamCount</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-offset-02952",
- "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>maxIndirectCommandsTokenOffset</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02976",
- "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV</code>, <code>vertexBindingUnit</code> <strong class=\"purple\">must</strong> stay within device supported limits for the appropriate commands"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02977",
- "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantPipelineLayout</code> <strong class=\"purple\">must</strong> be valid"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02978",
- "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02979",
- "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantSize</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02980",
- "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantOffset</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02981",
- "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, <code>pushconstantSize</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPushConstantsSize</code> minus <code>pushconstantOffset</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02982",
- "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, for each byte in the range specified by <code>pushconstantOffset</code> and <code>pushconstantSize</code> and for each shader stage in <code>pushconstantShaderStageFlags</code>, there <strong class=\"purple\">must</strong> be a push constant range in <code>pushconstantPipelineLayout</code> that includes that byte and that stage"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02983",
- "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, for each byte in the range specified by <code>pushconstantOffset</code> and <code>pushconstantSize</code> and for each push constant range that overlaps that byte, <code>pushconstantShaderStageFlags</code> <strong class=\"purple\">must</strong> include all stages in that push constant range&#8217;s <a href=\"#VkPushConstantRange\">VkPushConstantRange</a>::<code>stageFlags</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02984",
- "text": " If <code>tokenType</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV</code>, <code>indirectStateFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-parameter",
- "text": " <code>tokenType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsTokenTypeNV\">VkIndirectCommandsTokenTypeNV</a> value"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pushconstantPipelineLayout-parameter",
- "text": " If <code>pushconstantPipelineLayout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pushconstantPipelineLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pushconstantShaderStageFlags-parameter",
- "text": " <code>pushconstantShaderStageFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-indirectStateFlags-parameter",
- "text": " <code>indirectStateFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkIndirectStateFlagBitsNV\">VkIndirectStateFlagBitsNV</a> values"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypes-parameter",
- "text": " If <code>indexTypeCount</code> is not <code>0</code>, <code>pIndexTypes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>indexTypeCount</code> valid <a href=\"#VkIndexType\">VkIndexType</a> values"
- },
- {
- "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypeValues-parameter",
- "text": " If <code>indexTypeCount</code> is not <code>0</code>, <code>pIndexTypeValues</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>indexTypeCount</code> <code>uint32_t</code> values"
- }
- ]
- },
- "vkGetGeneratedCommandsMemoryRequirementsNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-deviceGeneratedCommands-02906",
- "text": " The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkGeneratedCommandsMemoryRequirementsInfoNV\">VkGeneratedCommandsMemoryRequirementsInfoNV</a> structure"
- },
- {
- "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pMemoryRequirements-parameter",
- "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure"
- }
- ]
- },
- "VkGeneratedCommandsMemoryRequirementsInfoNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-maxSequencesCount-02907",
- "text": " <code>maxSequencesCount</code> <strong class=\"purple\">must</strong> be less or equal to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>::<code>maxIndirectSequenceCount</code>"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-parameter",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameter",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-indirectCommandsLayout-parameter",
- "text": " <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsLayoutNV\">VkIndirectCommandsLayoutNV</a> handle"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent",
- "text": " Both of <code>indirectCommandsLayout</code>, and <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "vkCmdExecuteGeneratedCommandsNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-02684",
- "text": " The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-subpass-02685",
- "text": " The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02686",
- "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06537",
- "text": " Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06538",
- "text": " If any recorded command in the current subpass will write to an image subresource as an attachment, this command <strong class=\"purple\">must</strong> not read from the memory backing that image subresource in any other way than as an attachment"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06539",
- "text": " If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-blendEnable-04727",
- "text": " If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-04740",
- "text": " If rasterization is not disabled in the bound graphics pipeline, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04007",
- "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> have either valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> buffers bound"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04008",
- "text": " If the <a href=\"#features-nullDescriptor\">nullDescriptor</a> feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point&#8217;s interface <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02721",
- "text": " For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-isPreprocessed-02908",
- "text": " If <code>isPreprocessed</code> is <code>VK_TRUE</code> then <a href=\"#vkCmdPreprocessGeneratedCommandsNV\">vkCmdPreprocessGeneratedCommandsNV</a> <strong class=\"purple\">must</strong> have already been executed on the device, using the same <code>pGeneratedCommandsInfo</code> content as well as the content of the input buffers it references (all except <a href=\"#VkGeneratedCommandsInfoNV\">VkGeneratedCommandsInfoNV</a>::<code>preprocessBuffer</code>). Furthermore <code>pGeneratedCommandsInfo</code>`s <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pipeline-02909",
- "text": " <code>VkGeneratedCommandsInfoNV</code>::<code>pipeline</code> <strong class=\"purple\">must</strong> match the current bound pipeline at <code>VkGeneratedCommandsInfoNV</code>::<code>pipelineBindPoint</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-deviceGeneratedCommands-02911",
- "text": " The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pGeneratedCommandsInfo-parameter",
- "text": " <code>pGeneratedCommandsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkGeneratedCommandsInfoNV\">VkGeneratedCommandsInfoNV</a> structure"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
- }
- ],
- "(VK_NV_device_generated_commands)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-maxMultiviewInstanceIndex-02688",
- "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-02689",
- "text": " If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03417",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-scissorCount-03418",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03419",
- "text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitiveTopology-03420",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopologyEXT\">vkCmdSetPrimitiveTopologyEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopologyEXT</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04137",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04138",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04139",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04140",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04141",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04142",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <code>VkPipelineVieportCreateInfo</code>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04876",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04877",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-logicOp-04878",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04879",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-04552",
- "text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06172",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06173",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewMask-06178",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06179",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06180",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06181",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06182",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06174",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06175",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06176",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06177",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06183",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06184",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06185",
- "text": " If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06186",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06187",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06188",
- "text": " If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06189",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06190",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;pname</code>:imageView"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-06198",
- "text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stage-06481",
- "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02910",
- "text": " Transform feedback <strong class=\"purple\">must</strong> not be active"
- }
- ]
- },
- "VkGeneratedCommandsInfoNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-pipeline-02912",
- "text": " The provided <code>pipeline</code> <strong class=\"purple\">must</strong> match the pipeline bound at execution time"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02913",
- "text": " If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with multiple shader groups"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02914",
- "text": " If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV</code>, then the <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV</code> set in <code>VkGraphicsPipelineCreateInfo</code>::<code>flags</code>"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02915",
- "text": " If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV</code>, then the <code>pipeline</code>`s <code>VkPipelineLayout</code> <strong class=\"purple\">must</strong> match the <a href=\"#VkIndirectCommandsLayoutTokenNV\">VkIndirectCommandsLayoutTokenNV</a>::<code>pushconstantPipelineLayout</code>"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-streamCount-02916",
- "text": " <code>streamCount</code> <strong class=\"purple\">must</strong> match the <code>indirectCommandsLayout</code>&#8217;s <code>streamCount</code>"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCount-02917",
- "text": " <code>sequencesCount</code> <strong class=\"purple\">must</strong> be less or equal to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>::<code>maxIndirectSequenceCount</code> and <a href=\"#VkGeneratedCommandsMemoryRequirementsInfoNV\">VkGeneratedCommandsMemoryRequirementsInfoNV</a>::<code>maxSequencesCount</code> that was used to determine the <code>preprocessSize</code>"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02918",
- "text": " <code>preprocessBuffer</code> <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set in its usage flag"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessOffset-02919",
- "text": " <code>preprocessOffset</code> <strong class=\"purple\">must</strong> be aligned to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>::<code>minIndirectCommandsBufferOffsetAlignment</code>"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02971",
- "text": " If <code>preprocessBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessSize-02920",
- "text": " <code>preprocessSize</code> <strong class=\"purple\">must</strong> be at least equal to the memory requirement`s size returned by <a href=\"#vkGetGeneratedCommandsMemoryRequirementsNV\">vkGetGeneratedCommandsMemoryRequirementsNV</a> using the matching inputs (<code>indirectCommandsLayout</code>, &#8230;&#8203;) as within this structure"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02921",
- "text": " <code>sequencesCountBuffer</code> <strong class=\"purple\">can</strong> be set if the actual used count of sequences is sourced from the provided buffer. In that case the <code>sequencesCount</code> serves as upper bound"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02922",
- "text": " If <code>sequencesCountBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, its usage flag <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02923",
- "text": " If <code>sequencesCountBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sequencesCountOffset</code> <strong class=\"purple\">must</strong> be aligned to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>minSequencesCountBufferOffsetAlignment</code>"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02972",
- "text": " If <code>sequencesCountBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02924",
- "text": " If <code>indirectCommandsLayout</code>&#8217;s <code>VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV</code> is set, <code>sequencesIndexBuffer</code> <strong class=\"purple\">must</strong> be set otherwise it <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02925",
- "text": " If <code>sequencesIndexBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, its usage flag <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02926",
- "text": " If <code>sequencesIndexBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sequencesIndexOffset</code> <strong class=\"purple\">must</strong> be aligned to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</code>::<code>minSequencesIndexBufferOffsetAlignment</code>"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02973",
- "text": " If <code>sequencesIndexBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> and is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV</code>"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-parameter",
- "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-pipeline-parameter",
- "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-parameter",
- "text": " <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsLayoutNV\">VkIndirectCommandsLayoutNV</a> handle"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-pStreams-parameter",
- "text": " <code>pStreams</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>streamCount</code> valid <a href=\"#VkIndirectCommandsStreamNV\">VkIndirectCommandsStreamNV</a> structures"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-parameter",
- "text": " <code>preprocessBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-parameter",
- "text": " If <code>sequencesCountBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sequencesCountBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-parameter",
- "text": " If <code>sequencesIndexBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>sequencesIndexBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-streamCount-arraylength",
- "text": " <code>streamCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkGeneratedCommandsInfoNV-commonparent",
- "text": " Each of <code>indirectCommandsLayout</code>, <code>pipeline</code>, <code>preprocessBuffer</code>, <code>sequencesCountBuffer</code>, and <code>sequencesIndexBuffer</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>"
- }
- ]
- },
- "vkCmdPreprocessGeneratedCommandsNV": {
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-02974",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-02927",
- "text": " <code>pGeneratedCommandsInfo</code>`s <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-deviceGeneratedCommands-02928",
- "text": " The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-parameter",
- "text": " <code>pGeneratedCommandsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkGeneratedCommandsInfoNV\">VkGeneratedCommandsInfoNV</a> structure"
- },
- {
- "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- },
- {
- "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ]
- },
- "vkGetPhysicalDeviceSparseImageFormatProperties": {
- "core": [
- {
- "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"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-parameter",
- "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-parameter",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-requiredbitmask",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-tiling-parameter",
- "text": " <code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pPropertyCount-parameter",
- "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pProperties-parameter",
- "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkSparseImageFormatProperties\">VkSparseImageFormatProperties</a> structures"
- }
- ]
- },
- "vkGetPhysicalDeviceSparseImageFormatProperties2": {
- "(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"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pFormatInfo-parameter",
- "text": " <code>pFormatInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSparseImageFormatInfo2\">VkPhysicalDeviceSparseImageFormatInfo2</a> structure"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pPropertyCount-parameter",
- "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pProperties-parameter",
- "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkSparseImageFormatProperties2\">VkSparseImageFormatProperties2</a> structures"
- }
- ]
- },
- "VkPhysicalDeviceSparseImageFormatInfo2": {
- "(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"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-parameter",
- "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-parameter",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-requiredbitmask",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-tiling-parameter",
- "text": " <code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value"
- }
- ]
- },
- "VkSparseImageFormatProperties2": {
- "(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>"
- },
- {
- "vuid": "VUID-VkSparseImageFormatProperties2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetImageSparseMemoryRequirements": {
- "core": [
- {
- "vuid": "VUID-vkGetImageSparseMemoryRequirements-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetImageSparseMemoryRequirements-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameter",
- "text": " <code>pSparseMemoryRequirementCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirements-parameter",
- "text": " If the value referenced by <code>pSparseMemoryRequirementCount</code> is not <code>0</code>, and <code>pSparseMemoryRequirements</code> is not <code>NULL</code>, <code>pSparseMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSparseMemoryRequirementCount</code> <a href=\"#VkSparseImageMemoryRequirements\">VkSparseImageMemoryRequirements</a> structures"
- },
- {
- "vuid": "VUID-vkGetImageSparseMemoryRequirements-image-parent",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkGetImageSparseMemoryRequirements2": {
- "(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"
- },
- {
- "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImageSparseMemoryRequirementsInfo2\">VkImageSparseMemoryRequirementsInfo2</a> structure"
- },
- {
- "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirementCount-parameter",
- "text": " <code>pSparseMemoryRequirementCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirements-parameter",
- "text": " If the value referenced by <code>pSparseMemoryRequirementCount</code> is not <code>0</code>, and <code>pSparseMemoryRequirements</code> is not <code>NULL</code>, <code>pSparseMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSparseMemoryRequirementCount</code> <a href=\"#VkSparseImageMemoryRequirements2\">VkSparseImageMemoryRequirements2</a> structures"
- }
- ]
- },
- "vkGetDeviceImageSparseMemoryRequirements": {
- "(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"
- },
- {
- "vuid": "VUID-vkGetDeviceImageSparseMemoryRequirements-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDeviceImageMemoryRequirements\">VkDeviceImageMemoryRequirements</a> structure"
- },
- {
- "vuid": "VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameter",
- "text": " <code>pSparseMemoryRequirementCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirements-parameter",
- "text": " If the value referenced by <code>pSparseMemoryRequirementCount</code> is not <code>0</code>, and <code>pSparseMemoryRequirements</code> is not <code>NULL</code>, <code>pSparseMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSparseMemoryRequirementCount</code> <a href=\"#VkSparseImageMemoryRequirements2\">VkSparseImageMemoryRequirements2</a> structures"
- }
- ]
- },
- "VkImageSparseMemoryRequirementsInfo2": {
- "(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>"
- },
- {
- "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- }
- ]
- },
- "VkSparseImageMemoryRequirements2": {
- "(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>"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryRequirements2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkSparseMemoryBind": {
- "core": [
- {
- "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>"
- },
- {
- "vuid": "VUID-VkSparseMemoryBind-memory-01097",
- "text": " If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> <strong class=\"purple\">must</strong> not have been created with a memory type that reports <code>VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT</code> bit set"
- },
- {
- "vuid": "VUID-VkSparseMemoryBind-size-01098",
- "text": " <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkSparseMemoryBind-resourceOffset-01099",
- "text": " <code>resourceOffset</code> <strong class=\"purple\">must</strong> be less than the size of the resource"
- },
- {
- "vuid": "VUID-VkSparseMemoryBind-size-01100",
- "text": " <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the resource minus <code>resourceOffset</code>"
- },
- {
- "vuid": "VUID-VkSparseMemoryBind-memoryOffset-01101",
- "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>"
- },
- {
- "vuid": "VUID-VkSparseMemoryBind-size-01102",
- "text": " <code>size</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>"
- },
- {
- "vuid": "VUID-VkSparseMemoryBind-memory-parameter",
- "text": " If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-VkSparseMemoryBind-flags-parameter",
- "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)": [
- {
- "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"
- },
- {
- "vuid": "VUID-VkSparseMemoryBind-memory-02731",
- "text": " If <code>memory</code> was created by a memory import operation, the external handle type of the imported memory <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"
- }
- ]
- },
- "VkSparseBufferMemoryBindInfo": {
- "core": [
- {
- "vuid": "VUID-VkSparseBufferMemoryBindInfo-buffer-parameter",
- "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkSparseBufferMemoryBindInfo-pBinds-parameter",
- "text": " <code>pBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindCount</code> valid <a href=\"#VkSparseMemoryBind\">VkSparseMemoryBind</a> structures"
- },
- {
- "vuid": "VUID-VkSparseBufferMemoryBindInfo-bindCount-arraylength",
- "text": " <code>bindCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkSparseImageOpaqueMemoryBindInfo": {
- "core": [
- {
- "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>"
- },
- {
- "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-parameter",
- "text": " <code>pBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindCount</code> valid <a href=\"#VkSparseMemoryBind\">VkSparseMemoryBind</a> structures"
- },
- {
- "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-bindCount-arraylength",
- "text": " <code>bindCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkSparseImageMemoryBindInfo": {
- "core": [
- {
- "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"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBindInfo-subresource-01723",
- "text": " The <code>subresource.arrayLayer</code> member of each element of <code>pBinds</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"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBindInfo-image-02901",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> set"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBindInfo-image-parameter",
- "text": " <code>image</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImage\">VkImage</a> handle"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBindInfo-pBinds-parameter",
- "text": " <code>pBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindCount</code> valid <a href=\"#VkSparseImageMemoryBind\">VkSparseImageMemoryBind</a> structures"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBindInfo-bindCount-arraylength",
- "text": " <code>bindCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkSparseImageMemoryBind": {
- "core": [
- {
- "vuid": "VUID-VkSparseImageMemoryBind-memory-01104",
- "text": " If the <a href=\"#features-sparseResidencyAliased\">sparse aliased residency</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"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBind-memory-01105",
- "text": " <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> match the memory requirements of the calling command&#8217;s <code>image</code>, as described in section <a href=\"#resources-association\">Resource Memory Association</a>"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBind-subresource-01106",
- "text": " <code>subresource</code> <strong class=\"purple\">must</strong> be a valid image subresource for <code>image</code> (see <a href=\"#resources-image-views\">Image Views</a>)"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBind-offset-01107",
- "text": " <code>offset.x</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block width (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.width</code>) of the image"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBind-extent-01108",
- "text": " <code>extent.width</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block width of the image, or else <span class=\"eq\">(<code>extent.width</code> &#43; <code>offset.x</code>)</span> <strong class=\"purple\">must</strong> equal the width of the image subresource"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBind-offset-01109",
- "text": " <code>offset.y</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block height (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.height</code>) of the image"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBind-extent-01110",
- "text": " <code>extent.height</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block height of the image, or else <span class=\"eq\">(<code>extent.height</code> &#43; <code>offset.y</code>)</span> <strong class=\"purple\">must</strong> equal the height of the image subresource"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBind-offset-01111",
- "text": " <code>offset.z</code> <strong class=\"purple\">must</strong> be a multiple of the sparse image block depth (<code>VkSparseImageFormatProperties</code>::<code>imageGranularity.depth</code>) of the image"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBind-extent-01112",
- "text": " <code>extent.depth</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block depth of the image, or else <span class=\"eq\">(<code>extent.depth</code> &#43; <code>offset.z</code>)</span> <strong class=\"purple\">must</strong> equal the depth of the image subresource"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBind-subresource-parameter",
- "text": " <code>subresource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresource\">VkImageSubresource</a> structure"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBind-memory-parameter",
- "text": " If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBind-flags-parameter",
- "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)": [
- {
- "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"
- },
- {
- "vuid": "VUID-VkSparseImageMemoryBind-memory-02733",
- "text": " If <code>memory</code> was created by a memory import operation, the external handle type of the imported memory <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when <code>image</code> was created"
- }
- ]
- },
- "vkQueueBindSparse": {
- "core": [
- {
- "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"
- },
- {
- "vuid": "VUID-vkQueueBindSparse-fence-01114",
- "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue"
- },
- {
- "vuid": "VUID-vkQueueBindSparse-pSignalSemaphores-01115",
- "text": " Each element of the <code>pSignalSemaphores</code> member of each element of <code>pBindInfo</code> <strong class=\"purple\">must</strong> be unsignaled when the semaphore signal operation it defines is executed on the device"
- },
- {
- "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-01116",
- "text": " When a semaphore wait operation referring to a binary semaphore defined by any element of the <code>pWaitSemaphores</code> member of any element of <code>pBindInfo</code> executes on <code>queue</code>, there <strong class=\"purple\">must</strong> be no other queues waiting on the same semaphore"
- },
- {
- "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-01117",
- "text": " All elements of the <code>pWaitSemaphores</code> member of all elements of the <code>pBindInfo</code> parameter referring to a binary semaphore <strong class=\"purple\">must</strong> be semaphores that are signaled, or have <a href=\"#synchronization-semaphores-signaling\">semaphore signal operations</a> previously submitted for execution"
- },
- {
- "vuid": "VUID-vkQueueBindSparse-queue-parameter",
- "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
- },
- {
- "vuid": "VUID-vkQueueBindSparse-pBindInfo-parameter",
- "text": " If <code>bindInfoCount</code> is not <code>0</code>, <code>pBindInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <a href=\"#VkBindSparseInfo\">VkBindSparseInfo</a> structures"
- },
- {
- "vuid": "VUID-vkQueueBindSparse-fence-parameter",
- "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 a valid <a href=\"#VkFence\">VkFence</a> handle"
- },
- {
- "vuid": "VUID-vkQueueBindSparse-queuetype",
- "text": " The <code>queue</code> <strong class=\"purple\">must</strong> support sparse binding operations"
- },
- {
- "vuid": "VUID-vkQueueBindSparse-commonparent",
- "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)": [
- {
- "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"
- }
- ]
- },
- "VkBindSparseInfo": {
- "(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"
- },
- {
- "vuid": "VUID-VkBindSparseInfo-pNext-03247",
- "text": " If the <code>pNext</code> chain of this structure includes a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure and any element of <code>pWaitSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> then its <code>waitSemaphoreValueCount</code> member <strong class=\"purple\">must</strong> equal <code>waitSemaphoreCount</code>"
- },
- {
- "vuid": "VUID-VkBindSparseInfo-pNext-03248",
- "text": " If the <code>pNext</code> chain of this structure includes a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure and any element of <code>pSignalSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> then its <code>signalSemaphoreValueCount</code> member <strong class=\"purple\">must</strong> equal <code>signalSemaphoreCount</code>"
- },
- {
- "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-03249",
- "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 greater than the current value of the semaphore when the <a href=\"#synchronization-semaphores-signaling\">semaphore signal operation</a> is executed"
- },
- {
- "vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-03250",
- "text": " For each element of <code>pWaitSemaphores</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>pWaitSemaphoreValues</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>"
- },
- {
- "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-03251",
- "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": [
- {
- "vuid": "VUID-VkBindSparseInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_SPARSE_INFO</code>"
- },
- {
- "vuid": "VUID-VkBindSparseInfo-pNext-pNext",
- "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=\"#VkDeviceGroupBindSparseInfo\">VkDeviceGroupBindSparseInfo</a> or <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>"
- },
- {
- "vuid": "VUID-VkBindSparseInfo-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-VkBindSparseInfo-pWaitSemaphores-parameter",
- "text": " If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles"
- },
- {
- "vuid": "VUID-VkBindSparseInfo-pBufferBinds-parameter",
- "text": " If <code>bufferBindCount</code> is not <code>0</code>, <code>pBufferBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bufferBindCount</code> valid <a href=\"#VkSparseBufferMemoryBindInfo\">VkSparseBufferMemoryBindInfo</a> structures"
- },
- {
- "vuid": "VUID-VkBindSparseInfo-pImageOpaqueBinds-parameter",
- "text": " If <code>imageOpaqueBindCount</code> is not <code>0</code>, <code>pImageOpaqueBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageOpaqueBindCount</code> valid <a href=\"#VkSparseImageOpaqueMemoryBindInfo\">VkSparseImageOpaqueMemoryBindInfo</a> structures"
- },
- {
- "vuid": "VUID-VkBindSparseInfo-pImageBinds-parameter",
- "text": " If <code>imageBindCount</code> is not <code>0</code>, <code>pImageBinds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>imageBindCount</code> valid <a href=\"#VkSparseImageMemoryBindInfo\">VkSparseImageMemoryBindInfo</a> structures"
- },
- {
- "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-parameter",
- "text": " If <code>signalSemaphoreCount</code> is not <code>0</code>, <code>pSignalSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>signalSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles"
- },
- {
- "vuid": "VUID-VkBindSparseInfo-commonparent",
- "text": " Both of the elements of <code>pSignalSemaphores</code>, and the elements of <code>pWaitSemaphores</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>"
- }
- ]
- },
- "VkDeviceGroupBindSparseInfo": {
- "(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"
- },
- {
- "vuid": "VUID-VkDeviceGroupBindSparseInfo-memoryDeviceIndex-01119",
- "text": " Each memory allocation bound in this batch <strong class=\"purple\">must</strong> have allocated an instance for <code>memoryDeviceIndex</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupBindSparseInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO</code>"
- }
- ]
- },
- "vkCreateAndroidSurfaceKHR": {
- "(VK_KHR_surface)+(VK_KHR_android_surface)": [
- {
- "vuid": "VUID-vkCreateAndroidSurfaceKHR-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateAndroidSurfaceKHR-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAndroidSurfaceCreateInfoKHR\">VkAndroidSurfaceCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCreateAndroidSurfaceKHR-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"
- },
- {
- "vuid": "VUID-vkCreateAndroidSurfaceKHR-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkAndroidSurfaceCreateInfoKHR": {
- "(VK_KHR_surface)+(VK_KHR_android_surface)": [
- {
- "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-window-01248",
- "text": " <code>window</code> <strong class=\"purple\">must</strong> point to a valid Android <code>ANativeWindow</code>"
- },
- {
- "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCreateWaylandSurfaceKHR": {
- "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [
- {
- "vuid": "VUID-vkCreateWaylandSurfaceKHR-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateWaylandSurfaceKHR-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkWaylandSurfaceCreateInfoKHR\">VkWaylandSurfaceCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCreateWaylandSurfaceKHR-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"
- },
- {
- "vuid": "VUID-vkCreateWaylandSurfaceKHR-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkWaylandSurfaceCreateInfoKHR": {
- "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [
- {
- "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-display-01304",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> point to a valid Wayland <code>wl_display</code>"
- },
- {
- "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-surface-01305",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> point to a valid Wayland <code>wl_surface</code>"
- },
- {
- "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCreateWin32SurfaceKHR": {
- "(VK_KHR_surface)+(VK_KHR_win32_surface)": [
- {
- "vuid": "VUID-vkCreateWin32SurfaceKHR-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateWin32SurfaceKHR-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkWin32SurfaceCreateInfoKHR\">VkWin32SurfaceCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCreateWin32SurfaceKHR-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"
- },
- {
- "vuid": "VUID-vkCreateWin32SurfaceKHR-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkWin32SurfaceCreateInfoKHR": {
- "(VK_KHR_surface)+(VK_KHR_win32_surface)": [
- {
- "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-hinstance-01307",
- "text": " <code>hinstance</code> <strong class=\"purple\">must</strong> be a valid Win32 <code>HINSTANCE</code>"
- },
- {
- "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-hwnd-01308",
- "text": " <code>hwnd</code> <strong class=\"purple\">must</strong> be a valid Win32 <code>HWND</code>"
- },
- {
- "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCreateXcbSurfaceKHR": {
- "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [
- {
- "vuid": "VUID-vkCreateXcbSurfaceKHR-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateXcbSurfaceKHR-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkXcbSurfaceCreateInfoKHR\">VkXcbSurfaceCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCreateXcbSurfaceKHR-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"
- },
- {
- "vuid": "VUID-vkCreateXcbSurfaceKHR-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkXcbSurfaceCreateInfoKHR": {
- "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [
- {
- "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-connection-01310",
- "text": " <code>connection</code> <strong class=\"purple\">must</strong> point to a valid X11 <code>xcb_connection_t</code>"
- },
- {
- "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-window-01311",
- "text": " <code>window</code> <strong class=\"purple\">must</strong> be a valid X11 <code>xcb_window_t</code>"
- },
- {
- "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCreateXlibSurfaceKHR": {
- "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [
- {
- "vuid": "VUID-vkCreateXlibSurfaceKHR-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateXlibSurfaceKHR-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkXlibSurfaceCreateInfoKHR\">VkXlibSurfaceCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCreateXlibSurfaceKHR-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"
- },
- {
- "vuid": "VUID-vkCreateXlibSurfaceKHR-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkXlibSurfaceCreateInfoKHR": {
- "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [
- {
- "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-dpy-01313",
- "text": " <code>dpy</code> <strong class=\"purple\">must</strong> point to a valid Xlib <code>Display</code>"
- },
- {
- "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-window-01314",
- "text": " <code>window</code> <strong class=\"purple\">must</strong> be a valid Xlib <code>Window</code>"
- },
- {
- "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCreateDirectFBSurfaceEXT": {
- "(VK_KHR_surface)+(VK_EXT_directfb_surface)": [
- {
- "vuid": "VUID-vkCreateDirectFBSurfaceEXT-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateDirectFBSurfaceEXT-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDirectFBSurfaceCreateInfoEXT\">VkDirectFBSurfaceCreateInfoEXT</a> structure"
- },
- {
- "vuid": "VUID-vkCreateDirectFBSurfaceEXT-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"
- },
- {
- "vuid": "VUID-vkCreateDirectFBSurfaceEXT-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkDirectFBSurfaceCreateInfoEXT": {
- "(VK_KHR_surface)+(VK_EXT_directfb_surface)": [
- {
- "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-dfb-04117",
- "text": " <code>dfb</code> <strong class=\"purple\">must</strong> point to a valid DirectFB <code>IDirectFB</code>"
- },
- {
- "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-surface-04118",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> point to a valid DirectFB <code>IDirectFBSurface</code>"
- },
- {
- "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCreateImagePipeSurfaceFUCHSIA": {
- "(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)": [
- {
- "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkImagePipeSurfaceCreateInfoFUCHSIA\">VkImagePipeSurfaceCreateInfoFUCHSIA</a> structure"
- },
- {
- "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-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"
- },
- {
- "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkImagePipeSurfaceCreateInfoFUCHSIA": {
- "(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)": [
- {
- "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-04863",
- "text": " <code>imagePipeHandle</code> <strong class=\"purple\">must</strong> be a valid <code>zx_handle_t</code>"
- },
- {
- "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA</code>"
- },
- {
- "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCreateStreamDescriptorSurfaceGGP": {
- "(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)": [
- {
- "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStreamDescriptorSurfaceCreateInfoGGP\">VkStreamDescriptorSurfaceCreateInfoGGP</a> structure"
- },
- {
- "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-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"
- },
- {
- "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkStreamDescriptorSurfaceCreateInfoGGP": {
- "(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)": [
- {
- "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-streamDescriptor-02681",
- "text": " <code>streamDescriptor</code> <strong class=\"purple\">must</strong> be a valid <code>GgpStreamDescriptor</code>"
- },
- {
- "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP</code>"
- },
- {
- "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCreateIOSSurfaceMVK": {
- "(VK_KHR_surface)+(VK_MVK_ios_surface)": [
- {
- "vuid": "VUID-vkCreateIOSSurfaceMVK-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateIOSSurfaceMVK-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkIOSSurfaceCreateInfoMVK\">VkIOSSurfaceCreateInfoMVK</a> structure"
- },
- {
- "vuid": "VUID-vkCreateIOSSurfaceMVK-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"
- },
- {
- "vuid": "VUID-vkCreateIOSSurfaceMVK-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkIOSSurfaceCreateInfoMVK": {
- "(VK_KHR_surface)+(VK_MVK_ios_surface)": [
- {
- "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pView-04143",
- "text": " If <code>pView</code> is a <code>CAMetalLayer</code> object, it <strong class=\"purple\">must</strong> be a valid <code>CAMetalLayer</code>"
- },
- {
- "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pView-01316",
- "text": " If <code>pView</code> is a <code>UIView</code> object, it <strong class=\"purple\">must</strong> be a valid <code>UIView</code>, <strong class=\"purple\">must</strong> be backed by a <code>CALayer</code> object of type <code>CAMetalLayer</code>, and <a href=\"#vkCreateIOSSurfaceMVK\">vkCreateIOSSurfaceMVK</a> <strong class=\"purple\">must</strong> be called on the main thread"
- },
- {
- "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK</code>"
- },
- {
- "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCreateMacOSSurfaceMVK": {
- "(VK_KHR_surface)+(VK_MVK_macos_surface)": [
- {
- "vuid": "VUID-vkCreateMacOSSurfaceMVK-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateMacOSSurfaceMVK-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMacOSSurfaceCreateInfoMVK\">VkMacOSSurfaceCreateInfoMVK</a> structure"
- },
- {
- "vuid": "VUID-vkCreateMacOSSurfaceMVK-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"
- },
- {
- "vuid": "VUID-vkCreateMacOSSurfaceMVK-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkMacOSSurfaceCreateInfoMVK": {
- "(VK_KHR_surface)+(VK_MVK_macos_surface)": [
- {
- "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pView-04144",
- "text": " If <code>pView</code> is a <code>CAMetalLayer</code> object, it <strong class=\"purple\">must</strong> be a valid <code>CAMetalLayer</code>"
- },
- {
- "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pView-01317",
- "text": " If <code>pView</code> is an <code>NSView</code> object, it <strong class=\"purple\">must</strong> be a valid <code>NSView</code>, <strong class=\"purple\">must</strong> be backed by a <code>CALayer</code> object of type <code>CAMetalLayer</code>, and <a href=\"#vkCreateMacOSSurfaceMVK\">vkCreateMacOSSurfaceMVK</a> <strong class=\"purple\">must</strong> be called on the main thread"
- },
- {
- "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK</code>"
- },
- {
- "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCreateViSurfaceNN": {
- "(VK_KHR_surface)+(VK_NN_vi_surface)": [
- {
- "vuid": "VUID-vkCreateViSurfaceNN-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateViSurfaceNN-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkViSurfaceCreateInfoNN\">VkViSurfaceCreateInfoNN</a> structure"
- },
- {
- "vuid": "VUID-vkCreateViSurfaceNN-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"
- },
- {
- "vuid": "VUID-vkCreateViSurfaceNN-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkViSurfaceCreateInfoNN": {
- "(VK_KHR_surface)+(VK_NN_vi_surface)": [
- {
- "vuid": "VUID-VkViSurfaceCreateInfoNN-window-01318",
- "text": " <code>window</code> <strong class=\"purple\">must</strong> be a valid <code>nn</code>::<code>vi</code>::<code>NativeWindowHandle</code>"
- },
- {
- "vuid": "VUID-VkViSurfaceCreateInfoNN-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN</code>"
- },
- {
- "vuid": "VUID-VkViSurfaceCreateInfoNN-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkViSurfaceCreateInfoNN-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCreateMetalSurfaceEXT": {
- "(VK_KHR_surface)+(VK_EXT_metal_surface)": [
- {
- "vuid": "VUID-vkCreateMetalSurfaceEXT-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateMetalSurfaceEXT-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkMetalSurfaceCreateInfoEXT\">VkMetalSurfaceCreateInfoEXT</a> structure"
- },
- {
- "vuid": "VUID-vkCreateMetalSurfaceEXT-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"
- },
- {
- "vuid": "VUID-vkCreateMetalSurfaceEXT-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkMetalSurfaceCreateInfoEXT": {
- "(VK_KHR_surface)+(VK_EXT_metal_surface)": [
- {
- "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCreateScreenSurfaceQNX": {
- "(VK_KHR_surface)+(VK_QNX_screen_surface)": [
- {
- "vuid": "VUID-vkCreateScreenSurfaceQNX-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateScreenSurfaceQNX-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkScreenSurfaceCreateInfoQNX\">VkScreenSurfaceCreateInfoQNX</a> structure"
- },
- {
- "vuid": "VUID-vkCreateScreenSurfaceQNX-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"
- },
- {
- "vuid": "VUID-vkCreateScreenSurfaceQNX-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkScreenSurfaceCreateInfoQNX": {
- "(VK_KHR_surface)+(VK_QNX_screen_surface)": [
- {
- "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-context-04741",
- "text": " <code>context</code> <strong class=\"purple\">must</strong> point to a valid QNX Screen <code>struct</code> _screen_context"
- },
- {
- "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-window-04742",
- "text": " <code>window</code> <strong class=\"purple\">must</strong> point to a valid QNX Screen <code>struct</code> _screen_window"
- },
- {
- "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX</code>"
- },
- {
- "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkScreenSurfaceCreateInfoQNX-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkDestroySurfaceKHR": {
- "(VK_KHR_surface)": [
- {
- "vuid": "VUID-vkDestroySurfaceKHR-surface-01266",
- "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"
- },
- {
- "vuid": "VUID-vkDestroySurfaceKHR-surface-parameter",
- "text": " If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkDestroySurfaceKHR-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"
- },
- {
- "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>"
- }
- ]
- },
- "vkGetPhysicalDeviceDisplayPropertiesKHR": {
- "(VK_KHR_surface)+(VK_KHR_display)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pPropertyCount-parameter",
- "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pProperties-parameter",
- "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayPropertiesKHR\">VkDisplayPropertiesKHR</a> structures"
- }
- ]
- },
- "vkGetPhysicalDeviceDisplayProperties2KHR": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pPropertyCount-parameter",
- "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pProperties-parameter",
- "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayProperties2KHR\">VkDisplayProperties2KHR</a> structures"
- }
- ]
- },
- "VkDisplayProperties2KHR": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
- {
- "vuid": "VUID-VkDisplayProperties2KHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR</code>"
- },
- {
- "vuid": "VUID-VkDisplayProperties2KHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkAcquireXlibDisplayEXT": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)": [
- {
- "vuid": "VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkAcquireXlibDisplayEXT-dpy-parameter",
- "text": " <code>dpy</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>Display</code> value"
- },
- {
- "vuid": "VUID-vkAcquireXlibDisplayEXT-display-parameter",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
- },
- {
- "vuid": "VUID-vkAcquireXlibDisplayEXT-display-parent",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>"
- }
- ]
- },
- "vkGetRandROutputDisplayEXT": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)": [
- {
- "vuid": "VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetRandROutputDisplayEXT-dpy-parameter",
- "text": " <code>dpy</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>Display</code> value"
- },
- {
- "vuid": "VUID-vkGetRandROutputDisplayEXT-pDisplay-parameter",
- "text": " <code>pDisplay</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
- }
- ]
- },
- "vkAcquireWinrtDisplayNV": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_NV_acquire_winrt_display)": [
- {
- "vuid": "VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkAcquireWinrtDisplayNV-display-parameter",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
- },
- {
- "vuid": "VUID-vkAcquireWinrtDisplayNV-display-parent",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>"
- }
- ]
- },
- "vkGetWinrtDisplayNV": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_NV_acquire_winrt_display)": [
- {
- "vuid": "VUID-vkGetWinrtDisplayNV-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetWinrtDisplayNV-pDisplay-parameter",
- "text": " <code>pDisplay</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
- }
- ]
- },
- "vkAcquireDrmDisplayEXT": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_drm_display)": [
- {
- "vuid": "VUID-vkAcquireDrmDisplayEXT-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkAcquireDrmDisplayEXT-display-parameter",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
- },
- {
- "vuid": "VUID-vkAcquireDrmDisplayEXT-display-parent",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>"
- }
- ]
- },
- "vkGetDrmDisplayEXT": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_drm_display)": [
- {
- "vuid": "VUID-vkGetDrmDisplayEXT-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDrmDisplayEXT-display-parameter",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
- }
- ]
- },
- "vkReleaseDisplayEXT": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)": [
- {
- "vuid": "VUID-vkReleaseDisplayEXT-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkReleaseDisplayEXT-display-parameter",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
- },
- {
- "vuid": "VUID-vkReleaseDisplayEXT-display-parent",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceDisplayPlanePropertiesKHR": {
- "(VK_KHR_surface)+(VK_KHR_display)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pPropertyCount-parameter",
- "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pProperties-parameter",
- "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayPlanePropertiesKHR\">VkDisplayPlanePropertiesKHR</a> structures"
- }
- ]
- },
- "vkGetPhysicalDeviceDisplayPlaneProperties2KHR": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pPropertyCount-parameter",
- "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pProperties-parameter",
- "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayPlaneProperties2KHR\">VkDisplayPlaneProperties2KHR</a> structures"
- }
- ]
- },
- "VkDisplayPlaneProperties2KHR": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
- {
- "vuid": "VUID-VkDisplayPlaneProperties2KHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR</code>"
- },
- {
- "vuid": "VUID-VkDisplayPlaneProperties2KHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetDisplayPlaneSupportedDisplaysKHR": {
- "(VK_KHR_surface)+(VK_KHR_display)": [
- {
- "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-planeIndex-01249",
- "text": " <code>planeIndex</code> <strong class=\"purple\">must</strong> be less than the number of display planes supported by the device as determined by calling <code>vkGetPhysicalDeviceDisplayPlanePropertiesKHR</code>"
- },
- {
- "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplayCount-parameter",
- "text": " <code>pDisplayCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplays-parameter",
- "text": " If the value referenced by <code>pDisplayCount</code> is not <code>0</code>, and <code>pDisplays</code> is not <code>NULL</code>, <code>pDisplays</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pDisplayCount</code> <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handles"
- }
- ]
- },
- "vkGetDisplayModePropertiesKHR": {
- "(VK_KHR_surface)+(VK_KHR_display)": [
- {
- "vuid": "VUID-vkGetDisplayModePropertiesKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDisplayModePropertiesKHR-display-parameter",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetDisplayModePropertiesKHR-pPropertyCount-parameter",
- "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetDisplayModePropertiesKHR-pProperties-parameter",
- "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayModePropertiesKHR\">VkDisplayModePropertiesKHR</a> structures"
- },
- {
- "vuid": "VUID-vkGetDisplayModePropertiesKHR-display-parent",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>"
- }
- ]
- },
- "vkGetDisplayModeProperties2KHR": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
- {
- "vuid": "VUID-vkGetDisplayModeProperties2KHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDisplayModeProperties2KHR-display-parameter",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetDisplayModeProperties2KHR-pPropertyCount-parameter",
- "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetDisplayModeProperties2KHR-pProperties-parameter",
- "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkDisplayModeProperties2KHR\">VkDisplayModeProperties2KHR</a> structures"
- },
- {
- "vuid": "VUID-vkGetDisplayModeProperties2KHR-display-parent",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>"
- }
- ]
- },
- "VkDisplayModeProperties2KHR": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
- {
- "vuid": "VUID-VkDisplayModeProperties2KHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR</code>"
- },
- {
- "vuid": "VUID-VkDisplayModeProperties2KHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkDisplayModeParametersKHR": {
- "(VK_KHR_surface)+(VK_KHR_display)": [
- {
- "vuid": "VUID-VkDisplayModeParametersKHR-width-01990",
- "text": " The <code>width</code> member of <code>visibleRegion</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkDisplayModeParametersKHR-height-01991",
- "text": " The <code>height</code> member of <code>visibleRegion</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkDisplayModeParametersKHR-refreshRate-01992",
- "text": " <code>refreshRate</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkCreateDisplayModeKHR": {
- "(VK_KHR_surface)+(VK_KHR_display)": [
- {
- "vuid": "VUID-vkCreateDisplayModeKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateDisplayModeKHR-display-parameter",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
- },
- {
- "vuid": "VUID-vkCreateDisplayModeKHR-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplayModeCreateInfoKHR\">VkDisplayModeCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCreateDisplayModeKHR-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"
- },
- {
- "vuid": "VUID-vkCreateDisplayModeKHR-pMode-parameter",
- "text": " <code>pMode</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayModeKHR\">VkDisplayModeKHR</a> handle"
- },
- {
- "vuid": "VUID-vkCreateDisplayModeKHR-display-parent",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>physicalDevice</code>"
- }
- ]
- },
- "VkDisplayModeCreateInfoKHR": {
- "(VK_KHR_surface)+(VK_KHR_display)": [
- {
- "vuid": "VUID-VkDisplayModeCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkDisplayModeCreateInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDisplayModeCreateInfoKHR-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkDisplayModeCreateInfoKHR-parameters-parameter",
- "text": " <code>parameters</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayModeParametersKHR\">VkDisplayModeParametersKHR</a> structure"
- }
- ]
- },
- "vkGetDisplayPlaneCapabilitiesKHR": {
- "(VK_KHR_surface)+(VK_KHR_display)": [
- {
- "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parameter",
- "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayModeKHR\">VkDisplayModeKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-pCapabilities-parameter",
- "text": " <code>pCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayPlaneCapabilitiesKHR\">VkDisplayPlaneCapabilitiesKHR</a> structure"
- }
- ]
- },
- "vkGetDisplayPlaneCapabilities2KHR": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
- {
- "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-pDisplayPlaneInfo-parameter",
- "text": " <code>pDisplayPlaneInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplayPlaneInfo2KHR\">VkDisplayPlaneInfo2KHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-pCapabilities-parameter",
- "text": " <code>pCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDisplayPlaneCapabilities2KHR\">VkDisplayPlaneCapabilities2KHR</a> structure"
- }
- ]
- },
- "VkDisplayPlaneInfo2KHR": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
- {
- "vuid": "VUID-VkDisplayPlaneInfo2KHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR</code>"
- },
- {
- "vuid": "VUID-VkDisplayPlaneInfo2KHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDisplayPlaneInfo2KHR-mode-parameter",
- "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayModeKHR\">VkDisplayModeKHR</a> handle"
- }
- ]
- },
- "VkDisplayPlaneCapabilities2KHR": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [
- {
- "vuid": "VUID-VkDisplayPlaneCapabilities2KHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR</code>"
- },
- {
- "vuid": "VUID-VkDisplayPlaneCapabilities2KHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkDisplayPowerControlEXT": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)": [
- {
- "vuid": "VUID-vkDisplayPowerControlEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDisplayPowerControlEXT-display-parameter",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayKHR\">VkDisplayKHR</a> handle"
- },
- {
- "vuid": "VUID-vkDisplayPowerControlEXT-pDisplayPowerInfo-parameter",
- "text": " <code>pDisplayPowerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplayPowerInfoEXT\">VkDisplayPowerInfoEXT</a> structure"
- },
- {
- "vuid": "VUID-vkDisplayPowerControlEXT-commonparent",
- "text": " Both of <code>device</code>, and <code>display</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a>"
- }
- ]
- },
- "VkDisplayPowerInfoEXT": {
- "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)": [
- {
- "vuid": "VUID-VkDisplayPowerInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkDisplayPowerInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDisplayPowerInfoEXT-powerState-parameter",
- "text": " <code>powerState</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayPowerStateEXT\">VkDisplayPowerStateEXT</a> value"
- }
- ]
- },
- "vkCreateDisplayPlaneSurfaceKHR": {
- "(VK_KHR_surface)+(VK_KHR_display)": [
- {
- "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDisplaySurfaceCreateInfoKHR\">VkDisplaySurfaceCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-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"
- },
- {
- "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkDisplaySurfaceCreateInfoKHR": {
- "(VK_KHR_surface)+(VK_KHR_display)": [
- {
- "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-planeIndex-01252",
- "text": " <code>planeIndex</code> <strong class=\"purple\">must</strong> be less than the number of display planes supported by the device as determined by calling <code>vkGetPhysicalDeviceDisplayPlanePropertiesKHR</code>"
- },
- {
- "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-planeReorderPossible-01253",
- "text": " If the <code>planeReorderPossible</code> member of the <code>VkDisplayPropertiesKHR</code> structure returned by <code>vkGetPhysicalDeviceDisplayPropertiesKHR</code> for the display corresponding to <code>displayMode</code> is <code>VK_TRUE</code> then <code>planeStackIndex</code> <strong class=\"purple\">must</strong> be less than the number of display planes supported by the device as determined by calling <code>vkGetPhysicalDeviceDisplayPlanePropertiesKHR</code>; otherwise <code>planeStackIndex</code> <strong class=\"purple\">must</strong> equal the <code>currentStackIndex</code> member of <code>VkDisplayPlanePropertiesKHR</code> returned by <code>vkGetPhysicalDeviceDisplayPlanePropertiesKHR</code> for the display plane corresponding to <code>displayMode</code>"
- },
- {
- "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01254",
- "text": " If <code>alphaMode</code> is <code>VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR</code> then <code>globalAlpha</code> <strong class=\"purple\">must</strong> be between <code>0</code> and <code>1</code>, inclusive"
- },
- {
- "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01255",
- "text": " <code>alphaMode</code> <strong class=\"purple\">must</strong> be one of the bits present in the <code>supportedAlpha</code> member of <code>VkDisplayPlaneCapabilitiesKHR</code> for the display plane corresponding to <code>displayMode</code>"
- },
- {
- "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-width-01256",
- "text": " The <code>width</code> and <code>height</code> members of <code>imageExtent</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxImageDimension2D</code>"
- },
- {
- "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-displayMode-parameter",
- "text": " <code>displayMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayModeKHR\">VkDisplayModeKHR</a> handle"
- },
- {
- "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-transform-parameter",
- "text": " <code>transform</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceTransformFlagBitsKHR\">VkSurfaceTransformFlagBitsKHR</a> value"
- },
- {
- "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-parameter",
- "text": " <code>alphaMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDisplayPlaneAlphaFlagBitsKHR\">VkDisplayPlaneAlphaFlagBitsKHR</a> value"
- }
- ]
- },
- "vkCreateHeadlessSurfaceEXT": {
- "(VK_KHR_surface)+(VK_EXT_headless_surface)": [
- {
- "vuid": "VUID-vkCreateHeadlessSurfaceEXT-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateHeadlessSurfaceEXT-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkHeadlessSurfaceCreateInfoEXT\">VkHeadlessSurfaceCreateInfoEXT</a> structure"
- },
- {
- "vuid": "VUID-vkCreateHeadlessSurfaceEXT-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"
- },
- {
- "vuid": "VUID-vkCreateHeadlessSurfaceEXT-pSurface-parameter",
- "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkHeadlessSurfaceCreateInfoEXT": {
- "(VK_KHR_surface)+(VK_EXT_headless_surface)": [
- {
- "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceSurfaceSupportKHR": {
- "(VK_KHR_surface)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-queueFamilyIndex-01269",
- "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-surface-parameter",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-pSupported-parameter",
- "text": " <code>pSupported</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>VkBool32</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-commonparent",
- "text": " Both of <code>physicalDevice</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "vkGetPhysicalDeviceWaylandPresentationSupportKHR": {
- "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-queueFamilyIndex-01306",
- "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-display-parameter",
- "text": " <code>display</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>wl_display</code> value"
- }
- ]
- },
- "vkGetPhysicalDeviceWin32PresentationSupportKHR": {
- "(VK_KHR_surface)+(VK_KHR_win32_surface)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-queueFamilyIndex-01309",
- "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- }
- ]
- },
- "vkGetPhysicalDeviceXcbPresentationSupportKHR": {
- "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-queueFamilyIndex-01312",
- "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-connection-parameter",
- "text": " <code>connection</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>xcb_connection_t</code> value"
- }
- ]
- },
- "vkGetPhysicalDeviceXlibPresentationSupportKHR": {
- "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-queueFamilyIndex-01315",
- "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-dpy-parameter",
- "text": " <code>dpy</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>Display</code> value"
- }
- ]
- },
- "vkGetPhysicalDeviceDirectFBPresentationSupportEXT": {
- "(VK_KHR_surface)+(VK_EXT_directfb_surface)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-queueFamilyIndex-04119",
- "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-dfb-parameter",
- "text": " <code>dfb</code> <strong class=\"purple\">must</strong> be a valid pointer to an <code>IDirectFB</code> value"
- }
- ]
- },
- "vkGetPhysicalDeviceScreenPresentationSupportQNX": {
- "(VK_KHR_surface)+(VK_QNX_screen_surface)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-queueFamilyIndex-04743",
- "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-window-parameter",
- "text": " <code>window</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>_screen_window</code> value"
- }
- ]
- },
- "vkGetPhysicalDeviceSurfaceCapabilitiesKHR": {
- "(VK_KHR_surface)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-06523",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-06211",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-parameter",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-pSurfaceCapabilities-parameter",
- "text": " <code>pSurfaceCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceCapabilitiesKHR\">VkSurfaceCapabilitiesKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-commonparent",
- "text": " Both of <code>physicalDevice</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "vkGetPhysicalDeviceSurfaceCapabilities2KHR": {
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive+VK_KHR_win32_surface)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06520",
- "text": " <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06210",
- "text": " <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-02671",
- "text": " If a <a href=\"#VkSurfaceCapabilitiesFullScreenExclusiveEXT\">VkSurfaceCapabilitiesFullScreenExclusiveEXT</a> structure is included in the <code>pNext</code> chain of <code>pSurfaceCapabilities</code>, a <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a> structure <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain of <code>pSurfaceInfo</code>"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-parameter",
- "text": " <code>pSurfaceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSurfaceInfo2KHR\">VkPhysicalDeviceSurfaceInfo2KHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceCapabilities-parameter",
- "text": " <code>pSurfaceCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceCapabilities2KHR\">VkSurfaceCapabilities2KHR</a> structure"
- }
- ]
- },
- "VkPhysicalDeviceSurfaceInfo2KHR": {
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_win32_surface+VK_EXT_full_screen_exclusive)": [
- {
- "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-02672",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a> structure with its <code>fullScreenExclusive</code> member set to <code>VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT</code>, and <code>surface</code> was created using <a href=\"#vkCreateWin32SurfaceKHR\">vkCreateWin32SurfaceKHR</a>, a <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a> structure <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_win32_surface+VK_EXT_full_screen_exclusive)+(VK_GOOGLE_surfaceless_query)": [
- {
- "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06526",
- "text": " When passed as the <code>pSurfaceInfo</code> parameter of <a href=\"#vkGetPhysicalDeviceSurfaceCapabilities2KHR\">vkGetPhysicalDeviceSurfaceCapabilities2KHR</a>, if the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is enabled and the <code>pNext</code> chain of the <code>pSurfaceCapabilities</code> parameter includes <code>VkSurfaceProtectedCapabilitiesKHR</code>, then <code>surface</code> <strong class=\"purple\">can</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>. Otherwise, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06527",
- "text": " When passed as the <code>pSurfaceInfo</code> parameter of <a href=\"#vkGetPhysicalDeviceSurfaceFormats2KHR\">vkGetPhysicalDeviceSurfaceFormats2KHR</a>, if the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is enabled, then <code>surface</code> <strong class=\"purple\">can</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>. Otherwise, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06528",
- "text": " When passed as the <code>pSurfaceInfo</code> parameter of <a href=\"#vkGetPhysicalDeviceSurfacePresentModes2EXT\">vkGetPhysicalDeviceSurfacePresentModes2EXT</a>, if the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is enabled, then <code>surface</code> <strong class=\"purple\">can</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>. Otherwise, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_win32_surface+VK_EXT_full_screen_exclusive)+!(VK_GOOGLE_surfaceless_query)": [
- {
- "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-06529",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-pNext",
- "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=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a> or <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-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-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameter",
- "text": " If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- }
- ]
- },
- "VkSurfaceFullScreenExclusiveInfoEXT": {
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)": [
- {
- "vuid": "VUID-VkSurfaceFullScreenExclusiveInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkSurfaceFullScreenExclusiveInfoEXT-fullScreenExclusive-parameter",
- "text": " <code>fullScreenExclusive</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFullScreenExclusiveEXT\">VkFullScreenExclusiveEXT</a> value"
- }
- ]
- },
- "VkSurfaceFullScreenExclusiveWin32InfoEXT": {
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)+(VK_KHR_win32_surface)": [
- {
- "vuid": "VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-hmonitor-02673",
- "text": " <code>hmonitor</code> <strong class=\"purple\">must</strong> be a valid <code>HMONITOR</code>"
- },
- {
- "vuid": "VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT</code>"
- }
- ]
- },
- "VkSurfaceCapabilities2KHR": {
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [
- {
- "vuid": "VUID-VkSurfaceCapabilities2KHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR</code>"
- },
- {
- "vuid": "VUID-VkSurfaceCapabilities2KHR-pNext-pNext",
- "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=\"#VkDisplayNativeHdrSurfaceCapabilitiesAMD\">VkDisplayNativeHdrSurfaceCapabilitiesAMD</a>, <a href=\"#VkSharedPresentSurfaceCapabilitiesKHR\">VkSharedPresentSurfaceCapabilitiesKHR</a>, <a href=\"#VkSurfaceCapabilitiesFullScreenExclusiveEXT\">VkSurfaceCapabilitiesFullScreenExclusiveEXT</a>, or <a href=\"#VkSurfaceProtectedCapabilitiesKHR\">VkSurfaceProtectedCapabilitiesKHR</a>"
- },
- {
- "vuid": "VUID-VkSurfaceCapabilities2KHR-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
- }
- ]
- },
- "VkSurfaceProtectedCapabilitiesKHR": {
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_surface_protected_capabilities)": [
- {
- "vuid": "VUID-VkSurfaceProtectedCapabilitiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR</code>"
- }
- ]
- },
- "VkSharedPresentSurfaceCapabilitiesKHR": {
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkSharedPresentSurfaceCapabilitiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR</code>"
- }
- ]
- },
- "VkDisplayNativeHdrSurfaceCapabilitiesAMD": {
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_AMD_display_native_hdr)": [
- {
- "vuid": "VUID-VkDisplayNativeHdrSurfaceCapabilitiesAMD-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD</code>"
- }
- ]
- },
- "VkSurfaceCapabilitiesFullScreenExclusiveEXT": {
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)": [
- {
- "vuid": "VUID-VkSurfaceCapabilitiesFullScreenExclusiveEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceSurfaceCapabilities2EXT": {
- "(VK_KHR_surface)+(VK_EXT_display_surface_counter)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06523",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06211",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-parameter",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-pSurfaceCapabilities-parameter",
- "text": " <code>pSurfaceCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceCapabilities2EXT\">VkSurfaceCapabilities2EXT</a> structure"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-commonparent",
- "text": " Both of <code>physicalDevice</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "VkSurfaceCapabilities2EXT": {
- "(VK_KHR_surface)+(VK_EXT_display_surface_counter)": [
- {
- "vuid": "VUID-VkSurfaceCapabilities2EXT-supportedSurfaceCounters-01246",
- "text": " <code>supportedSurfaceCounters</code> <strong class=\"purple\">must</strong> not include <code>VK_SURFACE_COUNTER_VBLANK_BIT_EXT</code> unless the surface queried is a <a href=\"#wsi-display-surfaces\">display surface</a>"
- },
- {
- "vuid": "VUID-VkSurfaceCapabilities2EXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT</code>"
- },
- {
- "vuid": "VUID-VkSurfaceCapabilities2EXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceSurfaceFormatsKHR": {
- "(VK_KHR_surface)+(VK_GOOGLE_surfaceless_query)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06524",
- "text": " If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06525",
- "text": " If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
- }
- ],
- "(VK_KHR_surface)+!(VK_GOOGLE_surfaceless_query)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06523",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06211",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
- }
- ],
- "(VK_KHR_surface)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-parameter",
- "text": " If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormatCount-parameter",
- "text": " <code>pSurfaceFormatCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormats-parameter",
- "text": " If the value referenced by <code>pSurfaceFormatCount</code> is not <code>0</code>, and <code>pSurfaceFormats</code> is not <code>NULL</code>, <code>pSurfaceFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSurfaceFormatCount</code> <a href=\"#VkSurfaceFormatKHR\">VkSurfaceFormatKHR</a> structures"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-commonparent",
- "text": " Both of <code>physicalDevice</code>, and <code>surface</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=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "vkGetPhysicalDeviceSurfaceFormats2KHR": {
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_GOOGLE_surfaceless_query)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06521",
- "text": " If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06522",
- "text": " If <code>pSurfaceInfo-&gt;surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+!(VK_GOOGLE_surfaceless_query)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06520",
- "text": " <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06210",
- "text": " <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-parameter",
- "text": " <code>pSurfaceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSurfaceInfo2KHR\">VkPhysicalDeviceSurfaceInfo2KHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormatCount-parameter",
- "text": " <code>pSurfaceFormatCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormats-parameter",
- "text": " If the value referenced by <code>pSurfaceFormatCount</code> is not <code>0</code>, and <code>pSurfaceFormats</code> is not <code>NULL</code>, <code>pSurfaceFormats</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSurfaceFormatCount</code> <a href=\"#VkSurfaceFormat2KHR\">VkSurfaceFormat2KHR</a> structures"
- }
- ]
- },
- "VkSurfaceFormat2KHR": {
- "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [
- {
- "vuid": "VUID-VkSurfaceFormat2KHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR</code>"
- },
- {
- "vuid": "VUID-VkSurfaceFormat2KHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceSurfacePresentModesKHR": {
- "(VK_KHR_surface)+(VK_GOOGLE_surfaceless_query)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06524",
- "text": " If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06525",
- "text": " If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
- }
- ],
- "(VK_KHR_surface)+!(VK_GOOGLE_surfaceless_query)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06523",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06211",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
- }
- ],
- "(VK_KHR_surface)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-parameter",
- "text": " If <code>surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModeCount-parameter",
- "text": " <code>pPresentModeCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModes-parameter",
- "text": " If the value referenced by <code>pPresentModeCount</code> is not <code>0</code>, and <code>pPresentModes</code> is not <code>NULL</code>, <code>pPresentModes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPresentModeCount</code> <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-commonparent",
- "text": " Both of <code>physicalDevice</code>, and <code>surface</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=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "vkGetPhysicalDeviceSurfacePresentModes2EXT": {
- "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)+(VK_GOOGLE_surfaceless_query)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06521",
- "text": " If the <code><a href=\"#VK_GOOGLE_surfaceless_query\">VK_GOOGLE_surfaceless_query</a></code> extension is not enabled, <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06522",
- "text": " If <code>pSurfaceInfo-&gt;surface</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
- }
- ],
- "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)+!(VK_GOOGLE_surfaceless_query)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06520",
- "text": " <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06210",
- "text": " <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
- }
- ],
- "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-parameter",
- "text": " <code>pSurfaceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSurfaceInfo2KHR\">VkPhysicalDeviceSurfaceInfo2KHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModeCount-parameter",
- "text": " <code>pPresentModeCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModes-parameter",
- "text": " If the value referenced by <code>pPresentModeCount</code> is not <code>0</code>, and <code>pPresentModes</code> is not <code>NULL</code>, <code>pPresentModes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPresentModeCount</code> <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values"
- }
- ]
- },
- "vkAcquireFullScreenExclusiveModeEXT": {
- "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)": [
- {
- "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02674",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state"
- },
- {
- "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02675",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a swapchain created with a <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a> structure, with <code>fullScreenExclusive</code> set to <code>VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT</code>"
- },
- {
- "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02676",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> not currently have exclusive full-screen access"
- },
- {
- "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-parameter",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- },
- {
- "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-commonparent",
- "text": " Both of <code>device</code>, and <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "vkReleaseFullScreenExclusiveModeEXT": {
- "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)": [
- {
- "vuid": "VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02677",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state"
- },
- {
- "vuid": "VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02678",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a swapchain created with a <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a> structure, with <code>fullScreenExclusive</code> set to <code>VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT</code>"
- }
- ]
- },
- "vkGetDeviceGroupPresentCapabilitiesKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkGetDeviceGroupPresentCapabilitiesKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceGroupPresentCapabilitiesKHR-pDeviceGroupPresentCapabilities-parameter",
- "text": " <code>pDeviceGroupPresentCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a> structure"
- }
- ]
- },
- "VkDeviceGroupPresentCapabilitiesKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkDeviceGroupPresentCapabilitiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupPresentCapabilitiesKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetDeviceGroupSurfacePresentModesKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-06212",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be supported by all physical devices associated with <code>device</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
- },
- {
- "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-parameter",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-pModes-parameter",
- "text": " <code>pModes</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceGroupPresentModeFlagsKHR\">VkDeviceGroupPresentModeFlagsKHR</a> value"
- },
- {
- "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-commonparent",
- "text": " Both of <code>device</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "vkGetDeviceGroupSurfacePresentModes2EXT": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_full_screen_exclusive)": [
- {
- "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-06213",
- "text": " <code>pSurfaceInfo-&gt;surface</code> <strong class=\"purple\">must</strong> be supported by all physical devices associated with <code>device</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
- },
- {
- "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-parameter",
- "text": " <code>pSurfaceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceSurfaceInfo2KHR\">VkPhysicalDeviceSurfaceInfo2KHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pModes-parameter",
- "text": " <code>pModes</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeviceGroupPresentModeFlagsKHR\">VkDeviceGroupPresentModeFlagsKHR</a> value"
- }
- ]
- },
- "vkGetPhysicalDevicePresentRectanglesKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-06523",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-06211",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be supported by <code>physicalDevice</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a> or an equivalent platform-specific mechanism"
- },
- {
- "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-parameter",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRectCount-parameter",
- "text": " <code>pRectCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRects-parameter",
- "text": " If the value referenced by <code>pRectCount</code> is not <code>0</code>, and <code>pRects</code> is not <code>NULL</code>, <code>pRects</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pRectCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
- },
- {
- "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-commonparent",
- "text": " Both of <code>physicalDevice</code>, and <code>surface</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "vkGetRefreshCycleDurationGOOGLE": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [
- {
- "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parameter",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-pDisplayTimingProperties-parameter",
- "text": " <code>pDisplayTimingProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkRefreshCycleDurationGOOGLE\">VkRefreshCycleDurationGOOGLE</a> structure"
- },
- {
- "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-commonparent",
- "text": " Both of <code>device</code>, and <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "vkGetPastPresentationTimingGOOGLE": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [
- {
- "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parameter",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimingCount-parameter",
- "text": " <code>pPresentationTimingCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimings-parameter",
- "text": " If the value referenced by <code>pPresentationTimingCount</code> is not <code>0</code>, and <code>pPresentationTimings</code> is not <code>NULL</code>, <code>pPresentationTimings</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPresentationTimingCount</code> <a href=\"#VkPastPresentationTimingGOOGLE\">VkPastPresentationTimingGOOGLE</a> structures"
- },
- {
- "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-commonparent",
- "text": " Both of <code>device</code>, and <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "vkGetSwapchainStatusKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-vkGetSwapchainStatusKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetSwapchainStatusKHR-swapchain-parameter",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetSwapchainStatusKHR-commonparent",
- "text": " Both of <code>device</code>, and <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "vkCreateSwapchainKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)": [
- {
- "vuid": "VUID-vkCreateSwapchainKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateSwapchainKHR-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCreateSwapchainKHR-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"
- },
- {
- "vuid": "VUID-vkCreateSwapchainKHR-pSwapchain-parameter",
- "text": " <code>pSwapchain</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- }
- ]
- },
- "VkSwapchainCreateInfoKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)": [
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-surface-01270",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a surface that is supported by the device as determined using <a href=\"#vkGetPhysicalDeviceSurfaceSupportKHR\">vkGetPhysicalDeviceSurfaceSupportKHR</a>"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01272",
- "text": " <code>minImageCount</code> <strong class=\"purple\">must</strong> be less than or equal to the value returned in the <code>maxImageCount</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface if the returned <code>maxImageCount</code> is not zero"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-01273",
- "text": " <code>imageFormat</code> and <code>imageColorSpace</code> <strong class=\"purple\">must</strong> match the <code>format</code> and <code>colorSpace</code> members, respectively, of one of the <code>VkSurfaceFormatKHR</code> structures returned by <code>vkGetPhysicalDeviceSurfaceFormatsKHR</code> for the surface"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageExtent-01274",
- "text": " <code>imageExtent</code> <strong class=\"purple\">must</strong> be between <code>minImageExtent</code> and <code>maxImageExtent</code>, inclusive, where <code>minImageExtent</code> and <code>maxImageExtent</code> are members of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageExtent-01689",
- "text": " <code>imageExtent</code> members <code>width</code> and <code>height</code> <strong class=\"purple\">must</strong> both be non-zero"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageArrayLayers-01275",
- "text": " <code>imageArrayLayers</code> <strong class=\"purple\">must</strong> be greater than <code>0</code> and less than or equal to the <code>maxImageArrayLayers</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01277",
- "text": " If <code>imageSharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueFamilyIndexCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01278",
- "text": " If <code>imageSharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>queueFamilyIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-preTransform-01279",
- "text": " <code>preTransform</code> <strong class=\"purple\">must</strong> be one of the bits present in the <code>supportedTransforms</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-compositeAlpha-01280",
- "text": " <code>compositeAlpha</code> <strong class=\"purple\">must</strong> be one of the bits present in the <code>supportedCompositeAlpha</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-01281",
- "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>"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-pNext",
- "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=\"#VkDeviceGroupSwapchainCreateInfoKHR\">VkDeviceGroupSwapchainCreateInfoKHR</a>, <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>, <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a>, <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a>, <a href=\"#VkSwapchainCounterCreateInfoEXT\">VkSwapchainCounterCreateInfoEXT</a>, or <a href=\"#VkSwapchainDisplayNativeHdrCreateInfoAMD\">VkSwapchainDisplayNativeHdrCreateInfoAMD</a>"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-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-VkSwapchainCreateInfoKHR-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSwapchainCreateFlagBitsKHR\">VkSwapchainCreateFlagBitsKHR</a> values"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-surface-parameter",
- "text": " <code>surface</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-parameter",
- "text": " <code>imageFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageColorSpace-parameter",
- "text": " <code>imageColorSpace</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkColorSpaceKHR\">VkColorSpaceKHR</a> value"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-parameter",
- "text": " <code>imageUsage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-requiredbitmask",
- "text": " <code>imageUsage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-parameter",
- "text": " <code>imageSharingMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSharingMode\">VkSharingMode</a> value"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-preTransform-parameter",
- "text": " <code>preTransform</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceTransformFlagBitsKHR\">VkSurfaceTransformFlagBitsKHR</a> value"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-compositeAlpha-parameter",
- "text": " <code>compositeAlpha</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCompositeAlphaFlagBitsKHR\">VkCompositeAlphaFlagBitsKHR</a> value"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-parameter",
- "text": " <code>presentMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> value"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameter",
- "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 valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parent",
- "text": " If <code>oldSwapchain</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>surface</code>"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-commonparent",
- "text": " Both of <code>oldSwapchain</code>, and <code>surface</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=\"#VkInstance\">VkInstance</a>"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01271",
- "text": " <code>minImageCount</code> <strong class=\"purple\">must</strong> be greater than or equal to the value returned in the <code>minImageCount</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilitiesKHR\">vkGetPhysicalDeviceSurfaceCapabilitiesKHR</a> for the surface"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-01276",
- "text": " <code>imageUsage</code> <strong class=\"purple\">must</strong> be a subset of the supported usage flags present in the <code>supportedUsageFlags</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <code>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</code> for the surface"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-02839",
- "text": " If <code>presentMode</code> is not <code>VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR</code> nor <code>VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR</code>, then <code>minImageCount</code> <strong class=\"purple\">must</strong> be greater than or equal to the value returned in the <code>minImageCount</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilitiesKHR\">vkGetPhysicalDeviceSurfaceCapabilitiesKHR</a> for the surface"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01383",
- "text": " <code>minImageCount</code> <strong class=\"purple\">must</strong> be <code>1</code> if <code>presentMode</code> is either <code>VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR</code> or <code>VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR</code>"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-01427",
- "text": " If <code>presentMode</code> is <code>VK_PRESENT_MODE_IMMEDIATE_KHR</code>, <code>VK_PRESENT_MODE_MAILBOX_KHR</code>, <code>VK_PRESENT_MODE_FIFO_KHR</code> or <code>VK_PRESENT_MODE_FIFO_RELAXED_KHR</code>, <code>imageUsage</code> <strong class=\"purple\">must</strong> be a subset of the supported usage flags present in the <code>supportedUsageFlags</code> member of the <a href=\"#VkSurfaceCapabilitiesKHR\">VkSurfaceCapabilitiesKHR</a> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilitiesKHR\">vkGetPhysicalDeviceSurfaceCapabilitiesKHR</a> for <code>surface</code>"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-01384",
- "text": " If <code>presentMode</code> is <code>VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR</code> or <code>VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR</code>, <code>imageUsage</code> <strong class=\"purple\">must</strong> be a subset of the supported usage flags present in the <code>sharedPresentSupportedUsageFlags</code> member of the <a href=\"#VkSharedPresentSurfaceCapabilitiesKHR\">VkSharedPresentSurfaceCapabilitiesKHR</a> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilities2KHR\">vkGetPhysicalDeviceSurfaceCapabilities2KHR</a> for <code>surface</code>"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01393",
- "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 <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties\">vkGetPhysicalDeviceQueueFamilyProperties</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_get_physical_device_properties2)": [
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01428",
- "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)": [
- {
- "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_KHR_swapchain_mutable_format)": [
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-03168",
- "text": " If <code>flags</code> contains <code>VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR</code> then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure with a <code>viewFormatCount</code> greater than zero and <code>pViewFormats</code> <strong class=\"purple\">must</strong> have an element equal to <code>imageFormat</code>"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-04099",
- "text": " If a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure was included in the <code>pNext</code> chain and <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> is not zero then all of the formats in <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>pViewFormats</code> <strong class=\"purple\">must</strong> be compatible with the <code>format</code> as described in the <a href=\"#formats-compatibility\">compatibility table</a>"
- },
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-04100",
- "text": " If <code>flags</code> does not contain <code>VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR</code> and the <code>pNext</code> chain include a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure then <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>::<code>viewFormatCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_surface_protected_capabilities)": [
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-03187",
- "text": " If <code>flags</code> contains <code>VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR</code>, then <code>VkSurfaceProtectedCapabilitiesKHR</code>::<code>supportsProtected</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code> in the <a href=\"#VkSurfaceProtectedCapabilitiesKHR\">VkSurfaceProtectedCapabilitiesKHR</a> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilities2KHR\">vkGetPhysicalDeviceSurfaceCapabilities2KHR</a> for <code>surface</code>"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_full_screen_exclusive+VK_KHR_win32_surface)": [
- {
- "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-02679",
- "text": " If the <code>pNext</code> chain includes a <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a> structure with its <code>fullScreenExclusive</code> member set to <code>VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT</code>, and <code>surface</code> was created using <a href=\"#vkCreateWin32SurfaceKHR\">vkCreateWin32SurfaceKHR</a>, a <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a> structure <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain"
- }
- ]
- },
- "VkDeviceGroupSwapchainCreateInfoKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-parameter",
- "text": " <code>modes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDeviceGroupPresentModeFlagBitsKHR\">VkDeviceGroupPresentModeFlagBitsKHR</a> values"
- },
- {
- "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-requiredbitmask",
- "text": " <code>modes</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ]
- },
- "VkSwapchainDisplayNativeHdrCreateInfoAMD": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_AMD_display_native_hdr)": [
- {
- "vuid": "VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD</code>"
- },
- {
- "vuid": "VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-localDimmingEnable-04449",
- "text": " It is only valid to set <code>localDimmingEnable</code> to <code>VK_TRUE</code> if <a href=\"#VkDisplayNativeHdrSurfaceCapabilitiesAMD\">VkDisplayNativeHdrSurfaceCapabilitiesAMD</a>::<code>localDimmingSupport</code> is supported"
- }
- ]
- },
- "vkSetLocalDimmingAMD": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_AMD_display_native_hdr)": [
- {
- "vuid": "VUID-vkSetLocalDimmingAMD-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkSetLocalDimmingAMD-swapChain-parameter",
- "text": " <code>swapChain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- },
- {
- "vuid": "VUID-vkSetLocalDimmingAMD-commonparent",
- "text": " Both of <code>device</code>, and <code>swapChain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
- },
- {
- "vuid": "VUID-vkSetLocalDimmingAMD-localDimmingSupport-04618",
- "text": " <a href=\"#VkDisplayNativeHdrSurfaceCapabilitiesAMD\">VkDisplayNativeHdrSurfaceCapabilitiesAMD</a>::<code>localDimmingSupport</code> <strong class=\"purple\">must</strong> be supported"
- }
- ]
- },
- "VkSwapchainCounterCreateInfoEXT": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)": [
- {
- "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-01244",
- "text": " The bits in <code>surfaceCounters</code> <strong class=\"purple\">must</strong> be supported by <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>surface</code>, as reported by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilities2EXT\">vkGetPhysicalDeviceSurfaceCapabilities2EXT</a>"
- },
- {
- "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-parameter",
- "text": " <code>surfaceCounters</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSurfaceCounterFlagBitsEXT\">VkSurfaceCounterFlagBitsEXT</a> values"
- }
- ]
- },
- "vkGetSwapchainCounterEXT": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)": [
- {
- "vuid": "VUID-vkGetSwapchainCounterEXT-swapchain-01245",
- "text": " One or more present commands on <code>swapchain</code> <strong class=\"purple\">must</strong> have been processed by the presentation engine"
- },
- {
- "vuid": "VUID-vkGetSwapchainCounterEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetSwapchainCounterEXT-swapchain-parameter",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetSwapchainCounterEXT-counter-parameter",
- "text": " <code>counter</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSurfaceCounterFlagBitsEXT\">VkSurfaceCounterFlagBitsEXT</a> value"
- },
- {
- "vuid": "VUID-vkGetSwapchainCounterEXT-pCounterValue-parameter",
- "text": " <code>pCounterValue</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint64_t</code> value"
- },
- {
- "vuid": "VUID-vkGetSwapchainCounterEXT-commonparent",
- "text": " Both of <code>device</code>, and <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "vkDestroySwapchainKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)": [
- {
- "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"
- },
- {
- "vuid": "VUID-vkDestroySwapchainKHR-swapchain-parameter",
- "text": " If <code>swapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- },
- {
- "vuid": "VUID-vkDestroySwapchainKHR-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"
- },
- {
- "vuid": "VUID-vkDestroySwapchainKHR-commonparent",
- "text": " Both of <code>device</code>, and <code>swapchain</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=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "vkCreateSharedSwapchainsKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [
- {
- "vuid": "VUID-vkCreateSharedSwapchainsKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateSharedSwapchainsKHR-pCreateInfos-parameter",
- "text": " <code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structures"
- },
- {
- "vuid": "VUID-vkCreateSharedSwapchainsKHR-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"
- },
- {
- "vuid": "VUID-vkCreateSharedSwapchainsKHR-pSwapchains-parameter",
- "text": " <code>pSwapchains</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handles"
- },
- {
- "vuid": "VUID-vkCreateSharedSwapchainsKHR-swapchainCount-arraylength",
- "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkGetSwapchainImagesKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)": [
- {
- "vuid": "VUID-vkGetSwapchainImagesKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetSwapchainImagesKHR-swapchain-parameter",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetSwapchainImagesKHR-pSwapchainImageCount-parameter",
- "text": " <code>pSwapchainImageCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetSwapchainImagesKHR-pSwapchainImages-parameter",
- "text": " If the value referenced by <code>pSwapchainImageCount</code> is not <code>0</code>, and <code>pSwapchainImages</code> is not <code>NULL</code>, <code>pSwapchainImages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pSwapchainImageCount</code> <a href=\"#VkImage\">VkImage</a> handles"
- },
- {
- "vuid": "VUID-vkGetSwapchainImagesKHR-commonparent",
- "text": " Both of <code>device</code>, and <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "vkAcquireNextImageKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)": [
- {
- "vuid": "VUID-vkAcquireNextImageKHR-swapchain-01285",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state"
- },
- {
- "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01286",
- "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> be unsignaled"
- },
- {
- "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01779",
- "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> not have any uncompleted signal or wait operations pending"
- },
- {
- "vuid": "VUID-vkAcquireNextImageKHR-fence-01287",
- "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> be unsignaled and <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue"
- },
- {
- "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01780",
- "text": " <code>semaphore</code> and <code>fence</code> <strong class=\"purple\">must</strong> not both be equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkAcquireNextImageKHR-swapchain-01802",
- "text": " If the number of currently acquired images is greater than the difference between the number of images in <code>swapchain</code> and the value of <a href=\"#VkSurfaceCapabilitiesKHR\">VkSurfaceCapabilitiesKHR</a>::<code>minImageCount</code> as returned by a call to <a href=\"#vkGetPhysicalDeviceSurfaceCapabilities2KHR\">vkGetPhysicalDeviceSurfaceCapabilities2KHR</a> with the <code>surface</code> used to create <code>swapchain</code>, <code>timeout</code> <strong class=\"purple\">must</strong> not be <code>UINT64_MAX</code>"
- },
- {
- "vuid": "VUID-vkAcquireNextImageKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkAcquireNextImageKHR-swapchain-parameter",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- },
- {
- "vuid": "VUID-vkAcquireNextImageKHR-semaphore-parameter",
- "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
- },
- {
- "vuid": "VUID-vkAcquireNextImageKHR-fence-parameter",
- "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 a valid <a href=\"#VkFence\">VkFence</a> handle"
- },
- {
- "vuid": "VUID-vkAcquireNextImageKHR-pImageIndex-parameter",
- "text": " <code>pImageIndex</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkAcquireNextImageKHR-semaphore-parent",
- "text": " If <code>semaphore</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- },
- {
- "vuid": "VUID-vkAcquireNextImageKHR-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>"
- },
- {
- "vuid": "VUID-vkAcquireNextImageKHR-commonparent",
- "text": " Both of <code>device</code>, and <code>swapchain</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=\"#VkInstance\">VkInstance</a>"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-vkAcquireNextImageKHR-semaphore-03265",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> have a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>"
- }
- ]
- },
- "vkAcquireNextImage2KHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkAcquireNextImage2KHR-swapchain-01803",
- "text": " If the number of currently acquired images is greater than the difference between the number of images in the <code>swapchain</code> member of <code>pAcquireInfo</code> and the value of <a href=\"#VkSurfaceCapabilitiesKHR\">VkSurfaceCapabilitiesKHR</a>::<code>minImageCount</code> as returned by a call to <a href=\"#vkGetPhysicalDeviceSurfaceCapabilities2KHR\">vkGetPhysicalDeviceSurfaceCapabilities2KHR</a> with the <code>surface</code> used to create <code>swapchain</code>, the <code>timeout</code> member of <code>pAcquireInfo</code> <strong class=\"purple\">must</strong> not be <code>UINT64_MAX</code>"
- },
- {
- "vuid": "VUID-vkAcquireNextImage2KHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkAcquireNextImage2KHR-pAcquireInfo-parameter",
- "text": " <code>pAcquireInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAcquireNextImageInfoKHR\">VkAcquireNextImageInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkAcquireNextImage2KHR-pImageIndex-parameter",
- "text": " <code>pImageIndex</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- }
- ]
- },
- "VkAcquireNextImageInfoKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkAcquireNextImageInfoKHR-swapchain-01675",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state"
- },
- {
- "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01288",
- "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> be unsignaled"
- },
- {
- "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01781",
- "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> not have any uncompleted signal or wait operations pending"
- },
- {
- "vuid": "VUID-VkAcquireNextImageInfoKHR-fence-01289",
- "text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> it <strong class=\"purple\">must</strong> be unsignaled and <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue"
- },
- {
- "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01782",
- "text": " <code>semaphore</code> and <code>fence</code> <strong class=\"purple\">must</strong> not both be equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkAcquireNextImageInfoKHR-deviceMask-01290",
- "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> be a valid device mask"
- },
- {
- "vuid": "VUID-VkAcquireNextImageInfoKHR-deviceMask-01291",
- "text": " <code>deviceMask</code> <strong class=\"purple\">must</strong> not be zero"
- },
- {
- "vuid": "VUID-VkAcquireNextImageInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkAcquireNextImageInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkAcquireNextImageInfoKHR-swapchain-parameter",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- },
- {
- "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-parameter",
- "text": " If <code>semaphore</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
- },
- {
- "vuid": "VUID-VkAcquireNextImageInfoKHR-fence-parameter",
- "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 a valid <a href=\"#VkFence\">VkFence</a> handle"
- },
- {
- "vuid": "VUID-VkAcquireNextImageInfoKHR-commonparent",
- "text": " Each of <code>fence</code>, <code>semaphore</code>, and <code>swapchain</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=\"#VkInstance\">VkInstance</a>"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-03266",
- "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> have a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>"
- }
- ]
- },
- "vkQueuePresentKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)": [
- {
- "vuid": "VUID-vkQueuePresentKHR-pSwapchains-01292",
- "text": " Each element of <code>pSwapchains</code> member of <code>pPresentInfo</code> <strong class=\"purple\">must</strong> be a swapchain that is created for a surface for which presentation is supported from <code>queue</code> as determined using a call to <code>vkGetPhysicalDeviceSurfaceSupportKHR</code>"
- },
- {
- "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-01294",
- "text": " When a semaphore wait operation referring to a binary semaphore defined by the elements of the <code>pWaitSemaphores</code> member of <code>pPresentInfo</code> executes on <code>queue</code>, there <strong class=\"purple\">must</strong> be no other queues waiting on the same semaphore"
- },
- {
- "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-01295",
- "text": " All elements of the <code>pWaitSemaphores</code> member of <code>pPresentInfo</code> <strong class=\"purple\">must</strong> be semaphores that are signaled, or have <a href=\"#synchronization-semaphores-signaling\">semaphore signal operations</a> previously submitted for execution"
- },
- {
- "vuid": "VUID-vkQueuePresentKHR-queue-parameter",
- "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
- },
- {
- "vuid": "VUID-vkQueuePresentKHR-pPresentInfo-parameter",
- "text": " <code>pPresentInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPresentInfoKHR\">VkPresentInfoKHR</a> structure"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [
- {
- "vuid": "VUID-vkQueuePresentKHR-pSwapchains-01293",
- "text": " If more than one member of <code>pSwapchains</code> was created from a display surface, all display surfaces referenced that refer to the same display <strong class=\"purple\">must</strong> use the same display mode"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-03267",
- "text": " All elements of the <code>pWaitSemaphores</code> member of <code>pPresentInfo</code> <strong class=\"purple\">must</strong> be created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code>"
- },
- {
- "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-03268",
- "text": " All elements of the <code>pWaitSemaphores</code> member of <code>pPresentInfo</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"
- }
- ]
- },
- "VkPresentInfoKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkPresentInfoKHR-pImageIndices-01296",
- "text": " Each element of <code>pImageIndices</code> <strong class=\"purple\">must</strong> be the index of a presentable image acquired from the swapchain specified by the corresponding element of the <code>pSwapchains</code> array, and the presented image subresource <strong class=\"purple\">must</strong> be in the <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code> layout at the time the operation is executed on a <code>VkDevice</code>"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [
- {
- "vuid": "VUID-VkPresentInfoKHR-pImageIndices-01430",
- "text": " Each element of <code>pImageIndices</code> <strong class=\"purple\">must</strong> be the index of a presentable image acquired from the swapchain specified by the corresponding element of the <code>pSwapchains</code> array, and the presented image subresource <strong class=\"purple\">must</strong> be in the <code>VK_IMAGE_LAYOUT_PRESENT_SRC_KHR</code> or <code>VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR</code> layout at the time the operation is executed on a <code>VkDevice</code>"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)": [
- {
- "vuid": "VUID-VkPresentInfoKHR-pNext-06235",
- "text": " If a <a href=\"#VkPresentIdKHR\">VkPresentIdKHR</a> structure is included in the <code>pNext</code> chain, and the <a href=\"#features-presentId\"><code>presentId</code></a> feature is not enabled, each <code>presentIds</code> entry in that structure <strong class=\"purple\">must</strong> be NULL"
- }
- ],
- "(VK_KHR_surface)+(VK_KHR_swapchain)": [
- {
- "vuid": "VUID-VkPresentInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkPresentInfoKHR-pNext-pNext",
- "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=\"#VkDeviceGroupPresentInfoKHR\">VkDeviceGroupPresentInfoKHR</a>, <a href=\"#VkDisplayPresentInfoKHR\">VkDisplayPresentInfoKHR</a>, <a href=\"#VkPresentFrameTokenGGP\">VkPresentFrameTokenGGP</a>, <a href=\"#VkPresentIdKHR\">VkPresentIdKHR</a>, <a href=\"#VkPresentRegionsKHR\">VkPresentRegionsKHR</a>, or <a href=\"#VkPresentTimesInfoGOOGLE\">VkPresentTimesInfoGOOGLE</a>"
- },
- {
- "vuid": "VUID-VkPresentInfoKHR-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-VkPresentInfoKHR-pWaitSemaphores-parameter",
- "text": " If <code>waitSemaphoreCount</code> is not <code>0</code>, <code>pWaitSemaphores</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>waitSemaphoreCount</code> valid <a href=\"#VkSemaphore\">VkSemaphore</a> handles"
- },
- {
- "vuid": "VUID-VkPresentInfoKHR-pSwapchains-parameter",
- "text": " <code>pSwapchains</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handles"
- },
- {
- "vuid": "VUID-VkPresentInfoKHR-pImageIndices-parameter",
- "text": " <code>pImageIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkPresentInfoKHR-pResults-parameter",
- "text": " If <code>pResults</code> is not <code>NULL</code>, <code>pResults</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <a href=\"#VkResult\">VkResult</a> values"
- },
- {
- "vuid": "VUID-VkPresentInfoKHR-swapchainCount-arraylength",
- "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkPresentInfoKHR-commonparent",
- "text": " Both of the elements of <code>pSwapchains</code>, and the elements of <code>pWaitSemaphores</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=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "VkPresentRegionsKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [
- {
- "vuid": "VUID-VkPresentRegionsKHR-swapchainCount-01260",
- "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkPresentInfoKHR</code>::<code>swapchainCount</code>, where <code>VkPresentInfoKHR</code> is included in the <code>pNext</code> chain of this <code>VkPresentRegionsKHR</code> structure"
- },
- {
- "vuid": "VUID-VkPresentRegionsKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR</code>"
- },
- {
- "vuid": "VUID-VkPresentRegionsKHR-pRegions-parameter",
- "text": " If <code>pRegions</code> is not <code>NULL</code>, <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkPresentRegionKHR\">VkPresentRegionKHR</a> structures"
- },
- {
- "vuid": "VUID-VkPresentRegionsKHR-swapchainCount-arraylength",
- "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkPresentRegionKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [
- {
- "vuid": "VUID-VkPresentRegionKHR-pRectangles-parameter",
- "text": " If <code>rectangleCount</code> is not <code>0</code>, and <code>pRectangles</code> is not <code>NULL</code>, <code>pRectangles</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>rectangleCount</code> valid <a href=\"#VkRectLayerKHR\">VkRectLayerKHR</a> structures"
- }
- ]
- },
- "VkRectLayerKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [
- {
- "vuid": "VUID-VkRectLayerKHR-offset-04864",
- "text": " The sum of <code>offset</code> and <code>extent</code>, after being transformed according to the <code>preTransform</code> member of the <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structure, <strong class=\"purple\">must</strong> be no greater than the <code>imageExtent</code> member of the <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structure passed to <a href=\"#vkCreateSwapchainKHR\">vkCreateSwapchainKHR</a>"
- },
- {
- "vuid": "VUID-VkRectLayerKHR-layer-01262",
- "text": " <code>layer</code> <strong class=\"purple\">must</strong> be less than the <code>imageArrayLayers</code> member of the <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a> structure passed to <a href=\"#vkCreateSwapchainKHR\">vkCreateSwapchainKHR</a>"
- }
- ]
- },
- "VkDisplayPresentInfoKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [
- {
- "vuid": "VUID-VkDisplayPresentInfoKHR-srcRect-01257",
- "text": " <code>srcRect</code> <strong class=\"purple\">must</strong> specify a rectangular region that is a subset of the image being presented"
- },
- {
- "vuid": "VUID-VkDisplayPresentInfoKHR-dstRect-01258",
- "text": " <code>dstRect</code> <strong class=\"purple\">must</strong> specify a rectangular region that is a subset of the <code>visibleRegion</code> parameter of the display mode the swapchain being presented uses"
- },
- {
- "vuid": "VUID-VkDisplayPresentInfoKHR-persistentContent-01259",
- "text": " If the <code>persistentContent</code> member of the <code>VkDisplayPropertiesKHR</code> structure returned by <code>vkGetPhysicalDeviceDisplayPropertiesKHR</code> for the display the present operation targets is <code>VK_FALSE</code>, then <code>persistent</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>"
- },
- {
- "vuid": "VUID-VkDisplayPresentInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR</code>"
- }
- ]
- },
- "VkDeviceGroupPresentInfoKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-VkDeviceGroupPresentInfoKHR-swapchainCount-01297",
- "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> equal <code>0</code> or <a href=\"#VkPresentInfoKHR\">VkPresentInfoKHR</a>::<code>swapchainCount</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01298",
- "text": " If <code>mode</code> is <code>VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR</code>, then each element of <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> have exactly one bit set, and the corresponding element of <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a>::<code>presentMask</code> <strong class=\"purple\">must</strong> be non-zero"
- },
- {
- "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01299",
- "text": " If <code>mode</code> is <code>VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR</code>, then each element of <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> have exactly one bit set, and some physical device in the logical device <strong class=\"purple\">must</strong> include that bit in its <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a>::<code>presentMask</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01300",
- "text": " If <code>mode</code> is <code>VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR</code>, then each element of <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> have a value for which all set bits are set in one of the elements of <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a>::<code>presentMask</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01301",
- "text": " If <code>mode</code> is <code>VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR</code>, then for each bit set in each element of <code>pDeviceMasks</code>, the corresponding element of <a href=\"#VkDeviceGroupPresentCapabilitiesKHR\">VkDeviceGroupPresentCapabilitiesKHR</a>::<code>presentMask</code> <strong class=\"purple\">must</strong> be non-zero"
- },
- {
- "vuid": "VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-01302",
- "text": " The value of each element of <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> be equal to the device mask passed in <a href=\"#VkAcquireNextImageInfoKHR\">VkAcquireNextImageInfoKHR</a>::<code>deviceMask</code> when the image index was last acquired"
- },
- {
- "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01303",
- "text": " <code>mode</code> <strong class=\"purple\">must</strong> have exactly one bit set, and that bit <strong class=\"purple\">must</strong> have been included in <a href=\"#VkDeviceGroupSwapchainCreateInfoKHR\">VkDeviceGroupSwapchainCreateInfoKHR</a>::<code>modes</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupPresentInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-parameter",
- "text": " If <code>swapchainCount</code> is not <code>0</code>, <code>pDeviceMasks</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-parameter",
- "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceGroupPresentModeFlagBitsKHR\">VkDeviceGroupPresentModeFlagBitsKHR</a> value"
- }
- ]
- },
- "VkPresentTimesInfoGOOGLE": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [
- {
- "vuid": "VUID-VkPresentTimesInfoGOOGLE-swapchainCount-01247",
- "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkPresentInfoKHR</code>::<code>swapchainCount</code>, where <code>VkPresentInfoKHR</code> is included in the <code>pNext</code> chain of this <code>VkPresentTimesInfoGOOGLE</code> structure"
- },
- {
- "vuid": "VUID-VkPresentTimesInfoGOOGLE-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE</code>"
- },
- {
- "vuid": "VUID-VkPresentTimesInfoGOOGLE-pTimes-parameter",
- "text": " If <code>pTimes</code> is not <code>NULL</code>, <code>pTimes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <a href=\"#VkPresentTimeGOOGLE\">VkPresentTimeGOOGLE</a> structures"
- },
- {
- "vuid": "VUID-VkPresentTimesInfoGOOGLE-swapchainCount-arraylength",
- "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkPresentIdKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)": [
- {
- "vuid": "VUID-VkPresentIdKHR-swapchainCount-04998",
- "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be the same value as <code>VkPresentInfoKHR</code>::<code>swapchainCount</code>, where this <code>VkPresentIdKHR</code> is in the <code>pNext</code> chain of the <code>VkPresentInfoKHR</code> structure"
- },
- {
- "vuid": "VUID-VkPresentIdKHR-presentIds-04999",
- "text": " Each <code>presentIds</code> entry <strong class=\"purple\">must</strong> be greater than any previous <code>presentIds</code> entry passed for the associated <code>pSwapchains</code> entry"
- },
- {
- "vuid": "VUID-VkPresentIdKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_ID_KHR</code>"
- },
- {
- "vuid": "VUID-VkPresentIdKHR-pPresentIds-parameter",
- "text": " If <code>pPresentIds</code> is not <code>NULL</code>, <code>pPresentIds</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> <code>uint64_t</code> values"
- },
- {
- "vuid": "VUID-VkPresentIdKHR-swapchainCount-arraylength",
- "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkWaitForPresentKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)+(VK_KHR_present_wait)": [
- {
- "vuid": "VUID-vkWaitForPresentKHR-swapchain-04997",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> not be in the retired state"
- },
- {
- "vuid": "VUID-vkWaitForPresentKHR-presentWait-06234",
- "text": " The <a href=\"#features-presentWait\"><code>presentWait</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkWaitForPresentKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkWaitForPresentKHR-swapchain-parameter",
- "text": " <code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle"
- },
- {
- "vuid": "VUID-vkWaitForPresentKHR-commonparent",
- "text": " Both of <code>device</code>, and <code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "VkPresentFrameTokenGGP": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GGP_frame_token)": [
- {
- "vuid": "VUID-VkPresentFrameTokenGGP-frameToken-02680",
- "text": " <code>frameToken</code> <strong class=\"purple\">must</strong> be a valid <code>GgpFrameToken</code>"
- },
- {
- "vuid": "VUID-VkPresentFrameTokenGGP-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP</code>"
- }
- ]
- },
- "vkSetHdrMetadataEXT": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)": [
- {
- "vuid": "VUID-vkSetHdrMetadataEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkSetHdrMetadataEXT-pSwapchains-parameter",
- "text": " <code>pSwapchains</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handles"
- },
- {
- "vuid": "VUID-vkSetHdrMetadataEXT-pMetadata-parameter",
- "text": " <code>pMetadata</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>swapchainCount</code> valid <a href=\"#VkHdrMetadataEXT\">VkHdrMetadataEXT</a> structures"
- },
- {
- "vuid": "VUID-vkSetHdrMetadataEXT-swapchainCount-arraylength",
- "text": " <code>swapchainCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkSetHdrMetadataEXT-commonparent",
- "text": " Both of <code>device</code>, and the elements of <code>pSwapchains</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkInstance\">VkInstance</a>"
- }
- ]
- },
- "VkHdrMetadataEXT": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)": [
- {
- "vuid": "VUID-VkHdrMetadataEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_HDR_METADATA_EXT</code>"
- },
- {
- "vuid": "VUID-VkHdrMetadataEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkCreateDeferredOperationKHR": {
- "(VK_KHR_deferred_host_operations)": [
- {
- "vuid": "VUID-vkCreateDeferredOperationKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateDeferredOperationKHR-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"
- },
- {
- "vuid": "VUID-vkCreateDeferredOperationKHR-pDeferredOperation-parameter",
- "text": " <code>pDeferredOperation</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
- }
- ]
- },
- "vkDeferredOperationJoinKHR": {
- "(VK_KHR_deferred_host_operations)": [
- {
- "vuid": "VUID-vkDeferredOperationJoinKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDeferredOperationJoinKHR-operation-parameter",
- "text": " <code>operation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
- },
- {
- "vuid": "VUID-vkDeferredOperationJoinKHR-operation-parent",
- "text": " <code>operation</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkDestroyDeferredOperationKHR": {
- "(VK_KHR_deferred_host_operations)": [
- {
- "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"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03436",
- "text": " <code>operation</code> <strong class=\"purple\">must</strong> be completed"
- },
- {
- "vuid": "VUID-vkDestroyDeferredOperationKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-parameter",
- "text": " If <code>operation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>operation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyDeferredOperationKHR-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"
- },
- {
- "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-parent",
- "text": " If <code>operation</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkGetDeferredOperationMaxConcurrencyKHR": {
- "(VK_KHR_deferred_host_operations)": [
- {
- "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parameter",
- "text": " <code>operation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parent",
- "text": " <code>operation</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkGetDeferredOperationResultKHR": {
- "(VK_KHR_deferred_host_operations)": [
- {
- "vuid": "VUID-vkGetDeferredOperationResultKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeferredOperationResultKHR-operation-parameter",
- "text": " <code>operation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeferredOperationResultKHR-operation-parent",
- "text": " <code>operation</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCreatePrivateDataSlot": {
- "(VK_VERSION_1_3,VK_EXT_private_data)": [
- {
- "vuid": "VUID-vkCreatePrivateDataSlot-privateData-04564",
- "text": " The <a href=\"#features-privateData\"><code>privateData</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCreatePrivateDataSlot-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreatePrivateDataSlot-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPrivateDataSlotCreateInfo\">VkPrivateDataSlotCreateInfo</a> structure"
- },
- {
- "vuid": "VUID-vkCreatePrivateDataSlot-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"
- },
- {
- "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"
- }
- ]
- },
- "VkPrivateDataSlotCreateInfo": {
- "(VK_VERSION_1_3,VK_EXT_private_data)": [
- {
- "vuid": "VUID-VkPrivateDataSlotCreateInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPrivateDataSlotCreateInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkPrivateDataSlotCreateInfo-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkDestroyPrivateDataSlot": {
- "(VK_VERSION_1_3,VK_EXT_private_data)": [
- {
- "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"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-vkDestroyPrivateDataSlot-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyPrivateDataSlot-privateDataSlot-parameter",
- "text": " If <code>privateDataSlot</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>privateDataSlot</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrivateDataSlot\">VkPrivateDataSlot</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyPrivateDataSlot-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"
- },
- {
- "vuid": "VUID-vkDestroyPrivateDataSlot-privateDataSlot-parent",
- "text": " If <code>privateDataSlot</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkSetPrivateData": {
- "(VK_VERSION_1_3,VK_EXT_private_data)": [
- {
- "vuid": "VUID-vkSetPrivateData-objectHandle-04016",
- "text": " <code>objectHandle</code> <strong class=\"purple\">must</strong> be <code>device</code> or a child of <code>device</code>"
- },
- {
- "vuid": "VUID-vkSetPrivateData-objectHandle-04017",
- "text": " <code>objectHandle</code> <strong class=\"purple\">must</strong> be a valid handle to an object of type <code>objectType</code>"
- },
- {
- "vuid": "VUID-vkSetPrivateData-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkSetPrivateData-objectType-parameter",
- "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkObjectType\">VkObjectType</a> value"
- },
- {
- "vuid": "VUID-vkSetPrivateData-privateDataSlot-parameter",
- "text": " <code>privateDataSlot</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrivateDataSlot\">VkPrivateDataSlot</a> handle"
- },
- {
- "vuid": "VUID-vkSetPrivateData-privateDataSlot-parent",
- "text": " <code>privateDataSlot</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkGetPrivateData": {
- "(VK_VERSION_1_3,VK_EXT_private_data)": [
- {
- "vuid": "VUID-vkGetPrivateData-objectType-04018",
- "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be <code>VK_OBJECT_TYPE_DEVICE</code>, or an object type whose parent is <a href=\"#VkDevice\">VkDevice</a>"
- },
- {
- "vuid": "VUID-vkGetPrivateData-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPrivateData-objectType-parameter",
- "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkObjectType\">VkObjectType</a> value"
- },
- {
- "vuid": "VUID-vkGetPrivateData-privateDataSlot-parameter",
- "text": " <code>privateDataSlot</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrivateDataSlot\">VkPrivateDataSlot</a> handle"
- },
- {
- "vuid": "VUID-vkGetPrivateData-pData-parameter",
- "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint64_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPrivateData-privateDataSlot-parent",
- "text": " <code>privateDataSlot</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCmdBuildAccelerationStructureNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-geometryCount-02241",
- "text": " <code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>::<code>maxGeometryCount</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-02488",
- "text": " <code>dst</code> <strong class=\"purple\">must</strong> have been created with compatible <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a> where <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>type</code> and <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>flags</code> are identical, <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>instanceCount</code> and <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>geometryCount</code> for <code>dst</code> are greater than or equal to the build size and each geometry in <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>pGeometries</code> for <code>dst</code> has greater than or equal to the number of vertices, indices, and AABBs"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02489",
- "text": " If <code>update</code> is <code>VK_TRUE</code>, <code>src</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02490",
- "text": " If <code>update</code> is <code>VK_TRUE</code>, <code>src</code> <strong class=\"purple\">must</strong> have previously been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV</code> set in <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a>::<code>flags</code> in the original build"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02491",
- "text": " If <code>update</code> is <code>VK_FALSE</code>, the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a>::<code>accelerationStructure</code> set to <code>dst</code> and <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a>::<code>type</code> set to <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>scratch</code> minus <code>scratchOffset</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02492",
- "text": " If <code>update</code> is <code>VK_TRUE</code>, the <code>size</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureMemoryRequirementsNV\">vkGetAccelerationStructureMemoryRequirementsNV</a> with <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a>::<code>accelerationStructure</code> set to <code>dst</code> and <a href=\"#VkAccelerationStructureMemoryRequirementsInfoNV\">VkAccelerationStructureMemoryRequirementsInfoNV</a>::<code>type</code> set to <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>scratch</code> minus <code>scratchOffset</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-03522",
- "text": " <code>scratch</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_RAY_TRACING_BIT_NV</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-03523",
- "text": " If <code>instanceData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>instanceData</code> <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_RAY_TRACING_BIT_NV</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-accelerationStructureReference-03786",
- "text": " Each <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a>::<code>accelerationStructureReference</code> value in <code>instanceData</code> <strong class=\"purple\">must</strong> be a valid device address containing a value obtained from <a href=\"#vkGetAccelerationStructureHandleNV\">vkGetAccelerationStructureHandleNV</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03524",
- "text": " If <code>update</code> is <code>VK_TRUE</code>, then objects that were previously active <strong class=\"purple\">must</strong> not be made inactive as per <a href=\"#acceleration-structure-inactive-prims\">Inactive Primitives and Instances</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03525",
- "text": " If <code>update</code> is <code>VK_TRUE</code>, then objects that were previously inactive <strong class=\"purple\">must</strong> not be made active as per <a href=\"#acceleration-structure-inactive-prims\">Inactive Primitives and Instances</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03526",
- "text": " If <code>update</code> is <code>VK_TRUE</code>, the <code>src</code> and <code>dst</code> objects <strong class=\"purple\">must</strong> either be the same object or not have any <a href=\"#resources-memory-aliasing\">memory aliasing</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureInfoNV\">VkAccelerationStructureInfoNV</a> structure"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-parameter",
- "text": " If <code>instanceData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>instanceData</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-parameter",
- "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-src-parameter",
- "text": " If <code>src</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-parameter",
- "text": " <code>scratch</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commonparent",
- "text": " Each of <code>commandBuffer</code>, <code>dst</code>, <code>instanceData</code>, <code>scratch</code>, and <code>src</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>"
- }
- ]
- },
- "vkCmdBuildAccelerationStructuresKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-mode-04628",
- "text": " The <code>mode</code> member of each element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuildAccelerationStructureModeKHR\">VkBuildAccelerationStructureModeKHR</a> value"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-srcAccelerationStructure-04629",
- "text": " If the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-04630",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03403",
- "text": " The <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03698",
- "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03800",
- "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03699",
- "text": " For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03700",
- "text": " For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03663",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, <a href=\"#acceleration-structure-inactive-prims\">inactive primitives</a> in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made active"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03664",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, active primitives in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made <a href=\"#acceleration-structure-inactive-prims\">inactive</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-None-03407",
- "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03701",
- "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any other element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, which is accessed by this command"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03702",
- "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03703",
- "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> (including the same element), which is accessed by this command"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-scratchData-03704",
- "text": " The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-scratchData-03705",
- "text": " The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> (including the same element), which is accessed by this command"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03706",
- "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing any acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>, which is accessed by this command"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03667",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> have previously been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR</code> set in <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a>::<code>flags</code> in the build"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03668",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> and <code>dstAccelerationStructure</code> members <strong class=\"purple\">must</strong> either be the same <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a>, or not have any <a href=\"#resources-memory-aliasing\">memory aliasing</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03758",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>geometryCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03759",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03760",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>type</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03761",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>geometryType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03762",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03763",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.vertexFormat</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03764",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.maxVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03765",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.indexType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03766",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03767",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was not <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03768",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced <strong class=\"purple\">must</strong> be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-primitiveCount-03769",
- "text": " For each <code>VkAccelerationStructureBuildRangeInfoKHR</code> referenced by this command, its <code>primitiveCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-firstVertex-03770",
- "text": " For each <code>VkAccelerationStructureBuildRangeInfoKHR</code> referenced by this command, if the corresponding geometry uses indices, its <code>firstVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03801",
- "text": " For each element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the corresponding {maxinstancecheck} <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxInstanceCount</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03707",
- "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03708",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> the <code>buffer</code> used to create its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03709",
- "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create each acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03671",
- "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> &#43; N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03672",
- "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> &#43; N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>updateScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-geometry-03673",
- "text": " The buffers from which the buffer device addresses for all of the <code>geometry.triangles.vertexData</code>, <code>geometry.triangles.indexData</code>, <code>geometry.triangles.transformData</code>, <code>geometry.aabbs.data</code>, and <code>geometry.instances.data</code> members of all <code>pInfos</code>[i].<code>pGeometries</code> and <code>pInfos</code>[i].<code>ppGeometries</code> are queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03674",
- "text": " The buffer from which the buffer device address <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_STORAGE_BUFFER_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03802",
- "text": " For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code> member <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03803",
- "text": " For each element of <code>pInfos</code>, if <code>scratchData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03710",
- "text": " For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code> member <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>minAccelerationStructureScratchOffsetAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03804",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03805",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.vertexData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03711",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to the size in bytes of the smallest component of the format in <code>vertexFormat</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03806",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03807",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, if <code>geometry.triangles.indexData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03712",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and with <code>geometry.triangles.indexType</code> not equal to <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to the size in bytes of the type in <code>indexType</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03808",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03809",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03810",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03811",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03812",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, if <code>geometry.aabbs.data.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03714",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>8</code> bytes"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03715",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_FALSE</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03716",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_TRUE</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>8</code> bytes"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03717",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_TRUE</code>, each element of <code>geometry.instances.data.deviceAddress</code> in device memory <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03813",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03814",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.instances.data.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03815",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, each <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a>::<code>accelerationStructureReference</code> value in <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address containing a value obtained from <a href=\"#vkGetAccelerationStructureDeviceAddressKHR\">vkGetAccelerationStructureDeviceAddressKHR</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03675",
- "text": " For each <code>pInfos</code>[i], <code>dstAccelerationStructure</code> <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>size</code> greater than or equal to the memory size required by the build operation, as returned by <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with <span class=\"eq\"><code>pBuildInfo</code> = <code>pInfos</code>[i]</span> and with each element of the <code>pMaxPrimitiveCounts</code> array greater than or equal to the equivalent <code>ppBuildRangeInfos</code>[i][j].<code>primitiveCount</code> values for <code>j</code> in <span class=\"eq\">[0,<code>pInfos</code>[i].<code>geometryCount</code>)</span>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676",
- "text": " Each element of <code>ppBuildRangeInfos</code>[i] <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pInfos</code>[i].<code>geometryCount</code> <code>VkAccelerationStructureBuildRangeInfoKHR</code> structures"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-parameter",
- "text": " <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> valid <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structures"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameter",
- "text": " <code>ppBuildRangeInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structures"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-infoCount-arraylength",
- "text": " <code>infoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkCmdBuildAccelerationStructuresIndirectKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-mode-04628",
- "text": " The <code>mode</code> member of each element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuildAccelerationStructureModeKHR\">VkBuildAccelerationStructureModeKHR</a> value"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-srcAccelerationStructure-04629",
- "text": " If the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-04630",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03403",
- "text": " The <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03698",
- "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03800",
- "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03699",
- "text": " For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03700",
- "text": " For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03663",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, <a href=\"#acceleration-structure-inactive-prims\">inactive primitives</a> in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made active"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03664",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, active primitives in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made <a href=\"#acceleration-structure-inactive-prims\">inactive</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-None-03407",
- "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03701",
- "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any other element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, which is accessed by this command"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03702",
- "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03703",
- "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> (including the same element), which is accessed by this command"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-scratchData-03704",
- "text": " The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-scratchData-03705",
- "text": " The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> (including the same element), which is accessed by this command"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03706",
- "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing any acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>, which is accessed by this command"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03667",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> have previously been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR</code> set in <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a>::<code>flags</code> in the build"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03668",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> and <code>dstAccelerationStructure</code> members <strong class=\"purple\">must</strong> either be the same <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a>, or not have any <a href=\"#resources-memory-aliasing\">memory aliasing</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03758",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>geometryCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03759",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03760",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>type</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03761",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>geometryType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03762",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03763",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.vertexFormat</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03764",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.maxVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03765",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.indexType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03766",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03767",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was not <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03768",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced <strong class=\"purple\">must</strong> be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-primitiveCount-03769",
- "text": " For each <code>VkAccelerationStructureBuildRangeInfoKHR</code> referenced by this command, its <code>primitiveCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-firstVertex-03770",
- "text": " For each <code>VkAccelerationStructureBuildRangeInfoKHR</code> referenced by this command, if the corresponding geometry uses indices, its <code>firstVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03801",
- "text": " For each element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the corresponding {maxinstancecheck} <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxInstanceCount</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03707",
- "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03708",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> the <code>buffer</code> used to create its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03709",
- "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create each acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03671",
- "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> &#43; N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03672",
- "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> and <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> &#43; N - 1 <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer, where N is given by the <code>updateScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-geometry-03673",
- "text": " The buffers from which the buffer device addresses for all of the <code>geometry.triangles.vertexData</code>, <code>geometry.triangles.indexData</code>, <code>geometry.triangles.transformData</code>, <code>geometry.aabbs.data</code>, and <code>geometry.instances.data</code> members of all <code>pInfos</code>[i].<code>pGeometries</code> and <code>pInfos</code>[i].<code>ppGeometries</code> are queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03674",
- "text": " The buffer from which the buffer device address <code>pInfos</code>[i].<code>scratchData.deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with <code>VK_BUFFER_USAGE_STORAGE_BUFFER_BIT</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03802",
- "text": " For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code> member <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03803",
- "text": " For each element of <code>pInfos</code>, if <code>scratchData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03710",
- "text": " For each element of <code>pInfos</code>, its <code>scratchData.deviceAddress</code> member <strong class=\"purple\">must</strong> be a multiple of <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>minAccelerationStructureScratchOffsetAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03804",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03805",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.vertexData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03711",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to the size in bytes of the smallest component of the format in <code>vertexFormat</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03806",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03807",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, if <code>geometry.triangles.indexData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03712",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and with <code>geometry.triangles.indexType</code> not equal to <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to the size in bytes of the type in <code>indexType</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03808",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03809",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03810",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.deviceAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03811",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03812",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, if <code>geometry.aabbs.data.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03714",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>8</code> bytes"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03715",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_FALSE</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03716",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_TRUE</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>8</code> bytes"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03717",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.arrayOfPointers</code> is <code>VK_TRUE</code>, each element of <code>geometry.instances.data.deviceAddress</code> in device memory <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03813",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address obtained from <a href=\"#vkGetBufferDeviceAddress\">vkGetBufferDeviceAddress</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03814",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, if <code>geometry.instances.data.deviceAddress</code> is the address of a non-sparse buffer then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03815",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, each <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a>::<code>accelerationStructureReference</code> value in <code>geometry.instances.data.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address containing a value obtained from <a href=\"#vkGetAccelerationStructureDeviceAddressKHR\">vkGetAccelerationStructureDeviceAddressKHR</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03645",
- "text": " For any element of <code>pIndirectDeviceAddresses</code>, if the buffer from which it was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03646",
- "text": " For any element of <code>pIndirectDeviceAddresses</code>[i], all device addresses between <code>pIndirectDeviceAddresses</code>[i] and <span class=\"eq\"><code>pIndirectDeviceAddresses</code>[i] &#43; (<code>pInfos</code>[i].<code>geometryCount</code> {times} <code>pIndirectStrides</code>[i]) - 1</span> <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03647",
- "text": " For any element of <code>pIndirectDeviceAddresses</code>, the buffer from which it was queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03648",
- "text": " Each element of <code>pIndirectDeviceAddresses</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-03787",
- "text": " Each element of <code>pIndirectStrides</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-03649",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-accelerationStructureIndirectBuild-03650",
- "text": " The <a href=\"#features-accelerationStructureIndirectBuild\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureIndirectBuild</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03651",
- "text": " Each <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structure referenced by any element of <code>pIndirectDeviceAddresses</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03652",
- "text": " <code>pInfos</code>[i].<code>dstAccelerationStructure</code> <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>size</code> greater than or equal to the memory size required by the build operation, as returned by <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with <span class=\"eq\"><code>pBuildInfo</code> = <code>pInfos</code>[i]</span> and <span class=\"eq\"><code>pMaxPrimitiveCounts</code> = <code>ppMaxPrimitiveCounts</code>[i]</span>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-03653",
- "text": " Each <code>ppMaxPrimitiveCounts</code>[i][j] <strong class=\"purple\">must</strong> be greater than or equal to the the <code>primitiveCount</code> value specified by the <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structure located at <span class=\"eq\"><code>pIndirectDeviceAddresses</code>[i] &#43; (<code>j</code> {times} <code>pIndirectStrides</code>[i])</span>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-parameter",
- "text": " <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> valid <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structures"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-parameter",
- "text": " <code>pIndirectDeviceAddresses</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <code>VkDeviceAddress</code> values"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-parameter",
- "text": " <code>pIndirectStrides</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-parameter",
- "text": " <code>ppMaxPrimitiveCounts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-infoCount-arraylength",
- "text": " <code>infoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkAccelerationStructureBuildGeometryInfoKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03654",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-03788",
- "text": " Only one of <code>pGeometries</code> or <code>ppGeometries</code> <strong class=\"purple\">can</strong> be a valid pointer, the other <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03789",
- "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, the <code>geometryType</code> member of elements of either <code>pGeometries</code> or <code>ppGeometries</code> <strong class=\"purple\">must</strong> be <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03790",
- "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, <code>geometryCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03791",
- "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> the <code>geometryType</code> member of elements of either <code>pGeometries</code> or <code>ppGeometries</code> <strong class=\"purple\">must</strong> not be <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03792",
- "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> then the <code>geometryType</code> member of each geometry in either <code>pGeometries</code> or <code>ppGeometries</code> <strong class=\"purple\">must</strong> be the same"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03793",
- "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> then <code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxGeometryCount</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03794",
- "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> and the <code>geometryType</code> member of either <code>pGeometries</code> or <code>ppGeometries</code> is <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, the total number of AABBs in all geometries <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxPrimitiveCount</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03795",
- "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> and the <code>geometryType</code> member of either <code>pGeometries</code> or <code>ppGeometries</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, the total number of triangles in all geometries <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxPrimitiveCount</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-03796",
- "text": " If <code>flags</code> has the <code>VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR</code> bit set, then it <strong class=\"purple\">must</strong> not have the <code>VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR</code> bit set"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeKHR\">VkAccelerationStructureTypeKHR</a> value"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBuildAccelerationStructureFlagBitsKHR\">VkBuildAccelerationStructureFlagBitsKHR</a> values"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-parameter",
- "text": " If <code>geometryCount</code> is not <code>0</code>, and <code>pGeometries</code> is not <code>NULL</code>, <code>pGeometries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>geometryCount</code> valid <a href=\"#VkAccelerationStructureGeometryKHR\">VkAccelerationStructureGeometryKHR</a> structures"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-ppGeometries-parameter",
- "text": " If <code>geometryCount</code> is not <code>0</code>, and <code>ppGeometries</code> is not <code>NULL</code>, <code>ppGeometries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>geometryCount</code> valid pointers to valid <a href=\"#VkAccelerationStructureGeometryKHR\">VkAccelerationStructureGeometryKHR</a> structures"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-commonparent",
- "text": " Both of <code>dstAccelerationStructure</code>, and <code>srcAccelerationStructure</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_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-dstAccelerationStructure-04927",
- "text": " If <code>dstAccelerationStructure</code> was created with <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code> set in <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>flags</code>, <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> <strong class=\"purple\">must</strong> be set in <code>flags</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-04928",
- "text": " If <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> is set in <code>flags</code>, <code>dstAccelerationStructure</code> <strong class=\"purple\">must</strong> have been created with <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code> set in <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>flags</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-04929",
- "text": " If <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> is set in <code>flags</code>, <code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
- }
- ]
- },
- "VkAccelerationStructureGeometryKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkAccelerationStructureGeometryKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometryType-parameter",
- "text": " <code>geometryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryTypeKHR\">VkGeometryTypeKHR</a> value"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryKHR-triangles-parameter",
- "text": " If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, the <code>triangles</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a> structure"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryKHR-aabbs-parameter",
- "text": " If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, the <code>aabbs</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryAabbsDataKHR\">VkAccelerationStructureGeometryAabbsDataKHR</a> structure"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryKHR-instances-parameter",
- "text": " If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the <code>instances</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryInstancesDataKHR\">VkAccelerationStructureGeometryInstancesDataKHR</a> structure"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryKHR-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryFlagBitsKHR\">VkGeometryFlagBitsKHR</a> values"
- }
- ]
- },
- "VkAccelerationStructureGeometryTrianglesDataKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03735",
- "text": " <code>vertexStride</code> <strong class=\"purple\">must</strong> be a multiple of the size in bytes of the smallest component of <code>vertexFormat</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03819",
- "text": " <code>vertexStride</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>32</sup>-1</span>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-03797",
- "text": " <code>vertexFormat</code> <strong class=\"purple\">must</strong> support the <code>VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR</code> in <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>bufferFeatures</code> as returned by <a href=\"#vkGetPhysicalDeviceFormatProperties2\">vkGetPhysicalDeviceFormatProperties2</a>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-03798",
- "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be <code>VK_INDEX_TYPE_UINT16</code>, <code>VK_INDEX_TYPE_UINT32</code>, or <code>VK_INDEX_TYPE_NONE_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-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=\"#VkAccelerationStructureGeometryMotionTrianglesDataNV\">VkAccelerationStructureGeometryMotionTrianglesDataNV</a>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-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-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-parameter",
- "text": " <code>vertexFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-parameter",
- "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value"
- }
- ]
- },
- "VkAccelerationStructureGeometryMotionTrianglesDataNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-VkAccelerationStructureGeometryMotionTrianglesDataNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV</code>"
- }
- ]
- },
- "VkTransformMatrixKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkTransformMatrixKHR-matrix-03799",
- "text": " The first three columns of <code>matrix</code> <strong class=\"purple\">must</strong> define an invertible 3x3 matrix"
- }
- ]
- },
- "VkAccelerationStructureGeometryAabbsDataKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03545",
- "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of <code>8</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03820",
- "text": " <code>stride</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">2<sup>32</sup>-1</span>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkAabbPositionsKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkAabbPositionsKHR-minX-03546",
- "text": " <code>minX</code> <strong class=\"purple\">must</strong> be less than or equal to <code>maxX</code>"
- },
- {
- "vuid": "VUID-VkAabbPositionsKHR-minY-03547",
- "text": " <code>minY</code> <strong class=\"purple\">must</strong> be less than or equal to <code>maxY</code>"
- },
- {
- "vuid": "VUID-VkAabbPositionsKHR-minZ-03548",
- "text": " <code>minZ</code> <strong class=\"purple\">must</strong> be less than or equal to <code>maxZ</code>"
- }
- ]
- },
- "VkAccelerationStructureGeometryInstancesDataKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkAccelerationStructureGeometryInstancesDataKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureGeometryInstancesDataKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkAccelerationStructureInstanceKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkAccelerationStructureInstanceKHR-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryInstanceFlagBitsKHR\">VkGeometryInstanceFlagBitsKHR</a> values"
- }
- ]
- },
- "VkAccelerationStructureMotionInstanceNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureMotionInstanceTypeNV\">VkAccelerationStructureMotionInstanceTypeNV</a> value"
- },
- {
- "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-staticInstance-parameter",
- "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV</code>, the <code>staticInstance</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a> structure"
- },
- {
- "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-matrixMotionInstance-parameter",
- "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV</code>, the <code>matrixMotionInstance</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureMatrixMotionInstanceNV\">VkAccelerationStructureMatrixMotionInstanceNV</a> structure"
- },
- {
- "vuid": "VUID-VkAccelerationStructureMotionInstanceNV-srtMotionInstance-parameter",
- "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV</code>, the <code>srtMotionInstance</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureSRTMotionInstanceNV\">VkAccelerationStructureSRTMotionInstanceNV</a> structure"
- }
- ]
- },
- "VkAccelerationStructureMatrixMotionInstanceNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-VkAccelerationStructureMatrixMotionInstanceNV-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryInstanceFlagBitsKHR\">VkGeometryInstanceFlagBitsKHR</a> values"
- }
- ]
- },
- "VkAccelerationStructureSRTMotionInstanceNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-VkAccelerationStructureSRTMotionInstanceNV-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryInstanceFlagBitsKHR\">VkGeometryInstanceFlagBitsKHR</a> values"
- }
- ]
- },
- "VkAccelerationStructureBuildRangeInfoKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03656",
- "text": " For geometries of type <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if the geometry uses indices, the offset <code>primitiveOffset</code> from <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>indexData</code> <strong class=\"purple\">must</strong> be a multiple of the element size of <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>indexType</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03657",
- "text": " For geometries of type <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if the geometry does not use indices, the offset <code>primitiveOffset</code> from <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>vertexData</code> <strong class=\"purple\">must</strong> be a multiple of the component size of <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>vertexFormat</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-transformOffset-03658",
- "text": " For geometries of type <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, the offset <code>transformOffset</code> from <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a>::<code>transformData</code> <strong class=\"purple\">must</strong> be a multiple of 16"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03659",
- "text": " For geometries of type <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, the offset <code>primitiveOffset</code> from <a href=\"#VkAccelerationStructureGeometryAabbsDataKHR\">VkAccelerationStructureGeometryAabbsDataKHR</a>::<code>data</code> <strong class=\"purple\">must</strong> be a multiple of 8"
- },
- {
- "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03660",
- "text": " For geometries of type <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the offset <code>primitiveOffset</code> from <a href=\"#VkAccelerationStructureGeometryInstancesDataKHR\">VkAccelerationStructureGeometryInstancesDataKHR</a>::<code>data</code> <strong class=\"purple\">must</strong> be a multiple of 16"
- }
- ]
- },
- "vkCmdWriteAccelerationStructuresPropertiesKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02493",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> matching <code>queryType</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02494",
- "text": " The queries identified by <code>queryPool</code> and <code>firstQuery</code> <strong class=\"purple\">must</strong> be <em>unavailable</em>"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-buffer-03736",
- "text": " The <code>buffer</code> used to create each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-query-04880",
- "text": " The sum of <code>query</code> plus <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964",
- "text": " All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built prior to the execution of this command"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431",
- "text": " All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> if <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-03432",
- "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameter",
- "text": " <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handles"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-parameter",
- "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-parameter",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylength",
- "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commonparent",
- "text": " Each of <code>commandBuffer</code>, <code>queryPool</code>, and the elements of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "vkCmdWriteAccelerationStructuresPropertiesNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-03755",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> matching <code>queryType</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-03756",
- "text": " The queries identified by <code>queryPool</code> and <code>firstQuery</code> <strong class=\"purple\">must</strong> be <em>unavailable</em>"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructure-03757",
- "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object via <a href=\"#vkBindAccelerationStructureMemoryNV\">vkBindAccelerationStructureMemoryNV</a>"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-04958",
- "text": " All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built prior to the execution of this command"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-06215",
- "text": " All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> if <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-06216",
- "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-parameter",
- "text": " <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handles"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-parameter",
- "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-parameter",
- "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryPool\">VkQueryPool</a> handle"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructureCount-arraylength",
- "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commonparent",
- "text": " Each of <code>commandBuffer</code>, <code>queryPool</code>, and the elements of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "vkCmdCopyAccelerationStructureNV": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-03410",
- "text": " <code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR</code> or <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-04963",
- "text": " The source acceleration structure <code>src</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-03411",
- "text": " If <code>mode</code> is <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR</code>, <code>src</code> <strong class=\"purple\">must</strong> have been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> in the build"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureNV-buffer-03718",
- "text": " The <code>buffer</code> used to create <code>src</code> <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureNV-buffer-03719",
- "text": " The <code>buffer</code> used to create <code>dst</code> <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-parameter",
- "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-parameter",
- "text": " <code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureNV\">VkAccelerationStructureNV</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-parameter",
- "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeKHR\">VkCopyAccelerationStructureModeKHR</a> value"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureNV-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commonparent",
- "text": " Each of <code>commandBuffer</code>, <code>dst</code>, and <code>src</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "vkCmdCopyAccelerationStructureKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-buffer-03737",
- "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-buffer-03738",
- "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyAccelerationStructureInfoKHR\">VkCopyAccelerationStructureInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ]
- },
- "VkCopyAccelerationStructureInfoKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-mode-03410",
- "text": " <code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR</code> or <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR</code>"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-src-04963",
- "text": " The source acceleration structure <code>src</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-src-03411",
- "text": " If <code>mode</code> is <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR</code>, <code>src</code> <strong class=\"purple\">must</strong> have been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> in the build"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-buffer-03718",
- "text": " The <code>buffer</code> used to create <code>src</code> <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-buffer-03719",
- "text": " The <code>buffer</code> used to create <code>dst</code> <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-src-parameter",
- "text": " <code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-dst-parameter",
- "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-mode-parameter",
- "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeKHR\">VkCopyAccelerationStructureModeKHR</a> value"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-commonparent",
- "text": " Both of <code>dst</code>, and <code>src</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
- }
- ]
- },
- "vkCmdCopyAccelerationStructureToMemoryKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03739",
- "text": " <code>pInfo-&gt;dst.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address for a buffer bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03740",
- "text": " <code>pInfo-&gt;dst.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>256</code> bytes"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03741",
- "text": " If the buffer pointed to by <code>pInfo-&gt;dst.deviceAddress</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-None-03559",
- "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyAccelerationStructureToMemoryInfoKHR\">VkCopyAccelerationStructureToMemoryInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ]
- },
- "VkCopyAccelerationStructureToMemoryInfoKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-04959",
- "text": " The source acceleration structure <code>src</code> <strong class=\"purple\">must</strong> have been constructed prior to the execution of this command"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-03561",
- "text": " The memory pointed to by <code>dst</code> <strong class=\"purple\">must</strong> be at least as large as the serialization size of <code>src</code>, as reported by <a href=\"#vkWriteAccelerationStructuresPropertiesKHR\">vkWriteAccelerationStructuresPropertiesKHR</a> or <a href=\"#vkCmdWriteAccelerationStructuresPropertiesKHR\">vkCmdWriteAccelerationStructuresPropertiesKHR</a> with a query type of <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-03412",
- "text": " <code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR</code>"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-parameter",
- "text": " <code>src</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
- },
- {
- "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-parameter",
- "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeKHR\">VkCopyAccelerationStructureModeKHR</a> value"
- }
- ]
- },
- "vkCmdCopyMemoryToAccelerationStructureKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03742",
- "text": " <code>pInfo-&gt;src.deviceAddress</code> <strong class=\"purple\">must</strong> be a valid device address for a buffer bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03743",
- "text": " <code>pInfo-&gt;src.deviceAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>256</code> bytes"
- },
- {
- "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03744",
- "text": " If the buffer pointed to by <code>pInfo-&gt;src.deviceAddress</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> object"
- },
- {
- "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-buffer-03745",
- "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to device memory"
- },
- {
- "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMemoryToAccelerationStructureInfoKHR\">VkCopyMemoryToAccelerationStructureInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ]
- },
- "VkCopyMemoryToAccelerationStructureInfoKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-src-04960",
- "text": " The source memory pointed to by <code>src</code> <strong class=\"purple\">must</strong> contain data previously serialized using <a href=\"#vkCmdCopyAccelerationStructureToMemoryKHR\">vkCmdCopyAccelerationStructureToMemoryKHR</a>, potentially modified to relocate acceleration structure references as described in that command"
- },
- {
- "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-03413",
- "text": " <code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR</code>"
- },
- {
- "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pInfo-03414",
- "text": " The data in <code>src</code> <strong class=\"purple\">must</strong> have a format compatible with the destination physical device as returned by <a href=\"#vkGetDeviceAccelerationStructureCompatibilityKHR\">vkGetDeviceAccelerationStructureCompatibilityKHR</a>"
- },
- {
- "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-03746",
- "text": " <code>dst</code> <strong class=\"purple\">must</strong> have been created with a <code>size</code> greater than or equal to that used to serialize the data in <code>src</code>"
- },
- {
- "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-parameter",
- "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
- },
- {
- "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-parameter",
- "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeKHR\">VkCopyAccelerationStructureModeKHR</a> value"
- }
- ]
- },
- "vkGetDeviceAccelerationStructureCompatibilityKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-rayTracingPipeline-03661",
- "text": " The <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code></a> or <a href=\"#features-rayQuery\"><code>rayQuery</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-pVersionInfo-parameter",
- "text": " <code>pVersionInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAccelerationStructureVersionInfoKHR\">VkAccelerationStructureVersionInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-pCompatibility-parameter",
- "text": " <code>pCompatibility</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkAccelerationStructureCompatibilityKHR\">VkAccelerationStructureCompatibilityKHR</a> value"
- }
- ]
- },
- "VkAccelerationStructureVersionInfoKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkAccelerationStructureVersionInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureVersionInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkAccelerationStructureVersionInfoKHR-pVersionData-parameter",
- "text": " <code>pVersionData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of \\(2 \\times \\mathtt{VK\\_UUID\\_SIZE}\\) <code>uint8_t</code> values"
- }
- ]
- },
- "vkBuildAccelerationStructuresKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-mode-04628",
- "text": " The <code>mode</code> member of each element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuildAccelerationStructureModeKHR\">VkBuildAccelerationStructureModeKHR</a> value"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-srcAccelerationStructure-04629",
- "text": " If the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-04630",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03403",
- "text": " The <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03698",
- "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be the same acceleration structure as the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03800",
- "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handle"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03699",
- "text": " For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03700",
- "text": " For each element of <code>pInfos</code>, if its <code>type</code> member is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code>, its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>type</code> equal to either <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR</code> or <code>VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR</code>"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03663",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, <a href=\"#acceleration-structure-inactive-prims\">inactive primitives</a> in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made active"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03664",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, active primitives in its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> not be made <a href=\"#acceleration-structure-inactive-prims\">inactive</a>"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-None-03407",
- "text": " The <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> <strong class=\"purple\">must</strong> not be referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03701",
- "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any other element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, which is accessed by this command"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03702",
- "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>dstAccelerationStructure</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03703",
- "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> (including the same element), which is accessed by this command"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-scratchData-03704",
- "text": " The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>scratchData</code> member of any other element of <code>pInfos</code>, which is accessed by this command"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-scratchData-03705",
- "text": " The range of memory backing the <code>scratchData</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing the <code>srcAccelerationStructure</code> member of any element of <code>pInfos</code> with a <code>mode</code> equal to <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> (including the same element), which is accessed by this command"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03706",
- "text": " The range of memory backing the <code>dstAccelerationStructure</code> member of any element of <code>pInfos</code> that is accessed by this command <strong class=\"purple\">must</strong> not overlap the memory backing any acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> in any other element of <code>pInfos</code>, which is accessed by this command"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03667",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> have previously been constructed with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR</code> set in <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a>::<code>flags</code> in the build"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03668",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>srcAccelerationStructure</code> and <code>dstAccelerationStructure</code> members <strong class=\"purple\">must</strong> either be the same <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a>, or not have any <a href=\"#resources-memory-aliasing\">memory aliasing</a>"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03758",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>geometryCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03759",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03760",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, its <code>type</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03761",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>geometryType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03762",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, its <code>flags</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03763",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.vertexFormat</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03764",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.maxVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03765",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, its <code>geometry.triangles.indexType</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03766",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03767",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if its <code>geometry.triangles.transformData</code> address was not <code>NULL</code> when <code>srcAccelerationStructure</code> was last built, then it <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03768",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, then for each <code>VkAccelerationStructureGeometryKHR</code> structure referred to by its <code>pGeometries</code> or <code>ppGeometries</code> members, if <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, and <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, then the value of each index referenced <strong class=\"purple\">must</strong> be the same as the corresponding index value when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-primitiveCount-03769",
- "text": " For each <code>VkAccelerationStructureBuildRangeInfoKHR</code> referenced by this command, its <code>primitiveCount</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-firstVertex-03770",
- "text": " For each <code>VkAccelerationStructureBuildRangeInfoKHR</code> referenced by this command, if the corresponding geometry uses indices, its <code>firstVertex</code> member <strong class=\"purple\">must</strong> have the same value which was specified when <code>srcAccelerationStructure</code> was last built"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03801",
- "text": " For each element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the corresponding {maxinstancecheck} <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>::<code>maxInstanceCount</code>"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03675",
- "text": " For each <code>pInfos</code>[i], <code>dstAccelerationStructure</code> <strong class=\"purple\">must</strong> have been created with a value of <a href=\"#VkAccelerationStructureCreateInfoKHR\">VkAccelerationStructureCreateInfoKHR</a>::<code>size</code> greater than or equal to the memory size required by the build operation, as returned by <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with <span class=\"eq\"><code>pBuildInfo</code> = <code>pInfos</code>[i]</span> and with each element of the <code>pMaxPrimitiveCounts</code> array greater than or equal to the equivalent <code>ppBuildRangeInfos</code>[i][j].<code>primitiveCount</code> values for <code>j</code> in <span class=\"eq\">[0,<code>pInfos</code>[i].<code>geometryCount</code>)</span>"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676",
- "text": " Each element of <code>ppBuildRangeInfos</code>[i] <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pInfos</code>[i].<code>geometryCount</code> <code>VkAccelerationStructureBuildRangeInfoKHR</code> structures"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-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"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-03678",
- "text": " Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03722",
- "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to host-visible device memory"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03723",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> the <code>buffer</code> used to create its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to host-visible device memory"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03724",
- "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create each acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-accelerationStructureHostCommands-03581",
- "text": " The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03725",
- "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.hostAddress</code> and <code>pInfos</code>[i].<code>scratchData.hostAddress</code> + N - 1 <strong class=\"purple\">must</strong> be valid host memory, where N is given by the <code>buildScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03726",
- "text": " If <code>pInfos</code>[i].<code>mode</code> is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code>, all addresses between <code>pInfos</code>[i].<code>scratchData.hostAddress</code> and <code>pInfos</code>[i].<code>scratchData.hostAddress</code> + N - 1 <strong class=\"purple\">must</strong> be valid host memory, where N is given by the <code>updateScratchSize</code> member of the <a href=\"#VkAccelerationStructureBuildSizesInfoKHR\">VkAccelerationStructureBuildSizesInfoKHR</a> structure returned from a call to <a href=\"#vkGetAccelerationStructureBuildSizesKHR\">vkGetAccelerationStructureBuildSizesKHR</a> with an identical <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structure and primitive count"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03771",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, <code>geometry.triangles.vertexData.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host address"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03772",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.indexType</code> is not <code>VK_INDEX_TYPE_NONE_KHR</code>, <code>geometry.triangles.indexData.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host address"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03773",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, if <code>geometry.triangles.transformData.hostAddress</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be a valid host address"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03774",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, <code>geometry.aabbs.data.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host address"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03778",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, <code>geometry.instances.data.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host address"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03779",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, each <a href=\"#VkAccelerationStructureInstanceKHR\">VkAccelerationStructureInstanceKHR</a>::<code>accelerationStructureReference</code> value in <code>geometry.instances.data.hostAddress</code> must be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> object"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parameter",
- "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-parameter",
- "text": " <code>pInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> valid <a href=\"#VkAccelerationStructureBuildGeometryInfoKHR\">VkAccelerationStructureBuildGeometryInfoKHR</a> structures"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameter",
- "text": " <code>ppBuildRangeInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>infoCount</code> <a href=\"#VkAccelerationStructureBuildRangeInfoKHR\">VkAccelerationStructureBuildRangeInfoKHR</a> structures"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-infoCount-arraylength",
- "text": " <code>infoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parent",
- "text": " If <code>deferredOperation</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_KHR_device_group,VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03775",
- "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create its <code>dstAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03776",
- "text": " For each element of <code>pInfos</code>, if its <code>mode</code> member is <code>VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR</code> the <code>buffer</code> used to create its <code>srcAccelerationStructure</code> member <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
- },
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03777",
- "text": " For each element of <code>pInfos</code>, the <code>buffer</code> used to create each acceleration structure referenced by the <code>geometry.instances.data</code> member of any element of <code>pGeometries</code> or <code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-04930",
- "text": " For any element of <code>pInfos</code>[i].<code>pGeometries</code> or <code>pInfos</code>[i].<code>ppGeometries</code> with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code> with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> set, each <code>accelerationStructureReference</code> in any structure in <a href=\"#VkAccelerationStructureMotionInstanceNV\">VkAccelerationStructureMotionInstanceNV</a> value in <code>geometry.instances.data.hostAddress</code> must be a valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> object"
- }
- ]
- },
- "vkCopyAccelerationStructureKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkCopyAccelerationStructureKHR-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"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-03678",
- "text": " Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03727",
- "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03728",
- "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582",
- "text": " The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-parameter",
- "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureKHR-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyAccelerationStructureInfoKHR\">VkCopyAccelerationStructureInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-parent",
- "text": " If <code>deferredOperation</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_KHR_device_group,VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03780",
- "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03781",
- "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
- }
- ]
- },
- "vkCopyMemoryToAccelerationStructureKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-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"
- },
- {
- "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03678",
- "text": " Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete"
- },
- {
- "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03729",
- "text": " <code>pInfo-&gt;src.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host pointer"
- },
- {
- "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03750",
- "text": " <code>pInfo-&gt;src.hostAddress</code> <strong class=\"purple\">must</strong> be aligned to 16 bytes"
- },
- {
- "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03730",
- "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
- },
- {
- "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583",
- "text": " The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-parameter",
- "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
- },
- {
- "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyMemoryToAccelerationStructureInfoKHR\">VkCopyMemoryToAccelerationStructureInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-parent",
- "text": " If <code>deferredOperation</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_KHR_device_group,VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782",
- "text": " The <code>buffer</code> used to create <code>pInfo-&gt;dst</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
- }
- ]
- },
- "vkCopyAccelerationStructureToMemoryKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-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"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03678",
- "text": " Any previous deferred operation that was associated with <code>deferredOperation</code> <strong class=\"purple\">must</strong> be complete"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03731",
- "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03732",
- "text": " <code>pInfo-&gt;dst.hostAddress</code> <strong class=\"purple\">must</strong> be a valid host pointer"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03751",
- "text": " <code>pInfo-&gt;dst.hostAddress</code> <strong class=\"purple\">must</strong> be aligned to 16 bytes"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584",
- "text": " The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-parameter",
- "text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>deferredOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> handle"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-parameter",
- "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCopyAccelerationStructureToMemoryInfoKHR\">VkCopyAccelerationStructureToMemoryInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-parent",
- "text": " If <code>deferredOperation</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_KHR_device_group,VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783",
- "text": " The <code>buffer</code> used to create <code>pInfo-&gt;src</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
- }
- ]
- },
- "vkWriteAccelerationStructuresPropertiesKHR": {
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964",
- "text": " All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built prior to the execution of this command"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431",
- "text": " All acceleration structures in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been built with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR</code> if <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code>"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03432",
- "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code> or <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03448",
- "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of the size of <code>VkDeviceSize</code>"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03449",
- "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR</code>, then <code>data</code> <strong class=\"purple\">must</strong> point to a <code>VkDeviceSize</code>"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03450",
- "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of the size of <code>VkDeviceSize</code>"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03451",
- "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR</code>, then <code>data</code> <strong class=\"purple\">must</strong> point to a <code>VkDeviceSize</code>"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-03452",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>accelerationStructureCount</code>*<code>stride</code></span>"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03733",
- "text": " The <code>buffer</code> used to create each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be bound to host-visible device memory"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585",
- "text": " The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameter",
- "text": " <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid <a href=\"#VkAccelerationStructureKHR\">VkAccelerationStructureKHR</a> handles"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-parameter",
- "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pData-parameter",
- "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylength",
- "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-arraylength",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parent",
- "text": " Each element of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_device_group,VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03784",
- "text": " The <code>buffer</code> used to create each acceleration structure in <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be bound to memory that was not allocated with multiple instances"
- }
- ]
- },
- "vkCmdTraceRaysNV": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-03429",
- "text": " Any shader group handle referenced by this call <strong class=\"purple\">must</strong> have been queried from the currently bound ray tracing pipeline"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-04624",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-maxRecursionDepth-03625",
- "text": " This command <strong class=\"purple\">must</strong> not cause a pipeline trace ray instruction to be executed from a shader invocation with a <a href=\"#ray-tracing-recursion-depth\">recursion depth</a> greater than the value of <code>maxRecursionDepth</code> used to create the bound ray tracing pipeline"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-04042",
- "text": " If <code>raygenShaderBindingTableBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455",
- "text": " <code>raygenShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>raygenShaderBindingTableBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02456",
- "text": " <code>raygenShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-04043",
- "text": " If <code>missShaderBindingTableBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457",
- "text": " <code>missShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>missShaderBindingTableBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02458",
- "text": " <code>missShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-04044",
- "text": " If <code>hitShaderBindingTableBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459",
- "text": " <code>hitShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>hitShaderBindingTableBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02460",
- "text": " <code>hitShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-04045",
- "text": " If <code>callableShaderBindingTableBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461",
- "text": " <code>callableShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>callableShaderBindingTableBuffer</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02462",
- "text": " <code>callableShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02463",
- "text": " <code>missShaderBindingStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupHandleSize</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02464",
- "text": " <code>hitShaderBindingStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupHandleSize</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02465",
- "text": " <code>callableShaderBindingStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupHandleSize</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02466",
- "text": " <code>missShaderBindingStride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxShaderGroupStride</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02467",
- "text": " <code>hitShaderBindingStride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxShaderGroupStride</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02468",
- "text": " <code>callableShaderBindingStride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxShaderGroupStride</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-width-02469",
- "text": " <code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0]"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-height-02470",
- "text": " <code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1]"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-depth-02471",
- "text": " <code>depth</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2]"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameter",
- "text": " <code>raygenShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-parameter",
- "text": " If <code>missShaderBindingTableBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>missShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameter",
- "text": " If <code>hitShaderBindingTableBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>hitShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameter",
- "text": " If <code>callableShaderBindingTableBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>callableShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-commonparent",
- "text": " Each of <code>callableShaderBindingTableBuffer</code>, <code>commandBuffer</code>, <code>hitShaderBindingTableBuffer</code>, <code>missShaderBindingTableBuffer</code>, and <code>raygenShaderBindingTableBuffer</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_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ]
- },
- "vkCmdTraceRaysKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-03429",
- "text": " Any shader group handle referenced by this call <strong class=\"purple\">must</strong> have been queried from the currently bound ray tracing pipeline"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-maxPipelineRayRecursionDepth-03679",
- "text": " This command <strong class=\"purple\">must</strong> not cause a shader call instruction to be executed from a shader invocation with a <a href=\"#ray-tracing-recursion-depth\">recursion depth</a> greater than the value of <code>maxPipelineRayRecursionDepth</code> used to create the bound ray tracing pipeline"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03680",
- "text": " If the buffer from which <code>pRayGenShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03681",
- "text": " The buffer from which the <code>pRayGenShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03682",
- "text": " <code>pRayGenShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-size-04023",
- "text": " The <code>size</code> member of <code>pRayGenShaderBindingTable</code> <strong class=\"purple\">must</strong> be equal to its <code>stride</code> member"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03683",
- "text": " If the buffer from which <code>pMissShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03684",
- "text": " The buffer from which the <code>pMissShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03685",
- "text": " <code>pMissShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-stride-03686",
- "text": " The <code>stride</code> member of <code>pMissShaderBindingTable</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-stride-04029",
- "text": " The <code>stride</code> member of <code>pMissShaderBindingTable</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03687",
- "text": " If the buffer from which <code>pHitShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03688",
- "text": " The buffer from which the <code>pHitShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03689",
- "text": " <code>pHitShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-stride-03690",
- "text": " The <code>stride</code> member of <code>pHitShaderBindingTable</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-stride-04035",
- "text": " The <code>stride</code> member of <code>pHitShaderBindingTable</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03691",
- "text": " If the buffer from which <code>pCallableShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03692",
- "text": " The buffer from which the <code>pCallableShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03693",
- "text": " <code>pCallableShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-stride-03694",
- "text": " The <code>stride</code> member of <code>pCallableShaderBindingTable</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-stride-04041",
- "text": " The <code>stride</code> member of <code>pCallableShaderBindingTable</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-flags-03696",
- "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, the <code>deviceAddress</code> member of <code>pHitShaderBindingTable</code> <strong class=\"purple\">must</strong> not be zero"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-flags-03697",
- "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, the <code>deviceAddress</code> member of <code>pHitShaderBindingTable</code> <strong class=\"purple\">must</strong> not be zero"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-flags-03511",
- "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>, the shader group handle identified by <code>pMissShaderBindingTable</code> <strong class=\"purple\">must</strong> not be set to zero"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-flags-03512",
- "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, entries in <code>pHitShaderBindingTable</code> accessed as a result of this command in order to execute an any-hit shader <strong class=\"purple\">must</strong> not be set to zero"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-flags-03513",
- "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, entries in <code>pHitShaderBindingTable</code> accessed as a result of this command in order to execute a closest hit shader <strong class=\"purple\">must</strong> not be set to zero"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-flags-03514",
- "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, entries in <code>pHitShaderBindingTable</code> accessed as a result of this command in order to execute an intersection shader <strong class=\"purple\">must</strong> not be set to zero"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04735",
- "text": " Any non-zero hit shader group entries in <code>pHitShaderBindingTable</code> accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04736",
- "text": " Any non-zero hit shader group entries in <code>pHitShaderBindingTable</code> accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-04625",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-width-03626",
- "text": " <code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[0]</span>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-height-03627",
- "text": " <code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[1]</span>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-depth-03628",
- "text": " <code>depth</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[2]</span>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-width-03629",
- "text": " <span class=\"eq\"><code>width</code> {times} <code>height</code> {times} <code>depth</code></span> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxRayDispatchInvocationCount</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pRaygenShaderBindingTable-parameter",
- "text": " <code>pRaygenShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-parameter",
- "text": " <code>pMissShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-parameter",
- "text": " <code>pHitShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-parameter",
- "text": " <code>pCallableShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ]
- },
- "VkStridedDeviceAddressRegionKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-VkStridedDeviceAddressRegionKHR-size-04631",
- "text": " If <code>size</code> is not zero, all addresses between <code>deviceAddress</code> and <span class=\"eq\"><code>deviceAddress</code> &#43; <code>size</code> - 1</span> <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer"
- },
- {
- "vuid": "VUID-VkStridedDeviceAddressRegionKHR-size-04632",
- "text": " If <code>size</code> is not zero, <code>stride</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the buffer from which <code>deviceAddress</code> was queried"
- }
- ]
- },
- "vkCmdBindInvocationMaskHUAWEI": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)": [
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-None-04976",
- "text": " The <a href=\"#features-invocationMask\">invocation mask image</a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04977",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle of type <code>VK_IMAGE_VIEW_TYPE_2D</code>"
- },
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04978",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have a format of <code>VK_FORMAT_R8_UINT</code>"
- },
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04979",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI</code> set"
- },
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04980",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_GENERAL</code>"
- },
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-width-04981",
- "text": " Thread mask image resolution must match the <code>width</code> and <code>height</code> in <a href=\"#vkCmdTraceRaysKHR\">vkCmdTraceRaysKHR</a>"
- },
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-None-04982",
- "text": " Each element in the invocation mask image <strong class=\"purple\">must</strong> have the value <code>0</code> or <code>1</code>. The value 1 means the invocation is active"
- },
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-width-04983",
- "text": " <code>width</code> in <a href=\"#vkCmdTraceRaysKHR\">vkCmdTraceRaysKHR</a> should be 1"
- },
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageView-parameter",
- "text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-imageLayout-parameter",
- "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value"
- },
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdBindInvocationMaskHUAWEI-commonparent",
- "text": " Both of <code>commandBuffer</code>, and <code>imageView</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>"
- }
- ]
- },
- "vkCmdTraceRaysIndirectKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-mipmapMode-04770",
- "text": " If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02691",
- "text": " If a <code>VkImageView</code> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02700",
- "text": " A valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set or inherited (if the <code><a href=\"#VK_NV_inherited_viewport_scissor\">VK_NV_inherited_viewport_scissor</a></code> extension is enabled) for <code>commandBuffer</code>, and done so after any previously bound pipeline with the corresponding state not specified as dynamic"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02859",
- "text": " There <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state not specified as dynamic in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command, since that pipeline was bound"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02702",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02703",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02704",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02705",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02706",
- "text": " If the <a href=\"#features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and if the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-04115",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-04469",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-03429",
- "text": " Any shader group handle referenced by this call <strong class=\"purple\">must</strong> have been queried from the currently bound ray tracing pipeline"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-maxPipelineRayRecursionDepth-03679",
- "text": " This command <strong class=\"purple\">must</strong> not cause a shader call instruction to be executed from a shader invocation with a <a href=\"#ray-tracing-recursion-depth\">recursion depth</a> greater than the value of <code>maxPipelineRayRecursionDepth</code> used to create the bound ray tracing pipeline"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03680",
- "text": " If the buffer from which <code>pRayGenShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03681",
- "text": " The buffer from which the <code>pRayGenShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03682",
- "text": " <code>pRayGenShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-size-04023",
- "text": " The <code>size</code> member of <code>pRayGenShaderBindingTable</code> <strong class=\"purple\">must</strong> be equal to its <code>stride</code> member"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03683",
- "text": " If the buffer from which <code>pMissShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03684",
- "text": " The buffer from which the <code>pMissShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03685",
- "text": " <code>pMissShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03686",
- "text": " The <code>stride</code> member of <code>pMissShaderBindingTable</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04029",
- "text": " The <code>stride</code> member of <code>pMissShaderBindingTable</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03687",
- "text": " If the buffer from which <code>pHitShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03688",
- "text": " The buffer from which the <code>pHitShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03689",
- "text": " <code>pHitShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03690",
- "text": " The <code>stride</code> member of <code>pHitShaderBindingTable</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04035",
- "text": " The <code>stride</code> member of <code>pHitShaderBindingTable</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03691",
- "text": " If the buffer from which <code>pCallableShaderBindingTable-&gt;deviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03692",
- "text": " The buffer from which the <code>pCallableShaderBindingTable-&gt;deviceAddress</code> is queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR</code> usage flag"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03693",
- "text": " <code>pCallableShaderBindingTable-&gt;deviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupBaseAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03694",
- "text": " The <code>stride</code> member of <code>pCallableShaderBindingTable</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>shaderGroupHandleAlignment</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04041",
- "text": " The <code>stride</code> member of <code>pCallableShaderBindingTable</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxShaderGroupStride</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03696",
- "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, the <code>deviceAddress</code> member of <code>pHitShaderBindingTable</code> <strong class=\"purple\">must</strong> not be zero"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03697",
- "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, the <code>deviceAddress</code> member of <code>pHitShaderBindingTable</code> <strong class=\"purple\">must</strong> not be zero"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03511",
- "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR</code>, the shader group handle identified by <code>pMissShaderBindingTable</code> <strong class=\"purple\">must</strong> not be set to zero"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03512",
- "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR</code>, entries in <code>pHitShaderBindingTable</code> accessed as a result of this command in order to execute an any-hit shader <strong class=\"purple\">must</strong> not be set to zero"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03513",
- "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR</code>, entries in <code>pHitShaderBindingTable</code> accessed as a result of this command in order to execute a closest hit shader <strong class=\"purple\">must</strong> not be set to zero"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03514",
- "text": " If the currently bound ray tracing pipeline was created with <code>flags</code> that included <code>VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR</code>, entries in <code>pHitShaderBindingTable</code> accessed as a result of this command in order to execute an intersection shader <strong class=\"purple\">must</strong> not be set to zero"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04735",
- "text": " Any non-zero hit shader group entries in <code>pHitShaderBindingTable</code> accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04736",
- "text": " Any non-zero hit shader group entries in <code>pHitShaderBindingTable</code> accessed by this call from a geometry with a <code>geometryType</code> of <code>VK_GEOMETRY_TYPE_AABBS_KHR</code> <strong class=\"purple\">must</strong> have been created with <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632",
- "text": " If the buffer from which <code>indirectDeviceAddress</code> was queried is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633",
- "text": " The buffer from which <code>indirectDeviceAddress</code> was queried <strong class=\"purple\">must</strong> have been created with the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03634",
- "text": " <code>indirectDeviceAddress</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03636",
- "text": " All device addresses between <code>indirectDeviceAddress</code> and <span class=\"eq\"><code>indirectDeviceAddress</code> &#43; <code>sizeof</code>(<code>VkTraceRaysIndirectCommandKHR</code>) - 1</span> <strong class=\"purple\">must</strong> be in the buffer device address range of the same buffer"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-rayTracingPipelineTraceRaysIndirect-03637",
- "text": " The <a href=\"#features-rayTracingPipelineTraceRaysIndirect\"><code>VkPhysicalDeviceRayTracingPipelineFeaturesKHR</code>::<code>rayTracingPipelineTraceRaysIndirect</code></a> feature <strong class=\"purple\">must</strong> be enabled"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRaygenShaderBindingTable-parameter",
- "text": " <code>pRaygenShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-parameter",
- "text": " <code>pMissShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-parameter",
- "text": " <code>pHitShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-parameter",
- "text": " <code>pCallableShaderBindingTable</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkStridedDeviceAddressRegionKHR\">VkStridedDeviceAddressRegionKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-aspectMask-06478",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-06479",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s format feature <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02692",
- "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02693",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubic</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <code>VkFilterCubicImageViewImageFormatPropertiesEXT</code>::<code>filterCubicMinmax</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties2</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-02696",
- "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02698",
- "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <code>VkPipeline</code> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <code>VkPipelineLayout</code> that is compatible for push constants, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-06550",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-06551",
- "text": " If the <code>VkPipeline</code> object bound to the pipeline bind point used by this command accesses a <code>VkSampler</code> or <code>VkImageView</code> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04470",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04471",
- "text": " If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04472",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04473",
- "text": " If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-sparseImageInt64Atomics-04474",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-sparseImageInt64Atomics-04475",
- "text": " If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951",
- "text": " If the bound ray tracing pipeline was created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> <code>VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</code>::<code>rayTracingMotionBlurPipelineTraceRaysIndirect</code> feature <strong class=\"purple\">must</strong> be enabled"
- }
- ]
- },
- "VkTraceRaysIndirectCommandKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-VkTraceRaysIndirectCommandKHR-width-03638",
- "text": " <code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[0]</span>"
- },
- {
- "vuid": "VUID-VkTraceRaysIndirectCommandKHR-height-03639",
- "text": " <code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[1]</span>"
- },
- {
- "vuid": "VUID-VkTraceRaysIndirectCommandKHR-depth-03640",
- "text": " <code>depth</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\"><code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2] {times} <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[2]</span>"
- },
- {
- "vuid": "VUID-VkTraceRaysIndirectCommandKHR-width-03641",
- "text": " <span class=\"eq\"><code>width</code> {times} <code>height</code> {times} <code>depth</code></span> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPipelinePropertiesKHR</code>::<code>maxRayDispatchInvocationCount</code>"
- }
- ]
- },
- "VkVideoQueueFamilyProperties2KHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoQueueFamilyProperties2KHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoQueueFamilyProperties2KHR-videoCodecOperations-parameter",
- "text": " <code>videoCodecOperations</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoCodecOperationFlagBitsKHR\">VkVideoCodecOperationFlagBitsKHR</a> values"
- },
- {
- "vuid": "VUID-VkVideoQueueFamilyProperties2KHR-videoCodecOperations-requiredbitmask",
- "text": " <code>videoCodecOperations</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ]
- },
- "VkVideoProfileKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoProfileKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoProfileKHR-videoCodecOperation-parameter",
- "text": " <code>videoCodecOperation</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoCodecOperationFlagBitsKHR\">VkVideoCodecOperationFlagBitsKHR</a> value"
- },
- {
- "vuid": "VUID-VkVideoProfileKHR-chromaSubsampling-parameter",
- "text": " <code>chromaSubsampling</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoChromaSubsamplingFlagBitsKHR\">VkVideoChromaSubsamplingFlagBitsKHR</a> values"
- },
- {
- "vuid": "VUID-VkVideoProfileKHR-chromaSubsampling-requiredbitmask",
- "text": " <code>chromaSubsampling</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoProfileKHR-lumaBitDepth-parameter",
- "text": " <code>lumaBitDepth</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoComponentBitDepthFlagBitsKHR\">VkVideoComponentBitDepthFlagBitsKHR</a> values"
- },
- {
- "vuid": "VUID-VkVideoProfileKHR-lumaBitDepth-requiredbitmask",
- "text": " <code>lumaBitDepth</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoProfileKHR-chromaBitDepth-parameter",
- "text": " <code>chromaBitDepth</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoComponentBitDepthFlagBitsKHR\">VkVideoComponentBitDepthFlagBitsKHR</a> values"
- },
- {
- "vuid": "VUID-VkVideoProfileKHR-chromaBitDepth-requiredbitmask",
- "text": " <code>chromaBitDepth</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceVideoCapabilitiesKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-parameter",
- "text": " <code>pVideoProfile</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pCapabilities-parameter",
- "text": " <code>pCapabilities</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a> structure"
- }
- ]
- },
- "VkVideoCapabilitiesKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoCapabilitiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoCapabilitiesKHR-pNext-pNext",
- "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=\"#VkVideoDecodeH264CapabilitiesEXT\">VkVideoDecodeH264CapabilitiesEXT</a>, <a href=\"#VkVideoDecodeH265CapabilitiesEXT\">VkVideoDecodeH265CapabilitiesEXT</a>, or <a href=\"#VkVideoEncodeCapabilitiesKHR\">VkVideoEncodeCapabilitiesKHR</a>"
- },
- {
- "vuid": "VUID-VkVideoCapabilitiesKHR-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
- }
- ]
- },
- "vkGetPhysicalDeviceVideoFormatPropertiesKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-imageUsage-04844",
- "text": " The <code>imageUsage</code> enum of <a href=\"#VkPhysicalDeviceVideoFormatInfoKHR\">VkPhysicalDeviceVideoFormatInfoKHR</a> <strong class=\"purple\">must</strong> contain at least one of the following video image usage bit(s): <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code>, <code>VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>, or <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatInfo-parameter",
- "text": " <code>pVideoFormatInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceVideoFormatInfoKHR\">VkPhysicalDeviceVideoFormatInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatPropertyCount-parameter",
- "text": " <code>pVideoFormatPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatProperties-parameter",
- "text": " If the value referenced by <code>pVideoFormatPropertyCount</code> is not <code>0</code>, and <code>pVideoFormatProperties</code> is not <code>NULL</code>, <code>pVideoFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pVideoFormatPropertyCount</code> <a href=\"#VkVideoFormatPropertiesKHR\">VkVideoFormatPropertiesKHR</a> structures"
- }
- ]
- },
- "VkPhysicalDeviceVideoFormatInfoKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceVideoFormatInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "VkVideoProfilesKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoProfilesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoProfilesKHR-pProfiles-parameter",
- "text": " <code>pProfiles</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a> structure"
- }
- ]
- },
- "VkVideoFormatPropertiesKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoFormatPropertiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoFormatPropertiesKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkCreateVideoSessionKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-vkCreateVideoSessionKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateVideoSessionKHR-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCreateVideoSessionKHR-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"
- },
- {
- "vuid": "VUID-vkCreateVideoSessionKHR-pVideoSession-parameter",
- "text": " <code>pVideoSession</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle"
- }
- ]
- },
- "VkVideoSessionCreateInfoKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-04845",
- "text": " <code>pVideoProfile</code> <strong class=\"purple\">must</strong> be a pointer to a valid <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a> structure whose <code>pNext</code> chain <strong class=\"purple\">must</strong> include a valid codec-specific profile structure"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxReferencePicturesSlotsCount-04846",
- "text": " If <a href=\"#reference-picture\">Reference Pictures</a> are required for use with the created video session, the <code>maxReferencePicturesSlotsCount</code> <strong class=\"purple\">must</strong> be set to a value bigger than <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxReferencePicturesSlotsCount-04847",
- "text": " <code>maxReferencePicturesSlotsCount</code> <strong class=\"purple\">cannot</strong> exceed the implementation reported <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>maxReferencePicturesSlotsCount</code>"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxReferencePicturesActiveCount-04848",
- "text": " If <a href=\"#reference-picture\">Reference Pictures</a> are required for use with the created video session, the <code>maxReferencePicturesActiveCount</code> <strong class=\"purple\">must</strong> be set to a value bigger than <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxReferencePicturesActiveCount-04849",
- "text": " <code>maxReferencePicturesActiveCount</code> <strong class=\"purple\">cannot</strong> exceed the implementation reported <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>maxReferencePicturesActiveCount</code>"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxReferencePicturesActiveCount-04850",
- "text": " <code>maxReferencePicturesActiveCount</code> <strong class=\"purple\">cannot</strong> exceed the <code>maxReferencePicturesSlotsCount</code>"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-maxCodedExtent-04851",
- "text": " <code>maxCodedExtent</code> <strong class=\"purple\">cannot</strong> be smaller than <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>minExtent</code> and bigger than <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a>::<code>maxExtent</code>"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-referencePicturesFormat-04852",
- "text": " <code>referencePicturesFormat</code> <strong class=\"purple\">must</strong> be one of the supported formats in <a href=\"#VkVideoFormatPropertiesKHR\">VkVideoFormatPropertiesKHR</a> <code>format</code> returned by the <a href=\"#vkGetPhysicalDeviceVideoFormatPropertiesKHR\">vkGetPhysicalDeviceVideoFormatPropertiesKHR</a> when the <a href=\"#VkPhysicalDeviceVideoFormatInfoKHR\">VkPhysicalDeviceVideoFormatInfoKHR</a> <code>imageUsage</code> contains <code>VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR</code> or <code>VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR</code> depending on the session codec operation"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-pictureFormat-04853",
- "text": " <code>pictureFormat</code> for decode output <strong class=\"purple\">must</strong> be one of the supported formats in <a href=\"#VkVideoFormatPropertiesKHR\">VkVideoFormatPropertiesKHR</a> <code>format</code> returned by the <a href=\"#vkGetPhysicalDeviceVideoFormatPropertiesKHR\">vkGetPhysicalDeviceVideoFormatPropertiesKHR</a> when the <a href=\"#VkPhysicalDeviceVideoFormatInfoKHR\">VkPhysicalDeviceVideoFormatInfoKHR</a> <code>imageUsage</code> contains <code>VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-pictureFormat-04854",
- "text": " <code>pictureFormat</code> targeting encode operations <strong class=\"purple\">must</strong> be one of the supported formats in <a href=\"#VkVideoFormatPropertiesKHR\">VkVideoFormatPropertiesKHR</a> <code>format</code> returned by the <a href=\"#vkGetPhysicalDeviceVideoFormatPropertiesKHR\">vkGetPhysicalDeviceVideoFormatPropertiesKHR</a> when the <a href=\"#VkPhysicalDeviceVideoFormatInfoKHR\">VkPhysicalDeviceVideoFormatInfoKHR</a> <code>imageUsage</code> contains <code>VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-pNext-pNext",
- "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=\"#VkVideoDecodeH264SessionCreateInfoEXT\">VkVideoDecodeH264SessionCreateInfoEXT</a>, <a href=\"#VkVideoDecodeH265SessionCreateInfoEXT\">VkVideoDecodeH265SessionCreateInfoEXT</a>, <a href=\"#VkVideoEncodeH264SessionCreateInfoEXT\">VkVideoEncodeH264SessionCreateInfoEXT</a>, or <a href=\"#VkVideoEncodeH265SessionCreateInfoEXT\">VkVideoEncodeH265SessionCreateInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-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-VkVideoSessionCreateInfoKHR-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoSessionCreateFlagBitsKHR\">VkVideoSessionCreateFlagBitsKHR</a> values"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-parameter",
- "text": " <code>pVideoProfile</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a> structure"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-pictureFormat-parameter",
- "text": " <code>pictureFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-VkVideoSessionCreateInfoKHR-referencePicturesFormat-parameter",
- "text": " <code>referencePicturesFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- }
- ]
- },
- "vkDestroyVideoSessionKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-vkDestroyVideoSessionKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyVideoSessionKHR-videoSession-parameter",
- "text": " <code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyVideoSessionKHR-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"
- },
- {
- "vuid": "VUID-vkDestroyVideoSessionKHR-videoSession-parent",
- "text": " <code>videoSession</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkGetVideoSessionMemoryRequirementsKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-videoSession-parameter",
- "text": " <code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle"
- },
- {
- "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-pVideoSessionMemoryRequirementsCount-parameter",
- "text": " <code>pVideoSessionMemoryRequirementsCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-pVideoSessionMemoryRequirements-parameter",
- "text": " If the value referenced by <code>pVideoSessionMemoryRequirementsCount</code> is not <code>0</code>, and <code>pVideoSessionMemoryRequirements</code> is not <code>NULL</code>, <code>pVideoSessionMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pVideoSessionMemoryRequirementsCount</code> <a href=\"#VkVideoGetMemoryPropertiesKHR\">VkVideoGetMemoryPropertiesKHR</a> structures"
- },
- {
- "vuid": "VUID-vkGetVideoSessionMemoryRequirementsKHR-videoSession-parent",
- "text": " <code>videoSession</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "VkVideoGetMemoryPropertiesKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoGetMemoryPropertiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoGetMemoryPropertiesKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkVideoGetMemoryPropertiesKHR-pMemoryRequirements-parameter",
- "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure"
- }
- ]
- },
- "vkBindVideoSessionMemoryKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-vkBindVideoSessionMemoryKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkBindVideoSessionMemoryKHR-videoSession-parameter",
- "text": " <code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle"
- },
- {
- "vuid": "VUID-vkBindVideoSessionMemoryKHR-pVideoSessionBindMemories-parameter",
- "text": " <code>pVideoSessionBindMemories</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>videoSessionBindMemoryCount</code> valid <a href=\"#VkVideoBindMemoryKHR\">VkVideoBindMemoryKHR</a> structures"
- },
- {
- "vuid": "VUID-vkBindVideoSessionMemoryKHR-videoSessionBindMemoryCount-arraylength",
- "text": " <code>videoSessionBindMemoryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-vkBindVideoSessionMemoryKHR-videoSession-parent",
- "text": " <code>videoSession</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "VkVideoBindMemoryKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoBindMemoryKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoBindMemoryKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkVideoBindMemoryKHR-memory-parameter",
- "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> handle"
- }
- ]
- },
- "vkCreateVideoSessionParametersKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-vkCreateVideoSessionParametersKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateVideoSessionParametersKHR-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoSessionParametersCreateInfoKHR\">VkVideoSessionParametersCreateInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCreateVideoSessionParametersKHR-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"
- },
- {
- "vuid": "VUID-vkCreateVideoSessionParametersKHR-pVideoSessionParameters-parameter",
- "text": " <code>pVideoSessionParameters</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle"
- }
- ]
- },
- "VkVideoSessionParametersCreateInfoKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-04855",
- "text": " If <code>videoSessionParametersTemplate</code> represents a valid handle, it <strong class=\"purple\">must</strong> have been created against <code>videoSession</code>"
- },
- {
- "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-pNext-pNext",
- "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=\"#VkVideoDecodeH264SessionParametersCreateInfoEXT\">VkVideoDecodeH264SessionParametersCreateInfoEXT</a>, <a href=\"#VkVideoDecodeH265SessionParametersCreateInfoEXT\">VkVideoDecodeH265SessionParametersCreateInfoEXT</a>, <a href=\"#VkVideoEncodeH264SessionParametersCreateInfoEXT\">VkVideoEncodeH264SessionParametersCreateInfoEXT</a>, or <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoEXT\">VkVideoEncodeH265SessionParametersCreateInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-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-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parameter",
- "text": " If <code>videoSessionParametersTemplate</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>videoSessionParametersTemplate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle"
- },
- {
- "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-parameter",
- "text": " <code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle"
- },
- {
- "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parent",
- "text": " If <code>videoSessionParametersTemplate</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>videoSession</code>"
- },
- {
- "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-commonparent",
- "text": " Both of <code>videoSession</code>, and <code>videoSessionParametersTemplate</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>"
- }
- ]
- },
- "vkUpdateVideoSessionParametersKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-vkUpdateVideoSessionParametersKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-parameter",
- "text": " <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle"
- },
- {
- "vuid": "VUID-vkUpdateVideoSessionParametersKHR-pUpdateInfo-parameter",
- "text": " <code>pUpdateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoSessionParametersUpdateInfoKHR\">VkVideoSessionParametersUpdateInfoKHR</a> structure"
- }
- ]
- },
- "VkVideoSessionParametersUpdateInfoKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoSessionParametersUpdateInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoSessionParametersUpdateInfoKHR-pNext-pNext",
- "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=\"#VkVideoDecodeH264SessionParametersAddInfoEXT\">VkVideoDecodeH264SessionParametersAddInfoEXT</a>, <a href=\"#VkVideoDecodeH265SessionParametersAddInfoEXT\">VkVideoDecodeH265SessionParametersAddInfoEXT</a>, <a href=\"#VkVideoEncodeH264SessionParametersAddInfoEXT\">VkVideoEncodeH264SessionParametersAddInfoEXT</a>, or <a href=\"#VkVideoEncodeH265SessionParametersAddInfoEXT\">VkVideoEncodeH265SessionParametersAddInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkVideoSessionParametersUpdateInfoKHR-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
- }
- ]
- },
- "vkDestroyVideoSessionParametersKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-vkDestroyVideoSessionParametersKHR-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-parameter",
- "text": " <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyVideoSessionParametersKHR-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"
- }
- ]
- },
- "vkCmdBeginVideoCodingKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-parameter",
- "text": " <code>pBeginInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoBeginCodingInfoKHR\">VkVideoBeginCodingInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBeginVideoCodingKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support decode, or encode operations"
- },
- {
- "vuid": "VUID-vkCmdBeginVideoCodingKHR-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdBeginVideoCodingKHR-bufferlevel",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
- }
- ]
- },
- "VkVideoBeginCodingInfoKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoBeginCodingInfoKHR-referenceSlotCount-04856",
- "text": " <a href=\"#VkVideoBeginCodingInfoKHR\">VkVideoBeginCodingInfoKHR</a>::<code>referenceSlotCount</code> <strong class=\"purple\">must</strong> not exceed the value specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a>::<code>maxReferencePicturesSlotsCount</code> when creating the video session object that is being provided in <code>videoSession</code>"
- },
- {
- "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-04857",
- "text": " If <code>videoSessionParameters</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have been created using <code>videoSession</code> as a parent object"
- },
- {
- "vuid": "VUID-VkVideoBeginCodingInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoBeginCodingInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkVideoBeginCodingInfoKHR-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoBeginCodingInfoKHR-codecQualityPreset-parameter",
- "text": " <code>codecQualityPreset</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoCodingQualityPresetFlagBitsKHR\">VkVideoCodingQualityPresetFlagBitsKHR</a> values"
- },
- {
- "vuid": "VUID-VkVideoBeginCodingInfoKHR-codecQualityPreset-requiredbitmask",
- "text": " <code>codecQualityPreset</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSession-parameter",
- "text": " <code>videoSession</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionKHR\">VkVideoSessionKHR</a> handle"
- },
- {
- "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parameter",
- "text": " If <code>videoSessionParameters</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle"
- },
- {
- "vuid": "VUID-VkVideoBeginCodingInfoKHR-pReferenceSlots-parameter",
- "text": " If <code>referenceSlotCount</code> is not <code>0</code>, <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceSlotCount</code> valid <a href=\"#VkVideoReferenceSlotKHR\">VkVideoReferenceSlotKHR</a> structures"
- },
- {
- "vuid": "VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parent",
- "text": " If <code>videoSessionParameters</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>videoSession</code>"
- },
- {
- "vuid": "VUID-VkVideoBeginCodingInfoKHR-commonparent",
- "text": " Both of <code>videoSession</code>, and <code>videoSessionParameters</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>"
- }
- ]
- },
- "VkVideoReferenceSlotKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoReferenceSlotKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoReferenceSlotKHR-pNext-pNext",
- "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=\"#VkVideoDecodeH264DpbSlotInfoEXT\">VkVideoDecodeH264DpbSlotInfoEXT</a> or <a href=\"#VkVideoDecodeH265DpbSlotInfoEXT\">VkVideoDecodeH265DpbSlotInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkVideoReferenceSlotKHR-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-VkVideoReferenceSlotKHR-pPictureResource-parameter",
- "text": " <code>pPictureResource</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoPictureResourceKHR\">VkVideoPictureResourceKHR</a> structure"
- }
- ]
- },
- "VkVideoPictureResourceKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoPictureResourceKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoPictureResourceKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkVideoPictureResourceKHR-imageViewBinding-parameter",
- "text": " <code>imageViewBinding</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a> handle"
- }
- ]
- },
- "vkCmdEndVideoCodingKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-vkCmdEndVideoCodingKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdEndVideoCodingKHR-pEndCodingInfo-parameter",
- "text": " <code>pEndCodingInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEndCodingInfoKHR\">VkVideoEndCodingInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdEndVideoCodingKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdEndVideoCodingKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support decode, or encode operations"
- },
- {
- "vuid": "VUID-vkCmdEndVideoCodingKHR-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdEndVideoCodingKHR-bufferlevel",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
- }
- ]
- },
- "VkVideoEndCodingInfoKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoEndCodingInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoEndCodingInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkVideoEndCodingInfoKHR-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- }
- ]
- },
- "vkCmdControlVideoCodingKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-vkCmdControlVideoCodingKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdControlVideoCodingKHR-pCodingControlInfo-parameter",
- "text": " <code>pCodingControlInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoCodingControlInfoKHR\">VkVideoCodingControlInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdControlVideoCodingKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdControlVideoCodingKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support decode, or encode operations"
- },
- {
- "vuid": "VUID-vkCmdControlVideoCodingKHR-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdControlVideoCodingKHR-bufferlevel",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
- }
- ]
- },
- "VkVideoCodingControlInfoKHR": {
- "(VK_KHR_video_queue)": [
- {
- "vuid": "VUID-VkVideoCodingControlInfoKHR-flags-06518",
- "text": " The first command buffer submitted for a newly created video session <strong class=\"purple\">must</strong> set the <code>VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR</code> bit in <a href=\"#VkVideoCodingControlInfoKHR\">VkVideoCodingControlInfoKHR</a>::<code>flags</code> to reset the session device context before any video decode or encode operations are performed on the session."
- },
- {
- "vuid": "VUID-VkVideoCodingControlInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoCodingControlInfoKHR-pNext-pNext",
- "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=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> or <a href=\"#VkVideoEncodeRateControlLayerInfoKHR\">VkVideoEncodeRateControlLayerInfoKHR</a>"
- },
- {
- "vuid": "VUID-VkVideoCodingControlInfoKHR-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-VkVideoCodingControlInfoKHR-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoCodingControlFlagBitsKHR\">VkVideoCodingControlFlagBitsKHR</a> values"
- }
- ]
- },
- "vkCmdDecodeVideoKHR": {
- "(VK_KHR_video_decode_queue)": [
- {
- "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDecodeVideoKHR-pFrameInfo-parameter",
- "text": " <code>pFrameInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoDecodeInfoKHR\">VkVideoDecodeInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDecodeVideoKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support decode operations"
- },
- {
- "vuid": "VUID-vkCmdDecodeVideoKHR-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdDecodeVideoKHR-bufferlevel",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
- }
- ]
- },
- "VkVideoDecodeInfoKHR": {
- "(VK_KHR_video_decode_queue)": [
- {
- "vuid": "VUID-VkVideoDecodeInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeInfoKHR-pNext-pNext",
- "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=\"#VkVideoDecodeH264PictureInfoEXT\">VkVideoDecodeH264PictureInfoEXT</a> or <a href=\"#VkVideoDecodeH265PictureInfoEXT\">VkVideoDecodeH265PictureInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkVideoDecodeInfoKHR-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-VkVideoDecodeInfoKHR-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoDecodeFlagBitsKHR\">VkVideoDecodeFlagBitsKHR</a> values"
- },
- {
- "vuid": "VUID-VkVideoDecodeInfoKHR-srcBuffer-parameter",
- "text": " <code>srcBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkVideoDecodeInfoKHR-dstPictureResource-parameter",
- "text": " <code>dstPictureResource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoPictureResourceKHR\">VkVideoPictureResourceKHR</a> structure"
- },
- {
- "vuid": "VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-parameter",
- "text": " <code>pSetupReferenceSlot</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoReferenceSlotKHR\">VkVideoReferenceSlotKHR</a> structure"
- },
- {
- "vuid": "VUID-VkVideoDecodeInfoKHR-pReferenceSlots-parameter",
- "text": " If <code>referenceSlotCount</code> is not <code>0</code>, <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceSlotCount</code> valid <a href=\"#VkVideoReferenceSlotKHR\">VkVideoReferenceSlotKHR</a> structures"
- }
- ]
- },
- "VkVideoDecodeH264ProfileEXT": {
- "(VK_EXT_video_decode_h264)": [
- {
- "vuid": "VUID-VkVideoDecodeH264ProfileEXT-pNext-06259",
- "text": " If the <a href=\"#VkVideoDecodeH264ProfileEXT\">VkVideoDecodeH264ProfileEXT</a> structure is included in the <code>pNext</code> chain of the <a href=\"#VkVideoCapabilitiesKHR\">VkVideoCapabilitiesKHR</a> structure passed to <a href=\"#vkGetPhysicalDeviceVideoCapabilitiesKHR\">vkGetPhysicalDeviceVideoCapabilitiesKHR</a>, the value in <code>pictureLayout</code> is treated as a bitmask of requested picture layouts. It is always valid to use the value <code>VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT</code> as the implementation is guaranteed to support decoding of progressive content."
- },
- {
- "vuid": "VUID-VkVideoDecodeH264ProfileEXT-pNext-06260",
- "text": " If the <a href=\"#VkVideoDecodeH264ProfileEXT\">VkVideoDecodeH264ProfileEXT</a> structure is included in the <code>pNext</code> chain of the <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a> structure passed to <a href=\"#vkCreateVideoSessionKHR\">vkCreateVideoSessionKHR</a>, the value in <code>pictureLayout</code> <strong class=\"purple\">must</strong> be exactly one of <code>VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT</code>, <code>VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT</code> or <code>VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT</code>."
- },
- {
- "vuid": "VUID-VkVideoDecodeH264ProfileEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT</code>"
- }
- ]
- },
- "VkVideoDecodeH264CapabilitiesEXT": {
- "(VK_EXT_video_decode_h264)": [
- {
- "vuid": "VUID-VkVideoDecodeH264CapabilitiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT</code>"
- }
- ]
- },
- "VkVideoDecodeH264SessionCreateInfoEXT": {
- "(VK_EXT_video_decode_h264)": [
- {
- "vuid": "VUID-VkVideoDecodeH264SessionCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264SessionCreateInfoEXT-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264SessionCreateInfoEXT-pStdExtensionVersion-parameter",
- "text": " <code>pStdExtensionVersion</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkExtensionProperties\">VkExtensionProperties</a> structure"
- }
- ]
- },
- "VkVideoDecodeH264SessionParametersCreateInfoEXT": {
- "(VK_EXT_video_decode_h264)": [
- {
- "vuid": "VUID-VkVideoDecodeH264SessionParametersCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264SessionParametersCreateInfoEXT-pParametersAddInfo-parameter",
- "text": " If <code>pParametersAddInfo</code> is not <code>NULL</code>, <code>pParametersAddInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoDecodeH264SessionParametersAddInfoEXT\">VkVideoDecodeH264SessionParametersAddInfoEXT</a> structure"
- }
- ]
- },
- "VkVideoDecodeH264SessionParametersAddInfoEXT": {
- "(VK_EXT_video_decode_h264)": [
- {
- "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-spsStdCount-04822",
- "text": " The values of <code>spsStdCount</code> and <code>ppsStdCount</code> <strong class=\"purple\">must</strong> be less than or equal to the values of <code>maxSpsStdCount</code> and <code>maxPpsStdCount</code>, respectively"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-maxSpsStdCount-04823",
- "text": " When the <code>maxSpsStdCount</code> number of parameters of type StdVideoH264SequenceParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to this object. <code>VK_ERROR_TOO_MANY_OBJECTS</code> will be returned if an attempt is made to add additional data to this object at this point"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-maxPpsStdCount-04824",
- "text": " When the <code>maxPpsStdCount</code> number of parameters of type StdVideoH264PictureParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to this object. <code>VK_ERROR_TOO_MANY_OBJECTS</code> will be returned if an attempt is made to add additional data to this object at this point"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-None-04825",
- "text": " Each entry to be added <strong class=\"purple\">must</strong> have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, SPS-PPS IDs"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-None-04826",
- "text": " Parameter entries that already exist in Video Session Parameters object with a particular SPS-PPS IDs <strong class=\"purple\">cannot</strong> be replaced nor updated"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-None-04827",
- "text": " When creating a new object using a Video Session Parameters as a template, the array&#8217;s parameters with the same SPS-PPS IDs as the ones from the template take precedence"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-None-04828",
- "text": " SPS/PPS parameters <strong class=\"purple\">must</strong> comply with the limits specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a> during Video Session creation"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-pSpsStd-parameter",
- "text": " If <code>pSpsStd</code> is not <code>NULL</code>, <code>pSpsStd</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>spsStdCount</code> <code>StdVideoH264SequenceParameterSet</code> values"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-pPpsStd-parameter",
- "text": " If <code>pPpsStd</code> is not <code>NULL</code>, <code>pPpsStd</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>ppsStdCount</code> <code>StdVideoH264PictureParameterSet</code> values"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-spsStdCount-arraylength",
- "text": " <code>spsStdCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-ppsStdCount-arraylength",
- "text": " <code>ppsStdCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkVideoDecodeH264PictureInfoEXT": {
- "(VK_EXT_video_decode_h264)": [
- {
- "vuid": "VUID-VkVideoDecodeH264PictureInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264PictureInfoEXT-pStdPictureInfo-parameter",
- "text": " <code>pStdPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoDecodeH264PictureInfo</code> value"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264PictureInfoEXT-pSlicesDataOffsets-parameter",
- "text": " <code>pSlicesDataOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>slicesCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264PictureInfoEXT-slicesCount-arraylength",
- "text": " <code>slicesCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkVideoDecodeH264DpbSlotInfoEXT": {
- "(VK_EXT_video_decode_h264)": [
- {
- "vuid": "VUID-VkVideoDecodeH264DpbSlotInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264DpbSlotInfoEXT-pStdReferenceInfo-parameter",
- "text": " <code>pStdReferenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoDecodeH264ReferenceInfo</code> value"
- }
- ]
- },
- "VkVideoDecodeH264MvcEXT": {
- "(VK_EXT_video_decode_h264)": [
- {
- "vuid": "VUID-VkVideoDecodeH264MvcEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH264MvcEXT-pStdMvc-parameter",
- "text": " <code>pStdMvc</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoDecodeH264Mvc</code> value"
- }
- ]
- },
- "VkVideoDecodeH265ProfileEXT": {
- "(VK_EXT_video_decode_h265)": [
- {
- "vuid": "VUID-VkVideoDecodeH265ProfileEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT</code>"
- }
- ]
- },
- "VkVideoDecodeH265CapabilitiesEXT": {
- "(VK_EXT_video_decode_h265)": [
- {
- "vuid": "VUID-VkVideoDecodeH265CapabilitiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT</code>"
- }
- ]
- },
- "VkVideoDecodeH265SessionCreateInfoEXT": {
- "(VK_EXT_video_decode_h265)": [
- {
- "vuid": "VUID-VkVideoDecodeH265SessionCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionCreateInfoEXT-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionCreateInfoEXT-pStdExtensionVersion-parameter",
- "text": " <code>pStdExtensionVersion</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkExtensionProperties\">VkExtensionProperties</a> structure"
- }
- ]
- },
- "VkVideoDecodeH265SessionParametersCreateInfoEXT": {
- "(VK_EXT_video_decode_h265)": [
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersCreateInfoEXT-pParametersAddInfo-parameter",
- "text": " If <code>pParametersAddInfo</code> is not <code>NULL</code>, <code>pParametersAddInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoDecodeH265SessionParametersAddInfoEXT\">VkVideoDecodeH265SessionParametersAddInfoEXT</a> structure"
- }
- ]
- },
- "VkVideoDecodeH265SessionParametersAddInfoEXT": {
- "(VK_EXT_video_decode_h265)": [
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-vpsStdCount-04829",
- "text": " The values of <code>vpsStdCount</code>, <code>spsStdCount</code> and <code>ppsStdCount</code> <strong class=\"purple\">must</strong> be less than or equal to the values of <code>maxVpsStdCount</code>, <code>maxSpsStdCount</code> and <code>maxPpsStdCount</code>, respectively"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-maxVpsStdCount-04830",
- "text": " When the <code>maxVpsStdCount</code> number of parameters of type StdVideoH265VideoParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. <code>VK_ERROR_TOO_MANY_OBJECTS</code> will be returned if an attempt is made to add additional data to this object at this point"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-maxSpsStdCount-04831",
- "text": " When the <code>maxSpsStdCount</code> number of parameters of type StdVideoH265SequenceParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. <code>VK_ERROR_TOO_MANY_OBJECTS</code> will be returned if an attempt is made to add additional data to this object at this point"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-maxPpsStdCount-04832",
- "text": " When the <code>maxPpsStdCount</code> number of parameters of type StdVideoH265PictureParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. <code>VK_ERROR_TOO_MANY_OBJECTS</code> will be returned if an attempt is made to add additional data to this object at this point"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-None-04833",
- "text": " Each entry to be added <strong class=\"purple\">must</strong> have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, VPS-SPS-PPS IDs"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-None-04834",
- "text": " Parameter entries that already exist in Video Session Parameters object with a particular VPS-SPS-PPS IDs <strong class=\"purple\">cannot</strong> be replaced nor updated"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-None-04835",
- "text": " When creating a new object using a Video Session Parameters as a template, the array&#8217;s parameters with the same VPS-SPS-PPS IDs as the ones from the template take precedence"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-None-04836",
- "text": " VPS/SPS/PPS parameters <strong class=\"purple\">must</strong> comply with the limits specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a> during Video Session creation"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-pSpsStd-parameter",
- "text": " If <code>pSpsStd</code> is not <code>NULL</code>, <code>pSpsStd</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>spsStdCount</code> <code>StdVideoH265SequenceParameterSet</code> values"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-pPpsStd-parameter",
- "text": " If <code>pPpsStd</code> is not <code>NULL</code>, <code>pPpsStd</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>ppsStdCount</code> <code>StdVideoH265PictureParameterSet</code> values"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-spsStdCount-arraylength",
- "text": " <code>spsStdCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-ppsStdCount-arraylength",
- "text": " <code>ppsStdCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkVideoDecodeH265PictureInfoEXT": {
- "(VK_EXT_video_decode_h265)": [
- {
- "vuid": "VUID-VkVideoDecodeH265PictureInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265PictureInfoEXT-pStdPictureInfo-parameter",
- "text": " <code>pStdPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>StdVideoDecodeH265PictureInfo</code> value"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265PictureInfoEXT-pSlicesDataOffsets-parameter",
- "text": " <code>pSlicesDataOffsets</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>slicesCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265PictureInfoEXT-slicesCount-arraylength",
- "text": " <code>slicesCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkVideoDecodeH265DpbSlotInfoEXT": {
- "(VK_EXT_video_decode_h265)": [
- {
- "vuid": "VUID-VkVideoDecodeH265DpbSlotInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoDecodeH265DpbSlotInfoEXT-pStdReferenceInfo-parameter",
- "text": " <code>pStdReferenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoDecodeH265ReferenceInfo</code> value"
- }
- ]
- },
- "VkVideoEncodeCapabilitiesKHR": {
- "(VK_KHR_video_encode_queue)": [
- {
- "vuid": "VUID-VkVideoEncodeCapabilitiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeCapabilitiesKHR-rateControlModes-parameter",
- "text": " <code>rateControlModes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeRateControlModeFlagBitsKHR\">VkVideoEncodeRateControlModeFlagBitsKHR</a> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeCapabilitiesKHR-rateControlModes-requiredbitmask",
- "text": " <code>rateControlModes</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- }
- ]
- },
- "vkCmdEncodeVideoKHR": {
- "(VK_KHR_video_encode_queue)": [
- {
- "vuid": "VUID-vkCmdEncodeVideoKHR-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-parameter",
- "text": " <code>pEncodeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeInfoKHR\">VkVideoEncodeInfoKHR</a> structure"
- },
- {
- "vuid": "VUID-vkCmdEncodeVideoKHR-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdEncodeVideoKHR-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support encode operations"
- },
- {
- "vuid": "VUID-vkCmdEncodeVideoKHR-renderpass",
- "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
- },
- {
- "vuid": "VUID-vkCmdEncodeVideoKHR-bufferlevel",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>"
- }
- ]
- },
- "VkVideoEncodeInfoKHR": {
- "(VK_KHR_video_encode_queue)": [
- {
- "vuid": "VUID-VkVideoEncodeInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeInfoKHR-pNext-pNext",
- "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=\"#VkVideoEncodeH264EmitPictureParametersEXT\">VkVideoEncodeH264EmitPictureParametersEXT</a>, <a href=\"#VkVideoEncodeH264VclFrameInfoEXT\">VkVideoEncodeH264VclFrameInfoEXT</a>, <a href=\"#VkVideoEncodeH265EmitPictureParametersEXT\">VkVideoEncodeH265EmitPictureParametersEXT</a>, or <a href=\"#VkVideoEncodeH265VclFrameInfoEXT\">VkVideoEncodeH265VclFrameInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkVideoEncodeInfoKHR-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-VkVideoEncodeInfoKHR-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeFlagBitsKHR\">VkVideoEncodeFlagBitsKHR</a> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeInfoKHR-dstBitstreamBuffer-parameter",
- "text": " <code>dstBitstreamBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
- },
- {
- "vuid": "VUID-VkVideoEncodeInfoKHR-srcPictureResource-parameter",
- "text": " <code>srcPictureResource</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoPictureResourceKHR\">VkVideoPictureResourceKHR</a> structure"
- },
- {
- "vuid": "VUID-VkVideoEncodeInfoKHR-pSetupReferenceSlot-parameter",
- "text": " <code>pSetupReferenceSlot</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoReferenceSlotKHR\">VkVideoReferenceSlotKHR</a> structure"
- },
- {
- "vuid": "VUID-VkVideoEncodeInfoKHR-pReferenceSlots-parameter",
- "text": " If <code>referenceSlotCount</code> is not <code>0</code>, <code>pReferenceSlots</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceSlotCount</code> valid <a href=\"#VkVideoReferenceSlotKHR\">VkVideoReferenceSlotKHR</a> structures"
- }
- ]
- },
- "VkVideoEncodeRateControlInfoKHR": {
- "(VK_KHR_video_encode_queue)+(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264RateControlInfoEXT-chainrequirement",
- "text": " <a href=\"#VkVideoEncodeH264RateControlInfoEXT\">VkVideoEncodeH264RateControlInfoEXT</a> <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain of <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> if and only if <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is not <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code> and the bound video session was created with <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a>::<code>videoCodecOperation</code> set to <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT</code>."
- },
- {
- "vuid": "VUID-VkVideoEncodeH264RateControlInfoEXT-temporalLayerCount",
- "text": " If <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>layerCount</code> is greater than <code>1</code>, then <a href=\"#VkVideoEncodeH264RateControlInfoEXT\">VkVideoEncodeH264RateControlInfoEXT</a>::<code>temporalLayerCount</code> <strong class=\"purple\">must</strong> be equal to <code>layerCount</code>."
- }
- ],
- "(VK_KHR_video_encode_queue)+(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265RateControlInfoEXT-chainrequirement",
- "text": " <a href=\"#VkVideoEncodeH265RateControlInfoEXT\">VkVideoEncodeH265RateControlInfoEXT</a> <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain of <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> if and only if <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is not <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code> and the bound video session was created with <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a>::<code>videoCodecOperation</code> set to <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT</code>."
- },
- {
- "vuid": "VUID-VkVideoEncodeH265RateControlInfoEXT-subLayerCount",
- "text": " If <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>layerCount</code> is greater than <code>1</code>, then <a href=\"#VkVideoEncodeH265RateControlInfoEXT\">VkVideoEncodeH265RateControlInfoEXT</a>::<code>subLayerCount</code> <strong class=\"purple\">must</strong> be equal to <code>layerCount</code>."
- }
- ],
- "(VK_KHR_video_encode_queue)": [
- {
- "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-parameter",
- "text": " <code>rateControlMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeRateControlModeFlagBitsKHR\">VkVideoEncodeRateControlModeFlagBitsKHR</a> value"
- },
- {
- "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-pLayerConfigs-parameter",
- "text": " <code>pLayerConfigs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>layerCount</code> valid <a href=\"#VkVideoEncodeRateControlLayerInfoKHR\">VkVideoEncodeRateControlLayerInfoKHR</a> structures"
- },
- {
- "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-layerCount-arraylength",
- "text": " <code>layerCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkVideoEncodeRateControlLayerInfoKHR": {
- "(VK_KHR_video_encode_queue)": [
- {
- "vuid": "VUID-VkVideoEncodeRateControlLayerInfoKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR</code>"
- }
- ]
- },
- "VkVideoEncodeH264ProfileEXT": {
- "(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264ProfileEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT</code>"
- }
- ]
- },
- "VkVideoEncodeH264CapabilitiesEXT": {
- "(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264CapabilitiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264CapabilitiesEXT-inputModeFlags-parameter",
- "text": " <code>inputModeFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeH264InputModeFlagBitsEXT\">VkVideoEncodeH264InputModeFlagBitsEXT</a> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264CapabilitiesEXT-inputModeFlags-requiredbitmask",
- "text": " <code>inputModeFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264CapabilitiesEXT-outputModeFlags-parameter",
- "text": " <code>outputModeFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeH264OutputModeFlagBitsEXT\">VkVideoEncodeH264OutputModeFlagBitsEXT</a> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264CapabilitiesEXT-outputModeFlags-requiredbitmask",
- "text": " <code>outputModeFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264CapabilitiesEXT-stdExtensionVersion-parameter",
- "text": " <code>stdExtensionVersion</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExtensionProperties\">VkExtensionProperties</a> structure"
- }
- ]
- },
- "VkVideoEncodeH264SessionCreateInfoEXT": {
- "(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264SessionCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionCreateInfoEXT-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeH264CreateFlagBitsEXT\">VkVideoEncodeH264CreateFlagBitsEXT</a> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionCreateInfoEXT-flags-requiredbitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionCreateInfoEXT-pStdExtensionVersion-parameter",
- "text": " <code>pStdExtensionVersion</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkExtensionProperties\">VkExtensionProperties</a> structure"
- }
- ]
- },
- "VkVideoEncodeH264SessionParametersCreateInfoEXT": {
- "(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264SessionParametersCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionParametersCreateInfoEXT-pParametersAddInfo-parameter",
- "text": " If <code>pParametersAddInfo</code> is not <code>NULL</code>, <code>pParametersAddInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH264SessionParametersAddInfoEXT\">VkVideoEncodeH264SessionParametersAddInfoEXT</a> structure"
- }
- ]
- },
- "VkVideoEncodeH264SessionParametersAddInfoEXT": {
- "(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-spsStdCount-04837",
- "text": " The values of <code>spsStdCount</code> and <code>ppsStdCount</code> <strong class=\"purple\">must</strong> be less than or equal to the values of <code>maxSpsStdCount</code> and <code>maxPpsStdCount</code>, respectively"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-maxSpsStdCount-04838",
- "text": " When the <code>maxSpsStdCount</code> number of parameters of type StdVideoH264SequenceParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. <code>VK_ERROR_TOO_MANY_OBJECTS</code> will be returned if an attempt is made to add additional data to this object at this point"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-maxPpsStdCount-04839",
- "text": " When the <code>maxPpsStdCount</code> number of parameters of type StdVideoH264PictureParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. <code>VK_ERROR_TOO_MANY_OBJECTS</code> will be returned if an attempt is made to add additional data to this object at this point"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04840",
- "text": " Each entry to be added <strong class=\"purple\">must</strong> have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, SPS-PPS IDs"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04841",
- "text": " Parameter entries that already exist in Video Session Parameters object with a particular SPS-PPS IDs <strong class=\"purple\">cannot</strong> be replaced nor updated"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04842",
- "text": " When creating a new object using a Video Session Parameters as a template, the array&#8217;s parameters with the same SPS-PPS IDs as the ones from the template take precedence"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04843",
- "text": " SPS/PPS parameters <strong class=\"purple\">must</strong> comply with the limits specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a> during Video Session creation"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-pSpsStd-parameter",
- "text": " If <code>pSpsStd</code> is not <code>NULL</code>, <code>pSpsStd</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>spsStdCount</code> <code>StdVideoH264SequenceParameterSet</code> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-pPpsStd-parameter",
- "text": " If <code>pPpsStd</code> is not <code>NULL</code>, <code>pPpsStd</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>ppsStdCount</code> <code>StdVideoH264PictureParameterSet</code> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-spsStdCount-arraylength",
- "text": " <code>spsStdCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-ppsStdCount-arraylength",
- "text": " <code>ppsStdCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkVideoEncodeH264VclFrameInfoEXT": {
- "(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-pReferenceFinalLists-parameter",
- "text": " If <code>pReferenceFinalLists</code> is not <code>NULL</code>, <code>pReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH264ReferenceListsEXT\">VkVideoEncodeH264ReferenceListsEXT</a> structure"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-pNaluSliceEntries-parameter",
- "text": " <code>pNaluSliceEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>naluSliceEntryCount</code> valid <a href=\"#VkVideoEncodeH264NaluSliceEXT\">VkVideoEncodeH264NaluSliceEXT</a> structures"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-pCurrentPictureInfo-parameter",
- "text": " <code>pCurrentPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264PictureInfo</code> value"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-naluSliceEntryCount-arraylength",
- "text": " <code>naluSliceEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkVideoEncodeH264NaluSliceEXT": {
- "(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264NaluSliceEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264NaluSliceEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264NaluSliceEXT-pReferenceFinalLists-parameter",
- "text": " If <code>pReferenceFinalLists</code> is not <code>NULL</code>, <code>pReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH264ReferenceListsEXT\">VkVideoEncodeH264ReferenceListsEXT</a> structure"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264NaluSliceEXT-pSliceHeaderStd-parameter",
- "text": " <code>pSliceHeaderStd</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264SliceHeader</code> value"
- }
- ]
- },
- "VkVideoEncodeH264DpbSlotInfoEXT": {
- "(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264DpbSlotInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264DpbSlotInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264DpbSlotInfoEXT-pStdReferenceInfo-parameter",
- "text": " <code>pStdReferenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264ReferenceInfo</code> value"
- }
- ]
- },
- "VkVideoEncodeH264ReferenceListsEXT": {
- "(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264ReferenceListsEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264ReferenceListsEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264ReferenceListsEXT-pReferenceList0Entries-parameter",
- "text": " If <code>referenceList0EntryCount</code> is not <code>0</code>, <code>pReferenceList0Entries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceList0EntryCount</code> valid <a href=\"#VkVideoEncodeH264DpbSlotInfoEXT\">VkVideoEncodeH264DpbSlotInfoEXT</a> structures"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264ReferenceListsEXT-pReferenceList1Entries-parameter",
- "text": " If <code>referenceList1EntryCount</code> is not <code>0</code>, <code>pReferenceList1Entries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceList1EntryCount</code> valid <a href=\"#VkVideoEncodeH264DpbSlotInfoEXT\">VkVideoEncodeH264DpbSlotInfoEXT</a> structures"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264ReferenceListsEXT-pMemMgmtCtrlOperations-parameter",
- "text": " <code>pMemMgmtCtrlOperations</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264RefMemMgmtCtrlOperations</code> value"
- }
- ]
- },
- "VkVideoEncodeH264EmitPictureParametersEXT": {
- "(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264EmitPictureParametersEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264EmitPictureParametersEXT-ppsIdEntries-parameter",
- "text": " <code>ppsIdEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>ppsIdEntryCount</code> <code>uint8_t</code> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264EmitPictureParametersEXT-ppsIdEntryCount-arraylength",
- "text": " <code>ppsIdEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkVideoEncodeH264RateControlInfoEXT": {
- "(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264RateControlInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264RateControlInfoEXT-rateControlStructure-parameter",
- "text": " <code>rateControlStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264RateControlStructureFlagBitsEXT\">VkVideoEncodeH264RateControlStructureFlagBitsEXT</a> value"
- }
- ]
- },
- "VkVideoEncodeH264RateControlLayerInfoEXT": {
- "(VK_EXT_video_encode_h264)": [
- {
- "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-rateControlMode-06474",
- "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, both <code>useMinQp</code> and <code>useMaxQp</code> must be set to <code>VK_TRUE</code>."
- },
- {
- "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-rateControlMode-06475",
- "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, the values provided in <code>minQP</code> must be identical to those provided in <code>maxQp</code>."
- },
- {
- "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-initialRcQp-parameter",
- "text": " <code>initialRcQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264QpEXT\">VkVideoEncodeH264QpEXT</a> structure"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-minQp-parameter",
- "text": " <code>minQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264QpEXT\">VkVideoEncodeH264QpEXT</a> structure"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-maxQp-parameter",
- "text": " <code>maxQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264QpEXT\">VkVideoEncodeH264QpEXT</a> structure"
- },
- {
- "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-maxFrameSize-parameter",
- "text": " <code>maxFrameSize</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264FrameSizeEXT\">VkVideoEncodeH264FrameSizeEXT</a> structure"
- }
- ]
- },
- "VkVideoEncodeH265ProfileEXT": {
- "(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265ProfileEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT</code>"
- }
- ]
- },
- "VkVideoEncodeH265CapabilitiesEXT": {
- "(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265CapabilitiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265CapabilitiesEXT-inputModeFlags-parameter",
- "text": " <code>inputModeFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeH265InputModeFlagBitsEXT\">VkVideoEncodeH265InputModeFlagBitsEXT</a> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265CapabilitiesEXT-inputModeFlags-requiredbitmask",
- "text": " <code>inputModeFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265CapabilitiesEXT-outputModeFlags-parameter",
- "text": " <code>outputModeFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeH265OutputModeFlagBitsEXT\">VkVideoEncodeH265OutputModeFlagBitsEXT</a> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265CapabilitiesEXT-outputModeFlags-requiredbitmask",
- "text": " <code>outputModeFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265CapabilitiesEXT-ctbSizes-parameter",
- "text": " <code>ctbSizes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeH265CtbSizeFlagBitsEXT\">VkVideoEncodeH265CtbSizeFlagBitsEXT</a> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265CapabilitiesEXT-ctbSizes-requiredbitmask",
- "text": " <code>ctbSizes</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265CapabilitiesEXT-transformBlockSizes-parameter",
- "text": " <code>transformBlockSizes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeH265TransformBlockSizeFlagBitsEXT\">VkVideoEncodeH265TransformBlockSizeFlagBitsEXT</a> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265CapabilitiesEXT-transformBlockSizes-requiredbitmask",
- "text": " <code>transformBlockSizes</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265CapabilitiesEXT-stdExtensionVersion-parameter",
- "text": " <code>stdExtensionVersion</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExtensionProperties\">VkExtensionProperties</a> structure"
- }
- ]
- },
- "VkVideoEncodeH265SessionCreateInfoEXT": {
- "(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265SessionCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionCreateInfoEXT-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionCreateInfoEXT-pStdExtensionVersion-parameter",
- "text": " <code>pStdExtensionVersion</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkExtensionProperties\">VkExtensionProperties</a> structure"
- }
- ]
- },
- "VkVideoEncodeH265SessionParametersCreateInfoEXT": {
- "(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersCreateInfoEXT-pParametersAddInfo-parameter",
- "text": " If <code>pParametersAddInfo</code> is not <code>NULL</code>, <code>pParametersAddInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH265SessionParametersAddInfoEXT\">VkVideoEncodeH265SessionParametersAddInfoEXT</a> structure"
- }
- ]
- },
- "VkVideoEncodeH265SessionParametersAddInfoEXT": {
- "(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pVpsStd-parameter",
- "text": " If <code>pVpsStd</code> is not <code>NULL</code>, <code>pVpsStd</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>vpsStdCount</code> <code>StdVideoH265VideoParameterSet</code> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pSpsStd-parameter",
- "text": " If <code>pSpsStd</code> is not <code>NULL</code>, <code>pSpsStd</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>spsStdCount</code> <code>StdVideoH265SequenceParameterSet</code> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pPpsStd-parameter",
- "text": " If <code>pPpsStd</code> is not <code>NULL</code>, <code>pPpsStd</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>ppsStdCount</code> <code>StdVideoH265PictureParameterSet</code> values"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-vpsStdCount-arraylength",
- "text": " <code>vpsStdCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-spsStdCount-arraylength",
- "text": " <code>spsStdCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-ppsStdCount-arraylength",
- "text": " <code>ppsStdCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-vpsStdCount-06438",
- "text": " The values of <code>vpsStdCount</code>, <code>spsStdCount</code> and <code>ppsStdCount</code> <strong class=\"purple\">must</strong> be less than or equal to the values of <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoEXT\">VkVideoEncodeH265SessionParametersCreateInfoEXT</a>::<code>maxVpsStdCount</code>, <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoEXT\">VkVideoEncodeH265SessionParametersCreateInfoEXT</a>:<code>maxSpsStdCount</code>, and <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoEXT\">VkVideoEncodeH265SessionParametersCreateInfoEXT</a>:<code>maxPpsStdCount</code>, respectively"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pVpsStd-06439",
- "text": " Each <code>StdVideoH265VideoParameterSet</code> entry in <code>pVpsStd</code> <strong class=\"purple\">must</strong> have a unique H.265 VPS ID"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pSpsStd-06440",
- "text": " Each <code>StdVideoH265SequenceParameterSet</code> entry in <code>pSpsStd</code> <strong class=\"purple\">must</strong> have a unique H.265 VPS-SPS ID pair"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pPpsStd-06441",
- "text": " Each <code>StdVideoH265PictureParameterSet</code> entry in <code>pPpsStd</code> <strong class=\"purple\">must</strong> have a unique H.265 VPS-SPS-PPS ID tuple"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06442",
- "text": " Each entry to be added <strong class=\"purple\">must</strong> have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, VPS-SPS-PPS IDs"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06443",
- "text": " Parameter entries that already exist in Video Session Parameters object with a particular VPS-SPS-PPS IDs <strong class=\"purple\">must</strong> not be replaced nor updated"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06444",
- "text": " When creating a new object using a Video Session Parameters as a template, the array&#8217;s parameters with the same VPS-SPS-PPS IDs as the ones from the template take precedence"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06445",
- "text": " VPS/SPS/PPS parameters <strong class=\"purple\">must</strong> comply with the limits specified in <a href=\"#VkVideoSessionCreateInfoKHR\">VkVideoSessionCreateInfoKHR</a> during Video Session creation"
- }
- ]
- },
- "VkVideoEncodeH265VclFrameInfoEXT": {
- "(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-pReferenceFinalLists-parameter",
- "text": " If <code>pReferenceFinalLists</code> is not <code>NULL</code>, <code>pReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH265ReferenceListsEXT\">VkVideoEncodeH265ReferenceListsEXT</a> structure"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-pNaluSliceSegmentEntries-parameter",
- "text": " <code>pNaluSliceSegmentEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>naluSliceSegmentEntryCount</code> valid <a href=\"#VkVideoEncodeH265NaluSliceSegmentEXT\">VkVideoEncodeH265NaluSliceSegmentEXT</a> structures"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-pCurrentPictureInfo-parameter",
- "text": " <code>pCurrentPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265PictureInfo</code> value"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-naluSliceSegmentEntryCount-arraylength",
- "text": " <code>naluSliceSegmentEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "VkVideoEncodeH265NaluSliceSegmentEXT": {
- "(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentEXT-pReferenceFinalLists-parameter",
- "text": " If <code>pReferenceFinalLists</code> is not <code>NULL</code>, <code>pReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeH265ReferenceListsEXT\">VkVideoEncodeH265ReferenceListsEXT</a> structure"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentEXT-pSliceSegmentHeaderStd-parameter",
- "text": " <code>pSliceSegmentHeaderStd</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265SliceSegmentHeader</code> value"
- }
- ]
- },
- "VkVideoEncodeH265DpbSlotInfoEXT": {
- "(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265DpbSlotInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265DpbSlotInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265DpbSlotInfoEXT-pStdReferenceInfo-parameter",
- "text": " <code>pStdReferenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265ReferenceInfo</code> value"
- }
- ]
- },
- "VkVideoEncodeH265ReferenceListsEXT": {
- "(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265ReferenceListsEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265ReferenceListsEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265ReferenceListsEXT-pReferenceList0Entries-parameter",
- "text": " If <code>referenceList0EntryCount</code> is not <code>0</code>, <code>pReferenceList0Entries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceList0EntryCount</code> valid <a href=\"#VkVideoEncodeH265DpbSlotInfoEXT\">VkVideoEncodeH265DpbSlotInfoEXT</a> structures"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265ReferenceListsEXT-pReferenceList1Entries-parameter",
- "text": " If <code>referenceList1EntryCount</code> is not <code>0</code>, <code>pReferenceList1Entries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>referenceList1EntryCount</code> valid <a href=\"#VkVideoEncodeH265DpbSlotInfoEXT\">VkVideoEncodeH265DpbSlotInfoEXT</a> structures"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265ReferenceListsEXT-pReferenceModifications-parameter",
- "text": " <code>pReferenceModifications</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265ReferenceModifications</code> value"
- }
- ]
- },
- "VkVideoEncodeH265EmitPictureParametersEXT": {
- "(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265EmitPictureParametersEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265EmitPictureParametersEXT-ppsIdEntries-parameter",
- "text": " If <code>ppsIdEntryCount</code> is not <code>0</code>, <code>ppsIdEntries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>ppsIdEntryCount</code> <code>uint8_t</code> values"
- }
- ]
- },
- "VkVideoEncodeH265RateControlInfoEXT": {
- "(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265RateControlInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265RateControlInfoEXT-rateControlStructure-parameter",
- "text": " <code>rateControlStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265RateControlStructureFlagBitsEXT\">VkVideoEncodeH265RateControlStructureFlagBitsEXT</a> value"
- }
- ]
- },
- "VkVideoEncodeH265RateControlLayerInfoEXT": {
- "(VK_EXT_video_encode_h265)": [
- {
- "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-rateControlMode-06476",
- "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, both <code>useMinQp</code> and <code>useMaxQp</code> must be set to <code>VK_TRUE</code>."
- },
- {
- "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-rateControlMode-06477",
- "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, the values provided in <code>minQP</code> must be identical to those provided in <code>maxQp</code>."
- },
- {
- "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-initialRcQp-parameter",
- "text": " <code>initialRcQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265QpEXT\">VkVideoEncodeH265QpEXT</a> structure"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-minQp-parameter",
- "text": " <code>minQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265QpEXT\">VkVideoEncodeH265QpEXT</a> structure"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-maxQp-parameter",
- "text": " <code>maxQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265QpEXT\">VkVideoEncodeH265QpEXT</a> structure"
- },
- {
- "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-maxFrameSize-parameter",
- "text": " <code>maxFrameSize</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265FrameSizeEXT\">VkVideoEncodeH265FrameSizeEXT</a> structure"
- }
- ]
- },
- "vkEnumerateInstanceLayerProperties": {
- "core": [
- {
- "vuid": "VUID-vkEnumerateInstanceLayerProperties-pPropertyCount-parameter",
- "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkEnumerateInstanceLayerProperties-pProperties-parameter",
- "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkLayerProperties\">VkLayerProperties</a> structures"
- }
- ]
- },
- "vkEnumerateDeviceLayerProperties": {
- "core": [
- {
- "vuid": "VUID-vkEnumerateDeviceLayerProperties-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkEnumerateDeviceLayerProperties-pPropertyCount-parameter",
- "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkEnumerateDeviceLayerProperties-pProperties-parameter",
- "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkLayerProperties\">VkLayerProperties</a> structures"
- }
- ]
- },
- "vkEnumerateInstanceExtensionProperties": {
- "core": [
- {
- "vuid": "VUID-vkEnumerateInstanceExtensionProperties-pLayerName-parameter",
- "text": " If <code>pLayerName</code> is not <code>NULL</code>, <code>pLayerName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- },
- {
- "vuid": "VUID-vkEnumerateInstanceExtensionProperties-pPropertyCount-parameter",
- "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkEnumerateInstanceExtensionProperties-pProperties-parameter",
- "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkExtensionProperties\">VkExtensionProperties</a> structures"
- }
- ]
- },
- "vkEnumerateDeviceExtensionProperties": {
- "core": [
- {
- "vuid": "VUID-vkEnumerateDeviceExtensionProperties-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkEnumerateDeviceExtensionProperties-pLayerName-parameter",
- "text": " If <code>pLayerName</code> is not <code>NULL</code>, <code>pLayerName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- },
- {
- "vuid": "VUID-vkEnumerateDeviceExtensionProperties-pPropertyCount-parameter",
- "text": " <code>pPropertyCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkEnumerateDeviceExtensionProperties-pProperties-parameter",
- "text": " If the value referenced by <code>pPropertyCount</code> is not <code>0</code>, and <code>pProperties</code> is not <code>NULL</code>, <code>pProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pPropertyCount</code> <a href=\"#VkExtensionProperties\">VkExtensionProperties</a> structures"
- }
- ]
- },
- "vkGetPhysicalDeviceFeatures": {
- "core": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceFeatures-pFeatures-parameter",
- "text": " <code>pFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceFeatures\">VkPhysicalDeviceFeatures</a> structure"
- }
- ]
- },
- "vkGetPhysicalDeviceFeatures2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceFeatures2-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceFeatures2-pFeatures-parameter",
- "text": " <code>pFeatures</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a> structure"
- }
- ]
- },
- "VkPhysicalDeviceFeatures2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFeatures2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2</code>"
- }
- ]
- },
- "VkPhysicalDeviceVulkan11Features": {
- "(VK_VERSION_1_2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceVulkan11Features-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceVulkan12Features": {
- "(VK_VERSION_1_2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceVulkan12Features-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceVulkan13Features": {
- "(VK_VERSION_1_3)": [
- {
- "vuid": "VUID-VkPhysicalDeviceVulkan13Features-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceVariablePointersFeatures": {
- "(VK_VERSION_1_1,VK_KHR_variable_pointers)": [
- {
- "vuid": "VUID-VkPhysicalDeviceVariablePointersFeatures-variablePointers-01431",
- "text": " If <code>variablePointers</code> is enabled then <code>variablePointersStorageBuffer</code> <strong class=\"purple\">must</strong> also be enabled"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceVariablePointersFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceMultiviewFeatures": {
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-multiviewGeometryShader-00580",
- "text": " If <code>multiviewGeometryShader</code> is enabled then <code>multiview</code> <strong class=\"purple\">must</strong> also be enabled"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-multiviewTessellationShader-00581",
- "text": " If <code>multiviewTessellationShader</code> is enabled then <code>multiview</code> <strong class=\"purple\">must</strong> also be enabled"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT": {
- "(VK_EXT_shader_atomic_float)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderAtomicFloatFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT": {
- "(VK_EXT_shader_atomic_float2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderAtomicInt64Features": {
- "(VK_VERSION_1_2,VK_KHR_shader_atomic_int64)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderAtomicInt64Features-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT": {
- "(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDevice8BitStorageFeatures": {
- "(VK_VERSION_1_2,VK_KHR_8bit_storage)": [
- {
- "vuid": "VUID-VkPhysicalDevice8BitStorageFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDevice16BitStorageFeatures": {
- "(VK_VERSION_1_1,VK_KHR_16bit_storage)": [
- {
- "vuid": "VUID-VkPhysicalDevice16BitStorageFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderFloat16Int8Features": {
- "(VK_VERSION_1_2,VK_KHR_shader_float16_int8)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderFloat16Int8Features-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderClockFeaturesKHR": {
- "(VK_KHR_shader_clock)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderClockFeaturesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceSamplerYcbcrConversionFeatures": {
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkPhysicalDeviceSamplerYcbcrConversionFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceProtectedMemoryFeatures": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkPhysicalDeviceProtectedMemoryFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT": {
- "(VK_EXT_blend_operation_advanced)": [
- {
- "vuid": "VUID-VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceConditionalRenderingFeaturesEXT": {
- "(VK_EXT_conditional_rendering)": [
- {
- "vuid": "VUID-VkPhysicalDeviceConditionalRenderingFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderDrawParametersFeatures": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderDrawParametersFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceMeshShaderFeaturesNV": {
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkPhysicalDeviceMeshShaderFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceDescriptorIndexingFeatures": {
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
- {
- "vuid": "VUID-VkPhysicalDeviceDescriptorIndexingFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT": {
- "(VK_EXT_vertex_attribute_divisor)": [
- {
- "vuid": "VUID-VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceASTCDecodeFeaturesEXT": {
- "(VK_EXT_astc_decode_mode)": [
- {
- "vuid": "VUID-VkPhysicalDeviceASTCDecodeFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceTransformFeedbackFeaturesEXT": {
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-VkPhysicalDeviceTransformFeedbackFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceVulkanMemoryModelFeatures": {
- "(VK_VERSION_1_2,VK_KHR_vulkan_memory_model)": [
- {
- "vuid": "VUID-VkPhysicalDeviceVulkanMemoryModelFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceInlineUniformBlockFeatures": {
- "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
- {
- "vuid": "VUID-VkPhysicalDeviceInlineUniformBlockFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV": {
- "(VK_NV_representative_fragment_test)": [
- {
- "vuid": "VUID-VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceExclusiveScissorFeaturesNV": {
- "(VK_NV_scissor_exclusive)": [
- {
- "vuid": "VUID-VkPhysicalDeviceExclusiveScissorFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceCornerSampledImageFeaturesNV": {
- "(VK_NV_corner_sampled_image)": [
- {
- "vuid": "VUID-VkPhysicalDeviceCornerSampledImageFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV": {
- "(VK_NV_compute_shader_derivatives)": [
- {
- "vuid": "VUID-VkPhysicalDeviceComputeShaderDerivativesFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV": {
- "(VK_NV_fragment_shader_barycentric)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderImageFootprintFeaturesNV": {
- "(VK_NV_shader_image_footprint)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderImageFootprintFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceShadingRateImageFeaturesNV": {
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShadingRateImageFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceFragmentDensityMapFeaturesEXT": {
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentDensityMapFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT": {
- "(VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentDensityMap2FeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM": {
- "(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM</code>"
- }
- ]
- },
- "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI": {
- "(VK_HUAWEI_invocation_mask)": [
- {
- "vuid": "VUID-VkPhysicalDeviceInvocationMaskFeaturesHUAWEI-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI</code>"
- }
- ]
- },
- "VkPhysicalDeviceScalarBlockLayoutFeatures": {
- "(VK_VERSION_1_2,VK_EXT_scalar_block_layout)": [
- {
- "vuid": "VUID-VkPhysicalDeviceScalarBlockLayoutFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceUniformBufferStandardLayoutFeatures": {
- "(VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout)": [
- {
- "vuid": "VUID-VkPhysicalDeviceUniformBufferStandardLayoutFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceDepthClipEnableFeaturesEXT": {
- "(VK_EXT_depth_clip_enable)": [
- {
- "vuid": "VUID-VkPhysicalDeviceDepthClipEnableFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceMemoryPriorityFeaturesEXT": {
- "(VK_EXT_memory_priority)": [
- {
- "vuid": "VUID-VkPhysicalDeviceMemoryPriorityFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceBufferDeviceAddressFeatures": {
- "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [
- {
- "vuid": "VUID-VkPhysicalDeviceBufferDeviceAddressFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT": {
- "(VK_EXT_buffer_device_address)": [
- {
- "vuid": "VUID-VkPhysicalDeviceBufferDeviceAddressFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV": {
- "(VK_NV_dedicated_allocation_image_aliasing)": [
- {
- "vuid": "VUID-VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceImagelessFramebufferFeatures": {
- "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [
- {
- "vuid": "VUID-VkPhysicalDeviceImagelessFramebufferFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT": {
- "(VK_EXT_fragment_shader_interlock)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceCooperativeMatrixFeaturesNV": {
- "(VK_NV_cooperative_matrix)": [
- {
- "vuid": "VUID-VkPhysicalDeviceCooperativeMatrixFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT": {
- "(VK_EXT_ycbcr_image_arrays)": [
- {
- "vuid": "VUID-VkPhysicalDeviceYcbcrImageArraysFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures": {
- "(VK_VERSION_1_1)+(VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceHostQueryResetFeatures": {
- "(VK_VERSION_1_2,VK_EXT_host_query_reset)": [
- {
- "vuid": "VUID-VkPhysicalDeviceHostQueryResetFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL": {
- "(VK_INTEL_shader_integer_functions2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL</code>"
- }
- ]
- },
- "VkPhysicalDeviceCoverageReductionModeFeaturesNV": {
- "(VK_NV_coverage_reduction_mode)": [
- {
- "vuid": "VUID-VkPhysicalDeviceCoverageReductionModeFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceTimelineSemaphoreFeatures": {
- "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-VkPhysicalDeviceTimelineSemaphoreFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceIndexTypeUint8FeaturesEXT": {
- "(VK_EXT_index_type_uint8)": [
- {
- "vuid": "VUID-VkPhysicalDeviceIndexTypeUint8FeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT": {
- "(VK_EXT_primitive_topology_list_restart)": [
- {
- "vuid": "VUID-VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV": {
- "(VK_NV_shader_sm_builtins)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderSMBuiltinsFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures": {
- "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
- {
- "vuid": "VUID-VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR": {
- "(VK_KHR_pipeline_executable_properties)": [
- {
- "vuid": "VUID-VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures": {
- "(VK_VERSION_1_3,VK_EXT_shader_demote_to_helper_invocation)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT": {
- "(VK_EXT_texel_buffer_alignment)": [
- {
- "vuid": "VUID-VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceTextureCompressionASTCHDRFeatures": {
- "(VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr)": [
- {
- "vuid": "VUID-VkPhysicalDeviceTextureCompressionASTCHDRFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceLineRasterizationFeaturesEXT": {
- "(VK_EXT_line_rasterization)": [
- {
- "vuid": "VUID-VkPhysicalDeviceLineRasterizationFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceSubgroupSizeControlFeatures": {
- "(VK_VERSION_1_3,VK_EXT_subgroup_size_control)": [
- {
- "vuid": "VUID-VkPhysicalDeviceSubgroupSizeControlFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceCoherentMemoryFeaturesAMD": {
- "(VK_AMD_device_coherent_memory)": [
- {
- "vuid": "VUID-VkPhysicalDeviceCoherentMemoryFeaturesAMD-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD</code>"
- }
- ]
- },
- "VkPhysicalDeviceAccelerationStructureFeaturesKHR": {
- "(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkPhysicalDeviceAccelerationStructureFeaturesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceRayTracingPipelineFeaturesKHR": {
- "(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03575",
- "text": " If <code>rayTracingPipelineShaderGroupHandleCaptureReplayMixed</code> is <code>VK_TRUE</code>, <code>rayTracingPipelineShaderGroupHandleCaptureReplay</code> <strong class=\"purple\">must</strong> also be <code>VK_TRUE</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceRayQueryFeaturesKHR": {
- "(VK_KHR_ray_query)": [
- {
- "vuid": "VUID-VkPhysicalDeviceRayQueryFeaturesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT": {
- "(VK_EXT_extended_dynamic_state)": [
- {
- "vuid": "VUID-VkPhysicalDeviceExtendedDynamicStateFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT": {
- "(VK_EXT_extended_dynamic_state2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceExtendedDynamicState2FeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceDiagnosticsConfigFeaturesNV": {
- "(VK_NV_device_diagnostics_config)": [
- {
- "vuid": "VUID-VkPhysicalDeviceDiagnosticsConfigFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT": {
- "(VK_EXT_device_memory_report)": [
- {
- "vuid": "VUID-VkPhysicalDeviceDeviceMemoryReportFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR": {
- "(VK_EXT_global_priority_query,VK_KHR_global_priority)": [
- {
- "vuid": "VUID-VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDevicePipelineCreationCacheControlFeatures": {
- "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
- {
- "vuid": "VUID-VkPhysicalDevicePipelineCreationCacheControlFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures": {
- "(VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory)": [
- {
- "vuid": "VUID-VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDevicePrivateDataFeatures": {
- "(VK_VERSION_1_3,VK_EXT_private_data)": [
- {
- "vuid": "VUID-VkPhysicalDevicePrivateDataFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR": {
- "(VK_KHR_shader_subgroup_uniform_control_flow)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceRobustness2FeaturesEXT": {
- "(VK_EXT_robustness2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000",
- "text": " If <code>robustBufferAccess2</code> is enabled then <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> <strong class=\"purple\">must</strong> also be enabled"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceRobustness2FeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceImageRobustnessFeatures": {
- "(VK_VERSION_1_3,VK_EXT_image_robustness)": [
- {
- "vuid": "VUID-VkPhysicalDeviceImageRobustnessFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderTerminateInvocationFeatures": {
- "(VK_VERSION_1_3,VK_KHR_shader_terminate_invocation)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderTerminateInvocationFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceCustomBorderColorFeaturesEXT": {
- "(VK_EXT_custom_border_color)": [
- {
- "vuid": "VUID-VkPhysicalDeviceCustomBorderColorFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT": {
- "(VK_EXT_border_color_swizzle)": [
- {
- "vuid": "VUID-VkPhysicalDeviceBorderColorSwizzleFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDevicePortabilitySubsetFeaturesKHR": {
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-VkPhysicalDevicePortabilitySubsetFeaturesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDevicePerformanceQueryFeaturesKHR": {
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-VkPhysicalDevicePerformanceQueryFeaturesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDevice4444FormatsFeaturesEXT": {
- "(VK_EXT_4444_formats)": [
- {
- "vuid": "VUID-VkPhysicalDevice4444FormatsFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE": {
- "(VK_VALVE_mutable_descriptor_type)": [
- {
- "vuid": "VUID-VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE</code>"
- }
- ]
- },
- "VkPhysicalDeviceDepthClipControlFeaturesEXT": {
- "(VK_EXT_depth_clip_control)": [
- {
- "vuid": "VUID-VkPhysicalDeviceDepthClipControlFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR": {
- "(VK_KHR_workgroup_memory_explicit_layout)": [
- {
- "vuid": "VUID-VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceSynchronization2Features": {
- "(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceSynchronization2Features-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT": {
- "(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceFragmentShadingRateFeaturesKHR": {
- "(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateFeaturesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV": {
- "(VK_NV_fragment_shading_rate_enums)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceInheritedViewportScissorFeaturesNV": {
- "(VK_NV_inherited_viewport_scissor)": [
- {
- "vuid": "VUID-VkPhysicalDeviceInheritedViewportScissorFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT": {
- "(VK_EXT_ycbcr_2plane_444_formats)": [
- {
- "vuid": "VUID-VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceColorWriteEnableFeaturesEXT": {
- "(VK_EXT_color_write_enable)": [
- {
- "vuid": "VUID-VkPhysicalDeviceColorWriteEnableFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceProvokingVertexFeaturesEXT": {
- "(VK_EXT_provoking_vertex)": [
- {
- "vuid": "VUID-VkPhysicalDeviceProvokingVertexFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT": {
- "(VK_EXT_pageable_device_local_memory)": [
- {
- "vuid": "VUID-VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceMultiDrawFeaturesEXT": {
- "(VK_EXT_multi_draw)": [
- {
- "vuid": "VUID-VkPhysicalDeviceMultiDrawFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV": {
- "(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-VkPhysicalDeviceRayTracingMotionBlurFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI": {
- "(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-VkPhysicalDeviceSubpassShadingFeaturesHUAWEI-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI</code>"
- }
- ]
- },
- "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV": {
- "(VK_NV_external_memory_rdma)": [
- {
- "vuid": "VUID-VkPhysicalDeviceExternalMemoryRDMAFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDevicePresentIdFeaturesKHR": {
- "(VK_KHR_present_id)": [
- {
- "vuid": "VUID-VkPhysicalDevicePresentIdFeaturesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDevicePresentWaitFeaturesKHR": {
- "(VK_KHR_present_wait)": [
- {
- "vuid": "VUID-VkPhysicalDevicePresentWaitFeaturesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderIntegerDotProductFeatures": {
- "(VK_VERSION_1_3,VK_KHR_shader_integer_dot_product)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderIntegerDotProductFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceMaintenance4Features": {
- "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-VkPhysicalDeviceMaintenance4Features-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceDynamicRenderingFeatures": {
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
- {
- "vuid": "VUID-VkPhysicalDeviceDynamicRenderingFeatures-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES</code>"
- }
- ]
- },
- "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT": {
- "(VK_EXT_rgba10x6_formats)": [
- {
- "vuid": "VUID-VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceImageViewMinLodFeaturesEXT": {
- "(VK_EXT_image_view_min_lod)": [
- {
- "vuid": "VUID-VkPhysicalDeviceImageViewMinLodFeaturesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM": {
- "(VK_ARM_rasterization_order_attachment_access)": [
- {
- "vuid": "VUID-VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM</code>"
- }
- ]
- },
- "VkPhysicalDeviceLinearColorAttachmentFeaturesNV": {
- "(VK_NV_linear_color_attachment)": [
- {
- "vuid": "VUID-VkPhysicalDeviceLinearColorAttachmentFeaturesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV</code>"
- }
- ]
- },
- "VkPhysicalDevicePushDescriptorPropertiesKHR": {
- "(VK_KHR_push_descriptor)": [
- {
- "vuid": "VUID-VkPhysicalDevicePushDescriptorPropertiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceMultiviewProperties": {
- "(VK_VERSION_1_1,VK_KHR_multiview)": [
- {
- "vuid": "VUID-VkPhysicalDeviceMultiviewProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceFloatControlsProperties": {
- "(VK_VERSION_1_2,VK_KHR_shader_float_controls)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFloatControlsProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceDiscardRectanglePropertiesEXT": {
- "(VK_EXT_discard_rectangles)": [
- {
- "vuid": "VUID-VkPhysicalDeviceDiscardRectanglePropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceSampleLocationsPropertiesEXT": {
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-VkPhysicalDeviceSampleLocationsPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceExternalMemoryHostPropertiesEXT": {
- "(VK_EXT_external_memory_host)": [
- {
- "vuid": "VUID-VkPhysicalDeviceExternalMemoryHostPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX": {
- "(VK_NVX_multiview_per_view_attributes)": [
- {
- "vuid": "VUID-VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX</code>"
- }
- ]
- },
- "VkPhysicalDevicePointClippingProperties": {
- "(VK_VERSION_1_1,VK_KHR_maintenance2)": [
- {
- "vuid": "VUID-VkPhysicalDevicePointClippingProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceSubgroupProperties": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkPhysicalDeviceSubgroupProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceSubgroupSizeControlProperties": {
- "(VK_VERSION_1_1)+(VK_VERSION_1_3,VK_EXT_subgroup_size_control)": [
- {
- "vuid": "VUID-VkPhysicalDeviceSubgroupSizeControlProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT": {
- "(VK_EXT_blend_operation_advanced)": [
- {
- "vuid": "VUID-VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT": {
- "(VK_EXT_vertex_attribute_divisor)": [
- {
- "vuid": "VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceSamplerFilterMinmaxProperties": {
- "(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [
- {
- "vuid": "VUID-VkPhysicalDeviceSamplerFilterMinmaxProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceProtectedMemoryProperties": {
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-VkPhysicalDeviceProtectedMemoryProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceMaintenance3Properties": {
- "(VK_VERSION_1_1,VK_KHR_maintenance3)": [
- {
- "vuid": "VUID-VkPhysicalDeviceMaintenance3Properties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceMaintenance4Properties": {
- "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-VkPhysicalDeviceMaintenance4Properties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceMeshShaderPropertiesNV": {
- "(VK_NV_mesh_shader)": [
- {
- "vuid": "VUID-VkPhysicalDeviceMeshShaderPropertiesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceDescriptorIndexingProperties": {
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
- {
- "vuid": "VUID-VkPhysicalDeviceDescriptorIndexingProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceInlineUniformBlockProperties": {
- "(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
- {
- "vuid": "VUID-VkPhysicalDeviceInlineUniformBlockProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceConservativeRasterizationPropertiesEXT": {
- "(VK_EXT_conservative_rasterization)": [
- {
- "vuid": "VUID-VkPhysicalDeviceConservativeRasterizationPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceFragmentDensityMapPropertiesEXT": {
- "(VK_EXT_fragment_density_map)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentDensityMapPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT": {
- "(VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentDensityMap2PropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM": {
- "(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderCorePropertiesAMD": {
- "(VK_AMD_shader_core_properties)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderCorePropertiesAMD-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderCoreProperties2AMD": {
- "(VK_AMD_shader_core_properties2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderCoreProperties2AMD-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD</code>"
- }
- ]
- },
- "VkPhysicalDeviceDepthStencilResolveProperties": {
- "(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [
- {
- "vuid": "VUID-VkPhysicalDeviceDepthStencilResolveProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDevicePerformanceQueryPropertiesKHR": {
- "(VK_KHR_performance_query)": [
- {
- "vuid": "VUID-VkPhysicalDevicePerformanceQueryPropertiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceShadingRateImagePropertiesNV": {
- "(VK_NV_shading_rate_image)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShadingRateImagePropertiesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceTransformFeedbackPropertiesEXT": {
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-VkPhysicalDeviceTransformFeedbackPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceRayTracingPropertiesNV": {
- "(VK_NV_ray_tracing)": [
- {
- "vuid": "VUID-VkPhysicalDeviceRayTracingPropertiesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceAccelerationStructurePropertiesKHR": {
- "(VK_KHR_acceleration_structure)": [
- {
- "vuid": "VUID-VkPhysicalDeviceAccelerationStructurePropertiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceRayTracingPipelinePropertiesKHR": {
- "(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-VkPhysicalDeviceRayTracingPipelinePropertiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceCooperativeMatrixPropertiesNV": {
- "(VK_NV_cooperative_matrix)": [
- {
- "vuid": "VUID-VkPhysicalDeviceCooperativeMatrixPropertiesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV": {
- "(VK_NV_shader_sm_builtins)": [
- {
- "vuid": "VUID-VkPhysicalDeviceShaderSMBuiltinsPropertiesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV</code>"
- }
- ]
- },
- "VkPhysicalDeviceTexelBufferAlignmentProperties": {
- "(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)": [
- {
- "vuid": "VUID-VkPhysicalDeviceTexelBufferAlignmentProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceTimelineSemaphoreProperties": {
- "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
- {
- "vuid": "VUID-VkPhysicalDeviceTimelineSemaphoreProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceLineRasterizationPropertiesEXT": {
- "(VK_EXT_line_rasterization)": [
- {
- "vuid": "VUID-VkPhysicalDeviceLineRasterizationPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceRobustness2PropertiesEXT": {
- "(VK_EXT_robustness2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceRobustness2PropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV": {
- "(VK_NV_device_generated_commands)": [
- {
- "vuid": "VUID-VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV</code>"
- }
- ]
- },
- "VkPhysicalDevicePortabilitySubsetPropertiesKHR": {
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-VkPhysicalDevicePortabilitySubsetPropertiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceFragmentShadingRatePropertiesKHR": {
- "(VK_KHR_fragment_shading_rate)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentShadingRatePropertiesKHR-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR</code>"
- }
- ]
- },
- "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV": {
- "(VK_NV_fragment_shading_rate_enums)": [
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-maxFragmentShadingRateInvocationCount-parameter",
- "text": " <code>maxFragmentShadingRateInvocationCount</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
- }
- ]
- },
- "VkPhysicalDeviceCustomBorderColorPropertiesEXT": {
- "(VK_EXT_custom_border_color)": [
- {
- "vuid": "VUID-VkPhysicalDeviceCustomBorderColorPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceProvokingVertexPropertiesEXT": {
- "(VK_EXT_provoking_vertex)": [
- {
- "vuid": "VUID-VkPhysicalDeviceProvokingVertexPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT</code>"
- }
- ]
- },
- "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI": {
- "(VK_HUAWEI_subpass_shading)": [
- {
- "vuid": "VUID-VkPhysicalDeviceSubpassShadingPropertiesHUAWEI-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI</code>"
- }
- ]
- },
- "VkPhysicalDeviceMultiDrawPropertiesEXT": {
- "(VK_EXT_multi_draw)": [
- {
- "vuid": "VUID-VkPhysicalDeviceMultiDrawPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceMultisamplePropertiesEXT": {
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-samples-parameter",
- "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-pMultisampleProperties-parameter",
- "text": " <code>pMultisampleProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a> structure"
- }
- ]
- },
- "VkMultisamplePropertiesEXT": {
- "(VK_EXT_sample_locations)": [
- {
- "vuid": "VUID-VkMultisamplePropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT</code>"
- },
- {
- "vuid": "VUID-VkMultisamplePropertiesEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceFormatProperties": {
- "core": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-pFormatProperties-parameter",
- "text": " <code>pFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFormatProperties\">VkFormatProperties</a> structure"
- }
- ]
- },
- "vkGetPhysicalDeviceFormatProperties2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-pFormatProperties-parameter",
- "text": " <code>pFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFormatProperties2\">VkFormatProperties2</a> structure"
- }
- ]
- },
- "VkFormatProperties2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-VkFormatProperties2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2</code>"
- },
- {
- "vuid": "VUID-VkFormatProperties2-pNext-pNext",
- "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=\"#VkDrmFormatModifierPropertiesList2EXT\">VkDrmFormatModifierPropertiesList2EXT</a>, <a href=\"#VkDrmFormatModifierPropertiesListEXT\">VkDrmFormatModifierPropertiesListEXT</a>, <a href=\"#VkFormatProperties3\">VkFormatProperties3</a>, <a href=\"#VkVideoDecodeH264ProfileEXT\">VkVideoDecodeH264ProfileEXT</a>, <a href=\"#VkVideoDecodeH265ProfileEXT\">VkVideoDecodeH265ProfileEXT</a>, <a href=\"#VkVideoEncodeH264ProfileEXT\">VkVideoEncodeH264ProfileEXT</a>, <a href=\"#VkVideoEncodeH265ProfileEXT\">VkVideoEncodeH265ProfileEXT</a>, <a href=\"#VkVideoProfileKHR\">VkVideoProfileKHR</a>, or <a href=\"#VkVideoProfilesKHR\">VkVideoProfilesKHR</a>"
- },
- {
- "vuid": "VUID-VkFormatProperties2-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
- }
- ]
- },
- "VkDrmFormatModifierPropertiesListEXT": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkDrmFormatModifierPropertiesListEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT</code>"
- }
- ]
- },
- "VkDrmFormatModifierPropertiesList2EXT": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-VkDrmFormatModifierPropertiesList2EXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT</code>"
- }
- ]
- },
- "VkFormatProperties3": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-VkFormatProperties3-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceImageFormatProperties": {
- "(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-02248",
- "text": " <code>tiling</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>. (Use <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a> instead)"
- }
- ],
- "core": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-parameter",
- "text": " <code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-usage-parameter",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-usage-requiredbitmask",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-pImageFormatProperties-parameter",
- "text": " <code>pImageFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageFormatProperties\">VkImageFormatProperties</a> structure"
- }
- ]
- },
- "vkGetPhysicalDeviceExternalImageFormatPropertiesNV": {
- "(VK_NV_external_memory_capabilities)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-tiling-parameter",
- "text": " <code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-parameter",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-requiredbitmask",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-parameter",
- "text": " <code>externalHandleType</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalMemoryHandleTypeFlagBitsNV\">VkExternalMemoryHandleTypeFlagBitsNV</a> values"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-pExternalImageFormatProperties-parameter",
- "text": " <code>pExternalImageFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExternalImageFormatPropertiesNV\">VkExternalImageFormatPropertiesNV</a> structure"
- }
- ]
- },
- "vkGetPhysicalDeviceImageFormatProperties2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-01868",
- "text": " If the <code>pNext</code> chain of <code>pImageFormatProperties</code> includes a <a href=\"#VkAndroidHardwareBufferUsageANDROID\">VkAndroidHardwareBufferUsageANDROID</a> structure, the <code>pNext</code> chain of <code>pImageFormatInfo</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkPhysicalDeviceExternalImageFormatInfo\">VkPhysicalDeviceExternalImageFormatInfo</a> structure with <code>handleType</code> set to <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatInfo-parameter",
- "text": " <code>pImageFormatInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceImageFormatInfo2\">VkPhysicalDeviceImageFormatInfo2</a> structure"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatProperties-parameter",
- "text": " <code>pImageFormatProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImageFormatProperties2\">VkImageFormatProperties2</a> structure"
- }
- ]
- },
- "VkPhysicalDeviceImageFormatInfo2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02249",
- "text": " <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code> if and only if the <code>pNext</code> chain includes <a href=\"#VkPhysicalDeviceImageDrmFormatModifierInfoEXT\">VkPhysicalDeviceImageDrmFormatModifierInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02313",
- "text": " If <code>tiling</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code> and <code>flags</code> contains <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a> structure with non-zero <code>viewFormatCount</code>"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-pNext-pNext",
- "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=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>, <a href=\"#VkImageStencilUsageCreateInfo\">VkImageStencilUsageCreateInfo</a>, <a href=\"#VkPhysicalDeviceExternalImageFormatInfo\">VkPhysicalDeviceExternalImageFormatInfo</a>, <a href=\"#VkPhysicalDeviceImageDrmFormatModifierInfoEXT\">VkPhysicalDeviceImageDrmFormatModifierInfoEXT</a>, or <a href=\"#VkPhysicalDeviceImageViewImageFormatInfoEXT\">VkPhysicalDeviceImageViewImageFormatInfoEXT</a>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-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-VkPhysicalDeviceImageFormatInfo2-format-parameter",
- "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-type-parameter",
- "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageType\">VkImageType</a> value"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-tiling-parameter",
- "text": " <code>tiling</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageTiling\">VkImageTiling</a> value"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-usage-parameter",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageUsageFlagBits\">VkImageUsageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-usage-requiredbitmask",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageCreateFlagBits\">VkImageCreateFlagBits</a> values"
- }
- ]
- },
- "VkImageFormatProperties2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
- {
- "vuid": "VUID-VkImageFormatProperties2-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2</code>"
- },
- {
- "vuid": "VUID-VkImageFormatProperties2-pNext-pNext",
- "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=\"#VkAndroidHardwareBufferUsageANDROID\">VkAndroidHardwareBufferUsageANDROID</a>, <a href=\"#VkExternalImageFormatProperties\">VkExternalImageFormatProperties</a>, <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>, <a href=\"#VkSamplerYcbcrConversionImageFormatProperties\">VkSamplerYcbcrConversionImageFormatProperties</a>, or <a href=\"#VkTextureLODGatherFormatPropertiesAMD\">VkTextureLODGatherFormatPropertiesAMD</a>"
- },
- {
- "vuid": "VUID-VkImageFormatProperties2-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
- }
- ]
- },
- "VkTextureLODGatherFormatPropertiesAMD": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_AMD_texture_gather_bias_lod)": [
- {
- "vuid": "VUID-VkTextureLODGatherFormatPropertiesAMD-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD</code>"
- }
- ]
- },
- "VkPhysicalDeviceExternalImageFormatInfo": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [
- {
- "vuid": "VUID-VkPhysicalDeviceExternalImageFormatInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceExternalImageFormatInfo-handleType-parameter",
- "text": " If <code>handleType</code> is not <code>0</code>, <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
- }
- ]
- },
- "VkExternalImageFormatProperties": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [
- {
- "vuid": "VUID-VkExternalImageFormatProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES</code>"
- }
- ]
- },
- "VkPhysicalDeviceImageDrmFormatModifierInfoEXT": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)": [
- {
- "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02314",
- "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, then <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueFamilyIndexCount</code> <code>uint32_t</code> values"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02315",
- "text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, then <code>queueFamilyIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02316",
- "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 the <code>pQueueFamilyPropertyCount</code> returned by <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties2\">vkGetPhysicalDeviceQueueFamilyProperties2</a> for the <code>physicalDevice</code> that was used to create <code>device</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-parameter",
- "text": " <code>sharingMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSharingMode\">VkSharingMode</a> value"
- }
- ]
- },
- "VkSamplerYcbcrConversionImageFormatProperties": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
- {
- "vuid": "VUID-VkSamplerYcbcrConversionImageFormatProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES</code>"
- }
- ]
- },
- "VkAndroidHardwareBufferUsageANDROID": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
- {
- "vuid": "VUID-VkAndroidHardwareBufferUsageANDROID-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID</code>"
- }
- ]
- },
- "VkPhysicalDeviceImageViewImageFormatInfoEXT": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-imageViewType-parameter",
- "text": " <code>imageViewType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageViewType\">VkImageViewType</a> value"
- }
- ]
- },
- "VkFilterCubicImageViewImageFormatPropertiesEXT": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_filter_cubic)": [
- {
- "vuid": "VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT</code>"
- },
- {
- "vuid": "VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-pNext-02627",
- "text": " If the <code>pNext</code> chain of the <a href=\"#VkImageFormatProperties2\">VkImageFormatProperties2</a> structure includes a <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a> structure, the <code>pNext</code> chain of the <a href=\"#VkPhysicalDeviceImageFormatInfo2\">VkPhysicalDeviceImageFormatInfo2</a> structure <strong class=\"purple\">must</strong> include a <a href=\"#VkPhysicalDeviceImageViewImageFormatInfoEXT\">VkPhysicalDeviceImageViewImageFormatInfoEXT</a> structure with an <code>imageViewType</code> that is compatible with <code>imageType</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceExternalBufferProperties": {
- "(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferInfo-parameter",
- "text": " <code>pExternalBufferInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceExternalBufferInfo\">VkPhysicalDeviceExternalBufferInfo</a> structure"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferProperties-parameter",
- "text": " <code>pExternalBufferProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExternalBufferProperties\">VkExternalBufferProperties</a> structure"
- }
- ]
- },
- "VkPhysicalDeviceExternalBufferInfo": {
- "(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [
- {
- "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBufferCreateFlagBits\">VkBufferCreateFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-usage-parameter",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBufferUsageFlagBits\">VkBufferUsageFlagBits</a> values"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-usage-requiredbitmask",
- "text": " <code>usage</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a> value"
- }
- ]
- },
- "VkExternalBufferProperties": {
- "(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [
- {
- "vuid": "VUID-VkExternalBufferProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES</code>"
- },
- {
- "vuid": "VUID-VkExternalBufferProperties-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceExternalSemaphoreProperties": {
- "(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreInfo-parameter",
- "text": " <code>pExternalSemaphoreInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceExternalSemaphoreInfo\">VkPhysicalDeviceExternalSemaphoreInfo</a> structure"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreProperties-parameter",
- "text": " <code>pExternalSemaphoreProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a> structure"
- }
- ]
- },
- "VkPhysicalDeviceExternalSemaphoreInfo": {
- "(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)": [
- {
- "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-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=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-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-VkPhysicalDeviceExternalSemaphoreInfo-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> value"
- }
- ]
- },
- "VkExternalSemaphoreProperties": {
- "(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)": [
- {
- "vuid": "VUID-VkExternalSemaphoreProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES</code>"
- },
- {
- "vuid": "VUID-VkExternalSemaphoreProperties-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceExternalFenceProperties": {
- "(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceInfo-parameter",
- "text": " <code>pExternalFenceInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceExternalFenceInfo\">VkPhysicalDeviceExternalFenceInfo</a> structure"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceProperties-parameter",
- "text": " <code>pExternalFenceProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkExternalFenceProperties\">VkExternalFenceProperties</a> structure"
- }
- ]
- },
- "VkPhysicalDeviceExternalFenceInfo": {
- "(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)": [
- {
- "vuid": "VUID-VkPhysicalDeviceExternalFenceInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceExternalFenceInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceExternalFenceInfo-handleType-parameter",
- "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> value"
- }
- ]
- },
- "VkExternalFenceProperties": {
- "(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)": [
- {
- "vuid": "VUID-VkExternalFenceProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES</code>"
- },
- {
- "vuid": "VUID-VkExternalFenceProperties-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT": {
- "(VK_EXT_calibrated_timestamps)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomainCount-parameter",
- "text": " <code>pTimeDomainCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomains-parameter",
- "text": " If the value referenced by <code>pTimeDomainCount</code> is not <code>0</code>, and <code>pTimeDomains</code> is not <code>NULL</code>, <code>pTimeDomains</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pTimeDomainCount</code> <a href=\"#VkTimeDomainEXT\">VkTimeDomainEXT</a> values"
- }
- ]
- },
- "vkSetDebugUtilsObjectNameEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02587",
- "text": " <code>pNameInfo-&gt;objectType</code> <strong class=\"purple\">must</strong> not be <code>VK_OBJECT_TYPE_UNKNOWN</code>"
- },
- {
- "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02588",
- "text": " <code>pNameInfo-&gt;objectHandle</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-parameter",
- "text": " <code>pNameInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsObjectNameInfoEXT\">VkDebugUtilsObjectNameInfoEXT</a> structure"
- }
- ]
- },
- "VkDebugUtilsObjectNameInfoEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02589",
- "text": " If <code>objectType</code> is <code>VK_OBJECT_TYPE_UNKNOWN</code>, <code>objectHandle</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02590",
- "text": " If <code>objectType</code> is not <code>VK_OBJECT_TYPE_UNKNOWN</code>, <code>objectHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> or a valid Vulkan handle of the type associated with <code>objectType</code> as defined in the <a href=\"#debugging-object-types\"><code>VkObjectType</code> and Vulkan Handle Relationship</a> table"
- },
- {
- "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-objectType-parameter",
- "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkObjectType\">VkObjectType</a> value"
- },
- {
- "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-pObjectName-parameter",
- "text": " If <code>pObjectName</code> is not <code>NULL</code>, <code>pObjectName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- }
- ]
- },
- "vkSetDebugUtilsObjectTagEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-pTagInfo-parameter",
- "text": " <code>pTagInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsObjectTagInfoEXT\">VkDebugUtilsObjectTagInfoEXT</a> structure"
- }
- ]
- },
- "VkDebugUtilsObjectTagInfoEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-objectType-01908",
- "text": " <code>objectType</code> <strong class=\"purple\">must</strong> not be <code>VK_OBJECT_TYPE_UNKNOWN</code>"
- },
- {
- "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01910",
- "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\"><code>VkObjectType</code> and Vulkan Handle Relationship</a> table"
- },
- {
- "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-objectType-parameter",
- "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkObjectType\">VkObjectType</a> value"
- },
- {
- "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-pTag-parameter",
- "text": " <code>pTag</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>tagSize</code> bytes"
- },
- {
- "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-tagSize-arraylength",
- "text": " <code>tagSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkQueueBeginDebugUtilsLabelEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameter",
- "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
- },
- {
- "vuid": "VUID-vkQueueBeginDebugUtilsLabelEXT-pLabelInfo-parameter",
- "text": " <code>pLabelInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structure"
- }
- ]
- },
- "VkDebugUtilsLabelEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-VkDebugUtilsLabelEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT</code>"
- },
- {
- "vuid": "VUID-VkDebugUtilsLabelEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDebugUtilsLabelEXT-pLabelName-parameter",
- "text": " <code>pLabelName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- }
- ]
- },
- "vkQueueEndDebugUtilsLabelEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-vkQueueEndDebugUtilsLabelEXT-None-01911",
- "text": " There <strong class=\"purple\">must</strong> be an outstanding <code>vkQueueBeginDebugUtilsLabelEXT</code> command prior to the <code>vkQueueEndDebugUtilsLabelEXT</code> on the queue"
- },
- {
- "vuid": "VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameter",
- "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
- }
- ]
- },
- "vkQueueInsertDebugUtilsLabelEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameter",
- "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
- },
- {
- "vuid": "VUID-vkQueueInsertDebugUtilsLabelEXT-pLabelInfo-parameter",
- "text": " <code>pLabelInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structure"
- }
- ]
- },
- "vkCmdBeginDebugUtilsLabelEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-pLabelInfo-parameter",
- "text": " <code>pLabelInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structure"
- },
- {
- "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- }
- ]
- },
- "vkCmdEndDebugUtilsLabelEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912",
- "text": " There <strong class=\"purple\">must</strong> be an outstanding <code>vkCmdBeginDebugUtilsLabelEXT</code> command prior to the <code>vkCmdEndDebugUtilsLabelEXT</code> on the queue that <code>commandBuffer</code> is submitted to"
- },
- {
- "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01913",
- "text": " If <code>commandBuffer</code> is a secondary command buffer, there <strong class=\"purple\">must</strong> be an outstanding <code>vkCmdBeginDebugUtilsLabelEXT</code> command recorded to <code>commandBuffer</code> that has not previously been ended by a call to <code>vkCmdEndDebugUtilsLabelEXT</code>"
- },
- {
- "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- }
- ]
- },
- "vkCmdInsertDebugUtilsLabelEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-pLabelInfo-parameter",
- "text": " <code>pLabelInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structure"
- },
- {
- "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- }
- ]
- },
- "vkCreateDebugUtilsMessengerEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsMessengerCreateInfoEXT\">VkDebugUtilsMessengerCreateInfoEXT</a> structure"
- },
- {
- "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-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"
- },
- {
- "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-pMessenger-parameter",
- "text": " <code>pMessenger</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDebugUtilsMessengerEXT\">VkDebugUtilsMessengerEXT</a> handle"
- }
- ]
- },
- "VkDebugUtilsMessengerCreateInfoEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-01914",
- "text": " <code>pfnUserCallback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#PFN_vkDebugUtilsMessengerCallbackEXT\">PFN_vkDebugUtilsMessengerCallbackEXT</a>"
- },
- {
- "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-parameter",
- "text": " <code>messageSeverity</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugUtilsMessageSeverityFlagBitsEXT\">VkDebugUtilsMessageSeverityFlagBitsEXT</a> values"
- },
- {
- "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-requiredbitmask",
- "text": " <code>messageSeverity</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-parameter",
- "text": " <code>messageType</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugUtilsMessageTypeFlagBitsEXT\">VkDebugUtilsMessageTypeFlagBitsEXT</a> values"
- },
- {
- "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-requiredbitmask",
- "text": " <code>messageType</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-parameter",
- "text": " <code>pfnUserCallback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#PFN_vkDebugUtilsMessengerCallbackEXT\">PFN_vkDebugUtilsMessengerCallbackEXT</a> value"
- }
- ]
- },
- "PFN_vkDebugUtilsMessengerCallbackEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-PFN_vkDebugUtilsMessengerCallbackEXT-None-04769",
- "text": " The callback <strong class=\"purple\">must</strong> not make calls to any Vulkan commands"
- }
- ]
- },
- "VkDebugUtilsMessengerCallbackDataEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT</code>"
- },
- {
- "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-flags-zerobitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
- },
- {
- "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessageIdName-parameter",
- "text": " If <code>pMessageIdName</code> is not <code>NULL</code>, <code>pMessageIdName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- },
- {
- "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessage-parameter",
- "text": " <code>pMessage</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- },
- {
- "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pQueueLabels-parameter",
- "text": " If <code>queueLabelCount</code> is not <code>0</code>, <code>pQueueLabels</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>queueLabelCount</code> valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structures"
- },
- {
- "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pCmdBufLabels-parameter",
- "text": " If <code>cmdBufLabelCount</code> is not <code>0</code>, <code>pCmdBufLabels</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>cmdBufLabelCount</code> valid <a href=\"#VkDebugUtilsLabelEXT\">VkDebugUtilsLabelEXT</a> structures"
- },
- {
- "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pObjects-parameter",
- "text": " If <code>objectCount</code> is not <code>0</code>, <code>pObjects</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>objectCount</code> valid <a href=\"#VkDebugUtilsObjectNameInfoEXT\">VkDebugUtilsObjectNameInfoEXT</a> structures"
- }
- ]
- },
- "vkSubmitDebugUtilsMessageEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-objectType-02591",
- "text": " The <code>objectType</code> member of each element of <code>pCallbackData-&gt;pObjects</code> <strong class=\"purple\">must</strong> not be <code>VK_OBJECT_TYPE_UNKNOWN</code>"
- },
- {
- "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-messageSeverity-parameter",
- "text": " <code>messageSeverity</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugUtilsMessageSeverityFlagBitsEXT\">VkDebugUtilsMessageSeverityFlagBitsEXT</a> value"
- },
- {
- "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-parameter",
- "text": " <code>messageTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugUtilsMessageTypeFlagBitsEXT\">VkDebugUtilsMessageTypeFlagBitsEXT</a> values"
- },
- {
- "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-requiredbitmask",
- "text": " <code>messageTypes</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-pCallbackData-parameter",
- "text": " <code>pCallbackData</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugUtilsMessengerCallbackDataEXT\">VkDebugUtilsMessengerCallbackDataEXT</a> structure"
- }
- ]
- },
- "vkDestroyDebugUtilsMessengerEXT": {
- "(VK_EXT_debug_utils)": [
- {
- "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"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parameter",
- "text": " If <code>messenger</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>messenger</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugUtilsMessengerEXT\">VkDebugUtilsMessengerEXT</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-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"
- },
- {
- "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parent",
- "text": " If <code>messenger</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>instance</code>"
- }
- ]
- },
- "vkDebugMarkerSetObjectNameEXT": {
- "(VK_EXT_debug_marker)": [
- {
- "vuid": "VUID-vkDebugMarkerSetObjectNameEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDebugMarkerSetObjectNameEXT-pNameInfo-parameter",
- "text": " <code>pNameInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugMarkerObjectNameInfoEXT\">VkDebugMarkerObjectNameInfoEXT</a> structure"
- }
- ]
- },
- "VkDebugMarkerObjectNameInfoEXT": {
- "(VK_EXT_debug_marker)": [
- {
- "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-objectType-01490",
- "text": " <code>objectType</code> <strong class=\"purple\">must</strong> not be <code>VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT</code>"
- },
- {
- "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-object-01491",
- "text": " <code>object</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-object-01492",
- "text": " <code>object</code> <strong class=\"purple\">must</strong> be a Vulkan object of the type associated with <code>objectType</code> as defined in <a href=\"#debug-report-object-types\"><code>VkDebugReportObjectTypeEXT</code> and Vulkan Handle Relationship</a>"
- },
- {
- "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-objectType-parameter",
- "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugReportObjectTypeEXT\">VkDebugReportObjectTypeEXT</a> value"
- },
- {
- "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-pObjectName-parameter",
- "text": " <code>pObjectName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- }
- ]
- },
- "vkDebugMarkerSetObjectTagEXT": {
- "(VK_EXT_debug_marker)": [
- {
- "vuid": "VUID-vkDebugMarkerSetObjectTagEXT-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDebugMarkerSetObjectTagEXT-pTagInfo-parameter",
- "text": " <code>pTagInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugMarkerObjectTagInfoEXT\">VkDebugMarkerObjectTagInfoEXT</a> structure"
- }
- ]
- },
- "VkDebugMarkerObjectTagInfoEXT": {
- "(VK_EXT_debug_marker)": [
- {
- "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-objectType-01493",
- "text": " <code>objectType</code> <strong class=\"purple\">must</strong> not be <code>VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT</code>"
- },
- {
- "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-object-01494",
- "text": " <code>object</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-object-01495",
- "text": " <code>object</code> <strong class=\"purple\">must</strong> be a Vulkan object of the type associated with <code>objectType</code> as defined in <a href=\"#debug-report-object-types\"><code>VkDebugReportObjectTypeEXT</code> and Vulkan Handle Relationship</a>"
- },
- {
- "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-objectType-parameter",
- "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugReportObjectTypeEXT\">VkDebugReportObjectTypeEXT</a> value"
- },
- {
- "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-pTag-parameter",
- "text": " <code>pTag</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>tagSize</code> bytes"
- },
- {
- "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-tagSize-arraylength",
- "text": " <code>tagSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkCmdDebugMarkerBeginEXT": {
- "(VK_EXT_debug_marker)": [
- {
- "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDebugMarkerBeginEXT-pMarkerInfo-parameter",
- "text": " <code>pMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugMarkerMarkerInfoEXT\">VkDebugMarkerMarkerInfoEXT</a> structure"
- },
- {
- "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- }
- ]
- },
- "VkDebugMarkerMarkerInfoEXT": {
- "(VK_EXT_debug_marker)": [
- {
- "vuid": "VUID-VkDebugMarkerMarkerInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkDebugMarkerMarkerInfoEXT-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkDebugMarkerMarkerInfoEXT-pMarkerName-parameter",
- "text": " <code>pMarkerName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- }
- ]
- },
- "vkCmdDebugMarkerEndEXT": {
- "(VK_EXT_debug_marker)": [
- {
- "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01239",
- "text": " There <strong class=\"purple\">must</strong> be an outstanding <a href=\"#vkCmdDebugMarkerBeginEXT\">vkCmdDebugMarkerBeginEXT</a> command prior to the <code>vkCmdDebugMarkerEndEXT</code> on the queue that <code>commandBuffer</code> is submitted to"
- },
- {
- "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01240",
- "text": " If <code>commandBuffer</code> is a secondary command buffer, there <strong class=\"purple\">must</strong> be an outstanding <a href=\"#vkCmdDebugMarkerBeginEXT\">vkCmdDebugMarkerBeginEXT</a> command recorded to <code>commandBuffer</code> that has not previously been ended by a call to <a href=\"#vkCmdDebugMarkerEndEXT\">vkCmdDebugMarkerEndEXT</a>"
- },
- {
- "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- }
- ]
- },
- "vkCmdDebugMarkerInsertEXT": {
- "(VK_EXT_debug_marker)": [
- {
- "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdDebugMarkerInsertEXT-pMarkerInfo-parameter",
- "text": " <code>pMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugMarkerMarkerInfoEXT\">VkDebugMarkerMarkerInfoEXT</a> structure"
- },
- {
- "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- }
- ]
- },
- "vkCreateDebugReportCallbackEXT": {
- "(VK_EXT_debug_report)": [
- {
- "vuid": "VUID-vkCreateDebugReportCallbackEXT-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkCreateDebugReportCallbackEXT-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDebugReportCallbackCreateInfoEXT\">VkDebugReportCallbackCreateInfoEXT</a> structure"
- },
- {
- "vuid": "VUID-vkCreateDebugReportCallbackEXT-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"
- },
- {
- "vuid": "VUID-vkCreateDebugReportCallbackEXT-pCallback-parameter",
- "text": " <code>pCallback</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDebugReportCallbackEXT\">VkDebugReportCallbackEXT</a> handle"
- }
- ]
- },
- "VkDebugReportCallbackCreateInfoEXT": {
- "(VK_EXT_debug_report)": [
- {
- "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT</code>"
- },
- {
- "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugReportFlagBitsEXT\">VkDebugReportFlagBitsEXT</a> values"
- },
- {
- "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-pfnCallback-parameter",
- "text": " <code>pfnCallback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#PFN_vkDebugReportCallbackEXT\">PFN_vkDebugReportCallbackEXT</a> value"
- }
- ]
- },
- "vkDebugReportMessageEXT": {
- "(VK_EXT_debug_report)": [
- {
- "vuid": "VUID-vkDebugReportMessageEXT-object-01241",
- "text": " <code>object</code> <strong class=\"purple\">must</strong> be a Vulkan object or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
- },
- {
- "vuid": "VUID-vkDebugReportMessageEXT-objectType-01498",
- "text": " If <code>objectType</code> is not <code>VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT</code> and <code>object</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>object</code> <strong class=\"purple\">must</strong> be a Vulkan object of the corresponding type associated with <code>objectType</code> as defined in <a href=\"#debug-report-object-types\"><code>VkDebugReportObjectTypeEXT</code> and Vulkan Handle Relationship</a>"
- },
- {
- "vuid": "VUID-vkDebugReportMessageEXT-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkDebugReportMessageEXT-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDebugReportFlagBitsEXT\">VkDebugReportFlagBitsEXT</a> values"
- },
- {
- "vuid": "VUID-vkDebugReportMessageEXT-flags-requiredbitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
- },
- {
- "vuid": "VUID-vkDebugReportMessageEXT-objectType-parameter",
- "text": " <code>objectType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugReportObjectTypeEXT\">VkDebugReportObjectTypeEXT</a> value"
- },
- {
- "vuid": "VUID-vkDebugReportMessageEXT-pLayerPrefix-parameter",
- "text": " <code>pLayerPrefix</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- },
- {
- "vuid": "VUID-vkDebugReportMessageEXT-pMessage-parameter",
- "text": " <code>pMessage</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- }
- ]
- },
- "vkDestroyDebugReportCallbackEXT": {
- "(VK_EXT_debug_report)": [
- {
- "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"
- },
- {
- "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>"
- },
- {
- "vuid": "VUID-vkDestroyDebugReportCallbackEXT-instance-parameter",
- "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyDebugReportCallbackEXT-callback-parameter",
- "text": " If <code>callback</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>callback</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDebugReportCallbackEXT\">VkDebugReportCallbackEXT</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyDebugReportCallbackEXT-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"
- },
- {
- "vuid": "VUID-vkDestroyDebugReportCallbackEXT-callback-parent",
- "text": " If <code>callback</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>instance</code>"
- }
- ]
- },
- "vkCmdSetCheckpointNV": {
- "(VK_NV_device_diagnostic_checkpoints)": [
- {
- "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, compute, or transfer operations"
- }
- ]
- },
- "vkGetQueueCheckpointData2NV": {
- "(VK_NV_device_diagnostic_checkpoints)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-vkGetQueueCheckpointData2NV-queue-03892",
- "text": " The device that <code>queue</code> belongs to <strong class=\"purple\">must</strong> be in the lost state"
- },
- {
- "vuid": "VUID-vkGetQueueCheckpointData2NV-queue-parameter",
- "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
- },
- {
- "vuid": "VUID-vkGetQueueCheckpointData2NV-pCheckpointDataCount-parameter",
- "text": " <code>pCheckpointDataCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetQueueCheckpointData2NV-pCheckpointData-parameter",
- "text": " If the value referenced by <code>pCheckpointDataCount</code> is not <code>0</code>, and <code>pCheckpointData</code> is not <code>NULL</code>, <code>pCheckpointData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCheckpointDataCount</code> <a href=\"#VkCheckpointData2NV\">VkCheckpointData2NV</a> structures"
- }
- ]
- },
- "VkCheckpointData2NV": {
- "(VK_NV_device_diagnostic_checkpoints)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
- {
- "vuid": "VUID-VkCheckpointData2NV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV</code>"
- },
- {
- "vuid": "VUID-VkCheckpointData2NV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetQueueCheckpointDataNV": {
- "(VK_NV_device_diagnostic_checkpoints)": [
- {
- "vuid": "VUID-vkGetQueueCheckpointDataNV-queue-02025",
- "text": " The device that <code>queue</code> belongs to <strong class=\"purple\">must</strong> be in the lost state"
- },
- {
- "vuid": "VUID-vkGetQueueCheckpointDataNV-queue-parameter",
- "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle"
- },
- {
- "vuid": "VUID-vkGetQueueCheckpointDataNV-pCheckpointDataCount-parameter",
- "text": " <code>pCheckpointDataCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetQueueCheckpointDataNV-pCheckpointData-parameter",
- "text": " If the value referenced by <code>pCheckpointDataCount</code> is not <code>0</code>, and <code>pCheckpointData</code> is not <code>NULL</code>, <code>pCheckpointData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pCheckpointDataCount</code> <a href=\"#VkCheckpointDataNV\">VkCheckpointDataNV</a> structures"
- }
- ]
- },
- "VkCheckpointDataNV": {
- "(VK_NV_device_diagnostic_checkpoints)": [
- {
- "vuid": "VUID-VkCheckpointDataNV-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV</code>"
- },
- {
- "vuid": "VUID-VkCheckpointDataNV-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "vkGetPhysicalDeviceToolProperties": {
- "(VK_VERSION_1_3,VK_EXT_tooling_info)": [
- {
- "vuid": "VUID-vkGetPhysicalDeviceToolProperties-physicalDevice-parameter",
- "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceToolProperties-pToolCount-parameter",
- "text": " <code>pToolCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value"
- },
- {
- "vuid": "VUID-vkGetPhysicalDeviceToolProperties-pToolProperties-parameter",
- "text": " If the value referenced by <code>pToolCount</code> is not <code>0</code>, and <code>pToolProperties</code> is not <code>NULL</code>, <code>pToolProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pToolCount</code> <a href=\"#VkPhysicalDeviceToolProperties\">VkPhysicalDeviceToolProperties</a> structures"
- }
- ]
- },
- "VkPhysicalDeviceToolProperties": {
- "(VK_VERSION_1_3,VK_EXT_tooling_info)": [
- {
- "vuid": "VUID-VkPhysicalDeviceToolProperties-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceToolProperties-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- }
- ]
- },
- "StandaloneSpirv": {
- "core": [
- {
- "vuid": "VUID-StandaloneSpirv-None-04633",
- "text": " Every entry point <strong class=\"purple\">must</strong> have no return value and accept no arguments"
- },
- {
- "vuid": "VUID-StandaloneSpirv-None-04634",
- "text": " The static function-call graph for an entry point <strong class=\"purple\">must</strong> not contain cycles; that is, static recursion is not allowed"
- },
- {
- "vuid": "VUID-StandaloneSpirv-None-04635",
- "text": " The <strong>Logical</strong> or <strong>PhysicalStorageBuffer64</strong> addressing model <strong class=\"purple\">must</strong> be selected"
- },
- {
- "vuid": "VUID-StandaloneSpirv-None-04636",
- "text": " <strong>Scope</strong> for execution <strong class=\"purple\">must</strong> be limited to <strong>Workgroup</strong> or <strong>Subgroup</strong>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-None-04637",
- "text": " If the <strong>Scope</strong> for execution is <strong>Workgroup</strong>, then it <strong class=\"purple\">must</strong> only be used in the task, mesh, tessellation control, or compute execution models"
- },
- {
- "vuid": "VUID-StandaloneSpirv-None-04638",
- "text": " <strong>Scope</strong> for memory <strong class=\"purple\">must</strong> be limited to <strong>Device</strong>, <strong>QueueFamily</strong>, <strong>Workgroup</strong>, <strong>ShaderCallKHR</strong>, <strong>Subgroup</strong>, or <strong>Invocation</strong>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-None-04639",
- "text": " If the <strong>Scope</strong> for memory is <strong>Workgroup</strong>, then it <strong class=\"purple\">must</strong> only be used in the task, mesh, or compute execution models"
- },
- {
- "vuid": "VUID-StandaloneSpirv-None-04640",
- "text": " If the <strong>Scope</strong> for memory is <strong>ShaderCallKHR</strong>, then it <strong class=\"purple\">must</strong> only be used in ray generation, intersection, closest hit, any-hit, miss, and callable execution models"
- },
- {
- "vuid": "VUID-StandaloneSpirv-None-04641",
- "text": " If the <strong>Scope</strong> for memory is <strong>Invocation</strong>, then memory semantics <strong class=\"purple\">must</strong> be <strong>None</strong>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-None-04643",
- "text": " <strong>Storage Class</strong> <strong class=\"purple\">must</strong> be limited to <strong>UniformConstant</strong>, <strong>Input</strong>, <strong>Uniform</strong>, <strong>Output</strong>, <strong>Workgroup</strong>, <strong>Private</strong>, <strong>Function</strong>, <strong>PushConstant</strong>, <strong>Image</strong>, <strong>StorageBuffer</strong>, <strong>RayPayloadKHR</strong>, <strong>IncomingRayPayloadKHR</strong>, <strong>HitAttributeKHR</strong>, <strong>CallableDataKHR</strong>, <strong>IncomingCallableDataKHR</strong>, <strong>ShaderRecordBufferKHR</strong>, or <strong>PhysicalStorageBuffer</strong>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-None-04644",
- "text": " If the <strong>Storage Class</strong> is <strong>Output</strong>, then it <strong class=\"purple\">must</strong> not be used in the <strong>GlCompute</strong>, <strong>RayGenerationKHR</strong>, <strong>IntersectionKHR</strong>, <strong>AnyHitKHR</strong>, <strong>ClosestHitKHR</strong>, <strong>MissKHR</strong>, or <strong>CallableKHR</strong> execution models"
- },
- {
- "vuid": "VUID-StandaloneSpirv-None-04645",
- "text": " If the <strong>Storage Class</strong> is <strong>Workgroup</strong>, then it <strong class=\"purple\">must</strong> only be used in the task, mesh, or compute execution models"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpAtomicStore-04730",
- "text": " <code>OpAtomicStore</code> <strong class=\"purple\">must</strong> not use <strong>Acquire</strong>, <strong>AcquireRelease</strong>, or <strong>SequentiallyConsistent</strong> memory semantics"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpAtomicLoad-04731",
- "text": " <code>OpAtomicLoad</code> <strong class=\"purple\">must</strong> not use <strong>Release</strong>, <strong>AcquireRelease</strong>, or <strong>SequentiallyConsistent</strong> memory semantics"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpMemoryBarrier-04732",
- "text": " <code>OpMemoryBarrier</code> <strong class=\"purple\">must</strong> use one of <strong>Acquire</strong>, <strong>Release</strong>, <strong>AcquireRelease</strong>, or <strong>SequentiallyConsistent</strong> memory semantics"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpMemoryBarrier-04733",
- "text": " <code>OpMemoryBarrier</code> <strong class=\"purple\">must</strong> include at least one storage class"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpControlBarrier-04650",
- "text": " If the semantics for <code>OpControlBarrier</code> includes one of <strong>Acquire</strong>, <strong>Release</strong>, <strong>AcquireRelease</strong>, or <strong>SequentiallyConsistent</strong> memory semantics, then it <strong class=\"purple\">must</strong> include at least one storage class"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpVariable-04651",
- "text": " Any <code>OpVariable</code> with an <code>Initializer</code> operand <strong class=\"purple\">must</strong> have <strong>Output</strong>, <strong>Private</strong>, <strong>Function</strong>, or <strong>Workgroup</strong> as its <strong>Storage Class</strong> operand"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpVariable-04734",
- "text": " Any <code>OpVariable</code> with an <code>Initializer</code> operand and <strong>Workgroup</strong> as its <strong>Storage Class</strong> operand <strong class=\"purple\">must</strong> use <code>OpConstantNull</code> as the initializer"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpReadClockKHR-04652",
- "text": " <strong>Scope</strong> for <code>OpReadClockKHR</code> <strong class=\"purple\">must</strong> be limited to <strong>Subgroup</strong> or <strong>Device</strong>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OriginLowerLeft-04653",
- "text": " The <code>OriginLowerLeft</code> execution mode <strong class=\"purple\">must</strong> not be used; fragment entry points <strong class=\"purple\">must</strong> declare <code>OriginUpperLeft</code>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-PixelCenterInteger-04654",
- "text": " The <code>PixelCenterInteger</code> execution mode <strong class=\"purple\">must</strong> not be used (pixels are always centered at half-integer coordinates)"
- },
- {
- "vuid": "VUID-StandaloneSpirv-UniformConstant-04655",
- "text": " Any variable in the <code>UniformConstant</code> storage class <strong class=\"purple\">must</strong> be typed as either <code>OpTypeImage</code>, <code>OpTypeSampler</code>, <code>OpTypeSampledImage</code>, <code>OpTypeAccelerationStructureKHR</code>, or an array of one of these types"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpTypeImage-04656",
- "text": " <code>OpTypeImage</code> <strong class=\"purple\">must</strong> declare a scalar 32-bit float, 64-bit integer, or 32-bit integer type for the &#8220;Sampled Type&#8221; (<code>RelaxedPrecision</code> <strong class=\"purple\">can</strong> be applied to a sampling instruction and to the variable holding the result of a sampling instruction)"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpTypeImage-04657",
- "text": " <code>OpTypeImage</code> <strong class=\"purple\">must</strong> have a &#8220;Sampled&#8221; operand of 1 (sampled image) or 2 (storage image)"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Image-04965",
- "text": " The converted bit width, signedness, and numeric type of the <code>Image</code> <code>Format</code> operand of an <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match the <code>Sampled</code> <code>Type</code>, as defined in <a href=\"#spirvenv-format-type-matching\">Image Format and Type Matching</a>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpImageTexelPointer-04658",
- "text": " If an <code>OpImageTexelPointer</code> is used in an atomic operation, the image type of the <code>image</code> parameter to <code>OpImageTexelPointer</code> <strong class=\"purple\">must</strong> have an image format of <code>R64i</code>, <code>R64ui</code>, <code>R32f</code>, <code>R32i</code>, or <code>R32ui</code>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpImageQuerySizeLod-04659",
- "text": " <code>OpImageQuerySizeLod</code>, <code>OpImageQueryLod</code>, and <code>OpImageQueryLevels</code> <strong class=\"purple\">must</strong> only consume an &#8220;Image&#8221; operand whose type has its &#8220;Sampled&#8221; operand set to 1"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpTypeImage-06214",
- "text": " An <code>OpTypeImage</code> with a &#8220;Dim&#8221; operand of <code>SubpassData</code> <strong class=\"purple\">must</strong> have an &#8220;Arrayed&#8221; operand of 0 (non-arrayed) and a &#8220;Sampled&#8221; operand of 2 (storage image)"
- },
- {
- "vuid": "VUID-StandaloneSpirv-SubpassData-04660",
- "text": " The <span class=\"eq\">(u,v)</span> coordinates used for a <code>SubpassData</code> <strong class=\"purple\">must</strong> be the &lt;id&gt; of a constant vector <span class=\"eq\">(0,0)</span>, or if a layer coordinate is used, <strong class=\"purple\">must</strong> be a vector that was formed with constant 0 for the <span class=\"eq\">u</span> and <span class=\"eq\">v</span> components"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpTypeImage-04661",
- "text": " Objects of types <code>OpTypeImage</code>, <code>OpTypeSampler</code>, <code>OpTypeSampledImage</code>, and arrays of these types <strong class=\"purple\">must</strong> not be stored to or modified"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Offset-04662",
- "text": " Any image operation <strong class=\"purple\">must</strong> use at most one of the <code>Offset</code>, <code>ConstOffset</code>, and <code>ConstOffsets</code> image operands"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Offset-04663",
- "text": " Image operand <code>Offset</code> <strong class=\"purple\">must</strong> only be used with <code>OpImage*Gather</code> instructions"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Offset-04865",
- "text": " Any image instruction which uses an <code>Offset</code>, <code>ConstOffset</code>, or <code>ConstOffsets</code> image operand, must only consume a &#8220;Sampled Image&#8221; operand whose type has its &#8220;Sampled&#8221; operand set to 1"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpImageGather-04664",
- "text": " The &#8220;Component&#8221; operand of <code>OpImageGather</code>, and <code>OpImageSparseGather</code> <strong class=\"purple\">must</strong> be the &lt;id&gt; of a constant instruction"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpImage-04777",
- "text": " <code>OpImage*Dref</code> <strong class=\"purple\">must</strong> not consume an image whose <code>Dim</code> is 3D"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpTypeAccelerationStructureKHR-04665",
- "text": " Objects of types <code>OpTypeAccelerationStructureKHR</code> and arrays of this type <strong class=\"purple\">must</strong> not be stored to or modified"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpReportIntersectionKHR-04666",
- "text": " The value of the &#8220;Hit Kind&#8221; operand of <code>OpReportIntersectionKHR</code> <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,127]</span>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-None-04667",
- "text": " Structure types <strong class=\"purple\">must</strong> not contain opaque types"
- },
- {
- "vuid": "VUID-StandaloneSpirv-BuiltIn-04668",
- "text": " Any <code>BuiltIn</code> decoration not listed in <a href=\"#interfaces-builtin-variables\">Built-In Variables</a> <strong class=\"purple\">must</strong> not be used"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Location-04915",
- "text": " The <code>Location</code> or <code>Component</code> decorations <strong class=\"purple\">must</strong> not be used with <code>BuiltIn</code>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Location-04916",
- "text": " The <code>Location</code> decorations <strong class=\"purple\">must</strong> be used on <a href=\"#interfaces-iointerfaces-user\">user-defined variables</a>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Location-04917",
- "text": " The <code>Location</code> decorations <strong class=\"purple\">must</strong> be used on an <code>OpVariable</code> with a structure type that is not a block"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Location-04918",
- "text": " The <code>Location</code> decorations <strong class=\"purple\">must</strong> not be used on the members of <code>OpVariable</code> with a structure type that is decorated with <code>Location</code>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Location-04919",
- "text": " The <code>Location</code> decorations <strong class=\"purple\">must</strong> be used on each member of <code>OpVariable</code> with a structure type that is a block not decorated with <code>Location</code>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Component-04920",
- "text": " The <code>Component</code> decoration value <strong class=\"purple\">must</strong> not be greater than 3"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Component-04921",
- "text": " If the <code>Component</code> decoration is used on an <code>OpVariable</code> that has a <code>OpTypeVector</code> type with a <code>Component</code> <code>Type</code> with a <code>Width</code> that is less than or equal to 32, the sum of its <code>Component</code> <code>Count</code> and the <code>Component</code> decoration value <strong class=\"purple\">must</strong> be less than 4"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Component-04922",
- "text": " If the <code>Component</code> decoration is used on an <code>OpVariable</code> that has a <code>OpTypeVector</code> type with a <code>Component</code> <code>Type</code> with a <code>Width</code> that is equal to 64, the sum of two times its <code>Component</code> <code>Count</code> and the <code>Component</code> decoration value <strong class=\"purple\">must</strong> be less than 4"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Component-04923",
- "text": " The <code>Component</code> decorations value <strong class=\"purple\">must</strong> not be 1 or 3 for scalar or two-component 64-bit data types"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Component-04924",
- "text": " The <code>Component</code> decorations <strong class=\"purple\">must</strong> not used with any type that is not a scalar or vector"
- },
- {
- "vuid": "VUID-StandaloneSpirv-GLSLShared-04669",
- "text": " The <code>GLSLShared</code> and <code>GLSLPacked</code> decorations <strong class=\"purple\">must</strong> not be used"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Flat-04670",
- "text": " The <code>Flat</code>, <code>NoPerspective</code>, <code>Sample</code>, and <code>Centroid</code> decorations <strong class=\"purple\">must</strong> only be used on variables with the <code>Output</code> or <code>Input</code> storage class"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Flat-06201",
- "text": " The <code>Flat</code>, <code>NoPerspective</code>, <code>Sample</code>, and <code>Centroid</code> decorations <strong class=\"purple\">must</strong> not be used on variables with the <code>Output</code> storage class in a fragment shader"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Flat-06202",
- "text": " The <code>Flat</code>, <code>NoPerspective</code>, <code>Sample</code>, and <code>Centroid</code> decorations <strong class=\"purple\">must</strong> not be used on variables with the <code>Input</code> storage class in a vertex shader"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Flat-04744",
- "text": " Any variable with integer or double-precision floating-point type and with <code>Input</code> storage class in a fragment shader, <strong class=\"purple\">must</strong> be decorated <code>Flat</code>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-ViewportRelativeNV-04672",
- "text": " The <code>ViewportRelativeNV</code> decoration <strong class=\"purple\">must</strong> only be used on a variable decorated with <code>Layer</code> in the vertex, tessellation evaluation, or geometry shader stages"
- },
- {
- "vuid": "VUID-StandaloneSpirv-ViewportRelativeNV-04673",
- "text": " The <code>ViewportRelativeNV</code> decoration <strong class=\"purple\">must</strong> not be used unless a variable decorated with one of <code>ViewportIndex</code> or <code>ViewportMaskNV</code> is also statically used by the same <code>OpEntryPoint</code>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-ViewportMaskNV-04674",
- "text": " The <code>ViewportMaskNV</code> and <code>ViewportIndex</code> decorations <strong class=\"purple\">must</strong> not both be statically used by one or more <code>OpEntryPoint</code>&#8217;s that form the <a href=\"#pipeline-graphics-subsets-pre-rasterization\">pre-rasterization shader stages</a> of a graphics pipeline"
- },
- {
- "vuid": "VUID-StandaloneSpirv-FPRoundingMode-04675",
- "text": " Rounding modes other than round-to-nearest-even and round-towards-zero <strong class=\"purple\">must</strong> not be used for the <code>FPRoundingMode</code> decoration"
- },
- {
- "vuid": "VUID-StandaloneSpirv-FPRoundingMode-04676",
- "text": " The <code>FPRoundingMode</code> decoration <strong class=\"purple\">must</strong> only be used for a width-only conversion instruction whose only uses are <code>Object</code> operands of <code>OpStore</code> instructions storing through a pointer to a 16-bit floating-point object in the <code>StorageBuffer</code>, <code>PhysicalStorageBuffer</code>, <code>Uniform</code>, or <code>Output</code> storage class"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Invariant-04677",
- "text": " Variables decorated with <code>Invariant</code> and variables with structure types that have any members decorated with <code>Invariant</code> <strong class=\"purple\">must</strong> be in the <code>Output</code> or <code>Input</code> storage class, <code>Invariant</code> used on an <code>Input</code> storage class variable or structure member has no effect"
- },
- {
- "vuid": "VUID-StandaloneSpirv-VulkanMemoryModel-04678",
- "text": " <a id=\"builtin-volatile-semantics\"></a> If the <code>VulkanMemoryModel</code> capability is not declared, the <code>Volatile</code> decoration <strong class=\"purple\">must</strong> be used on any variable declaration that includes one of the <code>SMIDNV</code>, <code>WarpIDNV</code>, <code>SubgroupSize</code>, <code>SubgroupLocalInvocationId</code>, <code>SubgroupEqMask</code>, <code>SubgroupGeMask</code>, <code>SubgroupGtMask</code>, <code>SubgroupLeMask</code>, or <code>SubgroupLtMask</code> <code>BuiltIn</code> decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the <code>RayTmaxKHR</code> <code>Builtin</code> decoration when used in an intersection shader"
- },
- {
- "vuid": "VUID-StandaloneSpirv-VulkanMemoryModel-04679",
- "text": " If the <code>VulkanMemoryModel</code> capability is declared, the <code>OpLoad</code> instruction <strong class=\"purple\">must</strong> use the <code>Volatile</code> memory semantics when it accesses into any variable that includes one of the <code>SMIDNV</code>, <code>WarpIDNV</code>, <code>SubgroupSize</code>, <code>SubgroupLocalInvocationId</code>, <code>SubgroupEqMask</code>, <code>SubgroupGeMask</code>, <code>SubgroupGtMask</code>, <code>SubgroupLeMask</code>, or <code>SubgroupLtMask</code> <code>BuiltIn</code> decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the <code>RayTmaxKHR</code> <code>Builtin</code> decoration when used in an intersection shader"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpTypeRuntimeArray-04680",
- "text": " <code>OpTypeRuntimeArray</code> <strong class=\"purple\">must</strong> only be used for the last member of an <code>OpTypeStruct</code> that is in the <code>StorageBuffer</code> or <code>PhysicalStorageBuffer</code> storage class decorated as <code>Block</code>, or that is in the <code>Uniform</code> storage class decorated as <code>BufferBlock</code>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Function-04681",
- "text": " A type <em>T</em> that is an array sized with a specialization constant <strong class=\"purple\">must</strong> neither be, nor be contained in, the type <em>T2</em> of a variable <em>V</em>, unless either: a) <em>T</em> is equal to <em>T2</em>, b) <em>V</em> is declared in the <code>Function</code>, or <code>Private</code> storage classes, c) <em>V</em> is a non-Block variable in the <code>Workgroup</code> storage class, or d) <em>V</em> is an interface variable with an additional level of arrayness, <a href=\"#interfaces-iointerfaces-matching\">as described in interface matching</a>, and <em>T</em> is the member type of the array type <em>T2</em>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpControlBarrier-04682",
- "text": " If <code>OpControlBarrier</code> is used in ray generation, intersection, any-hit, closest hit, miss, fragment, vertex, tessellation evaluation, or geometry shaders, the execution Scope <strong class=\"purple\">must</strong> be <code>Subgroup</code>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-LocalSize-06426",
- "text": " For each compute shader entry point, either a <code>LocalSize</code> or <code>LocalSizeId</code> execution mode, or an object decorated with the <code>WorkgroupSize</code> decoration <strong class=\"purple\">must</strong> be specified"
- },
- {
- "vuid": "VUID-StandaloneSpirv-DerivativeGroupQuadsNV-04684",
- "text": " For compute shaders using the <code>DerivativeGroupQuadsNV</code> execution mode, the first two dimensions of the local workgroup size <strong class=\"purple\">must</strong> be a multiple of two"
- },
- {
- "vuid": "VUID-StandaloneSpirv-DerivativeGroupLinearNV-04778",
- "text": " For compute shaders using the <code>DerivativeGroupLinearNV</code> execution mode, the product of the dimensions of the local workgroup size <strong class=\"purple\">must</strong> be a multiple of four"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpGroupNonUniformBallotBitCount-04685",
- "text": " If <code>OpGroupNonUniformBallotBitCount</code> is used, the group operation <strong class=\"purple\">must</strong> be limited to <strong>Reduce</strong>, <strong>InclusiveScan</strong>, or <strong>ExclusiveScan</strong>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-None-04686",
- "text": " The <em>Pointer</em> operand of all atomic instructions <strong class=\"purple\">must</strong> have a <strong>Storage Class</strong> limited to <strong>Uniform</strong>, <strong>Workgroup</strong>, <strong>Image</strong>, <strong>StorageBuffer</strong>, or <strong>PhysicalStorageBuffer</strong>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Offset-04687",
- "text": " Output variables or block members decorated with <code>Offset</code> that have a 64-bit type, or a composite type containing a 64-bit type, <strong class=\"purple\">must</strong> specify an <code>Offset</code> value aligned to a 8 byte boundary"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Offset-04689",
- "text": " The size of any output block containing any member decorated with <code>Offset</code> that is a 64-bit type <strong class=\"purple\">must</strong> be a multiple of 8"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Offset-04690",
- "text": " The first member of an output block specifying a <code>Offset</code> decoration <strong class=\"purple\">must</strong> specify a <code>Offset</code> value that is aligned to an 8 byte boundary if that block contains any member decorated with <code>Offset</code> and is a 64-bit type"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Offset-04691",
- "text": " Output variables or block members decorated with <code>Offset</code> that have a 32-bit type, or a composite type contains a 32-bit type, <strong class=\"purple\">must</strong> specify an <code>Offset</code> value aligned to a 4 byte boundary"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Offset-04692",
- "text": " Output variables, blocks or block members decorated with <code>Offset</code> <strong class=\"purple\">must</strong> only contain base types that have components that are either 32-bit or 64-bit in size"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Offset-04716",
- "text": " Only variables or block members in the output interface decorated with <code>Offset</code> <strong class=\"purple\">can</strong> be captured for transform feedback, and those variables or block members <strong class=\"purple\">must</strong> also be decorated with <code>XfbBuffer</code> and <code>XfbStride</code>, or inherit <code>XfbBuffer</code> and <code>XfbStride</code> decorations from a block containing them"
- },
- {
- "vuid": "VUID-StandaloneSpirv-XfbBuffer-04693",
- "text": " All variables or block members in the output interface of the entry point being compiled decorated with a specific <code>XfbBuffer</code> value <strong class=\"purple\">must</strong> all be decorated with identical <code>XfbStride</code> values"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Stream-04694",
- "text": " If any variables or block members in the output interface of the entry point being compiled are decorated with <code>Stream</code>, then all variables belonging to the same <code>XfbBuffer</code> <strong class=\"purple\">must</strong> specify the same <code>Stream</code> value"
- },
- {
- "vuid": "VUID-StandaloneSpirv-XfbBuffer-04696",
- "text": " For any two variables or block members in the output interface of the entry point being compiled with the same <code>XfbBuffer</code> value, the ranges determined by the <code>Offset</code> decoration and the size of the type <strong class=\"purple\">must</strong> not overlap"
- },
- {
- "vuid": "VUID-StandaloneSpirv-XfbBuffer-04697",
- "text": " All block members in the output interface of the entry point being compiled that are in the same block and have a declared or inherited <code>XfbBuffer</code> decoration <strong class=\"purple\">must</strong> specify the same <code>XfbBuffer</code> value"
- },
- {
- "vuid": "VUID-StandaloneSpirv-RayPayloadKHR-04698",
- "text": " <code>RayPayloadKHR</code> storage class <strong class=\"purple\">must</strong> only be used in ray generation, closest hit or miss shaders"
- },
- {
- "vuid": "VUID-StandaloneSpirv-IncomingRayPayloadKHR-04699",
- "text": " <code>IncomingRayPayloadKHR</code> storage class <strong class=\"purple\">must</strong> only be used in closest hit, any-hit, or miss shaders"
- },
- {
- "vuid": "VUID-StandaloneSpirv-IncomingRayPayloadKHR-04700",
- "text": " There <strong class=\"purple\">must</strong> be at most one variable with the <code>IncomingRayPayloadKHR</code> storage class in the input interface of an entry point"
- },
- {
- "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04701",
- "text": " <code>HitAttributeKHR</code> storage class <strong class=\"purple\">must</strong> only be used in intersection, any-hit, or closest hit shaders"
- },
- {
- "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04702",
- "text": " There <strong class=\"purple\">must</strong> be at most one variable with the <code>HitAttributeKHR</code> storage class in the input interface of an entry point"
- },
- {
- "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04703",
- "text": " A variable with <code>HitAttributeKHR</code> storage class <strong class=\"purple\">must</strong> only be written to in an intersection shader"
- },
- {
- "vuid": "VUID-StandaloneSpirv-CallableDataKHR-04704",
- "text": " <code>CallableDataKHR</code> storage class <strong class=\"purple\">must</strong> only be used in ray generation, closest hit, miss, and callable shaders"
- },
- {
- "vuid": "VUID-StandaloneSpirv-IncomingCallableDataKHR-04705",
- "text": " <code>IncomingCallableDataKHR</code> storage class <strong class=\"purple\">must</strong> only be used in callable shaders"
- },
- {
- "vuid": "VUID-StandaloneSpirv-IncomingCallableDataKHR-04706",
- "text": " There <strong class=\"purple\">must</strong> be at most one variable with the <code>IncomingCallableDataKHR</code> storage class in the input interface of an entry point"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Base-04707",
- "text": " The <code>Base</code> operand of <code>OpPtrAccessChain</code> <strong class=\"purple\">must</strong> point to one of the following: <strong>Workgroup</strong>, if <code>VariablePointers</code> is enabled; <strong>StorageBuffer</strong>, if <code>VariablePointers</code> or <code>VariablePointersStorageBuffer</code> is enabled; <strong>PhysicalStorageBuffer</strong>, if the <code>PhysicalStorageBuffer64</code> addressing model is enabled"
- },
- {
- "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04708",
- "text": " If the <code>PhysicalStorageBuffer64</code> addressing model is enabled, all instructions that support memory access operands and that use a physical pointer <strong class=\"purple\">must</strong> include the <code>Aligned</code> operand"
- },
- {
- "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04709",
- "text": " If the <code>PhysicalStorageBuffer64</code> addressing model is enabled, any access chain instruction that accesses into a <code>RowMajor</code> matrix <strong class=\"purple\">must</strong> only be used as the <code>Pointer</code> operand to <code>OpLoad</code> or <code>OpStore</code>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04710",
- "text": " If the <code>PhysicalStorageBuffer64</code> addressing model is enabled, <code>OpConvertUToPtr</code> and <code>OpConvertPtrToU</code> <strong class=\"purple\">must</strong> use an integer type whose <code>Width</code> is 64"
- },
- {
- "vuid": "VUID-StandaloneSpirv-OpTypeForwardPointer-04711",
- "text": " <code>OpTypeForwardPointer</code> <strong class=\"purple\">must</strong> have a storage class of <code>PhysicalStorageBuffer</code>"
- },
- {
- "vuid": "VUID-StandaloneSpirv-None-04745",
- "text": " All variables with a storage class of <strong>PushConstant</strong> declared as an array <strong class=\"purple\">must</strong> only be accessed by dynamically uniform indices"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Result-04780",
- "text": " The <code>Result</code> <code>Type</code> operand of any <code>OpImageRead</code> or <code>OpImageSparseRead</code> instruction <strong class=\"purple\">must</strong> be a vector of four components"
- },
- {
- "vuid": "VUID-StandaloneSpirv-Base-04781",
- "text": " The <code>Base</code> operand of any <code>OpBitCount</code>, <code>OpBitReverse</code>, <code>OpBitFieldInsert</code>, <code>OpBitFieldSExtract</code>, or <code>OpBitFieldUExtract</code> instruction <strong class=\"purple\">must</strong> be a 32-bit integer scalar or a vector of 32-bit integers"
- },
- {
- "vuid": "VUID-StandaloneSpirv-DescriptorSet-06491",
- "text": " If a variable is decorated by <code>DescriptorSet</code> or <code>Binding</code>, the storage class <strong class=\"purple\">must</strong> correspond to an entry in <a href=\"#interfaces-resources-storage-class-correspondence\">Shader Resource and Storage Class Correspondence</a>"
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-StandaloneSpirv-None-04642",
- "text": " <strong>Scope</strong> for <a href=\"#shaders-group-operations\">group operations</a> <strong class=\"purple\">must</strong> be limited to <strong>Subgroup</strong>"
- }
- ]
- },
- "RuntimeSpirv": {
- "(VK_VERSION_1_2,VK_KHR_vulkan_memory_model)": [
- {
- "vuid": "VUID-RuntimeSpirv-vulkanMemoryModel-06265",
- "text": " If <a href=\"#features-vulkanMemoryModel\"><code>vulkanMemoryModel</code></a> is enabled and <a href=\"#features-vulkanMemoryModelDeviceScope\"><code>vulkanMemoryModelDeviceScope</code></a> is not enabled, <strong>Device</strong> memory scope <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-vulkanMemoryModel-06266",
- "text": " If <a href=\"#features-vulkanMemoryModel\"><code>vulkanMemoryModel</code></a> is not enabled, <strong>QueueFamily</strong> memory scope <strong class=\"purple\">must</strong> not be used."
- }
- ],
- "(VK_KHR_shader_clock)": [
- {
- "vuid": "VUID-RuntimeSpirv-shaderSubgroupClock-06267",
- "text": " If <a href=\"#features-shaderSubgroupClock\"><code>shaderSubgroupClock</code></a> is not enabled, the <code>Subgroup</code> scope <strong class=\"purple\">must</strong> not be used for <code>OpReadClockKHR</code>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderDeviceClock-06268",
- "text": " If <a href=\"#features-shaderDeviceClock\"><code>shaderDeviceClock</code></a> is not enabled, the <code>Device</code> scope <strong class=\"purple\">must</strong> not be used for <code>OpReadClockKHR</code>."
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-RuntimeSpirv-OpTypeImage-06269",
- "text": " If <a href=\"#features-shaderStorageImageWriteWithoutFormat\">shaderStorageImageWriteWithoutFormat</a> is not enabled, any variable created with a &#8220;Type&#8221; of <code>OpTypeImage</code> that has a &#8220;Sampled&#8221; operand of 2 and an &#8220;Image Format&#8221; operand of <code>Unknown</code> <strong class=\"purple\">must</strong> be decorated with <code>NonWritable</code>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTypeImage-06270",
- "text": " If <a href=\"#features-shaderStorageImageReadWithoutFormat\">shaderStorageImageReadWithoutFormat</a> is not enabled, any variable created with a &#8220;Type&#8221; of <code>OpTypeImage</code> that has a &#8220;Sampled&#8221; operand of 2 and an &#8220;Image Format&#8221; operand of <code>Unknown</code> <strong class=\"purple\">must</strong> be decorated with <code>NonReadable</code>."
- }
- ],
- "core": [
- {
- "vuid": "VUID-RuntimeSpirv-Location-06272",
- "text": " The sum of <code>Location</code> and the number of locations the variable it decorates consumes <strong class=\"purple\">must</strong> be less than or equal to the value for the matching {ExecutionModel} defined in <a href=\"#interfaces-iointerfaces-limits\">Shader Input and Output Locations</a>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-Fragment-06427",
- "text": " When blending is enabled and one of the dual source blend modes is in use, the maximum number of output attachments written to in the <code>Fragment</code> {ExecutionModel} <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-Location-06428",
- "text": " The maximum number of storage buffers, storage images, and output <code>Location</code> decorated color attachments written to in the <code>Fragment</code> {ExecutionModel} <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFragmentCombinedOutputResources\"><code>maxFragmentCombinedOutputResources</code></a>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-DescriptorSet-06323",
- "text": " <code>DescriptorSet</code> and <code>Binding</code> decorations <strong class=\"purple\">must</strong> obey the constraints on storage class, type, and descriptor type described in <a href=\"#interfaces-resources-setandbinding\">DescriptorSet and Binding Assignment</a>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-NonWritable-06340",
- "text": " If <a href=\"#features-fragmentStoresAndAtomics\">fragmentStoresAndAtomics</a> is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the fragment stage <strong class=\"purple\">must</strong> be decorated with the <code>NonWritable</code> decoration."
- },
- {
- "vuid": "VUID-RuntimeSpirv-NonWritable-06341",
- "text": " If <a href=\"#features-vertexPipelineStoresAndAtomics\">vertexPipelineStoresAndAtomics</a> is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the vertex, tessellation, and geometry stages <strong class=\"purple\">must</strong> be decorated with the <code>NonWritable</code> decoration."
- },
- {
- "vuid": "VUID-RuntimeSpirv-None-06342",
- "text": " If <a href=\"#limits-subgroupQuadOperationsInAllStages\">subgroupQuadOperationsInAllStages</a> is <code>VK_FALSE</code>, then <a href=\"#features-subgroup-quad\">quad subgroup operations</a> <strong class=\"purple\">must</strong> not be used except for in fragment and compute stages."
- },
- {
- "vuid": "VUID-RuntimeSpirv-Offset-06344",
- "text": " The first element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to:"
- },
- {
- "vuid": "VUID-RuntimeSpirv-Offset-06345",
- "text": " The first element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be less than or equal to:"
- },
- {
- "vuid": "VUID-RuntimeSpirv-Offset-06346",
- "text": " The second element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to:"
- },
- {
- "vuid": "VUID-RuntimeSpirv-Offset-06347",
- "text": " The second element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be less than or equal to:"
- },
- {
- "vuid": "VUID-RuntimeSpirv-x-06429",
- "text": " The <code>x</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[0]"
- },
- {
- "vuid": "VUID-RuntimeSpirv-y-06430",
- "text": " The <code>y</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[1]"
- },
- {
- "vuid": "VUID-RuntimeSpirv-z-06431",
- "text": " The <code>z</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupSize</code>[2]"
- },
- {
- "vuid": "VUID-RuntimeSpirv-x-06432",
- "text": " The product of <code>x</code> size, <code>y</code> size, and <code>z</code> size in <code>LocalSize</code> or <code>LocalSizeId</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupInvocations</code>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-Workgroup-06530",
- "text": " The sum of size in bytes for variables and <a href=\"#limits-maxComputeSharedMemorySize\">padding</a> in the <code>Workgroup</code> storage class in the <code>GLCompute</code> {ExecutionModel} <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxComputeSharedMemorySize\"><code>maxComputeSharedMemorySize</code></a>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpImage-06376",
- "text": " If an <code>OpImage*Gather</code> operation has an image operand of <code>Offset</code>, <code>ConstOffset</code>, or <code>ConstOffsets</code> the offset value <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minTexelGatherOffset\">minTexelGatherOffset</a>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpImage-06377",
- "text": " If an <code>OpImage*Gather</code> operation has an image operand of <code>Offset</code>, <code>ConstOffset</code>, or <code>ConstOffsets</code> the offset value <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxTexelGatherOffset\">maxTexelGatherOffset</a>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpImageSample-06435",
- "text": " If an <code>OpImageSample*</code> or <code>OpImageFetch*</code> operation has an image operand of <code>ConstOffset</code> then the offset value <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#limits-minTexelOffset\">minTexelOffset</a>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpImageSample-06436",
- "text": " If an <code>OpImageSample*</code> or <code>OpImageFetch*</code> operation has an image operand of <code>ConstOffset</code> then the offset value <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxTexelOffset\">maxTexelOffset</a>"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
- {
- "vuid": "VUID-RuntimeSpirv-OpTypeRuntimeArray-06273",
- "text": " <code>OpTypeRuntimeArray</code> <strong class=\"purple\">must</strong> only be used for an array of variables with storage class <code>Uniform</code>, <code>StorageBuffer</code>, or <code>UniformConstant</code>, or for the outermost dimension of an array of arrays of such variables if the <a href=\"#features-runtimeDescriptorArray\">runtimeDescriptorArray</a> feature is enabled,"
- },
- {
- "vuid": "VUID-RuntimeSpirv-NonUniform-06274",
- "text": " If an instruction loads from or stores to a resource (including atomics and image instructions) and the resource descriptor being accessed is not dynamically uniform, then the operand corresponding to that resource (e.g. the pointer or sampled image operand) <strong class=\"purple\">must</strong> be decorated with <code>NonUniform</code>."
- }
- ],
- "(VK_VERSION_1_1)+(VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types)": [
- {
- "vuid": "VUID-RuntimeSpirv-None-06275",
- "text": " <a href=\"#features-subgroup-extended-types\">shaderSubgroupExtendedTypes</a> <strong class=\"purple\">must</strong> be enabled for <a href=\"#shaders-group-operations\">group operations</a> to use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types"
- }
- ],
- "(VK_VERSION_1_2)": [
- {
- "vuid": "VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06276",
- "text": " If <a href=\"#features-subgroupBroadcastDynamicId\"><code>subgroupBroadcastDynamicId</code></a> is <code>VK_TRUE</code>, and the shader module version is 1.5 or higher, the &#8220;Index&#8221; for <code>OpGroupNonUniformQuadBroadcast</code> <strong class=\"purple\">must</strong> be dynamically uniform within the derivative group. Otherwise, &#8220;Index&#8221; <strong class=\"purple\">must</strong> be a constant."
- },
- {
- "vuid": "VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06277",
- "text": " If <a href=\"#features-subgroupBroadcastDynamicId\"><code>subgroupBroadcastDynamicId</code></a> is <code>VK_TRUE</code>, and the shader module version is 1.5 or higher, the &#8220;Id&#8221; for <code>OpGroupNonUniformBroadcast</code> <strong class=\"purple\">must</strong> be dynamically uniform within the subgroup. Otherwise, &#8220;Id&#8221; <strong class=\"purple\">must</strong> be a constant."
- }
- ],
- "(VK_KHR_shader_atomic_int64)": [
- {
- "vuid": "VUID-RuntimeSpirv-None-06278",
- "text": " <a href=\"#features-shaderBufferInt64Atomics\">shaderBufferInt64Atomics</a> <strong class=\"purple\">must</strong> be enabled for 64-bit integer atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>StorageBuffer</strong> or <strong>Uniform</strong>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-None-06279",
- "text": " <a href=\"#features-shaderSharedInt64Atomics\">shaderSharedInt64Atomics</a> <strong class=\"purple\">must</strong> be enabled for 64-bit integer atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>Workgroup</strong>."
- }
- ],
- "(VK_EXT_shader_atomic_float)+!(VK_EXT_shader_atomic_float2)": [
- {
- "vuid": "VUID-RuntimeSpirv-None-06280",
- "text": " <a href=\"#features-shaderBufferFloat32Atomics\">shaderBufferFloat32Atomics</a>, or <a href=\"#features-shaderBufferFloat32AtomicAdd\">shaderBufferFloat32AtomicAdd</a>, or <a href=\"#features-shaderBufferFloat64Atomics\">shaderBufferFloat64Atomics</a>, or <a href=\"#features-shaderBufferFloat64AtomicAdd\">shaderBufferFloat64AtomicAdd</a> <strong class=\"purple\">must</strong> be enabled for floating-point atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>StorageBuffer</strong>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-None-06281",
- "text": " <a href=\"#features-shaderSharedFloat32Atomics\">shaderSharedFloat32Atomics</a>, or <a href=\"#features-shaderSharedFloat32AtomicAdd\">shaderSharedFloat32AtomicAdd</a>, or <a href=\"#features-shaderSharedFloat64Atomics\">shaderSharedFloat64Atomics</a>, or <a href=\"#features-shaderSharedFloat64AtomicAdd\">shaderSharedFloat64AtomicAdd</a> <strong class=\"purple\">must</strong> be enabled for floating-point atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>Workgroup</strong>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-None-06282",
- "text": " <a href=\"#features-shaderImageFloat32Atomics\">shaderImageFloat32Atomics</a> or <a href=\"#features-shaderImageFloat32AtomicAdd\">shaderImageFloat32AtomicAdd</a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating-point atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>Image</strong>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-None-06283",
- "text": " <a href=\"#features-sparseImageFloat32Atomics\">sparseImageFloat32Atomics</a> or <a href=\"#features-sparseImageFloat32AtomicAdd\">sparseImageFloat32AtomicAdd</a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating-point atomics to be supported on sparse images."
- },
- {
- "vuid": "VUID-RuntimeSpirv-None-06335",
- "text": " <a href=\"#features-shaderBufferFloat32Atomics\">shaderBufferFloat32Atomics</a>, or <a href=\"#features-shaderBufferFloat32AtomicAdd\">shaderBufferFloat32AtomicAdd</a>, or <a href=\"#features-shaderSharedFloat32Atomics\">shaderSharedFloat32Atomics</a>, or <a href=\"#features-shaderSharedFloat32AtomicAdd\">shaderSharedFloat32AtomicAdd</a>, or <a href=\"#features-shaderImageFloat32Atomics\">shaderImageFloat32Atomics</a>, or <a href=\"#features-shaderImageFloat32AtomicAdd\">shaderImageFloat32AtomicAdd</a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating point atomic operations"
- },
- {
- "vuid": "VUID-RuntimeSpirv-None-06336",
- "text": " <a href=\"#features-shaderBufferFloat64Atomics\">shaderBufferFloat64Atomics</a>, or <a href=\"#features-shaderBufferFloat64AtomicAdd\">shaderBufferFloat64AtomicAdd</a>, or <a href=\"#features-shaderSharedFloat64Atomics\">shaderSharedFloat64Atomics</a>, or <a href=\"#features-shaderSharedFloat64AtomicAdd\">shaderSharedFloat64AtomicAdd</a> <strong class=\"purple\">must</strong> be enabled for 64-bit floating point atomic operations"
- }
- ],
- "(VK_EXT_shader_atomic_float2)": [
- {
- "vuid": "VUID-RuntimeSpirv-None-06284",
- "text": " <a href=\"#features-shaderBufferFloat32Atomics\">shaderBufferFloat32Atomics</a>, or <a href=\"#features-shaderBufferFloat32AtomicAdd\">shaderBufferFloat32AtomicAdd</a>, or <a href=\"#features-shaderBufferFloat64Atomics\">shaderBufferFloat64Atomics</a>, or <a href=\"#features-shaderBufferFloat64AtomicAdd\">shaderBufferFloat64AtomicAdd</a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\">shaderBufferFloat16Atomics</a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\">shaderBufferFloat16AtomicAdd</a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\">shaderBufferFloat16AtomicMinMax</a>, or <a href=\"#features-shaderBufferFloat32AtomicMinMax\">shaderBufferFloat32AtomicMinMax</a>, or <a href=\"#features-shaderBufferFloat64AtomicMinMax\">shaderBufferFloat64AtomicMinMax</a> <strong class=\"purple\">must</strong> be enabled for floating-point atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>StorageBuffer</strong>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-None-06285",
- "text": " <a href=\"#features-shaderSharedFloat32Atomics\">shaderSharedFloat32Atomics</a>, or <a href=\"#features-shaderSharedFloat32AtomicAdd\">shaderSharedFloat32AtomicAdd</a>, or <a href=\"#features-shaderSharedFloat64Atomics\">shaderSharedFloat64Atomics</a>, or <a href=\"#features-shaderSharedFloat64AtomicAdd\">shaderSharedFloat64AtomicAdd</a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\">shaderSharedFloat16Atomics</a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\">shaderSharedFloat16AtomicAdd</a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\">shaderSharedFloat16AtomicMinMax</a>, or <a href=\"#features-shaderSharedFloat32AtomicMinMax\">shaderSharedFloat32AtomicMinMax</a>, or <a href=\"#features-shaderSharedFloat64AtomicMinMax\">shaderSharedFloat64AtomicMinMax</a> <strong class=\"purple\">must</strong> be enabled for floating-point atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>Workgroup</strong>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-None-06286",
- "text": " <a href=\"#features-shaderImageFloat32Atomics\">shaderImageFloat32Atomics</a>, or <a href=\"#features-shaderImageFloat32AtomicAdd\">shaderImageFloat32AtomicAdd</a>, or <a href=\"#features-shaderImageFloat32AtomicMinMax\">shaderImageFloat32AtomicMinMax</a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating-point atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>Image</strong>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-None-06287",
- "text": " <a href=\"#features-sparseImageFloat32Atomics\">sparseImageFloat32Atomics</a>, or <a href=\"#features-sparseImageFloat32AtomicAdd\">sparseImageFloat32AtomicAdd</a>, or <a href=\"#features-sparseImageFloat32AtomicMinMax\">sparseImageFloat32AtomicMinMax</a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating-point atomics to be supported on sparse images."
- },
- {
- "vuid": "VUID-RuntimeSpirv-None-06337",
- "text": " <a href=\"#features-shaderBufferFloat16Atomics\">shaderBufferFloat16Atomics</a>, or <a href=\"#features-shaderBufferFloat16AtomicAdd\">shaderBufferFloat16AtomicAdd</a>, or <a href=\"#features-shaderBufferFloat16AtomicMinMax\">shaderBufferFloat16AtomicMinMax</a>, or <a href=\"#features-shaderSharedFloat16Atomics\">shaderSharedFloat16Atomics</a>, or <a href=\"#features-shaderSharedFloat16AtomicAdd\">shaderSharedFloat16AtomicAdd</a>, or <a href=\"#features-shaderSharedFloat16AtomicMinMax\">shaderSharedFloat16AtomicMinMax</a> <strong class=\"purple\">must</strong> be enabled for 16-bit floating point atomic operations"
- },
- {
- "vuid": "VUID-RuntimeSpirv-None-06338",
- "text": " <a href=\"#features-shaderBufferFloat32Atomics\">shaderBufferFloat32Atomics</a>, or <a href=\"#features-shaderBufferFloat32AtomicAdd\">shaderBufferFloat32AtomicAdd</a>, or <a href=\"#features-shaderSharedFloat32Atomics\">shaderSharedFloat32Atomics</a>, or <a href=\"#features-shaderSharedFloat32AtomicAdd\">shaderSharedFloat32AtomicAdd</a>, or <a href=\"#features-shaderImageFloat32Atomics\">shaderImageFloat32Atomics</a>, or <a href=\"#features-shaderImageFloat32AtomicAdd\">shaderImageFloat32AtomicAdd</a> or <a href=\"#features-shaderBufferFloat32AtomicMinMax\">shaderBufferFloat32AtomicMinMax</a>, or <a href=\"#features-shaderSharedFloat32AtomicMinMax\">shaderSharedFloat32AtomicMinMax</a>, or <a href=\"#features-shaderImageFloat32AtomicMinMax\">shaderImageFloat32AtomicMinMax</a> <strong class=\"purple\">must</strong> be enabled for 32-bit floating point atomic operations"
- },
- {
- "vuid": "VUID-RuntimeSpirv-None-06339",
- "text": " <a href=\"#features-shaderBufferFloat64Atomics\">shaderBufferFloat64Atomics</a>, or <a href=\"#features-shaderBufferFloat64AtomicAdd\">shaderBufferFloat64AtomicAdd</a>, or <a href=\"#features-shaderSharedFloat64Atomics\">shaderSharedFloat64Atomics</a>, or <a href=\"#features-shaderSharedFloat64AtomicAdd\">shaderSharedFloat64AtomicAdd</a>, or <a href=\"#features-shaderBufferFloat64AtomicMinMax\">shaderBufferFloat64AtomicMinMax</a>, or <a href=\"#features-shaderSharedFloat64AtomicMinMax\">shaderSharedFloat64AtomicMinMax</a>, <strong class=\"purple\">must</strong> be enabled for 64-bit floating point atomic operations"
- }
- ],
- "(VK_EXT_shader_image_atomic_int64)": [
- {
- "vuid": "VUID-RuntimeSpirv-None-06288",
- "text": " <a href=\"#features-shaderImageInt64Atomics\">shaderImageInt64Atomics</a> <strong class=\"purple\">must</strong> be enabled for 64-bit integer atomic operations to be supported on a <em>Pointer</em> with a <strong>Storage Class</strong> of <strong>Image</strong>."
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_shader_float_controls)": [
- {
- "vuid": "VUID-RuntimeSpirv-denormBehaviorIndependence-06289",
- "text": " If <a href=\"#features-denormBehaviorIndependence\"><code>denormBehaviorIndependence</code></a> is <code>VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY</code>, then the entry point <strong class=\"purple\">must</strong> use the same denormals execution mode for both 16-bit and 64-bit floating-point types."
- },
- {
- "vuid": "VUID-RuntimeSpirv-denormBehaviorIndependence-06290",
- "text": " If <a href=\"#features-denormBehaviorIndependence\"><code>denormBehaviorIndependence</code></a> is <code>VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE</code>, then the entry point <strong class=\"purple\">must</strong> use the same denormals execution mode for all floating-point types."
- },
- {
- "vuid": "VUID-RuntimeSpirv-roundingModeIndependence-06291",
- "text": " If <a href=\"#features-roundingModeIndependence\"><code>roundingModeIndependence</code></a> is <code>VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY</code>, then the entry point <strong class=\"purple\">must</strong> use the same rounding execution mode for both 16-bit and 64-bit floating-point types."
- },
- {
- "vuid": "VUID-RuntimeSpirv-roundingModeIndependence-06292",
- "text": " If <a href=\"#features-roundingModeIndependence\"><code>roundingModeIndependence</code></a> is <code>VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE</code>, then the entry point <strong class=\"purple\">must</strong> use the same rounding execution mode for all floating-point types."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat16-06293",
- "text": " If <a href=\"#limits-shaderSignedZeroInfNanPreserveFloat16\"><code>shaderSignedZeroInfNanPreserveFloat16</code></a> is <code>VK_FALSE</code>, then <code>SignedZeroInfNanPreserve</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat32-06294",
- "text": " If <a href=\"#limits-shaderSignedZeroInfNanPreserveFloat32\"><code>shaderSignedZeroInfNanPreserveFloat32</code></a> is <code>VK_FALSE</code>, then <code>SignedZeroInfNanPreserve</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat64-06295",
- "text": " If <a href=\"#limits-shaderSignedZeroInfNanPreserveFloat64\"><code>shaderSignedZeroInfNanPreserveFloat64</code></a> is <code>VK_FALSE</code>, then <code>SignedZeroInfNanPreserve</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderDenormPreserveFloat16-06296",
- "text": " If <a href=\"#limits-shaderDenormPreserveFloat16\"><code>shaderDenormPreserveFloat16</code></a> is <code>VK_FALSE</code>, then <code>DenormPreserve</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderDenormPreserveFloat32-06297",
- "text": " If <a href=\"#limits-shaderDenormPreserveFloat32\"><code>shaderDenormPreserveFloat32</code></a> is <code>VK_FALSE</code>, then <code>DenormPreserve</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderDenormPreserveFloat64-06298",
- "text": " If <a href=\"#limits-shaderDenormPreserveFloat64\"><code>shaderDenormPreserveFloat64</code></a> is <code>VK_FALSE</code>, then <code>DenormPreserve</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat16-06299",
- "text": " If <a href=\"#limits-shaderDenormFlushToZeroFloat16\"><code>shaderDenormFlushToZeroFloat16</code></a> is <code>VK_FALSE</code>, then <code>DenormFlushToZero</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat32-06300",
- "text": " If <a href=\"#limits-shaderDenormFlushToZeroFloat32\"><code>shaderDenormFlushToZeroFloat32</code></a> is <code>VK_FALSE</code>, then <code>DenormFlushToZero</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat64-06301",
- "text": " If <a href=\"#limits-shaderDenormFlushToZeroFloat64\"><code>shaderDenormFlushToZeroFloat64</code></a> is <code>VK_FALSE</code>, then <code>DenormFlushToZero</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTEFloat16-06302",
- "text": " If <a href=\"#limits-shaderRoundingModeRTEFloat16\"><code>shaderRoundingModeRTEFloat16</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTE</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTEFloat32-06303",
- "text": " If <a href=\"#limits-shaderRoundingModeRTEFloat32\"><code>shaderRoundingModeRTEFloat32</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTE</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTEFloat64-06304",
- "text": " If <a href=\"#limits-shaderRoundingModeRTEFloat64\"><code>shaderRoundingModeRTEFloat64</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTE</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTZFloat16-06305",
- "text": " If <a href=\"#limits-shaderRoundingModeRTZFloat16\"><code>shaderRoundingModeRTZFloat16</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTZ</code> for 16-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTZFloat32-06306",
- "text": " If <a href=\"#limits-shaderRoundingModeRTZFloat32\"><code>shaderRoundingModeRTZFloat32</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTZ</code> for 32-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- },
- {
- "vuid": "VUID-RuntimeSpirv-shaderRoundingModeRTZFloat64-06307",
- "text": " If <a href=\"#limits-shaderRoundingModeRTZFloat64\"><code>shaderRoundingModeRTZFloat64</code></a> is <code>VK_FALSE</code>, then <code>RoundingModeRTZ</code> for 64-bit floating-point type <strong class=\"purple\">must</strong> not be used."
- }
- ],
- "(VK_EXT_transform_feedback)": [
- {
- "vuid": "VUID-RuntimeSpirv-Offset-06308",
- "text": " The <code>Offset</code> plus size of the type of each variable, in the output interface of the entry point being compiled, decorated with <code>XfbBuffer</code> <strong class=\"purple\">must</strong> not be greater than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBufferDataSize</code>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-XfbBuffer-06309",
- "text": " For any given <code>XfbBuffer</code> value, define the buffer data size to be smallest number of bytes such that, for all outputs decorated with the same <code>XfbBuffer</code> value, the size of the output interface variable plus the <code>Offset</code> is less than or equal to the buffer data size. For a given <code>Stream</code>, the sum of all the buffer data sizes for all buffers writing to that stream the <strong class=\"purple\">must</strong> not exceed <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreamDataSize</code>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpEmitStreamVertex-06310",
- "text": " The Stream value to <code>OpEmitStreamVertex</code> and <code>OpEndStreamPrimitive</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreams</code>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-transformFeedbackStreamsLinesTriangles-06311",
- "text": " If the geometry shader emits to more than one vertex stream and <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>transformFeedbackStreamsLinesTriangles</code> is <code>VK_FALSE</code>, then execution mode <strong class=\"purple\">must</strong> be <code>OutputPoints</code>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-Stream-06312",
- "text": " The stream number value to <code>Stream</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackStreams</code>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-XfbStride-06313",
- "text": " The XFB Stride value to <code>XfbStride</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceTransformFeedbackPropertiesEXT</code>::<code>maxTransformFeedbackBufferDataStride</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)": [
- {
- "vuid": "VUID-RuntimeSpirv-PhysicalStorageBuffer64-06314",
- "text": " If the <code>PhysicalStorageBuffer64</code> addressing model is enabled any load or store through a physical pointer type <strong class=\"purple\">must</strong> be aligned to a multiple of the size of the largest scalar type in the pointed-to type."
- },
- {
- "vuid": "VUID-RuntimeSpirv-PhysicalStorageBuffer64-06315",
- "text": " If the <code>PhysicalStorageBuffer64</code> addressing model is enabled the pointer value of a memory access instruction <strong class=\"purple\">must</strong> be at least as aligned as specified by the <code>Aligned</code> memory access operand."
- }
- ],
- "(VK_NV_cooperative_matrix)": [
- {
- "vuid": "VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06316",
- "text": " For <code>OpTypeCooperativeMatrixNV</code>, the component type, scope, number of rows, and number of columns <strong class=\"purple\">must</strong> match one of the matrices in any of the supported <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06317",
- "text": " For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>A</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>MSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>KSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>AType</code>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06318",
- "text": " For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>B</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>KSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>NSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>BType</code>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06319",
- "text": " For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>C</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>MSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>NSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>CType</code>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06320",
- "text": " For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>Result</code> <strong class=\"purple\">must</strong> have <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>MSize</code> rows and <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>NSize</code> columns and have a component type that matches <a href=\"#VkCooperativeMatrixPropertiesNV\">VkCooperativeMatrixPropertiesNV</a>::<code>DType</code>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06321",
- "text": " For <code>OpCooperativeMatrixMulAddNV</code>, the type of <code>A</code>, <code>B</code>, <code>C</code>, and <code>Result</code> <strong class=\"purple\">must</strong> all have a scope of <code>scope</code>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06322",
- "text": " <code>OpTypeCooperativeMatrixNV</code> and <code>OpCooperativeMatrix*</code> instructions <strong class=\"purple\">must</strong> not be used in shader stages not included in <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesNV\">VkPhysicalDeviceCooperativeMatrixPropertiesNV</a>::<code>cooperativeMatrixSupportedStages</code>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpCooperativeMatrixLoadNV-06324",
- "text": " For <code>OpCooperativeMatrixLoadNV</code> and <code>OpCooperativeMatrixStoreNV</code> instructions, the <code>Pointer</code> and <code>Stride</code> operands <strong class=\"purple\">must</strong> be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending on <code>ColumnMajor</code>) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size)."
- }
- ],
- "(VK_KHR_portability_subset)": [
- {
- "vuid": "VUID-RuntimeSpirv-shaderSampleRateInterpolationFunctions-06325",
- "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>shaderSampleRateInterpolationFunctions</code> is <code>VK_FALSE</code>, then <code>GLSL.std.450</code> fragment interpolation functions are not supported by the implementation and <code>OpCapability</code> <strong class=\"purple\">must</strong> not be set to <code>InterpolationFunction</code>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-tessellationShader-06326",
- "text": " If <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> is enabled, and the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>tessellationIsolines</code> is <code>VK_FALSE</code>, then <code>OpExecutionMode</code> <strong class=\"purple\">must</strong> not be set to <code>IsoLines</code>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-tessellationShader-06327",
- "text": " If <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> is enabled, and the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>tessellationPointMode</code> is <code>VK_FALSE</code>, then <code>OpExecutionMode</code> <strong class=\"purple\">must</strong> not be set to <code>PointMode</code>."
- }
- ],
- "(VK_KHR_8bit_storage)": [
- {
- "vuid": "VUID-RuntimeSpirv-storageBuffer8BitAccess-06328",
- "text": " If <a href=\"#features-storageBuffer8BitAccess\"><code>storageBuffer8BitAccess</code></a> is <code>VK_FALSE</code>, then objects containing an 8-bit integer element <strong class=\"purple\">must</strong> not have storage class of <strong>StorageBuffer</strong>, <strong>ShaderRecordBufferKHR</strong>, or <strong>PhysicalStorageBuffer</strong>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-uniformAndStorageBuffer8BitAccess-06329",
- "text": " If <a href=\"#features-uniformAndStorageBuffer8BitAccess\"><code>uniformAndStorageBuffer8BitAccess</code></a> is <code>VK_FALSE</code>, then objects in the <strong>Uniform</strong> storage class with the <strong>Block</strong> decoration <strong class=\"purple\">must</strong> not have an 8-bit integer member."
- },
- {
- "vuid": "VUID-RuntimeSpirv-storagePushConstant8-06330",
- "text": " If <a href=\"#features-storagePushConstant8\"><code>storagePushConstant8</code></a> is <code>VK_FALSE</code>, then objects containing an 8-bit integer element <strong class=\"purple\">must</strong> not have storage class of <strong>PushConstant</strong>."
- }
- ],
- "(VK_KHR_16bit_storage)": [
- {
- "vuid": "VUID-RuntimeSpirv-storageBuffer16BitAccess-06331",
- "text": " If <a href=\"#features-storageBuffer16BitAccess\"><code>storageBuffer16BitAccess</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 storage class of <strong>StorageBuffer</strong>, <strong>ShaderRecordBufferKHR</strong>, or <strong>PhysicalStorageBuffer</strong>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-uniformAndStorageBuffer16BitAccess-06332",
- "text": " If <a href=\"#features-uniformAndStorageBuffer16BitAccess\"><code>uniformAndStorageBuffer16BitAccess</code></a> is <code>VK_FALSE</code>, then objects in the <strong>Uniform</strong> storage class with the <strong>Block</strong> decoration <strong class=\"purple\">must</strong> not have 16-bit integer or 16-bit floating-point members."
- },
- {
- "vuid": "VUID-RuntimeSpirv-storagePushConstant16-06333",
- "text": " If <a href=\"#features-storagePushConstant16\"><code>storagePushConstant16</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 storage class of <strong>PushConstant</strong>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-storageInputOutput16-06334",
- "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 storage class of <strong>Input</strong> or <strong>Output</strong>."
- }
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-RuntimeSpirv-None-06343",
- "text": " <a href=\"#shaders-group-operations\">Group operations</a> with <a href=\"#shaders-scope-subgroup\">subgroup scope</a> <strong class=\"purple\">must</strong> not be used if the shader stage is not in <a href=\"#limits-subgroupSupportedStages\">subgroupSupportedStages</a>."
- }
- ],
- "(VK_KHR_ray_query)": [
- {
- "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06348",
- "text": " For <code>OpRayQueryInitializeKHR</code> instructions, all components of the <code>RayOrigin</code> and <code>RayDirection</code> operands <strong class=\"purple\">must</strong> be finite floating-point values."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06349",
- "text": " For <code>OpRayQueryInitializeKHR</code> instructions, the <code>RayTmin</code> and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> be non-negative floating-point values."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06350",
- "text": " For <code>OpRayQueryInitializeKHR</code> instructions, the <code>RayTmin</code> operand <strong class=\"purple\">must</strong> be less than or equal to the <code>RayTmax</code> operand."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06351",
- "text": " For <code>OpRayQueryInitializeKHR</code> instructions, <code>RayOrigin</code>, <code>RayDirection</code>, <code>RayTmin</code>, and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> not contain NaNs."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06352",
- "text": " For <code>OpRayQueryInitializeKHR</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> be an acceleration structure built as a <a href=\"#acceleration-structure-top-level\">top-level acceleration structure</a>."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpRayQueryGenerateIntersectionKHR-06353",
- "text": " For <code>OpRayQueryGenerateIntersectionKHR</code> instructions, <code>Hit</code> <code>T</code> <strong class=\"purple\">must</strong> satisfy the condition <span class=\"eq\"><code>RayTmin</code> {leq} <code>Hit</code> <code>T</code> {leq} <code>RayTmax</code></span>, where <code>RayTmin</code> is equal to the value returned by <code>OpRayQueryGetRayTMinKHR</code> with the same ray query object, and <code>RayTmax</code> is equal to the value of <code>OpRayQueryGetIntersectionTKHR</code> for the current committed intersection with the same ray query object."
- }
- ],
- "(VK_KHR_ray_query)+(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-RuntimeSpirv-OpRayQueryGenerateIntersectionKHR-06354",
- "text": " For <code>OpRayQueryGenerateIntersectionKHR</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> not be built with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> in <code>flags</code>."
- }
- ],
- "(VK_KHR_ray_tracing_pipeline)": [
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06355",
- "text": " For <code>OpTraceRayKHR</code> instructions, all components of the <code>RayOrigin</code> and <code>RayDirection</code> operands <strong class=\"purple\">must</strong> be finite floating-point values."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06356",
- "text": " For <code>OpTraceRayKHR</code> instructions, the <code>RayTmin</code> and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> be non-negative floating-point values."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06552",
- "text": " For <code>OpTraceRayKHR</code> instructions, the <code>Rayflags</code> operand <strong class=\"purple\">must</strong> not contain both <code>SkipTrianglesKHR</code> and <code>SkipAABBsKHR</code>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06553",
- "text": " For <code>OpTraceRayKHR</code> instructions, if the <code>Rayflags</code> operand contains <code>SkipTrianglesKHR</code>, the pipeline <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR</code> set"
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06554",
- "text": " For <code>OpTraceRayKHR</code> instructions, if the <code>Rayflags</code> operand contains <code>SkipAABBsKHR</code>, the pipeline <strong class=\"purple\">must</strong> not have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR</code> set"
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06357",
- "text": " For <code>OpTraceRayKHR</code> instructions, the <code>RayTmin</code> operand <strong class=\"purple\">must</strong> be less than or equal to the <code>RayTmax</code> operand."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06358",
- "text": " For <code>OpTraceRayKHR</code> instructions, <code>RayOrigin</code>, <code>RayDirection</code>, <code>RayTmin</code>, and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> not contain NaNs."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06359",
- "text": " For <code>OpTraceRayKHR</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> be an acceleration structure built as a <a href=\"#acceleration-structure-top-level\">top-level acceleration structure</a>."
- }
- ],
- "(VK_NV_ray_tracing_motion_blur)": [
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayKHR-06360",
- "text": " For <code>OpTraceRayKHR</code> instructions, if <code>Acceleration</code> <code>Structure</code> was built with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> in <code>flags</code>, the pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> set"
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06361",
- "text": " For <code>OpTraceRayMotionNV</code> instructions, all components of the <code>RayOrigin</code> and <code>RayDirection</code> operands <strong class=\"purple\">must</strong> be finite floating-point values."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06362",
- "text": " For <code>OpTraceRayMotionNV</code> instructions, the <code>RayTmin</code> and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> be non-negative floating-point values."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06363",
- "text": " For <code>OpTraceRayMotionNV</code> instructions, the <code>RayTmin</code> operand <strong class=\"purple\">must</strong> be less than or equal to the <code>RayTmax</code> operand."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06364",
- "text": " For <code>OpTraceRayMotionNV</code> instructions, <code>RayOrigin</code>, <code>RayDirection</code>, <code>RayTmin</code>, and <code>RayTmax</code> operands <strong class=\"purple\">must</strong> not contain NaNs."
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06365",
- "text": " For <code>OpTraceRayMotionNV</code> instructions, <code>Acceleration</code> <code>Structure</code> <strong class=\"purple\">must</strong> be an acceleration structure built as a <a href=\"#acceleration-structure-top-level\">top-level acceleration structure</a> with <code>VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV</code> in <code>flags</code>"
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06366",
- "text": " For <code>OpTraceRayMotionNV</code> instructions the <code>time</code> operand <strong class=\"purple\">must</strong> be between 0.0 and 1.0"
- },
- {
- "vuid": "VUID-RuntimeSpirv-OpTraceRayMotionNV-06367",
- "text": " For <code>OpTraceRayMotionNV</code> instructions the pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV</code> set"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-RuntimeSpirv-LocalSizeId-06433",
- "text": " The execution mode <code>LocalSizeId</code> <strong class=\"purple\">must</strong> not be used"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_maintenance4)": [
- {
- "vuid": "VUID-RuntimeSpirv-LocalSizeId-06434",
- "text": " if execution mode <code>LocalSizeId</code> is used, <a href=\"#features-maintenance4\"><code>maintenance4</code></a> <strong class=\"purple\">must</strong> be enabled"
- }
- ],
- "(VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory)": [
- {
- "vuid": "VUID-RuntimeSpirv-shaderZeroInitializeWorkgroupMemory-06372",
- "text": " If <a href=\"#features-shaderZeroInitializeWorkgroupMemory\"><code>shaderZeroInitializeWorkgroupMemory</code></a> is not enabled, any <code>OpVariable</code> with <strong>Workgroup</strong> as its <strong>Storage Class</strong> <strong class=\"purple\">must</strong> not have an <code>Initializer</code> operand"
- }
- ],
- "!(VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory)": [
- {
- "vuid": "VUID-RuntimeSpirv-OpVariable-06373",
- "text": " Any <code>OpVariable</code> with <strong>Workgroup</strong> as its <strong>Storage Class</strong> <strong class=\"purple\">must</strong> not have an <code>Initializer</code> operand"
- }
- ],
- "(VK_QCOM_render_pass_shader_resolve)": [
- {
- "vuid": "VUID-RuntimeSpirv-SampleRateShading-06378",
- "text": " If the subpass description contains <code>VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM</code>, then the SPIR-V fragment shader Capability <code>SampleRateShading</code> <strong class=\"purple\">must</strong> not be enabled."
- }
- ],
- "(VK_KHR_shader_subgroup_uniform_control_flow)": [
- {
- "vuid": "VUID-RuntimeSpirv-SubgroupUniformControlFlowKHR-06379",
- "text": " The execution mode <code>SubgroupUniformControlFlowKHR</code> <strong class=\"purple\">must</strong> not be applied to an entry point unless <a href=\"#features-shaderSubgroupUniformControlFlow\"><code>shaderSubgroupUniformControlFlow</code></a> is enabled and the corresponding shader stage bit is set in subgroup <a href=\"#limits-subgroup-supportedStages\"><code>supportedStages</code></a> and the entry point does not execute any <a href=\"#ray-tracing-repack\"><em>invocation repack instructions</em></a>."
- }
- ]
- },
- "vkCreateCuFunctionNVX": {
- "(VK_NVX_binary_import)": [
- {
- "vuid": "VUID-vkCreateCuFunctionNVX-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateCuFunctionNVX-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCuFunctionCreateInfoNVX\">VkCuFunctionCreateInfoNVX</a> structure"
- },
- {
- "vuid": "VUID-vkCreateCuFunctionNVX-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"
- },
- {
- "vuid": "VUID-vkCreateCuFunctionNVX-pFunction-parameter",
- "text": " <code>pFunction</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkCuFunctionNVX\">VkCuFunctionNVX</a> handle"
- }
- ]
- },
- "VkCuFunctionCreateInfoNVX": {
- "(VK_NVX_binary_import)": [
- {
- "vuid": "VUID-VkCuFunctionCreateInfoNVX-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX</code>"
- },
- {
- "vuid": "VUID-VkCuFunctionCreateInfoNVX-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCuFunctionCreateInfoNVX-module-parameter",
- "text": " <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCuModuleNVX\">VkCuModuleNVX</a> handle"
- },
- {
- "vuid": "VUID-VkCuFunctionCreateInfoNVX-pName-parameter",
- "text": " <code>pName</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string"
- }
- ]
- },
- "vkDestroyCuFunctionNVX": {
- "(VK_NVX_binary_import)": [
- {
- "vuid": "VUID-vkDestroyCuFunctionNVX-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyCuFunctionNVX-function-parameter",
- "text": " <code>function</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCuFunctionNVX\">VkCuFunctionNVX</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyCuFunctionNVX-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"
- },
- {
- "vuid": "VUID-vkDestroyCuFunctionNVX-function-parent",
- "text": " <code>function</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCreateCuModuleNVX": {
- "(VK_NVX_binary_import)": [
- {
- "vuid": "VUID-vkCreateCuModuleNVX-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkCreateCuModuleNVX-pCreateInfo-parameter",
- "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCuModuleCreateInfoNVX\">VkCuModuleCreateInfoNVX</a> structure"
- },
- {
- "vuid": "VUID-vkCreateCuModuleNVX-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"
- },
- {
- "vuid": "VUID-vkCreateCuModuleNVX-pModule-parameter",
- "text": " <code>pModule</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkCuModuleNVX\">VkCuModuleNVX</a> handle"
- }
- ]
- },
- "VkCuModuleCreateInfoNVX": {
- "(VK_NVX_binary_import)": [
- {
- "vuid": "VUID-VkCuModuleCreateInfoNVX-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX</code>"
- },
- {
- "vuid": "VUID-VkCuModuleCreateInfoNVX-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "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"
- },
- {
- "vuid": "VUID-VkCuModuleCreateInfoNVX-dataSize-arraylength",
- "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
- }
- ]
- },
- "vkDestroyCuModuleNVX": {
- "(VK_NVX_binary_import)": [
- {
- "vuid": "VUID-vkDestroyCuModuleNVX-device-parameter",
- "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyCuModuleNVX-module-parameter",
- "text": " <code>module</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCuModuleNVX\">VkCuModuleNVX</a> handle"
- },
- {
- "vuid": "VUID-vkDestroyCuModuleNVX-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"
- },
- {
- "vuid": "VUID-vkDestroyCuModuleNVX-module-parent",
- "text": " <code>module</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
- }
- ]
- },
- "vkCmdCuLaunchKernelNVX": {
- "(VK_NVX_binary_import)": [
- {
- "vuid": "VUID-vkCmdCuLaunchKernelNVX-commandBuffer-parameter",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
- },
- {
- "vuid": "VUID-vkCmdCuLaunchKernelNVX-pLaunchInfo-parameter",
- "text": " <code>pLaunchInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCuLaunchInfoNVX\">VkCuLaunchInfoNVX</a> structure"
- },
- {
- "vuid": "VUID-vkCmdCuLaunchKernelNVX-commandBuffer-recording",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
- },
- {
- "vuid": "VUID-vkCmdCuLaunchKernelNVX-commandBuffer-cmdpool",
- "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations"
- }
- ]
- },
- "VkCuLaunchInfoNVX": {
- "(VK_NVX_binary_import)": [
- {
- "vuid": "VUID-VkCuLaunchInfoNVX-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX</code>"
- },
- {
- "vuid": "VUID-VkCuLaunchInfoNVX-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
- "vuid": "VUID-VkCuLaunchInfoNVX-function-parameter",
- "text": " <code>function</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCuFunctionNVX\">VkCuFunctionNVX</a> handle"
- },
- {
- "vuid": "VUID-VkCuLaunchInfoNVX-pParams-parameter",
- "text": " If <code>paramCount</code> is not <code>0</code>, <code>pParams</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>paramCount</code> bytes"
- },
- {
- "vuid": "VUID-VkCuLaunchInfoNVX-pExtras-parameter",
- "text": " If <code>extraCount</code> is not <code>0</code>, <code>pExtras</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>extraCount</code> bytes"
- }
- ]
- }
- }
-} \ No newline at end of file
diff --git a/registry/vk.xml b/registry/vk.xml
deleted file mode 100644
index fc65db0..0000000
--- a/registry/vk.xml
+++ /dev/null
@@ -1,20429 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<registry>
- <comment>
-Copyright 2015-2022 The Khronos Group Inc.
-
-SPDX-License-Identifier: Apache-2.0 OR MIT
- </comment>
-
- <comment>
-This file, vk.xml, is the Vulkan API Registry. It is a critically important
-and normative part of the Vulkan Specification, including a canonical
-machine-readable definition of the API, parameter and member validation
-language incorporated into the Specification and reference pages, and other
-material which is registered by Khronos, such as tags used by extension and
-layer authors. The authoritative public version of vk.xml is maintained in
-the default branch (currently named main) of the Khronos Vulkan GitHub
-project. The authoritative private version is maintained in the default
-branch of the member gitlab server.
- </comment>
-
- <platforms comment="Vulkan platform names, reserved for use with platform- and window system-specific extensions">
- <platform name="xlib" protect="VK_USE_PLATFORM_XLIB_KHR" comment="X Window System, Xlib client library"/>
- <platform name="xlib_xrandr" protect="VK_USE_PLATFORM_XLIB_XRANDR_EXT" comment="X Window System, Xlib client library, XRandR extension"/>
- <platform name="xcb" protect="VK_USE_PLATFORM_XCB_KHR" comment="X Window System, Xcb client library"/>
- <platform name="wayland" protect="VK_USE_PLATFORM_WAYLAND_KHR" comment="Wayland display server protocol"/>
- <platform name="directfb" protect="VK_USE_PLATFORM_DIRECTFB_EXT" comment="DirectFB library"/>
- <platform name="android" protect="VK_USE_PLATFORM_ANDROID_KHR" comment="Android OS"/>
- <platform name="win32" protect="VK_USE_PLATFORM_WIN32_KHR" comment="Microsoft Win32 API (also refers to Win64 apps)"/>
- <platform name="vi" protect="VK_USE_PLATFORM_VI_NN" comment="Nintendo Vi"/>
- <platform name="ios" protect="VK_USE_PLATFORM_IOS_MVK" comment="Apple IOS"/>
- <platform name="macos" protect="VK_USE_PLATFORM_MACOS_MVK" comment="Apple MacOS"/>
- <platform name="metal" protect="VK_USE_PLATFORM_METAL_EXT" comment="Metal on CoreAnimation on Apple platforms"/>
- <platform name="fuchsia" protect="VK_USE_PLATFORM_FUCHSIA" comment="Fuchsia"/>
- <platform name="ggp" protect="VK_USE_PLATFORM_GGP" comment="Google Games Platform"/>
- <platform name="provisional" protect="VK_ENABLE_BETA_EXTENSIONS" comment="Enable declarations for beta/provisional extensions"/>
- <platform name="screen" protect="VK_USE_PLATFORM_SCREEN_QNX" comment="QNX Screen Graphics Subsystem"/>
- </platforms>
-
- <tags comment="Vulkan vendor/author tags for extensions and layers">
- <tag name="IMG" author="Imagination Technologies" contact="Michael Worcester @michaelworcester"/>
- <tag name="AMD" author="Advanced Micro Devices, Inc." contact="Daniel Rakos @drakos-amd"/>
- <tag name="AMDX" author="Advanced Micro Devices, Inc." contact="Daniel Rakos @drakos-amd"/>
- <tag name="ARM" author="ARM Limited" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm"/>
- <tag name="FSL" author="Freescale Semiconductor, Inc." contact="Norbert Nopper @FslNopper"/>
- <tag name="BRCM" author="Broadcom Corporation" contact="Graeme Leese @gnl21"/>
- <tag name="NXP" author="NXP Semiconductors N.V." contact="Norbert Nopper @FslNopper"/>
- <tag name="NV" author="NVIDIA Corporation" contact="Daniel Koch @dgkoch"/>
- <tag name="NVX" author="NVIDIA Corporation" contact="Daniel Koch @dgkoch"/>
- <tag name="VIV" author="Vivante Corporation" contact="Yanjun Zhang gitlab:@yanjunzhang"/>
- <tag name="VSI" author="VeriSilicon Holdings Co., Ltd." contact="Yanjun Zhang gitlab:@yanjunzhang"/>
- <tag name="KDAB" author="KDAB" contact="Sean Harmer @seanharmer"/>
- <tag name="ANDROID" author="Google LLC" contact="Jesse Hall @critsec"/>
- <tag name="CHROMIUM" author="Google LLC" contact="Jesse Hall @critsec"/>
- <tag name="FUCHSIA" author="Google LLC" contact="Craig Stout @cdotstout, Jesse Hall @critsec, John Rosasco @rosasco"/>
- <tag name="GGP" author="Google, LLC" contact="Jean-Francois Roy @jfroy, Hai Nguyen @chaoticbob, Jesse Hall @critsec"/>
- <tag name="GOOGLE" author="Google LLC" contact="Jesse Hall @critsec"/>
- <tag name="QCOM" author="Qualcomm Technologies, Inc." contact="Jeff Leger @jackohounhd"/>
- <tag name="LUNARG" author="LunarG, Inc." contact="Karen Ghavam @karenghavam-lunarg"/>
- <tag name="SAMSUNG" author="Samsung Electronics Co., Ltd." contact="Alon Or-bach @alonorbach"/>
- <tag name="SEC" author="Samsung Electronics Co., Ltd." contact="Alon Or-bach @alonorbach"/>
- <tag name="TIZEN" author="Samsung Electronics Co., Ltd." contact="Alon Or-bach @alonorbach"/>
- <tag name="RENDERDOC" author="RenderDoc (renderdoc.org)" contact="Baldur Karlsson @baldurk"/>
- <tag name="NN" author="Nintendo Co., Ltd." contact="Yasuhiro Yoshioka gitlab:@yoshioka_yasuhiro"/>
- <tag name="MVK" author="The Brenwill Workshop Ltd." contact="Bill Hollings @billhollings"/>
- <tag name="KHR" author="Khronos" contact="Tom Olson @tomolson"/>
- <tag name="KHX" author="Khronos" contact="Tom Olson @tomolson"/>
- <tag name="EXT" author="Multivendor" contact="Jon Leech @oddhack"/>
- <tag name="MESA" author="Mesa open source project" contact="Chad Versace @chadversary, Daniel Stone @fooishbar, David Airlie @airlied, Jason Ekstrand @jekstrand"/>
- <tag name="INTEL" author="Intel Corporation" contact="Slawek Grajewski @sgrajewski"/>
- <tag name="HUAWEI" author="Huawei Technologies Co. Ltd." contact="Hueilong Wang @wyvernathuawei, Yunpeng Zhu @yunxingzhu"/>
- <tag name="VALVE" author="Valve Corporation" contact="Pierre-Loup Griffais @plagman, Joshua Ashton @Joshua-Ashton, Hans-Kristian Arntzen @HansKristian-Work"/>
- <tag name="QNX" author="BlackBerry Limited" contact="Mike Gorchak @mgorchak-blackberry"/>
- <tag name="JUICE" author="Juice Technologies, Inc." contact="David McCloskey @damcclos, Dean Beeler @canadacow"/>
- <tag name="FB" author="Facebook, Inc" contact="Artem Bolgar @artyom17"/>
- </tags>
-
- <types comment="Vulkan type definitions">
- <type name="vk_platform" category="include">#include "vk_platform.h"</type>
-
- <comment>WSI extensions</comment>
-
- <type category="include" name="X11/Xlib.h"/>
- <type category="include" name="X11/extensions/Xrandr.h"/>
- <type category="include" name="wayland-client.h"/>
- <type category="include" name="windows.h"/>
- <type category="include" name="xcb/xcb.h"/>
- <type category="include" name="directfb.h"/>
- <type category="include" name="zircon/types.h"/>
- <type category="include" name="ggp_c/vulkan_types.h"/>
- <type category="include" name="screen/screen.h"/>
- <comment>
- In the current header structure, each platform's interfaces
- are confined to a platform-specific header (vulkan_xlib.h,
- vulkan_win32.h, etc.). These headers are not self-contained,
- and should not include native headers (X11/Xlib.h,
- windows.h, etc.). Code should either include vulkan.h after
- defining the appropriate VK_USE_PLATFORM_platform
- macros, or include the required native headers prior to
- explicitly including the corresponding platform header.
-
- To accomplish this, the dependencies of native types require
- native headers, but the XML defines the content for those
- native headers as empty. The actual native header includes
- can be restored by modifying the native header tags above
- to #include the header file in the 'name' attribute.
- </comment>
-
- <type requires="X11/Xlib.h" name="Display"/>
- <type requires="X11/Xlib.h" name="VisualID"/>
- <type requires="X11/Xlib.h" name="Window"/>
- <type requires="X11/extensions/Xrandr.h" name="RROutput"/>
- <type requires="wayland-client.h" name="wl_display"/>
- <type requires="wayland-client.h" name="wl_surface"/>
- <type requires="windows.h" name="HINSTANCE"/>
- <type requires="windows.h" name="HWND"/>
- <type requires="windows.h" name="HMONITOR"/>
- <type requires="windows.h" name="HANDLE"/>
- <type requires="windows.h" name="SECURITY_ATTRIBUTES"/>
- <type requires="windows.h" name="DWORD"/>
- <type requires="windows.h" name="LPCWSTR"/>
- <type requires="xcb/xcb.h" name="xcb_connection_t"/>
- <type requires="xcb/xcb.h" name="xcb_visualid_t"/>
- <type requires="xcb/xcb.h" name="xcb_window_t"/>
- <type requires="directfb.h" name="IDirectFB"/>
- <type requires="directfb.h" name="IDirectFBSurface"/>
- <type requires="zircon/types.h" name="zx_handle_t"/>
- <type requires="ggp_c/vulkan_types.h" name="GgpStreamDescriptor"/>
- <type requires="ggp_c/vulkan_types.h" name="GgpFrameToken"/>
- <type requires="screen/screen.h" name="_screen_context"/>
- <type requires="screen/screen.h" name="_screen_window"/>
-
- <type category="define">// DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
-#define <name>VK_MAKE_VERSION</name>(major, minor, patch) \
- ((((uint32_t)(major)) &lt;&lt; 22) | (((uint32_t)(minor)) &lt;&lt; 12) | ((uint32_t)(patch)))</type>
- <type category="define">// DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead.
-#define <name>VK_VERSION_MAJOR</name>(version) ((uint32_t)(version) &gt;&gt; 22)</type>
- <type category="define">// DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead.
-#define <name>VK_VERSION_MINOR</name>(version) (((uint32_t)(version) &gt;&gt; 12) &amp; 0x3FFU)</type>
- <type category="define">// DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead.
-#define <name>VK_VERSION_PATCH</name>(version) ((uint32_t)(version) &amp; 0xFFFU)</type>
-
- <type category="define">#define <name>VK_MAKE_API_VERSION</name>(variant, major, minor, patch) \
- ((((uint32_t)(variant)) &lt;&lt; 29) | (((uint32_t)(major)) &lt;&lt; 22) | (((uint32_t)(minor)) &lt;&lt; 12) | ((uint32_t)(patch)))</type>
- <type category="define">#define <name>VK_API_VERSION_VARIANT</name>(version) ((uint32_t)(version) &gt;&gt; 29)</type>
- <type category="define">#define <name>VK_API_VERSION_MAJOR</name>(version) (((uint32_t)(version) &gt;&gt; 22) &amp; 0x7FU)</type>
- <type category="define">#define <name>VK_API_VERSION_MINOR</name>(version) (((uint32_t)(version) &gt;&gt; 12) &amp; 0x3FFU)</type>
- <type category="define">#define <name>VK_API_VERSION_PATCH</name>(version) ((uint32_t)(version) &amp; 0xFFFU)</type>
-
- <type category="define">// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
-//#define <name>VK_API_VERSION</name> <type>VK_MAKE_VERSION</type>(1, 0, 0) // Patch version should always be set to 0</type>
- <type category="define" requires="VK_MAKE_API_VERSION">// Vulkan 1.0 version number
-#define <name>VK_API_VERSION_1_0</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 0, 0)// Patch version should always be set to 0</type>
- <type category="define" requires="VK_MAKE_API_VERSION">// Vulkan 1.1 version number
-#define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 1, 0)// Patch version should always be set to 0</type>
- <type category="define" requires="VK_MAKE_API_VERSION">// Vulkan 1.2 version number
-#define <name>VK_API_VERSION_1_2</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 2, 0)// Patch version should always be set to 0</type>
- <type category="define" requires="VK_MAKE_API_VERSION">// Vulkan 1.3 version number
-#define <name>VK_API_VERSION_1_3</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 3, 0)// Patch version should always be set to 0</type>
- <type category="define">// Version of this file
-#define <name>VK_HEADER_VERSION</name> 206</type>
- <type 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 category="define">
-#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
-
- <type category="define" name="VK_USE_64_BIT_PTR_DEFINES">
-#ifndef VK_USE_64_BIT_PTR_DEFINES
- #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) &amp;&amp; !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
- #define VK_USE_64_BIT_PTR_DEFINES 1
- #else
- #define VK_USE_64_BIT_PTR_DEFINES 0
- #endif
-#endif</type>
- <type category="define" requires="VK_USE_64_BIT_PTR_DEFINES" name="VK_NULL_HANDLE">
-#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
- #if (VK_USE_64_BIT_PTR_DEFINES==1)
- #if (defined(__cplusplus) &amp;&amp; (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) &amp;&amp; (_MSVC_LANG >= 201103L))
- #define VK_NULL_HANDLE nullptr
- #else
- #define VK_NULL_HANDLE ((void*)0)
- #endif
- #else
- #define VK_NULL_HANDLE 0ULL
- #endif
-#endif
-#ifndef VK_NULL_HANDLE
- #define VK_NULL_HANDLE 0
-#endif</type>
- <type category="define" requires="VK_NULL_HANDLE" name="VK_DEFINE_NON_DISPATCHABLE_HANDLE">
-#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
- #if (VK_USE_64_BIT_PTR_DEFINES==1)
- #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
- #else
- #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
- #endif
-#endif</type>
-
- <type category="basetype">struct <name>ANativeWindow</name>;</type>
- <type category="basetype">struct <name>AHardwareBuffer</name>;</type>
- <type category="basetype">
-#ifdef __OBJC__
-@class CAMetalLayer;
-#else
-typedef void <name>CAMetalLayer</name>;
-#endif</type>
-
- <type category="basetype">typedef <type>uint32_t</type> <name>VkSampleMask</name>;</type>
- <type category="basetype">typedef <type>uint32_t</type> <name>VkBool32</name>;</type>
- <type category="basetype">typedef <type>uint32_t</type> <name>VkFlags</name>;</type>
- <type category="basetype">typedef <type>uint64_t</type> <name>VkFlags64</name>;</type>
- <type category="basetype">typedef <type>uint64_t</type> <name>VkDeviceSize</name>;</type>
- <type category="basetype">typedef <type>uint64_t</type> <name>VkDeviceAddress</name>;</type>
-
- <comment>Basic C types, pulled in via vk_platform.h</comment>
- <type requires="vk_platform" name="void"/>
- <type requires="vk_platform" name="char"/>
- <type requires="vk_platform" name="float"/>
- <type requires="vk_platform" name="double"/>
- <type requires="vk_platform" name="int8_t"/>
- <type requires="vk_platform" name="uint8_t"/>
- <type requires="vk_platform" name="int16_t"/>
- <type requires="vk_platform" name="uint16_t"/>
- <type requires="vk_platform" name="uint32_t"/>
- <type requires="vk_platform" name="uint64_t"/>
- <type requires="vk_platform" name="int32_t"/>
- <type requires="vk_platform" name="int64_t"/>
- <type requires="vk_platform" name="size_t"/>
- <type name="int"/>
-
- <comment>Bitmask types</comment>
- <type requires="VkFramebufferCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkFramebufferCreateFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkQueryPoolCreateFlags</name>;</type>
- <type requires="VkRenderPassCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkRenderPassCreateFlags</name>;</type>
- <type requires="VkSamplerCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSamplerCreateFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineLayoutCreateFlags</name>;</type>
- <type requires="VkPipelineCacheCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCacheCreateFlags</name>;</type>
- <type requires="VkPipelineDepthStencilStateCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineDepthStencilStateCreateFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineDynamicStateCreateFlags</name>;</type>
- <type requires="VkPipelineColorBlendStateCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineColorBlendStateCreateFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineMultisampleStateCreateFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationStateCreateFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineViewportStateCreateFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineTessellationStateCreateFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineInputAssemblyStateCreateFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineVertexInputStateCreateFlags</name>;</type>
- <type requires="VkPipelineShaderStageCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineShaderStageCreateFlags</name>;</type>
- <type requires="VkDescriptorSetLayoutCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorSetLayoutCreateFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkBufferViewCreateFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkInstanceCreateFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkDeviceCreateFlags</name>;</type>
- <type requires="VkDeviceQueueCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkDeviceQueueCreateFlags</name>;</type>
- <type requires="VkQueueFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueueFlags</name>;</type>
- <type requires="VkMemoryPropertyFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryPropertyFlags</name>;</type>
- <type requires="VkMemoryHeapFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryHeapFlags</name>;</type>
- <type requires="VkAccessFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkAccessFlags</name>;</type>
- <type requires="VkBufferUsageFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkBufferUsageFlags</name>;</type>
- <type requires="VkBufferCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkBufferCreateFlags</name>;</type>
- <type requires="VkShaderStageFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkShaderStageFlags</name>;</type>
- <type requires="VkImageUsageFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkImageUsageFlags</name>;</type>
- <type requires="VkImageCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkImageCreateFlags</name>;</type>
- <type requires="VkImageViewCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkImageViewCreateFlags</name>;</type>
- <type requires="VkPipelineCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCreateFlags</name>;</type>
- <type requires="VkColorComponentFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkColorComponentFlags</name>;</type>
- <type requires="VkFenceCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkFenceCreateFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkSemaphoreCreateFlags</name>;</type>
- <type requires="VkFormatFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkFormatFeatureFlags</name>;</type>
- <type requires="VkQueryControlFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueryControlFlags</name>;</type>
- <type requires="VkQueryResultFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueryResultFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkShaderModuleCreateFlags</name>;</type>
- <type requires="VkEventCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkEventCreateFlags</name>;</type>
- <type requires="VkCommandPoolCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolCreateFlags</name>;</type>
- <type requires="VkCommandPoolResetFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolResetFlags</name>;</type>
- <type requires="VkCommandBufferResetFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandBufferResetFlags</name>;</type>
- <type requires="VkCommandBufferUsageFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandBufferUsageFlags</name>;</type>
- <type requires="VkQueryPipelineStatisticFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueryPipelineStatisticFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryMapFlags</name>;</type>
- <type requires="VkImageAspectFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkImageAspectFlags</name>;</type>
- <type requires="VkSparseMemoryBindFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSparseMemoryBindFlags</name>;</type>
- <type requires="VkSparseImageFormatFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSparseImageFormatFlags</name>;</type>
- <type requires="VkSubpassDescriptionFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSubpassDescriptionFlags</name>;</type>
- <type requires="VkPipelineStageFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineStageFlags</name>;</type>
- <type requires="VkSampleCountFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSampleCountFlags</name>;</type>
- <type requires="VkAttachmentDescriptionFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkAttachmentDescriptionFlags</name>;</type>
- <type requires="VkStencilFaceFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkStencilFaceFlags</name>;</type>
- <type requires="VkCullModeFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCullModeFlags</name>;</type>
- <type requires="VkDescriptorPoolCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorPoolCreateFlags</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorPoolResetFlags</name>;</type>
- <type requires="VkDependencyFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkDependencyFlags</name>;</type>
- <type requires="VkSubgroupFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSubgroupFeatureFlags</name>;</type>
- <type requires="VkIndirectCommandsLayoutUsageFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkIndirectCommandsLayoutUsageFlagsNV</name>;</type>
- <type requires="VkIndirectStateFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkIndirectStateFlagsNV</name>;</type>
- <type requires="VkGeometryFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkGeometryFlagsKHR</name>;</type>
- <type category="bitmask" name="VkGeometryFlagsNV" alias="VkGeometryFlagsKHR"/>
- <type requires="VkGeometryInstanceFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkGeometryInstanceFlagsKHR</name>;</type>
- <type category="bitmask" name="VkGeometryInstanceFlagsNV" alias="VkGeometryInstanceFlagsKHR"/>
- <type requires="VkBuildAccelerationStructureFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkBuildAccelerationStructureFlagsKHR</name>;</type>
- <type category="bitmask" name="VkBuildAccelerationStructureFlagsNV" alias="VkBuildAccelerationStructureFlagsKHR"/>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPrivateDataSlotCreateFlags</name>;</type>
- <type category="bitmask" name="VkPrivateDataSlotCreateFlagsEXT" alias="VkPrivateDataSlotCreateFlags"/>
- <type requires="VkAccelerationStructureCreateFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkAccelerationStructureCreateFlagsKHR</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorUpdateTemplateCreateFlags</name>;</type>
- <type category="bitmask" name="VkDescriptorUpdateTemplateCreateFlagsKHR" alias="VkDescriptorUpdateTemplateCreateFlags"/>
- <type requires="VkPipelineCreationFeedbackFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCreationFeedbackFlags</name>;</type>
- <type category="bitmask" name="VkPipelineCreationFeedbackFlagsEXT" alias="VkPipelineCreationFeedbackFlags"/>
- <type requires="VkPerformanceCounterDescriptionFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkPerformanceCounterDescriptionFlagsKHR</name>;</type>
- <type requires="VkAcquireProfilingLockFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkAcquireProfilingLockFlagsKHR</name>;</type>
- <type requires="VkSemaphoreWaitFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSemaphoreWaitFlags</name>;</type>
- <type category="bitmask" name="VkSemaphoreWaitFlagsKHR" alias="VkSemaphoreWaitFlags"/>
- <type requires="VkPipelineCompilerControlFlagBitsAMD" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCompilerControlFlagsAMD</name>;</type>
- <type requires="VkShaderCorePropertiesFlagBitsAMD" category="bitmask">typedef <type>VkFlags</type> <name>VkShaderCorePropertiesFlagsAMD</name>;</type>
- <type requires="VkDeviceDiagnosticsConfigFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkDeviceDiagnosticsConfigFlagsNV</name>;</type>
- <type bitvalues="VkAccessFlagBits2" category="bitmask">typedef <type>VkFlags64</type> <name>VkAccessFlags2</name>;</type>
- <type category="bitmask" name="VkAccessFlags2KHR" alias="VkAccessFlags2"/>
- <type bitvalues="VkPipelineStageFlagBits2" category="bitmask">typedef <type>VkFlags64</type> <name>VkPipelineStageFlags2</name>;</type>
- <type category="bitmask" name="VkPipelineStageFlags2KHR" alias="VkPipelineStageFlags2"/>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkAccelerationStructureMotionInfoFlagsNV</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkAccelerationStructureMotionInstanceFlagsNV</name>;</type>
- <type bitvalues="VkFormatFeatureFlagBits2" category="bitmask">typedef <type>VkFlags64</type> <name>VkFormatFeatureFlags2</name>;</type>
- <type category="bitmask" name="VkFormatFeatureFlags2KHR" alias="VkFormatFeatureFlags2"/>
- <type requires="VkRenderingFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkRenderingFlags</name>;</type>
- <type category="bitmask" name="VkRenderingFlagsKHR" alias="VkRenderingFlags"/>
-
- <comment>WSI extensions</comment>
- <type requires="VkCompositeAlphaFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkCompositeAlphaFlagsKHR</name>;</type>
- <type requires="VkDisplayPlaneAlphaFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkDisplayPlaneAlphaFlagsKHR</name>;</type>
- <type requires="VkSurfaceTransformFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkSurfaceTransformFlagsKHR</name>;</type>
- <type requires="VkSwapchainCreateFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkSwapchainCreateFlagsKHR</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkDisplayModeCreateFlagsKHR</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkDisplaySurfaceCreateFlagsKHR</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkAndroidSurfaceCreateFlagsKHR</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkViSurfaceCreateFlagsNN</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkWaylandSurfaceCreateFlagsKHR</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkWin32SurfaceCreateFlagsKHR</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkXlibSurfaceCreateFlagsKHR</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkXcbSurfaceCreateFlagsKHR</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkDirectFBSurfaceCreateFlagsEXT</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkIOSSurfaceCreateFlagsMVK</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkMacOSSurfaceCreateFlagsMVK</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkMetalSurfaceCreateFlagsEXT</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkImagePipeSurfaceCreateFlagsFUCHSIA</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkStreamDescriptorSurfaceCreateFlagsGGP</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkHeadlessSurfaceCreateFlagsEXT</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkScreenSurfaceCreateFlagsQNX</name>;</type>
- <type requires="VkPeerMemoryFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPeerMemoryFeatureFlags</name>;</type>
- <type category="bitmask" name="VkPeerMemoryFeatureFlagsKHR" alias="VkPeerMemoryFeatureFlags"/>
- <type requires="VkMemoryAllocateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryAllocateFlags</name>;</type>
- <type category="bitmask" name="VkMemoryAllocateFlagsKHR" alias="VkMemoryAllocateFlags"/>
- <type requires="VkDeviceGroupPresentModeFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkDeviceGroupPresentModeFlagsKHR</name>;</type>
-
- <type requires="VkDebugReportFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDebugReportFlagsEXT</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolTrimFlags</name>;</type>
- <type category="bitmask" name="VkCommandPoolTrimFlagsKHR" alias="VkCommandPoolTrimFlags"/>
- <type requires="VkExternalMemoryHandleTypeFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalMemoryHandleTypeFlagsNV</name>;</type>
- <type requires="VkExternalMemoryFeatureFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalMemoryFeatureFlagsNV</name>;</type>
- <type requires="VkExternalMemoryHandleTypeFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalMemoryHandleTypeFlags</name>;</type>
- <type category="bitmask" name="VkExternalMemoryHandleTypeFlagsKHR" alias="VkExternalMemoryHandleTypeFlags"/>
- <type requires="VkExternalMemoryFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalMemoryFeatureFlags</name>;</type>
- <type category="bitmask" name="VkExternalMemoryFeatureFlagsKHR" alias="VkExternalMemoryFeatureFlags"/>
- <type requires="VkExternalSemaphoreHandleTypeFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalSemaphoreHandleTypeFlags</name>;</type>
- <type category="bitmask" name="VkExternalSemaphoreHandleTypeFlagsKHR" alias="VkExternalSemaphoreHandleTypeFlags"/>
- <type requires="VkExternalSemaphoreFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalSemaphoreFeatureFlags</name>;</type>
- <type category="bitmask" name="VkExternalSemaphoreFeatureFlagsKHR" alias="VkExternalSemaphoreFeatureFlags"/>
- <type requires="VkSemaphoreImportFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSemaphoreImportFlags</name>;</type>
- <type category="bitmask" name="VkSemaphoreImportFlagsKHR" alias="VkSemaphoreImportFlags"/>
- <type requires="VkExternalFenceHandleTypeFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalFenceHandleTypeFlags</name>;</type>
- <type category="bitmask" name="VkExternalFenceHandleTypeFlagsKHR" alias="VkExternalFenceHandleTypeFlags"/>
- <type requires="VkExternalFenceFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalFenceFeatureFlags</name>;</type>
- <type category="bitmask" name="VkExternalFenceFeatureFlagsKHR" alias="VkExternalFenceFeatureFlags"/>
- <type requires="VkFenceImportFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkFenceImportFlags</name>;</type>
- <type category="bitmask" name="VkFenceImportFlagsKHR" alias="VkFenceImportFlags"/>
- <type requires="VkSurfaceCounterFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkSurfaceCounterFlagsEXT</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineViewportSwizzleStateCreateFlagsNV</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineDiscardRectangleStateCreateFlagsEXT</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCoverageToColorStateCreateFlagsNV</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCoverageModulationStateCreateFlagsNV</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCoverageReductionStateCreateFlagsNV</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkValidationCacheCreateFlagsEXT</name>;</type>
- <type requires="VkDebugUtilsMessageSeverityFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessageSeverityFlagsEXT</name>;</type>
- <type requires="VkDebugUtilsMessageTypeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessageTypeFlagsEXT</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessengerCreateFlagsEXT</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessengerCallbackDataFlagsEXT</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkDeviceMemoryReportFlagsEXT</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationConservativeStateCreateFlagsEXT</name>;</type>
- <type requires="VkDescriptorBindingFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorBindingFlags</name>;</type>
- <type category="bitmask" name="VkDescriptorBindingFlagsEXT" alias="VkDescriptorBindingFlags"/>
- <type requires="VkConditionalRenderingFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkConditionalRenderingFlagsEXT</name>;</type>
- <type requires="VkResolveModeFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkResolveModeFlags</name>;</type>
- <type category="bitmask" name="VkResolveModeFlagsKHR" alias="VkResolveModeFlags"/>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationStateStreamCreateFlagsEXT</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationDepthClipStateCreateFlagsEXT</name>;</type>
- <type requires="VkSwapchainImageUsageFlagBitsANDROID" category="bitmask">typedef <type>VkFlags</type> <name>VkSwapchainImageUsageFlagsANDROID</name>;</type>
- <type requires="VkToolPurposeFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkToolPurposeFlags</name>;</type>
- <type category="bitmask" name="VkToolPurposeFlagsEXT" alias="VkToolPurposeFlags"/>
- <type requires="VkSubmitFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSubmitFlags</name>;</type>
- <type category="bitmask" name="VkSubmitFlagsKHR" alias="VkSubmitFlags"/>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkImageFormatConstraintsFlagsFUCHSIA</name>;</type>
- <type requires="VkImageConstraintsInfoFlagBitsFUCHSIA" category="bitmask">typedef <type>VkFlags</type> <name>VkImageConstraintsInfoFlagsFUCHSIA</name>;</type>
-
- <comment>Video Core extension</comment>
- <type requires="VkVideoCodecOperationFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoCodecOperationFlagsKHR</name>;</type>
- <type requires="VkVideoCapabilityFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoCapabilityFlagsKHR</name>;</type>
- <type requires="VkVideoSessionCreateFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoSessionCreateFlagsKHR</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkVideoBeginCodingFlagsKHR</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEndCodingFlagsKHR</name>;</type>
- <type requires="VkVideoCodingQualityPresetFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoCodingQualityPresetFlagsKHR</name>;</type>
- <type requires="VkVideoCodingControlFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoCodingControlFlagsKHR</name>;</type>
-
- <comment>Video Decode Core extension</comment>
- <type requires="VkVideoDecodeFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoDecodeFlagsKHR</name>;</type>
-
- <comment>Video Decode H.264 extension</comment>
- <type requires="VkVideoDecodeH264PictureLayoutFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoDecodeH264PictureLayoutFlagsEXT</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkVideoDecodeH264CreateFlagsEXT</name>;</type>
-
- <comment>Video Decode H.265 extension</comment>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkVideoDecodeH265CreateFlagsEXT</name>;</type>
-
- <comment>Video Encode Core extension</comment>
- <type requires="VkVideoEncodeFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeFlagsKHR</name>;</type>
- <type requires="VkVideoEncodeCapabilityFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeCapabilityFlagsKHR</name>;</type>
- <type requires="VkVideoEncodeRateControlFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeRateControlFlagsKHR</name>;</type>
- <type requires="VkVideoEncodeRateControlModeFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeRateControlModeFlagsKHR</name>;</type>
- <type requires="VkVideoChromaSubsamplingFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoChromaSubsamplingFlagsKHR</name>;</type>
- <type requires="VkVideoComponentBitDepthFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoComponentBitDepthFlagsKHR</name>;</type>
-
- <comment>Video Encode H.264 extension</comment>
- <type requires="VkVideoEncodeH264CapabilityFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264CapabilityFlagsEXT</name>;</type>
- <type requires="VkVideoEncodeH264InputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264InputModeFlagsEXT</name>;</type>
- <type requires="VkVideoEncodeH264OutputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264OutputModeFlagsEXT</name>;</type>
- <type requires="VkVideoEncodeH264CreateFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264CreateFlagsEXT</name>;</type>
- <type requires="VkVideoEncodeH264RateControlStructureFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264RateControlStructureFlagsEXT</name>;</type>
-
- <comment>Video Encode H.265 extension</comment>
- <type requires="VkVideoEncodeH265CapabilityFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CapabilityFlagsEXT</name>;</type>
- <type requires="VkVideoEncodeH265InputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265InputModeFlagsEXT</name>;</type>
- <type requires="VkVideoEncodeH265OutputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265OutputModeFlagsEXT</name>;</type>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CreateFlagsEXT</name>;</type>
- <type requires="VkVideoEncodeH265RateControlStructureFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265RateControlStructureFlagsEXT</name>;</type>
- <type requires="VkVideoEncodeH265CtbSizeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CtbSizeFlagsEXT</name>;</type>
- <type requires="VkVideoEncodeH265TransformBlockSizeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265TransformBlockSizeFlagsEXT</name>;</type>
-
- <comment>Types which can be void pointers or class pointers, selected at compile time</comment>
- <type category="handle" objtypeenum="VK_OBJECT_TYPE_INSTANCE"><type>VK_DEFINE_HANDLE</type>(<name>VkInstance</name>)</type>
- <type category="handle" parent="VkInstance" objtypeenum="VK_OBJECT_TYPE_PHYSICAL_DEVICE"><type>VK_DEFINE_HANDLE</type>(<name>VkPhysicalDevice</name>)</type>
- <type category="handle" parent="VkPhysicalDevice" objtypeenum="VK_OBJECT_TYPE_DEVICE"><type>VK_DEFINE_HANDLE</type>(<name>VkDevice</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_QUEUE"><type>VK_DEFINE_HANDLE</type>(<name>VkQueue</name>)</type>
- <type category="handle" parent="VkCommandPool" objtypeenum="VK_OBJECT_TYPE_COMMAND_BUFFER"><type>VK_DEFINE_HANDLE</type>(<name>VkCommandBuffer</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_DEVICE_MEMORY"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDeviceMemory</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_COMMAND_POOL"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkCommandPool</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_BUFFER"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkBuffer</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_BUFFER_VIEW"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkBufferView</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_IMAGE"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkImage</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_IMAGE_VIEW"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkImageView</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_SHADER_MODULE"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkShaderModule</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_PIPELINE"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkPipeline</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_PIPELINE_LAYOUT"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkPipelineLayout</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_SAMPLER"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkSampler</name>)</type>
- <type category="handle" parent="VkDescriptorPool" objtypeenum="VK_OBJECT_TYPE_DESCRIPTOR_SET"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDescriptorSet</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDescriptorSetLayout</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_DESCRIPTOR_POOL"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDescriptorPool</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_FENCE"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkFence</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_SEMAPHORE"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkSemaphore</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_EVENT"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkEvent</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_QUERY_POOL"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkQueryPool</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_FRAMEBUFFER"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkFramebuffer</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_RENDER_PASS"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkRenderPass</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_PIPELINE_CACHE"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkPipelineCache</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkIndirectCommandsLayoutNV</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDescriptorUpdateTemplate</name>)</type>
- <type category="handle" name="VkDescriptorUpdateTemplateKHR" alias="VkDescriptorUpdateTemplate"/>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkSamplerYcbcrConversion</name>)</type>
- <type category="handle" name="VkSamplerYcbcrConversionKHR" alias="VkSamplerYcbcrConversion"/>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_VALIDATION_CACHE_EXT"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkValidationCacheEXT</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkAccelerationStructureKHR</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkAccelerationStructureNV</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkPerformanceConfigurationINTEL</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkBufferCollectionFUCHSIA</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDeferredOperationKHR</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_PRIVATE_DATA_SLOT"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkPrivateDataSlot</name>)</type>
- <type category="handle" name="VkPrivateDataSlotEXT" alias="VkPrivateDataSlot"/>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_CU_MODULE_NVX"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkCuModuleNVX</name>)</type>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_CU_FUNCTION_NVX"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkCuFunctionNVX</name>)</type>
-
- <comment>WSI extensions</comment>
- <type category="handle" parent="VkPhysicalDevice" objtypeenum="VK_OBJECT_TYPE_DISPLAY_KHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDisplayKHR</name>)</type>
- <type category="handle" parent="VkDisplayKHR" objtypeenum="VK_OBJECT_TYPE_DISPLAY_MODE_KHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDisplayModeKHR</name>)</type>
- <type category="handle" parent="VkInstance" objtypeenum="VK_OBJECT_TYPE_SURFACE_KHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkSurfaceKHR</name>)</type>
- <type category="handle" parent="VkSurfaceKHR" objtypeenum="VK_OBJECT_TYPE_SWAPCHAIN_KHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkSwapchainKHR</name>)</type>
- <type category="handle" parent="VkInstance" objtypeenum="VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDebugReportCallbackEXT</name>)</type>
- <type category="handle" parent="VkInstance" objtypeenum="VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDebugUtilsMessengerEXT</name>)</type>
-
- <comment>Video extensions</comment>
- <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_VIDEO_SESSION_KHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkVideoSessionKHR</name>)</type>
- <type category="handle" parent="VkVideoSessionKHR" objtypeenum="VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkVideoSessionParametersKHR</name>)</type>
-
- <comment>Types generated from corresponding enums tags below</comment>
- <type name="VkAttachmentLoadOp" category="enum"/>
- <type name="VkAttachmentStoreOp" category="enum"/>
- <type name="VkBlendFactor" category="enum"/>
- <type name="VkBlendOp" category="enum"/>
- <type name="VkBorderColor" category="enum"/>
- <type name="VkFramebufferCreateFlagBits" category="enum"/>
- <type name="VkQueryPoolCreateFlagBits" category="enum"/>
- <type name="VkRenderPassCreateFlagBits" category="enum"/>
- <type name="VkSamplerCreateFlagBits" category="enum"/>
- <type name="VkPipelineCacheHeaderVersion" category="enum"/>
- <type name="VkPipelineCacheCreateFlagBits" category="enum"/>
- <type name="VkPipelineShaderStageCreateFlagBits" category="enum"/>
- <type name="VkDescriptorSetLayoutCreateFlagBits" category="enum"/>
- <type name="VkInstanceCreateFlagBits" category="enum"/>
- <type name="VkDeviceQueueCreateFlagBits" category="enum"/>
- <type name="VkBufferCreateFlagBits" category="enum"/>
- <type name="VkBufferUsageFlagBits" category="enum"/>
- <type name="VkColorComponentFlagBits" category="enum"/>
- <type name="VkComponentSwizzle" category="enum"/>
- <type name="VkCommandPoolCreateFlagBits" category="enum"/>
- <type name="VkCommandPoolResetFlagBits" category="enum"/>
- <type name="VkCommandBufferResetFlagBits" category="enum"/>
- <type name="VkCommandBufferLevel" category="enum"/>
- <type name="VkCommandBufferUsageFlagBits" category="enum"/>
- <type name="VkCompareOp" category="enum"/>
- <type name="VkCullModeFlagBits" category="enum"/>
- <type name="VkDescriptorType" category="enum"/>
- <type name="VkDeviceCreateFlagBits" category="enum"/>
- <type name="VkDynamicState" category="enum"/>
- <type name="VkFenceCreateFlagBits" category="enum"/>
- <type name="VkPolygonMode" category="enum"/>
- <type name="VkFormat" category="enum"/>
- <type name="VkFormatFeatureFlagBits" category="enum"/>
- <type name="VkFrontFace" category="enum"/>
- <type name="VkImageAspectFlagBits" category="enum"/>
- <type name="VkImageCreateFlagBits" category="enum"/>
- <type name="VkImageLayout" category="enum"/>
- <type name="VkImageTiling" category="enum"/>
- <type name="VkImageType" category="enum"/>
- <type name="VkImageUsageFlagBits" category="enum"/>
- <type name="VkImageViewCreateFlagBits" category="enum"/>
- <type name="VkImageViewType" category="enum"/>
- <type name="VkSharingMode" category="enum"/>
- <type name="VkIndexType" category="enum"/>
- <type name="VkLogicOp" category="enum"/>
- <type name="VkMemoryHeapFlagBits" category="enum"/>
- <type name="VkAccessFlagBits" category="enum"/>
- <type name="VkMemoryPropertyFlagBits" category="enum"/>
- <type name="VkPhysicalDeviceType" category="enum"/>
- <type name="VkPipelineBindPoint" category="enum"/>
- <type name="VkPipelineCreateFlagBits" category="enum"/>
- <type name="VkPrimitiveTopology" category="enum"/>
- <type name="VkQueryControlFlagBits" category="enum"/>
- <type name="VkQueryPipelineStatisticFlagBits" category="enum"/>
- <type name="VkQueryResultFlagBits" category="enum"/>
- <type name="VkQueryType" category="enum"/>
- <type name="VkQueueFlagBits" category="enum"/>
- <type name="VkSubpassContents" category="enum"/>
- <type name="VkResult" category="enum"/>
- <type name="VkShaderStageFlagBits" category="enum"/>
- <type name="VkSparseMemoryBindFlagBits" category="enum"/>
- <type name="VkStencilFaceFlagBits" category="enum"/>
- <type name="VkStencilOp" category="enum"/>
- <type name="VkStructureType" category="enum"/>
- <type name="VkSystemAllocationScope" category="enum"/>
- <type name="VkInternalAllocationType" category="enum"/>
- <type name="VkSamplerAddressMode" category="enum"/>
- <type name="VkFilter" category="enum"/>
- <type name="VkSamplerMipmapMode" category="enum"/>
- <type name="VkVertexInputRate" category="enum"/>
- <type name="VkPipelineStageFlagBits" category="enum"/>
- <type name="VkSparseImageFormatFlagBits" category="enum"/>
- <type name="VkSampleCountFlagBits" category="enum"/>
- <type name="VkAttachmentDescriptionFlagBits" category="enum"/>
- <type name="VkDescriptorPoolCreateFlagBits" category="enum"/>
- <type name="VkDependencyFlagBits" category="enum"/>
- <type name="VkObjectType" category="enum"/>
- <type name="VkEventCreateFlagBits" category="enum"/>
- <type name="VkPipelineLayoutCreateFlagBits" category="enum"/>
- <type name="VkSemaphoreCreateFlagBits" category="enum"/>
-
- <comment>Extensions</comment>
- <type name="VkIndirectCommandsLayoutUsageFlagBitsNV" category="enum"/>
- <type name="VkIndirectCommandsTokenTypeNV" category="enum"/>
- <type name="VkIndirectStateFlagBitsNV" category="enum"/>
- <type name="VkPrivateDataSlotCreateFlagBits" category="enum"/>
- <type category="enum" name="VkPrivateDataSlotCreateFlagBitsEXT" alias="VkPrivateDataSlotCreateFlagBits"/>
- <type name="VkDescriptorUpdateTemplateType" category="enum"/>
- <type category="enum" name="VkDescriptorUpdateTemplateTypeKHR" alias="VkDescriptorUpdateTemplateType"/>
- <type name="VkViewportCoordinateSwizzleNV" category="enum"/>
- <type name="VkDiscardRectangleModeEXT" category="enum"/>
- <type name="VkSubpassDescriptionFlagBits" category="enum"/>
- <type name="VkPointClippingBehavior" category="enum"/>
- <type category="enum" name="VkPointClippingBehaviorKHR" alias="VkPointClippingBehavior"/>
- <type name="VkCoverageModulationModeNV" category="enum"/>
- <type name="VkCoverageReductionModeNV" category="enum"/>
- <type name="VkValidationCacheHeaderVersionEXT" category="enum"/>
- <type name="VkShaderInfoTypeAMD" category="enum"/>
- <type name="VkQueueGlobalPriorityKHR" category="enum"/>
- <type name="VkQueueGlobalPriorityEXT" category="enum" alias="VkQueueGlobalPriorityKHR"/>
- <type name="VkTimeDomainEXT" category="enum"/>
- <type name="VkConservativeRasterizationModeEXT" category="enum"/>
- <type name="VkResolveModeFlagBits" category="enum"/>
- <type category="enum" name="VkResolveModeFlagBitsKHR" alias="VkResolveModeFlagBits"/>
- <type name="VkDescriptorBindingFlagBits" category="enum"/>
- <type category="enum" name="VkDescriptorBindingFlagBitsEXT" alias="VkDescriptorBindingFlagBits"/>
- <type name="VkConditionalRenderingFlagBitsEXT" category="enum"/>
- <type name="VkSemaphoreType" category="enum"/>
- <type category="enum" name="VkSemaphoreTypeKHR" alias="VkSemaphoreType"/>
- <type name="VkGeometryFlagBitsKHR" category="enum"/>
- <type category="enum" name="VkGeometryFlagBitsNV" alias="VkGeometryFlagBitsKHR"/>
- <type name="VkGeometryInstanceFlagBitsKHR" category="enum"/>
- <type category="enum" name="VkGeometryInstanceFlagBitsNV" alias="VkGeometryInstanceFlagBitsKHR"/>
- <type name="VkBuildAccelerationStructureFlagBitsKHR" category="enum"/>
- <type category="enum" name="VkBuildAccelerationStructureFlagBitsNV" alias="VkBuildAccelerationStructureFlagBitsKHR"/>
- <type name="VkAccelerationStructureCreateFlagBitsKHR" category="enum"/>
- <type name="VkBuildAccelerationStructureModeKHR" category="enum"/>
- <type name="VkCopyAccelerationStructureModeKHR" category="enum"/>
- <type category="enum" name="VkCopyAccelerationStructureModeNV" alias="VkCopyAccelerationStructureModeKHR"/>
- <type name="VkAccelerationStructureTypeKHR" category="enum"/>
- <type category="enum" name="VkAccelerationStructureTypeNV" alias="VkAccelerationStructureTypeKHR"/>
- <type name="VkGeometryTypeKHR" category="enum"/>
- <type category="enum" name="VkGeometryTypeNV" alias="VkGeometryTypeKHR"/>
- <type name="VkRayTracingShaderGroupTypeKHR" category="enum"/>
- <type category="enum" name="VkRayTracingShaderGroupTypeNV" alias="VkRayTracingShaderGroupTypeKHR"/>
- <type name="VkAccelerationStructureMemoryRequirementsTypeNV" category="enum"/>
- <type name="VkAccelerationStructureBuildTypeKHR" category="enum"/>
- <type name="VkAccelerationStructureCompatibilityKHR" category="enum"/>
- <type name="VkShaderGroupShaderKHR" category="enum"/>
- <type name="VkMemoryOverallocationBehaviorAMD" category="enum"/>
- <type name="VkScopeNV" category="enum"/>
- <type name="VkComponentTypeNV" category="enum"/>
- <type name="VkDeviceDiagnosticsConfigFlagBitsNV" category="enum"/>
- <type name="VkPipelineCreationFeedbackFlagBits" category="enum"/>
- <type category="enum" name="VkPipelineCreationFeedbackFlagBitsEXT" alias="VkPipelineCreationFeedbackFlagBits"/>
- <type name="VkPerformanceCounterScopeKHR" category="enum"/>
- <type name="VkPerformanceCounterUnitKHR" category="enum"/>
- <type name="VkPerformanceCounterStorageKHR" category="enum"/>
- <type name="VkPerformanceCounterDescriptionFlagBitsKHR" category="enum"/>
- <type name="VkAcquireProfilingLockFlagBitsKHR" category="enum"/>
- <type name="VkSemaphoreWaitFlagBits" category="enum"/>
- <type category="enum" name="VkSemaphoreWaitFlagBitsKHR" alias="VkSemaphoreWaitFlagBits"/>
- <type name="VkPerformanceConfigurationTypeINTEL" category="enum"/>
- <type name="VkQueryPoolSamplingModeINTEL" category="enum"/>
- <type name="VkPerformanceOverrideTypeINTEL" category="enum"/>
- <type name="VkPerformanceParameterTypeINTEL" category="enum"/>
- <type name="VkPerformanceValueTypeINTEL" category="enum"/>
- <type name="VkLineRasterizationModeEXT" category="enum"/>
- <type name="VkShaderModuleCreateFlagBits" category="enum"/>
- <type name="VkPipelineCompilerControlFlagBitsAMD" category="enum"/>
- <type name="VkShaderCorePropertiesFlagBitsAMD" category="enum"/>
- <type name="VkToolPurposeFlagBits" category="enum"/>
- <type category="enum" name="VkToolPurposeFlagBitsEXT" alias="VkToolPurposeFlagBits"/>
- <type name="VkFragmentShadingRateNV" category="enum"/>
- <type name="VkFragmentShadingRateTypeNV" category="enum"/>
- <type name="VkAccessFlagBits2" category="enum"/>
- <type category="enum" name="VkAccessFlagBits2KHR" alias="VkAccessFlagBits2"/>
- <type name="VkPipelineStageFlagBits2" category="enum"/>
- <type category="enum" name="VkPipelineStageFlagBits2KHR" alias="VkPipelineStageFlagBits2"/>
- <type name="VkProvokingVertexModeEXT" category="enum"/>
- <type name="VkImageFormatConstraintsFlagBitsFUCHSIA" category="enum"/>
- <type name="VkImageConstraintsInfoFlagBitsFUCHSIA" category="enum"/>
- <type name="VkFormatFeatureFlagBits2" category="enum"/>
- <type category="enum" name="VkFormatFeatureFlagBits2KHR" alias="VkFormatFeatureFlagBits2"/>
- <type name="VkRenderingFlagBits" category="enum"/>
- <type category="enum" name="VkRenderingFlagBitsKHR" alias="VkRenderingFlagBits"/>
- <type name="VkPipelineDepthStencilStateCreateFlagBits" category="enum"/>
- <type name="VkPipelineColorBlendStateCreateFlagBits" category="enum"/>
-
- <comment>WSI extensions</comment>
- <type name="VkColorSpaceKHR" category="enum"/>
- <type name="VkCompositeAlphaFlagBitsKHR" category="enum"/>
- <type name="VkDisplayPlaneAlphaFlagBitsKHR" category="enum"/>
- <type name="VkPresentModeKHR" category="enum"/>
- <type name="VkSurfaceTransformFlagBitsKHR" category="enum"/>
- <type name="VkDebugReportFlagBitsEXT" category="enum"/>
- <type name="VkDebugReportObjectTypeEXT" category="enum"/>
- <type name="VkDeviceMemoryReportEventTypeEXT" category="enum"/>
- <type name="VkRasterizationOrderAMD" category="enum"/>
- <type name="VkExternalMemoryHandleTypeFlagBitsNV" category="enum"/>
- <type name="VkExternalMemoryFeatureFlagBitsNV" category="enum"/>
- <type name="VkValidationCheckEXT" category="enum"/>
- <type name="VkValidationFeatureEnableEXT" category="enum"/>
- <type name="VkValidationFeatureDisableEXT" category="enum"/>
- <type name="VkExternalMemoryHandleTypeFlagBits" category="enum"/>
- <type category="enum" name="VkExternalMemoryHandleTypeFlagBitsKHR" alias="VkExternalMemoryHandleTypeFlagBits"/>
- <type name="VkExternalMemoryFeatureFlagBits" category="enum"/>
- <type category="enum" name="VkExternalMemoryFeatureFlagBitsKHR" alias="VkExternalMemoryFeatureFlagBits"/>
- <type name="VkExternalSemaphoreHandleTypeFlagBits" category="enum"/>
- <type category="enum" name="VkExternalSemaphoreHandleTypeFlagBitsKHR" alias="VkExternalSemaphoreHandleTypeFlagBits"/>
- <type name="VkExternalSemaphoreFeatureFlagBits" category="enum"/>
- <type category="enum" name="VkExternalSemaphoreFeatureFlagBitsKHR" alias="VkExternalSemaphoreFeatureFlagBits"/>
- <type name="VkSemaphoreImportFlagBits" category="enum"/>
- <type category="enum" name="VkSemaphoreImportFlagBitsKHR" alias="VkSemaphoreImportFlagBits"/>
- <type name="VkExternalFenceHandleTypeFlagBits" category="enum"/>
- <type category="enum" name="VkExternalFenceHandleTypeFlagBitsKHR" alias="VkExternalFenceHandleTypeFlagBits"/>
- <type name="VkExternalFenceFeatureFlagBits" category="enum"/>
- <type category="enum" name="VkExternalFenceFeatureFlagBitsKHR" alias="VkExternalFenceFeatureFlagBits"/>
- <type name="VkFenceImportFlagBits" category="enum"/>
- <type category="enum" name="VkFenceImportFlagBitsKHR" alias="VkFenceImportFlagBits"/>
- <type name="VkSurfaceCounterFlagBitsEXT" category="enum"/>
- <type name="VkDisplayPowerStateEXT" category="enum"/>
- <type name="VkDeviceEventTypeEXT" category="enum"/>
- <type name="VkDisplayEventTypeEXT" category="enum"/>
- <type name="VkPeerMemoryFeatureFlagBits" category="enum"/>
- <type category="enum" name="VkPeerMemoryFeatureFlagBitsKHR" alias="VkPeerMemoryFeatureFlagBits"/>
- <type name="VkMemoryAllocateFlagBits" category="enum"/>
- <type category="enum" name="VkMemoryAllocateFlagBitsKHR" alias="VkMemoryAllocateFlagBits"/>
- <type name="VkDeviceGroupPresentModeFlagBitsKHR" category="enum"/>
- <type name="VkSwapchainCreateFlagBitsKHR" category="enum"/>
- <type name="VkSubgroupFeatureFlagBits" category="enum"/>
- <type name="VkTessellationDomainOrigin" category="enum"/>
- <type category="enum" name="VkTessellationDomainOriginKHR" alias="VkTessellationDomainOrigin"/>
- <type name="VkSamplerYcbcrModelConversion" category="enum"/>
- <type category="enum" name="VkSamplerYcbcrModelConversionKHR" alias="VkSamplerYcbcrModelConversion"/>
- <type name="VkSamplerYcbcrRange" category="enum"/>
- <type category="enum" name="VkSamplerYcbcrRangeKHR" alias="VkSamplerYcbcrRange"/>
- <type name="VkChromaLocation" category="enum"/>
- <type category="enum" name="VkChromaLocationKHR" alias="VkChromaLocation"/>
- <type name="VkSamplerReductionMode" category="enum"/>
- <type category="enum" name="VkSamplerReductionModeEXT" alias="VkSamplerReductionMode"/>
- <type name="VkBlendOverlapEXT" category="enum"/>
- <type name="VkDebugUtilsMessageSeverityFlagBitsEXT" category="enum"/>
- <type name="VkDebugUtilsMessageTypeFlagBitsEXT" category="enum"/>
- <type name="VkFullScreenExclusiveEXT" category="enum"/>
- <type name="VkShaderFloatControlsIndependence" category="enum"/>
- <type category="enum" name="VkShaderFloatControlsIndependenceKHR" alias="VkShaderFloatControlsIndependence"/>
- <type name="VkSwapchainImageUsageFlagBitsANDROID" category="enum"/>
- <type name="VkFragmentShadingRateCombinerOpKHR" category="enum"/>
- <type name="VkSubmitFlagBits" category="enum"/>
- <type category="enum" name="VkSubmitFlagBitsKHR" alias="VkSubmitFlagBits"/>
-
- <comment>Enumerated types in the header, but not used by the API</comment>
- <type name="VkVendorId" category="enum"/>
- <type name="VkDriverId" category="enum"/>
- <type category="enum" name="VkDriverIdKHR" alias="VkDriverId"/>
- <type name="VkShadingRatePaletteEntryNV" category="enum"/>
- <type name="VkCoarseSampleOrderTypeNV" category="enum"/>
- <type name="VkPipelineExecutableStatisticFormatKHR" category="enum"/>
-
- <comment>Video Core extensions</comment>
- <type name="VkVideoCodecOperationFlagBitsKHR" category="enum"/>
- <type name="VkVideoChromaSubsamplingFlagBitsKHR" category="enum"/>
- <type name="VkVideoComponentBitDepthFlagBitsKHR" category="enum"/>
- <type name="VkVideoCapabilityFlagBitsKHR" category="enum"/>
- <type name="VkVideoSessionCreateFlagBitsKHR" category="enum"/>
- <type name="VkVideoCodingQualityPresetFlagBitsKHR" category="enum"/>
- <type name="VkVideoCodingControlFlagBitsKHR" category="enum"/>
- <type name="VkQueryResultStatusKHR" category="enum"/>
-
- <comment>Video Decode extensions</comment>
- <type name="VkVideoDecodeFlagBitsKHR" category="enum"/>
-
- <comment>Video H.264 Decode extensions</comment>
- <type name="VkVideoDecodeH264PictureLayoutFlagBitsEXT" category="enum"/>
-
- <comment>Video H.265 Decode extensions</comment>
-
- <comment>Video Encode extensions</comment>
- <type name="VkVideoEncodeFlagBitsKHR" category="enum"/>
- <type name="VkVideoEncodeCapabilityFlagBitsKHR" category="enum"/>
- <type name="VkVideoEncodeRateControlFlagBitsKHR" category="enum"/>
- <type name="VkVideoEncodeRateControlModeFlagBitsKHR" category="enum"/>
-
- <comment>Video H.264 Encode extensions</comment>
- <type name="VkVideoEncodeH264CapabilityFlagBitsEXT" category="enum"/>
- <type name="VkVideoEncodeH264InputModeFlagBitsEXT" category="enum"/>
- <type name="VkVideoEncodeH264OutputModeFlagBitsEXT" category="enum"/>
- <type name="VkVideoEncodeH264CreateFlagBitsEXT" category="enum"/>
- <type name="VkVideoEncodeH264RateControlStructureFlagBitsEXT" category="enum"/>
-
- <comment>Video H.265 Encode extensions</comment>
- <type name="VkVideoEncodeH265CapabilityFlagBitsEXT" category="enum"/>
- <type name="VkVideoEncodeH265InputModeFlagBitsEXT" category="enum"/>
- <type name="VkVideoEncodeH265OutputModeFlagBitsEXT" category="enum"/>
- <type name="VkVideoEncodeH265RateControlStructureFlagBitsEXT" category="enum"/>
- <type name="VkVideoEncodeH265CtbSizeFlagBitsEXT" category="enum"/>
- <type name="VkVideoEncodeH265TransformBlockSizeFlagBitsEXT" category="enum"/>
-
- <comment>The PFN_vk*Function types are used by VkAllocationCallbacks below</comment>
- <type category="funcpointer">typedef void (VKAPI_PTR *<name>PFN_vkInternalAllocationNotification</name>)(
- <type>void</type>* pUserData,
- <type>size_t</type> size,
- <type>VkInternalAllocationType</type> allocationType,
- <type>VkSystemAllocationScope</type> allocationScope);</type>
- <type category="funcpointer">typedef void (VKAPI_PTR *<name>PFN_vkInternalFreeNotification</name>)(
- <type>void</type>* pUserData,
- <type>size_t</type> size,
- <type>VkInternalAllocationType</type> allocationType,
- <type>VkSystemAllocationScope</type> allocationScope);</type>
- <type category="funcpointer">typedef void* (VKAPI_PTR *<name>PFN_vkReallocationFunction</name>)(
- <type>void</type>* pUserData,
- <type>void</type>* pOriginal,
- <type>size_t</type> size,
- <type>size_t</type> alignment,
- <type>VkSystemAllocationScope</type> allocationScope);</type>
- <type category="funcpointer">typedef void* (VKAPI_PTR *<name>PFN_vkAllocationFunction</name>)(
- <type>void</type>* pUserData,
- <type>size_t</type> size,
- <type>size_t</type> alignment,
- <type>VkSystemAllocationScope</type> allocationScope);</type>
- <type category="funcpointer">typedef void (VKAPI_PTR *<name>PFN_vkFreeFunction</name>)(
- <type>void</type>* pUserData,
- <type>void</type>* pMemory);</type>
-
- <comment>The PFN_vkVoidFunction type are used by VkGet*ProcAddr below</comment>
- <type category="funcpointer">typedef void (VKAPI_PTR *<name>PFN_vkVoidFunction</name>)(void);</type>
-
- <comment>The PFN_vkDebugReportCallbackEXT type are used by the DEBUG_REPORT extension</comment>
- <type category="funcpointer">typedef VkBool32 (VKAPI_PTR *<name>PFN_vkDebugReportCallbackEXT</name>)(
- <type>VkDebugReportFlagsEXT</type> flags,
- <type>VkDebugReportObjectTypeEXT</type> objectType,
- <type>uint64_t</type> object,
- <type>size_t</type> location,
- <type>int32_t</type> messageCode,
- const <type>char</type>* pLayerPrefix,
- const <type>char</type>* pMessage,
- <type>void</type>* pUserData);</type>
-
- <comment>The PFN_vkDebugUtilsMessengerCallbackEXT type are used by the VK_EXT_debug_utils extension</comment>
- <type category="funcpointer" requires="VkDebugUtilsMessengerCallbackDataEXT">typedef VkBool32 (VKAPI_PTR *<name>PFN_vkDebugUtilsMessengerCallbackEXT</name>)(
- <type>VkDebugUtilsMessageSeverityFlagBitsEXT</type> messageSeverity,
- <type>VkDebugUtilsMessageTypeFlagsEXT</type> messageTypes,
- const <type>VkDebugUtilsMessengerCallbackDataEXT</type>* pCallbackData,
- <type>void</type>* pUserData);</type>
-
- <comment>The PFN_vkDeviceMemoryReportCallbackEXT type is used by the VK_EXT_device_memory_report extension</comment>
- <type category="funcpointer" requires="VkDeviceMemoryReportCallbackDataEXT">typedef void (VKAPI_PTR *<name>PFN_vkDeviceMemoryReportCallbackEXT</name>)(
- const <type>VkDeviceMemoryReportCallbackDataEXT</type>* pCallbackData,
- <type>void</type>* pUserData);</type>
-
- <comment>Struct types</comment>
- <type category="struct" name="VkBaseOutStructure">
- <member><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">struct <type>VkBaseOutStructure</type>* <name>pNext</name></member>
- </type>
- <type category="struct" name="VkBaseInStructure">
- <member><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const struct <type>VkBaseInStructure</type>* <name>pNext</name></member>
- </type>
- <type category="struct" name="VkOffset2D">
- <member><type>int32_t</type> <name>x</name></member>
- <member><type>int32_t</type> <name>y</name></member>
- </type>
- <type category="struct" name="VkOffset3D">
- <member><type>int32_t</type> <name>x</name></member>
- <member><type>int32_t</type> <name>y</name></member>
- <member><type>int32_t</type> <name>z</name></member>
- </type>
- <type category="struct" name="VkExtent2D">
- <member><type>uint32_t</type> <name>width</name></member>
- <member><type>uint32_t</type> <name>height</name></member>
- </type>
- <type category="struct" name="VkExtent3D">
- <member><type>uint32_t</type> <name>width</name></member>
- <member><type>uint32_t</type> <name>height</name></member>
- <member><type>uint32_t</type> <name>depth</name></member>
- </type>
- <type category="struct" name="VkViewport">
- <member noautovalidity="true"><type>float</type> <name>x</name></member>
- <member noautovalidity="true"><type>float</type> <name>y</name></member>
- <member noautovalidity="true"><type>float</type> <name>width</name></member>
- <member noautovalidity="true"><type>float</type> <name>height</name></member>
- <member><type>float</type> <name>minDepth</name></member>
- <member><type>float</type> <name>maxDepth</name></member>
- </type>
- <type category="struct" name="VkRect2D">
- <member><type>VkOffset2D</type> <name>offset</name></member>
- <member><type>VkExtent2D</type> <name>extent</name></member>
- </type>
- <type category="struct" name="VkClearRect">
- <member><type>VkRect2D</type> <name>rect</name></member>
- <member><type>uint32_t</type> <name>baseArrayLayer</name></member>
- <member><type>uint32_t</type> <name>layerCount</name></member>
- </type>
- <type category="struct" name="VkComponentMapping">
- <member><type>VkComponentSwizzle</type> <name>r</name></member>
- <member><type>VkComponentSwizzle</type> <name>g</name></member>
- <member><type>VkComponentSwizzle</type> <name>b</name></member>
- <member><type>VkComponentSwizzle</type> <name>a</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceProperties" returnedonly="true">
- <member limittype="noauto"><type>uint32_t</type> <name>apiVersion</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>driverVersion</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>vendorID</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>deviceID</name></member>
- <member limittype="noauto"><type>VkPhysicalDeviceType</type> <name>deviceType</name></member>
- <member limittype="noauto"><type>char</type> <name>deviceName</name>[<enum>VK_MAX_PHYSICAL_DEVICE_NAME_SIZE</enum>]</member>
- <member limittype="noauto"><type>uint8_t</type> <name>pipelineCacheUUID</name>[<enum>VK_UUID_SIZE</enum>]</member>
- <member limittype="struct"><type>VkPhysicalDeviceLimits</type> <name>limits</name></member>
- <member limittype="struct"><type>VkPhysicalDeviceSparseProperties</type> <name>sparseProperties</name></member>
- </type>
- <type category="struct" name="VkExtensionProperties" returnedonly="true">
- <member><type>char</type> <name>extensionName</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]<comment>extension name</comment></member>
- <member><type>uint32_t</type> <name>specVersion</name><comment>version of the extension specification implemented</comment></member>
- </type>
- <type category="struct" name="VkLayerProperties" returnedonly="true">
- <member><type>char</type> <name>layerName</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]<comment>layer name</comment></member>
- <member><type>uint32_t</type> <name>specVersion</name><comment>version of the layer specification implemented</comment></member>
- <member><type>uint32_t</type> <name>implementationVersion</name><comment>build or release version of the layer's library</comment></member>
- <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]<comment>Free-form description of the layer</comment></member>
- </type>
- <type category="struct" name="VkApplicationInfo">
- <member values="VK_STRUCTURE_TYPE_APPLICATION_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true" len="null-terminated">const <type>char</type>* <name>pApplicationName</name></member>
- <member><type>uint32_t</type> <name>applicationVersion</name></member>
- <member optional="true" len="null-terminated">const <type>char</type>* <name>pEngineName</name></member>
- <member><type>uint32_t</type> <name>engineVersion</name></member>
- <member><type>uint32_t</type> <name>apiVersion</name></member>
- </type>
- <type category="struct" name="VkAllocationCallbacks">
- <member optional="true"><type>void</type>* <name>pUserData</name></member>
- <member noautovalidity="true"><type>PFN_vkAllocationFunction</type> <name>pfnAllocation</name></member>
- <member noautovalidity="true"><type>PFN_vkReallocationFunction</type> <name>pfnReallocation</name></member>
- <member noautovalidity="true"><type>PFN_vkFreeFunction</type> <name>pfnFree</name></member>
- <member optional="true" noautovalidity="true"><type>PFN_vkInternalAllocationNotification</type> <name>pfnInternalAllocation</name></member>
- <member optional="true" noautovalidity="true"><type>PFN_vkInternalFreeNotification</type> <name>pfnInternalFree</name></member>
- </type>
- <type category="struct" name="VkDeviceQueueCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkDeviceQueueCreateFlags</type> <name>flags</name></member>
- <member><type>uint32_t</type> <name>queueFamilyIndex</name></member>
- <member><type>uint32_t</type> <name>queueCount</name></member>
- <member len="queueCount">const <type>float</type>* <name>pQueuePriorities</name></member>
- </type>
- <type category="struct" name="VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkDeviceCreateFlags</type> <name>flags</name></member>
- <member><type>uint32_t</type> <name>queueCreateInfoCount</name></member>
- <member len="queueCreateInfoCount">const <type>VkDeviceQueueCreateInfo</type>* <name>pQueueCreateInfos</name></member>
- <member optional="true"><type>uint32_t</type> <name>enabledLayerCount</name></member>
- <member len="enabledLayerCount,null-terminated">const <type>char</type>* const* <name>ppEnabledLayerNames</name><comment>Ordered list of layer names to be enabled</comment></member>
- <member optional="true"><type>uint32_t</type> <name>enabledExtensionCount</name></member>
- <member len="enabledExtensionCount,null-terminated">const <type>char</type>* const* <name>ppEnabledExtensionNames</name></member>
- <member optional="true">const <type>VkPhysicalDeviceFeatures</type>* <name>pEnabledFeatures</name></member>
- </type>
- <type category="struct" name="VkInstanceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkInstanceCreateFlags</type> <name>flags</name></member>
- <member optional="true">const <type>VkApplicationInfo</type>* <name>pApplicationInfo</name></member>
- <member optional="true"><type>uint32_t</type> <name>enabledLayerCount</name></member>
- <member len="enabledLayerCount,null-terminated">const <type>char</type>* const* <name>ppEnabledLayerNames</name><comment>Ordered list of layer names to be enabled</comment></member>
- <member optional="true"><type>uint32_t</type> <name>enabledExtensionCount</name></member>
- <member len="enabledExtensionCount,null-terminated">const <type>char</type>* const* <name>ppEnabledExtensionNames</name><comment>Extension names to be enabled</comment></member>
- </type>
- <type category="struct" name="VkQueueFamilyProperties" returnedonly="true">
- <member optional="true"><type>VkQueueFlags</type> <name>queueFlags</name><comment>Queue flags</comment></member>
- <member><type>uint32_t</type> <name>queueCount</name></member>
- <member><type>uint32_t</type> <name>timestampValidBits</name></member>
- <member><type>VkExtent3D</type> <name>minImageTransferGranularity</name><comment>Minimum alignment requirement for image transfers</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMemoryProperties" returnedonly="true">
- <member><type>uint32_t</type> <name>memoryTypeCount</name></member>
- <member><type>VkMemoryType</type> <name>memoryTypes</name>[<enum>VK_MAX_MEMORY_TYPES</enum>]</member>
- <member><type>uint32_t</type> <name>memoryHeapCount</name></member>
- <member><type>VkMemoryHeap</type> <name>memoryHeaps</name>[<enum>VK_MAX_MEMORY_HEAPS</enum>]</member>
- </type>
- <type category="struct" name="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceSize</type> <name>allocationSize</name><comment>Size of memory allocation</comment></member>
- <member><type>uint32_t</type> <name>memoryTypeIndex</name><comment>Index of the of the memory type to allocate from</comment></member>
- </type>
- <type category="struct" name="VkMemoryRequirements" returnedonly="true">
- <member><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member>
- <member><type>VkDeviceSize</type> <name>alignment</name><comment>Specified in bytes</comment></member>
- <member><type>uint32_t</type> <name>memoryTypeBits</name><comment>Bitmask of the allowed memory type indices into memoryTypes[] for this object</comment></member>
- </type>
- <type category="struct" name="VkSparseImageFormatProperties" returnedonly="true">
- <member optional="true"><type>VkImageAspectFlags</type> <name>aspectMask</name></member>
- <member><type>VkExtent3D</type> <name>imageGranularity</name></member>
- <member optional="true"><type>VkSparseImageFormatFlags</type> <name>flags</name></member>
- </type>
- <type category="struct" name="VkSparseImageMemoryRequirements" returnedonly="true">
- <member><type>VkSparseImageFormatProperties</type> <name>formatProperties</name></member>
- <member><type>uint32_t</type> <name>imageMipTailFirstLod</name></member>
- <member><type>VkDeviceSize</type> <name>imageMipTailSize</name><comment>Specified in bytes, must be a multiple of sparse block size in bytes / alignment</comment></member>
- <member><type>VkDeviceSize</type> <name>imageMipTailOffset</name><comment>Specified in bytes, must be a multiple of sparse block size in bytes / alignment</comment></member>
- <member><type>VkDeviceSize</type> <name>imageMipTailStride</name><comment>Specified in bytes, must be a multiple of sparse block size in bytes / alignment</comment></member>
- </type>
- <type category="struct" name="VkMemoryType" returnedonly="true">
- <member optional="true"><type>VkMemoryPropertyFlags</type> <name>propertyFlags</name><comment>Memory properties of this memory type</comment></member>
- <member><type>uint32_t</type> <name>heapIndex</name><comment>Index of the memory heap allocations of this memory type are taken from</comment></member>
- </type>
- <type category="struct" name="VkMemoryHeap" returnedonly="true">
- <member><type>VkDeviceSize</type> <name>size</name><comment>Available memory in the heap</comment></member>
- <member optional="true"><type>VkMemoryHeapFlags</type> <name>flags</name><comment>Flags for the heap</comment></member>
- </type>
- <type category="struct" name="VkMappedMemoryRange">
- <member values="VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceMemory</type> <name>memory</name><comment>Mapped memory object</comment></member>
- <member><type>VkDeviceSize</type> <name>offset</name><comment>Offset within the memory object where the range starts</comment></member>
- <member><type>VkDeviceSize</type> <name>size</name><comment>Size of the range within the memory object</comment></member>
- </type>
- <type category="struct" name="VkFormatProperties" returnedonly="true">
- <member optional="true"><type>VkFormatFeatureFlags</type> <name>linearTilingFeatures</name><comment>Format features in case of linear tiling</comment></member>
- <member optional="true"><type>VkFormatFeatureFlags</type> <name>optimalTilingFeatures</name><comment>Format features in case of optimal tiling</comment></member>
- <member optional="true"><type>VkFormatFeatureFlags</type> <name>bufferFeatures</name><comment>Format features supported by buffers</comment></member>
- </type>
- <type category="struct" name="VkImageFormatProperties" returnedonly="true">
- <member><type>VkExtent3D</type> <name>maxExtent</name><comment>max image dimensions for this resource type</comment></member>
- <member><type>uint32_t</type> <name>maxMipLevels</name><comment>max number of mipmap levels for this resource type</comment></member>
- <member><type>uint32_t</type> <name>maxArrayLayers</name><comment>max array size for this resource type</comment></member>
- <member optional="true"><type>VkSampleCountFlags</type> <name>sampleCounts</name><comment>supported sample counts for this resource type</comment></member>
- <member><type>VkDeviceSize</type> <name>maxResourceSize</name><comment>max size (in bytes) of this resource type</comment></member>
- </type>
- <type category="struct" name="VkDescriptorBufferInfo">
- <member optional="true"><type>VkBuffer</type> <name>buffer</name><comment>Buffer used for this descriptor slot.</comment></member>
- <member><type>VkDeviceSize</type> <name>offset</name><comment>Base offset from buffer start in bytes to update in the descriptor set.</comment></member>
- <member><type>VkDeviceSize</type> <name>range</name><comment>Size in bytes of the buffer resource for this descriptor update.</comment></member>
- </type>
- <type category="struct" name="VkDescriptorImageInfo">
- <member noautovalidity="true"><type>VkSampler</type> <name>sampler</name><comment>Sampler to write to the descriptor in case it is a SAMPLER or COMBINED_IMAGE_SAMPLER descriptor. Ignored otherwise.</comment></member>
- <member noautovalidity="true"><type>VkImageView</type> <name>imageView</name><comment>Image view to write to the descriptor in case it is a SAMPLED_IMAGE, STORAGE_IMAGE, COMBINED_IMAGE_SAMPLER, or INPUT_ATTACHMENT descriptor. Ignored otherwise.</comment></member>
- <member noautovalidity="true"><type>VkImageLayout</type> <name>imageLayout</name><comment>Layout the image is expected to be in when accessed using this descriptor (only used if imageView is not VK_NULL_HANDLE).</comment></member>
- </type>
- <type category="struct" name="VkWriteDescriptorSet">
- <member values="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkDescriptorSet</type> <name>dstSet</name><comment>Destination descriptor set</comment></member>
- <member><type>uint32_t</type> <name>dstBinding</name><comment>Binding within the destination descriptor set to write</comment></member>
- <member><type>uint32_t</type> <name>dstArrayElement</name><comment>Array element within the destination binding to write</comment></member>
- <member><type>uint32_t</type> <name>descriptorCount</name><comment>Number of descriptors to write (determines the size of the array pointed by pDescriptors)</comment></member>
- <member><type>VkDescriptorType</type> <name>descriptorType</name><comment>Descriptor type to write (determines which members of the array pointed by pDescriptors are going to be used)</comment></member>
- <member noautovalidity="true" len="descriptorCount">const <type>VkDescriptorImageInfo</type>* <name>pImageInfo</name><comment>Sampler, image view, and layout for SAMPLER, COMBINED_IMAGE_SAMPLER, {SAMPLED,STORAGE}_IMAGE, and INPUT_ATTACHMENT descriptor types.</comment></member>
- <member noautovalidity="true" len="descriptorCount">const <type>VkDescriptorBufferInfo</type>* <name>pBufferInfo</name><comment>Raw buffer, size, and offset for {UNIFORM,STORAGE}_BUFFER[_DYNAMIC] descriptor types.</comment></member>
- <member noautovalidity="true" len="descriptorCount">const <type>VkBufferView</type>* <name>pTexelBufferView</name><comment>Buffer view to write to the descriptor for {UNIFORM,STORAGE}_TEXEL_BUFFER descriptor types.</comment></member>
- </type>
- <type category="struct" name="VkCopyDescriptorSet">
- <member values="VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDescriptorSet</type> <name>srcSet</name><comment>Source descriptor set</comment></member>
- <member><type>uint32_t</type> <name>srcBinding</name><comment>Binding within the source descriptor set to copy from</comment></member>
- <member><type>uint32_t</type> <name>srcArrayElement</name><comment>Array element within the source binding to copy from</comment></member>
- <member><type>VkDescriptorSet</type> <name>dstSet</name><comment>Destination descriptor set</comment></member>
- <member><type>uint32_t</type> <name>dstBinding</name><comment>Binding within the destination descriptor set to copy to</comment></member>
- <member><type>uint32_t</type> <name>dstArrayElement</name><comment>Array element within the destination binding to copy to</comment></member>
- <member><type>uint32_t</type> <name>descriptorCount</name><comment>Number of descriptors to write (determines the size of the array pointed by pDescriptors)</comment></member>
- </type>
- <type category="struct" name="VkBufferCreateInfo">
- <member values="VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkBufferCreateFlags</type> <name>flags</name><comment>Buffer creation flags</comment></member>
- <member><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member>
- <member><type>VkBufferUsageFlags</type> <name>usage</name><comment>Buffer usage flags</comment></member>
- <member><type>VkSharingMode</type> <name>sharingMode</name></member>
- <member optional="true"><type>uint32_t</type> <name>queueFamilyIndexCount</name></member>
- <member noautovalidity="true" len="queueFamilyIndexCount">const <type>uint32_t</type>* <name>pQueueFamilyIndices</name></member>
- </type>
- <type category="struct" name="VkBufferViewCreateInfo">
- <member values="VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkBufferViewCreateFlags</type><name>flags</name></member>
- <member><type>VkBuffer</type> <name>buffer</name></member>
- <member><type>VkFormat</type> <name>format</name><comment>Optionally specifies format of elements</comment></member>
- <member><type>VkDeviceSize</type> <name>offset</name><comment>Specified in bytes</comment></member>
- <member><type>VkDeviceSize</type> <name>range</name><comment>View size specified in bytes</comment></member>
- </type>
- <type category="struct" name="VkImageSubresource">
- <member><type>VkImageAspectFlags</type> <name>aspectMask</name></member>
- <member><type>uint32_t</type> <name>mipLevel</name></member>
- <member><type>uint32_t</type> <name>arrayLayer</name></member>
- </type>
- <type category="struct" name="VkImageSubresourceLayers">
- <member><type>VkImageAspectFlags</type> <name>aspectMask</name></member>
- <member><type>uint32_t</type> <name>mipLevel</name></member>
- <member><type>uint32_t</type> <name>baseArrayLayer</name></member>
- <member><type>uint32_t</type> <name>layerCount</name></member>
- </type>
- <type category="struct" name="VkImageSubresourceRange">
- <member><type>VkImageAspectFlags</type> <name>aspectMask</name></member>
- <member><type>uint32_t</type> <name>baseMipLevel</name></member>
- <member><type>uint32_t</type> <name>levelCount</name></member>
- <member><type>uint32_t</type> <name>baseArrayLayer</name></member>
- <member><type>uint32_t</type> <name>layerCount</name></member>
- </type>
- <type category="struct" name="VkMemoryBarrier">
- <member values="VK_STRUCTURE_TYPE_MEMORY_BARRIER"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name><comment>Memory accesses from the source of the dependency to synchronize</comment></member>
- <member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name><comment>Memory accesses from the destination of the dependency to synchronize</comment></member>
- </type>
- <type category="struct" name="VkBufferMemoryBarrier">
- <member values="VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkAccessFlags</type> <name>srcAccessMask</name><comment>Memory accesses from the source of the dependency to synchronize</comment></member>
- <member noautovalidity="true"><type>VkAccessFlags</type> <name>dstAccessMask</name><comment>Memory accesses from the destination of the dependency to synchronize</comment></member>
- <member><type>uint32_t</type> <name>srcQueueFamilyIndex</name><comment>Queue family to transition ownership from</comment></member>
- <member><type>uint32_t</type> <name>dstQueueFamilyIndex</name><comment>Queue family to transition ownership to</comment></member>
- <member><type>VkBuffer</type> <name>buffer</name><comment>Buffer to sync</comment></member>
- <member><type>VkDeviceSize</type> <name>offset</name><comment>Offset within the buffer to sync</comment></member>
- <member><type>VkDeviceSize</type> <name>size</name><comment>Amount of bytes to sync</comment></member>
- </type>
- <type category="struct" name="VkImageMemoryBarrier">
- <member values="VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkAccessFlags</type> <name>srcAccessMask</name><comment>Memory accesses from the source of the dependency to synchronize</comment></member>
- <member noautovalidity="true"><type>VkAccessFlags</type> <name>dstAccessMask</name><comment>Memory accesses from the destination of the dependency to synchronize</comment></member>
- <member><type>VkImageLayout</type> <name>oldLayout</name><comment>Current layout of the image</comment></member>
- <member><type>VkImageLayout</type> <name>newLayout</name><comment>New layout to transition the image to</comment></member>
- <member><type>uint32_t</type> <name>srcQueueFamilyIndex</name><comment>Queue family to transition ownership from</comment></member>
- <member><type>uint32_t</type> <name>dstQueueFamilyIndex</name><comment>Queue family to transition ownership to</comment></member>
- <member><type>VkImage</type> <name>image</name><comment>Image to sync</comment></member>
- <member><type>VkImageSubresourceRange</type> <name>subresourceRange</name><comment>Subresource range to sync</comment></member>
- </type>
- <type category="struct" name="VkImageCreateInfo">
- <member values="VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkImageCreateFlags</type> <name>flags</name><comment>Image creation flags</comment></member>
- <member><type>VkImageType</type> <name>imageType</name></member>
- <member><type>VkFormat</type> <name>format</name></member>
- <member><type>VkExtent3D</type> <name>extent</name></member>
- <member><type>uint32_t</type> <name>mipLevels</name></member>
- <member><type>uint32_t</type> <name>arrayLayers</name></member>
- <member><type>VkSampleCountFlagBits</type> <name>samples</name></member>
- <member><type>VkImageTiling</type> <name>tiling</name></member>
- <member><type>VkImageUsageFlags</type> <name>usage</name><comment>Image usage flags</comment></member>
- <member><type>VkSharingMode</type> <name>sharingMode</name><comment>Cross-queue-family sharing mode</comment></member>
- <member optional="true"><type>uint32_t</type> <name>queueFamilyIndexCount</name><comment>Number of queue families to share across</comment></member>
- <member noautovalidity="true" len="queueFamilyIndexCount">const <type>uint32_t</type>* <name>pQueueFamilyIndices</name><comment>Array of queue family indices to share across</comment></member>
- <member><type>VkImageLayout</type> <name>initialLayout</name><comment>Initial image layout for all subresources</comment></member>
- </type>
- <type category="struct" name="VkSubresourceLayout" returnedonly="true">
- <member><type>VkDeviceSize</type> <name>offset</name><comment>Specified in bytes</comment></member>
- <member><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member>
- <member><type>VkDeviceSize</type> <name>rowPitch</name><comment>Specified in bytes</comment></member>
- <member><type>VkDeviceSize</type> <name>arrayPitch</name><comment>Specified in bytes</comment></member>
- <member><type>VkDeviceSize</type> <name>depthPitch</name><comment>Specified in bytes</comment></member>
- </type>
- <type category="struct" name="VkImageViewCreateInfo">
- <member values="VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkImageViewCreateFlags</type> <name>flags</name></member>
- <member><type>VkImage</type> <name>image</name></member>
- <member><type>VkImageViewType</type> <name>viewType</name></member>
- <member><type>VkFormat</type> <name>format</name></member>
- <member><type>VkComponentMapping</type> <name>components</name></member>
- <member><type>VkImageSubresourceRange</type> <name>subresourceRange</name></member>
- </type>
- <type category="struct" name="VkBufferCopy">
- <member><type>VkDeviceSize</type> <name>srcOffset</name><comment>Specified in bytes</comment></member>
- <member><type>VkDeviceSize</type> <name>dstOffset</name><comment>Specified in bytes</comment></member>
- <member noautovalidity="true"><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member>
- </type>
- <type category="struct" name="VkSparseMemoryBind">
- <member><type>VkDeviceSize</type> <name>resourceOffset</name><comment>Specified in bytes</comment></member>
- <member><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member>
- <member optional="true"><type>VkDeviceMemory</type> <name>memory</name></member>
- <member><type>VkDeviceSize</type> <name>memoryOffset</name><comment>Specified in bytes</comment></member>
- <member optional="true"><type>VkSparseMemoryBindFlags</type><name>flags</name></member>
- </type>
- <type category="struct" name="VkSparseImageMemoryBind">
- <member><type>VkImageSubresource</type> <name>subresource</name></member>
- <member><type>VkOffset3D</type> <name>offset</name></member>
- <member><type>VkExtent3D</type> <name>extent</name></member>
- <member optional="true"><type>VkDeviceMemory</type> <name>memory</name></member>
- <member><type>VkDeviceSize</type> <name>memoryOffset</name><comment>Specified in bytes</comment></member>
- <member optional="true"><type>VkSparseMemoryBindFlags</type><name>flags</name></member>
- </type>
- <type category="struct" name="VkSparseBufferMemoryBindInfo">
- <member><type>VkBuffer</type> <name>buffer</name></member>
- <member><type>uint32_t</type> <name>bindCount</name></member>
- <member len="bindCount">const <type>VkSparseMemoryBind</type>* <name>pBinds</name></member>
- </type>
- <type category="struct" name="VkSparseImageOpaqueMemoryBindInfo">
- <member><type>VkImage</type> <name>image</name></member>
- <member><type>uint32_t</type> <name>bindCount</name></member>
- <member len="bindCount">const <type>VkSparseMemoryBind</type>* <name>pBinds</name></member>
- </type>
- <type category="struct" name="VkSparseImageMemoryBindInfo">
- <member><type>VkImage</type> <name>image</name></member>
- <member><type>uint32_t</type> <name>bindCount</name></member>
- <member len="bindCount">const <type>VkSparseImageMemoryBind</type>* <name>pBinds</name></member>
- </type>
- <type category="struct" name="VkBindSparseInfo">
- <member values="VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></member>
- <member len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></member>
- <member optional="true"><type>uint32_t</type> <name>bufferBindCount</name></member>
- <member len="bufferBindCount">const <type>VkSparseBufferMemoryBindInfo</type>* <name>pBufferBinds</name></member>
- <member optional="true"><type>uint32_t</type> <name>imageOpaqueBindCount</name></member>
- <member len="imageOpaqueBindCount">const <type>VkSparseImageOpaqueMemoryBindInfo</type>* <name>pImageOpaqueBinds</name></member>
- <member optional="true"><type>uint32_t</type> <name>imageBindCount</name></member>
- <member len="imageBindCount">const <type>VkSparseImageMemoryBindInfo</type>* <name>pImageBinds</name></member>
- <member optional="true"><type>uint32_t</type> <name>signalSemaphoreCount</name></member>
- <member len="signalSemaphoreCount">const <type>VkSemaphore</type>* <name>pSignalSemaphores</name></member>
- </type>
- <type category="struct" name="VkImageCopy">
- <member><type>VkImageSubresourceLayers</type> <name>srcSubresource</name></member>
- <member><type>VkOffset3D</type> <name>srcOffset</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member>
- <member><type>VkImageSubresourceLayers</type> <name>dstSubresource</name></member>
- <member><type>VkOffset3D</type> <name>dstOffset</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member>
- <member><type>VkExtent3D</type> <name>extent</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member>
- </type>
- <type category="struct" name="VkImageBlit">
- <member><type>VkImageSubresourceLayers</type> <name>srcSubresource</name></member>
- <member><type>VkOffset3D</type> <name>srcOffsets</name>[2]<comment>Specified in pixels for both compressed and uncompressed images</comment></member>
- <member><type>VkImageSubresourceLayers</type> <name>dstSubresource</name></member>
- <member><type>VkOffset3D</type> <name>dstOffsets</name>[2]<comment>Specified in pixels for both compressed and uncompressed images</comment></member>
- </type>
- <type category="struct" name="VkBufferImageCopy">
- <member><type>VkDeviceSize</type> <name>bufferOffset</name><comment>Specified in bytes</comment></member>
- <member><type>uint32_t</type> <name>bufferRowLength</name><comment>Specified in texels</comment></member>
- <member><type>uint32_t</type> <name>bufferImageHeight</name></member>
- <member><type>VkImageSubresourceLayers</type> <name>imageSubresource</name></member>
- <member><type>VkOffset3D</type> <name>imageOffset</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member>
- <member><type>VkExtent3D</type> <name>imageExtent</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member>
- </type>
- <type category="struct" name="VkImageResolve">
- <member><type>VkImageSubresourceLayers</type> <name>srcSubresource</name></member>
- <member><type>VkOffset3D</type> <name>srcOffset</name></member>
- <member><type>VkImageSubresourceLayers</type> <name>dstSubresource</name></member>
- <member><type>VkOffset3D</type> <name>dstOffset</name></member>
- <member><type>VkExtent3D</type> <name>extent</name></member>
- </type>
- <type category="struct" name="VkShaderModuleCreateInfo">
- <member values="VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkShaderModuleCreateFlags</type> <name>flags</name></member>
- <member><type>size_t</type> <name>codeSize</name><comment>Specified in bytes</comment></member>
- <member len="latexmath:[\textrm{codeSize} \over 4]" altlen="codeSize / 4">const <type>uint32_t</type>* <name>pCode</name><comment>Binary code of size codeSize</comment></member>
- </type>
- <type category="struct" name="VkDescriptorSetLayoutBinding">
- <member><type>uint32_t</type> <name>binding</name><comment>Binding number for this entry</comment></member>
- <member><type>VkDescriptorType</type> <name>descriptorType</name><comment>Type of the descriptors in this binding</comment></member>
- <member optional="true"><type>uint32_t</type> <name>descriptorCount</name><comment>Number of descriptors in this binding</comment></member>
- <member noautovalidity="true"><type>VkShaderStageFlags</type> <name>stageFlags</name><comment>Shader stages this binding is visible to</comment></member>
- <member noautovalidity="true" optional="true" len="descriptorCount">const <type>VkSampler</type>* <name>pImmutableSamplers</name><comment>Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains count number of elements)</comment></member>
- </type>
- <type category="struct" name="VkDescriptorSetLayoutCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkDescriptorSetLayoutCreateFlags</type> <name>flags</name></member>
- <member optional="true"><type>uint32_t</type> <name>bindingCount</name><comment>Number of bindings in the descriptor set layout</comment></member>
- <member len="bindingCount">const <type>VkDescriptorSetLayoutBinding</type>* <name>pBindings</name><comment>Array of descriptor set layout bindings</comment></member>
- </type>
- <type category="struct" name="VkDescriptorPoolSize">
- <member><type>VkDescriptorType</type> <name>type</name></member>
- <member><type>uint32_t</type> <name>descriptorCount</name></member>
- </type>
- <type category="struct" name="VkDescriptorPoolCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkDescriptorPoolCreateFlags</type> <name>flags</name></member>
- <member><type>uint32_t</type> <name>maxSets</name></member>
- <member><type>uint32_t</type> <name>poolSizeCount</name></member>
- <member len="poolSizeCount">const <type>VkDescriptorPoolSize</type>* <name>pPoolSizes</name></member>
- </type>
- <type category="struct" name="VkDescriptorSetAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDescriptorPool</type> <name>descriptorPool</name></member>
- <member><type>uint32_t</type> <name>descriptorSetCount</name></member>
- <member len="descriptorSetCount">const <type>VkDescriptorSetLayout</type>* <name>pSetLayouts</name></member>
- </type>
- <type category="struct" name="VkSpecializationMapEntry">
- <member><type>uint32_t</type> <name>constantID</name><comment>The SpecConstant ID specified in the BIL</comment></member>
- <member><type>uint32_t</type> <name>offset</name><comment>Offset of the value in the data block</comment></member>
- <member noautovalidity="true"><type>size_t</type> <name>size</name><comment>Size in bytes of the SpecConstant</comment></member>
- </type>
- <type category="struct" name="VkSpecializationInfo">
- <member optional="true"><type>uint32_t</type> <name>mapEntryCount</name><comment>Number of entries in the map</comment></member>
- <member len="mapEntryCount">const <type>VkSpecializationMapEntry</type>* <name>pMapEntries</name><comment>Array of map entries</comment></member>
- <member optional="true"><type>size_t</type> <name>dataSize</name><comment>Size in bytes of pData</comment></member>
- <member len="dataSize">const <type>void</type>* <name>pData</name><comment>Pointer to SpecConstant data</comment></member>
- </type>
- <type category="struct" name="VkPipelineShaderStageCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineShaderStageCreateFlags</type> <name>flags</name></member>
- <member><type>VkShaderStageFlagBits</type> <name>stage</name><comment>Shader stage</comment></member>
- <member><type>VkShaderModule</type> <name>module</name><comment>Module containing entry point</comment></member>
- <member len="null-terminated">const <type>char</type>* <name>pName</name><comment>Null-terminated entry point name</comment></member>
- <member optional="true">const <type>VkSpecializationInfo</type>* <name>pSpecializationInfo</name></member>
- </type>
- <type category="struct" name="VkComputePipelineCreateInfo">
- <member values="VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineCreateFlags</type> <name>flags</name><comment>Pipeline creation flags</comment></member>
- <member><type>VkPipelineShaderStageCreateInfo</type> <name>stage</name></member>
- <member><type>VkPipelineLayout</type> <name>layout</name><comment>Interface layout of the pipeline</comment></member>
- <member noautovalidity="true" optional="true"><type>VkPipeline</type> <name>basePipelineHandle</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of</comment></member>
- <member><type>int32_t</type> <name>basePipelineIndex</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of</comment></member>
- </type>
- <type category="struct" name="VkVertexInputBindingDescription">
- <member><type>uint32_t</type> <name>binding</name><comment>Vertex buffer binding id</comment></member>
- <member><type>uint32_t</type> <name>stride</name><comment>Distance between vertices in bytes (0 = no advancement)</comment></member>
- <member><type>VkVertexInputRate</type> <name>inputRate</name><comment>The rate at which the vertex data is consumed</comment></member>
- </type>
- <type category="struct" name="VkVertexInputAttributeDescription">
- <member><type>uint32_t</type> <name>location</name><comment>location of the shader vertex attrib</comment></member>
- <member><type>uint32_t</type> <name>binding</name><comment>Vertex buffer binding id</comment></member>
- <member><type>VkFormat</type> <name>format</name><comment>format of source data</comment></member>
- <member><type>uint32_t</type> <name>offset</name><comment>Offset of first element in bytes from base of vertex</comment></member>
- </type>
- <type category="struct" name="VkPipelineVertexInputStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineVertexInputStateCreateFlags</type> <name>flags</name></member>
- <member optional="true"><type>uint32_t</type> <name>vertexBindingDescriptionCount</name><comment>number of bindings</comment></member>
- <member len="vertexBindingDescriptionCount">const <type>VkVertexInputBindingDescription</type>* <name>pVertexBindingDescriptions</name></member>
- <member optional="true"><type>uint32_t</type> <name>vertexAttributeDescriptionCount</name><comment>number of attributes</comment></member>
- <member len="vertexAttributeDescriptionCount">const <type>VkVertexInputAttributeDescription</type>* <name>pVertexAttributeDescriptions</name></member>
- </type>
- <type category="struct" name="VkPipelineInputAssemblyStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineInputAssemblyStateCreateFlags</type> <name>flags</name></member>
- <member><type>VkPrimitiveTopology</type> <name>topology</name></member>
- <member><type>VkBool32</type> <name>primitiveRestartEnable</name></member>
- </type>
- <type category="struct" name="VkPipelineTessellationStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineTessellationStateCreateFlags</type> <name>flags</name></member>
- <member><type>uint32_t</type> <name>patchControlPoints</name></member>
- </type>
- <type category="struct" name="VkPipelineViewportStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineViewportStateCreateFlags</type> <name>flags</name></member>
- <member optional="true"><type>uint32_t</type> <name>viewportCount</name></member>
- <member noautovalidity="true" optional="true" len="viewportCount">const <type>VkViewport</type>* <name>pViewports</name></member>
- <member optional="true"><type>uint32_t</type> <name>scissorCount</name></member>
- <member noautovalidity="true" optional="true" len="scissorCount">const <type>VkRect2D</type>* <name>pScissors</name></member>
- </type>
- <type category="struct" name="VkPipelineRasterizationStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineRasterizationStateCreateFlags</type> <name>flags</name></member>
- <member><type>VkBool32</type> <name>depthClampEnable</name></member>
- <member><type>VkBool32</type> <name>rasterizerDiscardEnable</name></member>
- <member><type>VkPolygonMode</type> <name>polygonMode</name><comment>optional (GL45)</comment></member>
- <member optional="true"><type>VkCullModeFlags</type> <name>cullMode</name></member>
- <member><type>VkFrontFace</type> <name>frontFace</name></member>
- <member><type>VkBool32</type> <name>depthBiasEnable</name></member>
- <member><type>float</type> <name>depthBiasConstantFactor</name></member>
- <member><type>float</type> <name>depthBiasClamp</name></member>
- <member><type>float</type> <name>depthBiasSlopeFactor</name></member>
- <member><type>float</type> <name>lineWidth</name></member>
- </type>
- <type category="struct" name="VkPipelineMultisampleStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineMultisampleStateCreateFlags</type> <name>flags</name></member>
- <member><type>VkSampleCountFlagBits</type> <name>rasterizationSamples</name><comment>Number of samples used for rasterization</comment></member>
- <member><type>VkBool32</type> <name>sampleShadingEnable</name><comment>optional (GL45)</comment></member>
- <member><type>float</type> <name>minSampleShading</name><comment>optional (GL45)</comment></member>
- <member optional="true" len="latexmath:[\lceil{\mathit{rasterizationSamples} \over 32}\rceil]" altlen="(rasterizationSamples + 31) / 32">const <type>VkSampleMask</type>* <name>pSampleMask</name><comment>Array of sampleMask words</comment></member>
- <member><type>VkBool32</type> <name>alphaToCoverageEnable</name></member>
- <member><type>VkBool32</type> <name>alphaToOneEnable</name></member>
- </type>
- <type category="struct" name="VkPipelineColorBlendAttachmentState">
- <member><type>VkBool32</type> <name>blendEnable</name></member>
- <member><type>VkBlendFactor</type> <name>srcColorBlendFactor</name></member>
- <member><type>VkBlendFactor</type> <name>dstColorBlendFactor</name></member>
- <member><type>VkBlendOp</type> <name>colorBlendOp</name></member>
- <member><type>VkBlendFactor</type> <name>srcAlphaBlendFactor</name></member>
- <member><type>VkBlendFactor</type> <name>dstAlphaBlendFactor</name></member>
- <member><type>VkBlendOp</type> <name>alphaBlendOp</name></member>
- <member optional="true"><type>VkColorComponentFlags</type> <name>colorWriteMask</name></member>
- </type>
- <type category="struct" name="VkPipelineColorBlendStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineColorBlendStateCreateFlags</type> <name>flags</name></member>
- <member><type>VkBool32</type> <name>logicOpEnable</name></member>
- <member noautovalidity="true"><type>VkLogicOp</type> <name>logicOp</name></member>
- <member optional="true"><type>uint32_t</type> <name>attachmentCount</name><comment># of pAttachments</comment></member>
- <member len="attachmentCount">const <type>VkPipelineColorBlendAttachmentState</type>* <name>pAttachments</name></member>
- <member><type>float</type> <name>blendConstants</name>[4]</member>
- </type>
- <type category="struct" name="VkPipelineDynamicStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineDynamicStateCreateFlags</type> <name>flags</name></member>
- <member optional="true"><type>uint32_t</type> <name>dynamicStateCount</name></member>
- <member len="dynamicStateCount">const <type>VkDynamicState</type>* <name>pDynamicStates</name></member>
- </type>
- <type category="struct" name="VkStencilOpState">
- <member><type>VkStencilOp</type> <name>failOp</name></member>
- <member><type>VkStencilOp</type> <name>passOp</name></member>
- <member><type>VkStencilOp</type> <name>depthFailOp</name></member>
- <member><type>VkCompareOp</type> <name>compareOp</name></member>
- <member><type>uint32_t</type> <name>compareMask</name></member>
- <member><type>uint32_t</type> <name>writeMask</name></member>
- <member><type>uint32_t</type> <name>reference</name></member>
- </type>
- <type category="struct" name="VkPipelineDepthStencilStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineDepthStencilStateCreateFlags</type> <name>flags</name></member>
- <member><type>VkBool32</type> <name>depthTestEnable</name></member>
- <member><type>VkBool32</type> <name>depthWriteEnable</name></member>
- <member><type>VkCompareOp</type> <name>depthCompareOp</name></member>
- <member><type>VkBool32</type> <name>depthBoundsTestEnable</name><comment>optional (depth_bounds_test)</comment></member>
- <member><type>VkBool32</type> <name>stencilTestEnable</name></member>
- <member><type>VkStencilOpState</type> <name>front</name></member>
- <member><type>VkStencilOpState</type> <name>back</name></member>
- <member><type>float</type> <name>minDepthBounds</name></member>
- <member><type>float</type> <name>maxDepthBounds</name></member>
- </type>
- <type category="struct" name="VkGraphicsPipelineCreateInfo">
- <member values="VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineCreateFlags</type> <name>flags</name><comment>Pipeline creation flags</comment></member>
- <member><type>uint32_t</type> <name>stageCount</name></member>
- <member len="stageCount">const <type>VkPipelineShaderStageCreateInfo</type>* <name>pStages</name><comment>One entry for each active shader stage</comment></member>
- <member noautovalidity="true" optional="true">const <type>VkPipelineVertexInputStateCreateInfo</type>* <name>pVertexInputState</name></member>
- <member noautovalidity="true" optional="true">const <type>VkPipelineInputAssemblyStateCreateInfo</type>* <name>pInputAssemblyState</name></member>
- <member noautovalidity="true" optional="true">const <type>VkPipelineTessellationStateCreateInfo</type>* <name>pTessellationState</name></member>
- <member noautovalidity="true" optional="true">const <type>VkPipelineViewportStateCreateInfo</type>* <name>pViewportState</name></member>
- <member>const <type>VkPipelineRasterizationStateCreateInfo</type>* <name>pRasterizationState</name></member>
- <member noautovalidity="true" optional="true">const <type>VkPipelineMultisampleStateCreateInfo</type>* <name>pMultisampleState</name></member>
- <member noautovalidity="true" optional="true">const <type>VkPipelineDepthStencilStateCreateInfo</type>* <name>pDepthStencilState</name></member>
- <member noautovalidity="true" optional="true">const <type>VkPipelineColorBlendStateCreateInfo</type>* <name>pColorBlendState</name></member>
- <member optional="true">const <type>VkPipelineDynamicStateCreateInfo</type>* <name>pDynamicState</name></member>
- <member><type>VkPipelineLayout</type> <name>layout</name><comment>Interface layout of the pipeline</comment></member>
- <member optional="true"><type>VkRenderPass</type> <name>renderPass</name></member>
- <member><type>uint32_t</type> <name>subpass</name></member>
- <member noautovalidity="true" optional="true"><type>VkPipeline</type> <name>basePipelineHandle</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of</comment></member>
- <member><type>int32_t</type> <name>basePipelineIndex</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of</comment></member>
- </type>
- <type category="struct" name="VkPipelineCacheCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineCacheCreateFlags</type> <name>flags</name></member>
- <member optional="true"><type>size_t</type> <name>initialDataSize</name><comment>Size of initial data to populate cache, in bytes</comment></member>
- <member len="initialDataSize">const <type>void</type>* <name>pInitialData</name><comment>Initial data to populate cache</comment></member>
- </type>
- <type category="struct" name="VkPipelineCacheHeaderVersionOne">
- <comment>The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout.</comment>
- <member><type>uint32_t</type> <name>headerSize</name></member>
- <member><type>VkPipelineCacheHeaderVersion</type> <name>headerVersion</name></member>
- <member><type>uint32_t</type> <name>vendorID</name></member>
- <member><type>uint32_t</type> <name>deviceID</name></member>
- <member><type>uint8_t</type> <name>pipelineCacheUUID</name>[<enum>VK_UUID_SIZE</enum>]</member>
- </type>
- <type category="struct" name="VkPushConstantRange">
- <member><type>VkShaderStageFlags</type> <name>stageFlags</name><comment>Which stages use the range</comment></member>
- <member><type>uint32_t</type> <name>offset</name><comment>Start of the range, in bytes</comment></member>
- <member><type>uint32_t</type> <name>size</name><comment>Size of the range, in bytes</comment></member>
- </type>
- <type category="struct" name="VkPipelineLayoutCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineLayoutCreateFlags</type> <name>flags</name></member>
- <member optional="true"><type>uint32_t</type> <name>setLayoutCount</name><comment>Number of descriptor sets interfaced by the pipeline</comment></member>
- <member len="setLayoutCount">const <type>VkDescriptorSetLayout</type>* <name>pSetLayouts</name><comment>Array of setCount number of descriptor set layout objects defining the layout of the</comment></member>
- <member optional="true"><type>uint32_t</type> <name>pushConstantRangeCount</name><comment>Number of push-constant ranges used by the pipeline</comment></member>
- <member len="pushConstantRangeCount">const <type>VkPushConstantRange</type>* <name>pPushConstantRanges</name><comment>Array of pushConstantRangeCount number of ranges used by various shader stages</comment></member>
- </type>
- <type category="struct" name="VkSamplerCreateInfo">
- <member values="VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkSamplerCreateFlags</type> <name>flags</name></member>
- <member><type>VkFilter</type> <name>magFilter</name><comment>Filter mode for magnification</comment></member>
- <member><type>VkFilter</type> <name>minFilter</name><comment>Filter mode for minifiation</comment></member>
- <member><type>VkSamplerMipmapMode</type> <name>mipmapMode</name><comment>Mipmap selection mode</comment></member>
- <member><type>VkSamplerAddressMode</type> <name>addressModeU</name></member>
- <member><type>VkSamplerAddressMode</type> <name>addressModeV</name></member>
- <member><type>VkSamplerAddressMode</type> <name>addressModeW</name></member>
- <member><type>float</type> <name>mipLodBias</name></member>
- <member><type>VkBool32</type> <name>anisotropyEnable</name></member>
- <member><type>float</type> <name>maxAnisotropy</name></member>
- <member><type>VkBool32</type> <name>compareEnable</name></member>
- <member noautovalidity="true"><type>VkCompareOp</type> <name>compareOp</name></member>
- <member><type>float</type> <name>minLod</name></member>
- <member><type>float</type> <name>maxLod</name></member>
- <member noautovalidity="true"><type>VkBorderColor</type> <name>borderColor</name></member>
- <member><type>VkBool32</type> <name>unnormalizedCoordinates</name></member>
- </type>
- <type category="struct" name="VkCommandPoolCreateInfo">
- <member values="VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkCommandPoolCreateFlags</type> <name>flags</name><comment>Command pool creation flags</comment></member>
- <member><type>uint32_t</type> <name>queueFamilyIndex</name></member>
- </type>
- <type category="struct" name="VkCommandBufferAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkCommandPool</type> <name>commandPool</name></member>
- <member><type>VkCommandBufferLevel</type> <name>level</name></member>
- <member><type>uint32_t</type> <name>commandBufferCount</name></member>
- </type>
- <type category="struct" name="VkCommandBufferInheritanceInfo">
- <member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true" noautovalidity="true"><type>VkRenderPass</type> <name>renderPass</name><comment>Render pass for secondary command buffers</comment></member>
- <member><type>uint32_t</type> <name>subpass</name></member>
- <member optional="true" noautovalidity="true"><type>VkFramebuffer</type> <name>framebuffer</name><comment>Framebuffer for secondary command buffers</comment></member>
- <member><type>VkBool32</type> <name>occlusionQueryEnable</name><comment>Whether this secondary command buffer may be executed during an occlusion query</comment></member>
- <member optional="true" noautovalidity="true"><type>VkQueryControlFlags</type> <name>queryFlags</name><comment>Query flags used by this secondary command buffer, if executed during an occlusion query</comment></member>
- <member optional="true" noautovalidity="true"><type>VkQueryPipelineStatisticFlags</type> <name>pipelineStatistics</name><comment>Pipeline statistics that may be counted for this secondary command buffer</comment></member>
- </type>
- <type category="struct" name="VkCommandBufferBeginInfo">
- <member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkCommandBufferUsageFlags</type> <name>flags</name><comment>Command buffer usage flags</comment></member>
- <member optional="true" noautovalidity="true">const <type>VkCommandBufferInheritanceInfo</type>* <name>pInheritanceInfo</name><comment>Pointer to inheritance info for secondary command buffers</comment></member>
- </type>
- <type category="struct" name="VkRenderPassBeginInfo">
- <member values="VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkRenderPass</type> <name>renderPass</name></member>
- <member><type>VkFramebuffer</type> <name>framebuffer</name></member>
- <member><type>VkRect2D</type> <name>renderArea</name></member>
- <member optional="true"><type>uint32_t</type> <name>clearValueCount</name></member>
- <member len="clearValueCount" noautovalidity="true">const <type>VkClearValue</type>* <name>pClearValues</name></member>
- </type>
- <type category="union" name="VkClearColorValue" comment="// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.">
- <member><type>float</type> <name>float32</name>[4]</member>
- <member><type>int32_t</type> <name>int32</name>[4]</member>
- <member><type>uint32_t</type> <name>uint32</name>[4]</member>
- </type>
- <type category="struct" name="VkClearDepthStencilValue">
- <member><type>float</type> <name>depth</name></member>
- <member><type>uint32_t</type> <name>stencil</name></member>
- </type>
- <type category="union" name="VkClearValue" comment="// Union allowing specification of color or depth and stencil values. Actual value selected is based on attachment being cleared.">
- <member noautovalidity="true"><type>VkClearColorValue</type> <name>color</name></member>
- <member><type>VkClearDepthStencilValue</type> <name>depthStencil</name></member>
- </type>
- <type category="struct" name="VkClearAttachment">
- <member><type>VkImageAspectFlags</type> <name>aspectMask</name></member>
- <member><type>uint32_t</type> <name>colorAttachment</name></member>
- <member noautovalidity="true"><type>VkClearValue</type> <name>clearValue</name></member>
- </type>
- <type category="struct" name="VkAttachmentDescription">
- <member optional="true"><type>VkAttachmentDescriptionFlags</type> <name>flags</name></member>
- <member><type>VkFormat</type> <name>format</name></member>
- <member><type>VkSampleCountFlagBits</type> <name>samples</name></member>
- <member><type>VkAttachmentLoadOp</type> <name>loadOp</name><comment>Load operation for color or depth data</comment></member>
- <member><type>VkAttachmentStoreOp</type> <name>storeOp</name><comment>Store operation for color or depth data</comment></member>
- <member><type>VkAttachmentLoadOp</type> <name>stencilLoadOp</name><comment>Load operation for stencil data</comment></member>
- <member><type>VkAttachmentStoreOp</type> <name>stencilStoreOp</name><comment>Store operation for stencil data</comment></member>
- <member><type>VkImageLayout</type> <name>initialLayout</name></member>
- <member><type>VkImageLayout</type> <name>finalLayout</name></member>
- </type>
- <type category="struct" name="VkAttachmentReference">
- <member><type>uint32_t</type> <name>attachment</name></member>
- <member><type>VkImageLayout</type> <name>layout</name></member>
- </type>
- <type category="struct" name="VkSubpassDescription">
- <member optional="true"><type>VkSubpassDescriptionFlags</type> <name>flags</name></member>
- <member><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name><comment>Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now</comment></member>
- <member optional="true"><type>uint32_t</type> <name>inputAttachmentCount</name></member>
- <member len="inputAttachmentCount">const <type>VkAttachmentReference</type>* <name>pInputAttachments</name></member>
- <member optional="true"><type>uint32_t</type> <name>colorAttachmentCount</name></member>
- <member len="colorAttachmentCount">const <type>VkAttachmentReference</type>* <name>pColorAttachments</name></member>
- <member optional="true" len="colorAttachmentCount">const <type>VkAttachmentReference</type>* <name>pResolveAttachments</name></member>
- <member optional="true">const <type>VkAttachmentReference</type>* <name>pDepthStencilAttachment</name></member>
- <member optional="true"><type>uint32_t</type> <name>preserveAttachmentCount</name></member>
- <member len="preserveAttachmentCount">const <type>uint32_t</type>* <name>pPreserveAttachments</name></member>
- </type>
- <type category="struct" name="VkSubpassDependency">
- <member><type>uint32_t</type> <name>srcSubpass</name></member>
- <member><type>uint32_t</type> <name>dstSubpass</name></member>
- <member optional="true"><type>VkPipelineStageFlags</type> <name>srcStageMask</name></member>
- <member optional="true"><type>VkPipelineStageFlags</type> <name>dstStageMask</name></member>
- <member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name><comment>Memory accesses from the source of the dependency to synchronize</comment></member>
- <member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name><comment>Memory accesses from the destination of the dependency to synchronize</comment></member>
- <member optional="true"><type>VkDependencyFlags</type> <name>dependencyFlags</name></member>
- </type>
- <type category="struct" name="VkRenderPassCreateInfo">
- <member values="VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkRenderPassCreateFlags</type> <name>flags</name></member>
- <member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member>
- <member len="attachmentCount">const <type>VkAttachmentDescription</type>* <name>pAttachments</name></member>
- <member><type>uint32_t</type> <name>subpassCount</name></member>
- <member len="subpassCount">const <type>VkSubpassDescription</type>* <name>pSubpasses</name></member>
- <member optional="true"><type>uint32_t</type> <name>dependencyCount</name></member>
- <member len="dependencyCount">const <type>VkSubpassDependency</type>* <name>pDependencies</name></member>
- </type>
- <type category="struct" name="VkEventCreateInfo">
- <member values="VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkEventCreateFlags</type> <name>flags</name><comment>Event creation flags</comment></member>
- </type>
- <type category="struct" name="VkFenceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkFenceCreateFlags</type> <name>flags</name><comment>Fence creation flags</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFeatures">
- <member><type>VkBool32</type> <name>robustBufferAccess</name><comment>out of bounds buffer accesses are well defined</comment></member>
- <member><type>VkBool32</type> <name>fullDrawIndexUint32</name><comment>full 32-bit range of indices for indexed draw calls</comment></member>
- <member><type>VkBool32</type> <name>imageCubeArray</name><comment>image views which are arrays of cube maps</comment></member>
- <member><type>VkBool32</type> <name>independentBlend</name><comment>blending operations are controlled per-attachment</comment></member>
- <member><type>VkBool32</type> <name>geometryShader</name><comment>geometry stage</comment></member>
- <member><type>VkBool32</type> <name>tessellationShader</name><comment>tessellation control and evaluation stage</comment></member>
- <member><type>VkBool32</type> <name>sampleRateShading</name><comment>per-sample shading and interpolation</comment></member>
- <member><type>VkBool32</type> <name>dualSrcBlend</name><comment>blend operations which take two sources</comment></member>
- <member><type>VkBool32</type> <name>logicOp</name><comment>logic operations</comment></member>
- <member><type>VkBool32</type> <name>multiDrawIndirect</name><comment>multi draw indirect</comment></member>
- <member><type>VkBool32</type> <name>drawIndirectFirstInstance</name><comment>indirect drawing can use non-zero firstInstance</comment></member>
- <member><type>VkBool32</type> <name>depthClamp</name><comment>depth clamping</comment></member>
- <member><type>VkBool32</type> <name>depthBiasClamp</name><comment>depth bias clamping</comment></member>
- <member><type>VkBool32</type> <name>fillModeNonSolid</name><comment>point and wireframe fill modes</comment></member>
- <member><type>VkBool32</type> <name>depthBounds</name><comment>depth bounds test</comment></member>
- <member><type>VkBool32</type> <name>wideLines</name><comment>lines with width greater than 1</comment></member>
- <member><type>VkBool32</type> <name>largePoints</name><comment>points with size greater than 1</comment></member>
- <member><type>VkBool32</type> <name>alphaToOne</name><comment>the fragment alpha component can be forced to maximum representable alpha value</comment></member>
- <member><type>VkBool32</type> <name>multiViewport</name><comment>viewport arrays</comment></member>
- <member><type>VkBool32</type> <name>samplerAnisotropy</name><comment>anisotropic sampler filtering</comment></member>
- <member><type>VkBool32</type> <name>textureCompressionETC2</name><comment>ETC texture compression formats</comment></member>
- <member><type>VkBool32</type> <name>textureCompressionASTC_LDR</name><comment>ASTC LDR texture compression formats</comment></member>
- <member><type>VkBool32</type> <name>textureCompressionBC</name><comment>BC1-7 texture compressed formats</comment></member>
- <member><type>VkBool32</type> <name>occlusionQueryPrecise</name><comment>precise occlusion queries returning actual sample counts</comment></member>
- <member><type>VkBool32</type> <name>pipelineStatisticsQuery</name><comment>pipeline statistics query</comment></member>
- <member><type>VkBool32</type> <name>vertexPipelineStoresAndAtomics</name><comment>stores and atomic ops on storage buffers and images are supported in vertex, tessellation, and geometry stages</comment></member>
- <member><type>VkBool32</type> <name>fragmentStoresAndAtomics</name><comment>stores and atomic ops on storage buffers and images are supported in the fragment stage</comment></member>
- <member><type>VkBool32</type> <name>shaderTessellationAndGeometryPointSize</name><comment>tessellation and geometry stages can export point size</comment></member>
- <member><type>VkBool32</type> <name>shaderImageGatherExtended</name><comment>image gather with run-time values and independent offsets</comment></member>
- <member><type>VkBool32</type> <name>shaderStorageImageExtendedFormats</name><comment>the extended set of formats can be used for storage images</comment></member>
- <member><type>VkBool32</type> <name>shaderStorageImageMultisample</name><comment>multisample images can be used for storage images</comment></member>
- <member><type>VkBool32</type> <name>shaderStorageImageReadWithoutFormat</name><comment>read from storage image does not require format qualifier</comment></member>
- <member><type>VkBool32</type> <name>shaderStorageImageWriteWithoutFormat</name><comment>write to storage image does not require format qualifier</comment></member>
- <member><type>VkBool32</type> <name>shaderUniformBufferArrayDynamicIndexing</name><comment>arrays of uniform buffers can be accessed with dynamically uniform indices</comment></member>
- <member><type>VkBool32</type> <name>shaderSampledImageArrayDynamicIndexing</name><comment>arrays of sampled images can be accessed with dynamically uniform indices</comment></member>
- <member><type>VkBool32</type> <name>shaderStorageBufferArrayDynamicIndexing</name><comment>arrays of storage buffers can be accessed with dynamically uniform indices</comment></member>
- <member><type>VkBool32</type> <name>shaderStorageImageArrayDynamicIndexing</name><comment>arrays of storage images can be accessed with dynamically uniform indices</comment></member>
- <member><type>VkBool32</type> <name>shaderClipDistance</name><comment>clip distance in shaders</comment></member>
- <member><type>VkBool32</type> <name>shaderCullDistance</name><comment>cull distance in shaders</comment></member>
- <member><type>VkBool32</type> <name>shaderFloat64</name><comment>64-bit floats (doubles) in shaders</comment></member>
- <member><type>VkBool32</type> <name>shaderInt64</name><comment>64-bit integers in shaders</comment></member>
- <member><type>VkBool32</type> <name>shaderInt16</name><comment>16-bit integers in shaders</comment></member>
- <member><type>VkBool32</type> <name>shaderResourceResidency</name><comment>shader can use texture operations that return resource residency information (requires sparseNonResident support)</comment></member>
- <member><type>VkBool32</type> <name>shaderResourceMinLod</name><comment>shader can use texture operations that specify minimum resource LOD</comment></member>
- <member><type>VkBool32</type> <name>sparseBinding</name><comment>Sparse resources support: Resource memory can be managed at opaque page level rather than object level</comment></member>
- <member><type>VkBool32</type> <name>sparseResidencyBuffer</name><comment>Sparse resources support: GPU can access partially resident buffers </comment></member>
- <member><type>VkBool32</type> <name>sparseResidencyImage2D</name><comment>Sparse resources support: GPU can access partially resident 2D (non-MSAA non-depth/stencil) images </comment></member>
- <member><type>VkBool32</type> <name>sparseResidencyImage3D</name><comment>Sparse resources support: GPU can access partially resident 3D images </comment></member>
- <member><type>VkBool32</type> <name>sparseResidency2Samples</name><comment>Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples</comment></member>
- <member><type>VkBool32</type> <name>sparseResidency4Samples</name><comment>Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples</comment></member>
- <member><type>VkBool32</type> <name>sparseResidency8Samples</name><comment>Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples</comment></member>
- <member><type>VkBool32</type> <name>sparseResidency16Samples</name><comment>Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples</comment></member>
- <member><type>VkBool32</type> <name>sparseResidencyAliased</name><comment>Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)</comment></member>
- <member><type>VkBool32</type> <name>variableMultisampleRate</name><comment>multisample rate must be the same for all pipelines in a subpass</comment></member>
- <member><type>VkBool32</type> <name>inheritedQueries</name><comment>Queries may be inherited from primary to secondary command buffers</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceSparseProperties" returnedonly="true">
- <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="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">
- <comment>resource maximum sizes</comment>
- <member limittype="max"><type>uint32_t</type> <name>maxImageDimension1D</name><comment>max 1D image dimension</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxImageDimension2D</name><comment>max 2D image dimension</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxImageDimension3D</name><comment>max 3D image dimension</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxImageDimensionCube</name><comment>max cubemap image dimension</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxImageArrayLayers</name><comment>max layers for image arrays</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTexelBufferElements</name><comment>max texel buffer size (fstexels)</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxUniformBufferRange</name><comment>max uniform buffer range (bytes)</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxStorageBufferRange</name><comment>max storage buffer range (bytes)</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPushConstantsSize</name><comment>max size of the push constants pool (bytes)</comment></member>
- <comment>memory limits</comment>
- <member limittype="max"><type>uint32_t</type> <name>maxMemoryAllocationCount</name><comment>max number of device memory allocations supported</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxSamplerAllocationCount</name><comment>max number of samplers that can be allocated on a device</comment></member>
- <member limittype="noauto"><type>VkDeviceSize</type> <name>bufferImageGranularity</name><comment>Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage</comment></member>
- <member limittype="max"><type>VkDeviceSize</type> <name>sparseAddressSpaceSize</name><comment>Total address space available for sparse allocations (bytes)</comment></member>
- <comment>descriptor set limits</comment>
- <member limittype="max"><type>uint32_t</type> <name>maxBoundDescriptorSets</name><comment>max number of descriptors sets that can be bound to a pipeline</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorSamplers</name><comment>max number of samplers allowed per-stage in a descriptor set</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUniformBuffers</name><comment>max number of uniform buffers allowed per-stage in a descriptor set</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorStorageBuffers</name><comment>max number of storage buffers allowed per-stage in a descriptor set</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorSampledImages</name><comment>max number of sampled images allowed per-stage in a descriptor set</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorStorageImages</name><comment>max number of storage images allowed per-stage in a descriptor set</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorInputAttachments</name><comment>max number of input attachments allowed per-stage in a descriptor set</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageResources</name><comment>max number of resources allowed by a single stage</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetSamplers</name><comment>max number of samplers allowed in all stages in a descriptor set</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUniformBuffers</name><comment>max number of uniform buffers allowed in all stages in a descriptor set</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUniformBuffersDynamic</name><comment>max number of dynamic uniform buffers allowed in all stages in a descriptor set</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetStorageBuffers</name><comment>max number of storage buffers allowed in all stages in a descriptor set</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetStorageBuffersDynamic</name><comment>max number of dynamic storage buffers allowed in all stages in a descriptor set</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetSampledImages</name><comment>max number of sampled images allowed in all stages in a descriptor set</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetStorageImages</name><comment>max number of storage images allowed in all stages in a descriptor set</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetInputAttachments</name><comment>max number of input attachments allowed in all stages in a descriptor set</comment></member>
- <comment>vertex stage limits</comment>
- <member limittype="max"><type>uint32_t</type> <name>maxVertexInputAttributes</name><comment>max number of vertex input attribute slots</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxVertexInputBindings</name><comment>max number of vertex input binding slots</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxVertexInputAttributeOffset</name><comment>max vertex input attribute offset added to vertex buffer offset</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxVertexInputBindingStride</name><comment>max vertex input binding stride</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxVertexOutputComponents</name><comment>max number of output components written by vertex shader</comment></member>
- <comment>tessellation control stage limits</comment>
- <member limittype="max"><type>uint32_t</type> <name>maxTessellationGenerationLevel</name><comment>max level supported by tessellation primitive generator</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTessellationPatchSize</name><comment>max patch size (vertices)</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTessellationControlPerVertexInputComponents</name><comment>max number of input components per-vertex in TCS</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTessellationControlPerVertexOutputComponents</name><comment>max number of output components per-vertex in TCS</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTessellationControlPerPatchOutputComponents</name><comment>max number of output components per-patch in TCS</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTessellationControlTotalOutputComponents</name><comment>max total number of per-vertex and per-patch output components in TCS</comment></member>
- <comment>tessellation evaluation stage limits</comment>
- <member limittype="max"><type>uint32_t</type> <name>maxTessellationEvaluationInputComponents</name><comment>max number of input components per vertex in TES</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTessellationEvaluationOutputComponents</name><comment>max number of output components per vertex in TES</comment></member>
- <comment>geometry stage limits</comment>
- <member limittype="max"><type>uint32_t</type> <name>maxGeometryShaderInvocations</name><comment>max invocation count supported in geometry shader</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxGeometryInputComponents</name><comment>max number of input components read in geometry stage</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxGeometryOutputComponents</name><comment>max number of output components written in geometry stage</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxGeometryOutputVertices</name><comment>max number of vertices that can be emitted in geometry stage</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxGeometryTotalOutputComponents</name><comment>max total number of components (all vertices) written in geometry stage</comment></member>
- <comment>fragment stage limits</comment>
- <member limittype="max"><type>uint32_t</type> <name>maxFragmentInputComponents</name><comment>max number of input components read in fragment stage</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxFragmentOutputAttachments</name><comment>max number of output attachments written in fragment stage</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxFragmentDualSrcAttachments</name><comment>max number of output attachments written when using dual source blending</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxFragmentCombinedOutputResources</name><comment>max total number of storage buffers, storage images and output buffers</comment></member>
- <comment>compute stage limits</comment>
- <member limittype="max"><type>uint32_t</type> <name>maxComputeSharedMemorySize</name><comment>max total storage size of work group local storage (bytes)</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxComputeWorkGroupCount</name>[3]<comment>max num of compute work groups that may be dispatched by a single command (x,y,z)</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxComputeWorkGroupInvocations</name><comment>max total compute invocations in a single local work group</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxComputeWorkGroupSize</name>[3]<comment>max local size of a compute work group (x,y,z)</comment></member>
- <member limittype="noauto"><type>uint32_t</type> <name>subPixelPrecisionBits</name><comment>number bits of subpixel precision in screen x and y</comment></member>
- <member limittype="noauto"><type>uint32_t</type> <name>subTexelPrecisionBits</name><comment>number bits of precision for selecting texel weights</comment></member>
- <member limittype="noauto"><type>uint32_t</type> <name>mipmapPrecisionBits</name><comment>number bits of precision for selecting mipmap weights</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDrawIndexedIndexValue</name><comment>max index value for indexed draw calls (for 32-bit indices)</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDrawIndirectCount</name><comment>max draw count for indirect drawing calls</comment></member>
- <member limittype="max"><type>float</type> <name>maxSamplerLodBias</name><comment>max absolute sampler LOD bias</comment></member>
- <member limittype="max"><type>float</type> <name>maxSamplerAnisotropy</name><comment>max degree of sampler anisotropy</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxViewports</name><comment>max number of active viewports</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxViewportDimensions</name>[2]<comment>max viewport dimensions (x,y)</comment></member>
- <member limittype="range"><type>float</type> <name>viewportBoundsRange</name>[2]<comment>viewport bounds range (min,max)</comment></member>
- <member limittype="noauto"><type>uint32_t</type> <name>viewportSubPixelBits</name><comment>number bits of subpixel precision for viewport</comment></member>
- <member limittype="noauto"><type>size_t</type> <name>minMemoryMapAlignment</name><comment>min required alignment of pointers returned by MapMemory (bytes)</comment></member>
- <member limittype="noauto"><type>VkDeviceSize</type> <name>minTexelBufferOffsetAlignment</name><comment>min required alignment for texel buffer offsets (bytes) </comment></member>
- <member limittype="noauto"><type>VkDeviceSize</type> <name>minUniformBufferOffsetAlignment</name><comment>min required alignment for uniform buffer sizes and offsets (bytes)</comment></member>
- <member limittype="noauto"><type>VkDeviceSize</type> <name>minStorageBufferOffsetAlignment</name><comment>min required alignment for storage buffer offsets (bytes)</comment></member>
- <member limittype="min"><type>int32_t</type> <name>minTexelOffset</name><comment>min texel offset for OpTextureSampleOffset</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTexelOffset</name><comment>max texel offset for OpTextureSampleOffset</comment></member>
- <member limittype="min"><type>int32_t</type> <name>minTexelGatherOffset</name><comment>min texel offset for OpTextureGatherOffset</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTexelGatherOffset</name><comment>max texel offset for OpTextureGatherOffset</comment></member>
- <member limittype="min"><type>float</type> <name>minInterpolationOffset</name><comment>furthest negative offset for interpolateAtOffset</comment></member>
- <member limittype="max"><type>float</type> <name>maxInterpolationOffset</name><comment>furthest positive offset for interpolateAtOffset</comment></member>
- <member limittype="noauto"><type>uint32_t</type> <name>subPixelInterpolationOffsetBits</name><comment>number of subpixel bits for interpolateAtOffset</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxFramebufferWidth</name><comment>max width for a framebuffer</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxFramebufferHeight</name><comment>max height for a framebuffer</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxFramebufferLayers</name><comment>max layer count for a layered framebuffer</comment></member>
- <member limittype="bitmask" optional="true"><type>VkSampleCountFlags</type> <name>framebufferColorSampleCounts</name><comment>supported color sample counts for a framebuffer</comment></member>
- <member limittype="bitmask" optional="true"><type>VkSampleCountFlags</type> <name>framebufferDepthSampleCounts</name><comment>supported depth sample counts for a framebuffer</comment></member>
- <member limittype="bitmask" optional="true"><type>VkSampleCountFlags</type> <name>framebufferStencilSampleCounts</name><comment>supported stencil sample counts for a framebuffer</comment></member>
- <member limittype="bitmask" optional="true"><type>VkSampleCountFlags</type> <name>framebufferNoAttachmentsSampleCounts</name><comment>supported sample counts for a subpass which uses no attachments</comment></member>
- <member limittype="bitmask"><type>uint32_t</type> <name>maxColorAttachments</name><comment>max number of color attachments per subpass</comment></member>
- <member limittype="bitmask" optional="true"><type>VkSampleCountFlags</type> <name>sampledImageColorSampleCounts</name><comment>supported color sample counts for a non-integer sampled image</comment></member>
- <member limittype="bitmask" optional="true"><type>VkSampleCountFlags</type> <name>sampledImageIntegerSampleCounts</name><comment>supported sample counts for an integer image</comment></member>
- <member limittype="bitmask" optional="true"><type>VkSampleCountFlags</type> <name>sampledImageDepthSampleCounts</name><comment>supported depth sample counts for a sampled image</comment></member>
- <member limittype="bitmask" optional="true"><type>VkSampleCountFlags</type> <name>sampledImageStencilSampleCounts</name><comment>supported stencil sample counts for a sampled image</comment></member>
- <member limittype="bitmask" optional="true"><type>VkSampleCountFlags</type> <name>storageImageSampleCounts</name><comment>supported sample counts for a storage image</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxSampleMaskWords</name><comment>max number of sample mask words</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>timestampComputeAndGraphics</name><comment>timestamps on graphics and compute queues</comment></member>
- <member limittype="noauto"><type>float</type> <name>timestampPeriod</name><comment>number of nanoseconds it takes for timestamp query value to increment by 1</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxClipDistances</name><comment>max number of clip distances</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxCullDistances</name><comment>max number of cull distances</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxCombinedClipAndCullDistances</name><comment>max combined number of user clipping</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>discreteQueuePriorities</name><comment>distinct queue priorities available </comment></member>
- <member limittype="range"><type>float</type> <name>pointSizeRange</name>[2]<comment>range (min,max) of supported point sizes</comment></member>
- <member limittype="range"><type>float</type> <name>lineWidthRange</name>[2]<comment>range (min,max) of supported line widths</comment></member>
- <member limittype="max"><type>float</type> <name>pointSizeGranularity</name><comment>granularity of supported point sizes</comment></member>
- <member limittype="max"><type>float</type> <name>lineWidthGranularity</name><comment>granularity of supported line widths</comment></member>
- <member limittype="noauto"><type>VkBool32</type> <name>strictLines</name><comment>line rasterization follows preferred rules</comment></member>
- <member limittype="noauto"><type>VkBool32</type> <name>standardSampleLocations</name><comment>supports standard sample locations for all supported sample counts</comment></member>
- <member limittype="noauto"><type>VkDeviceSize</type> <name>optimalBufferCopyOffsetAlignment</name><comment>optimal offset of buffer copies</comment></member>
- <member limittype="noauto"><type>VkDeviceSize</type> <name>optimalBufferCopyRowPitchAlignment</name><comment>optimal pitch of buffer copies</comment></member>
- <member limittype="noauto"><type>VkDeviceSize</type> <name>nonCoherentAtomSize</name><comment>minimum size and alignment for non-coherent host-mapped device memory access</comment></member>
- </type>
- <type category="struct" name="VkSemaphoreCreateInfo">
- <member values="VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkSemaphoreCreateFlags</type> <name>flags</name><comment>Semaphore creation flags</comment></member>
- </type>
- <type category="struct" name="VkQueryPoolCreateInfo">
- <member values="VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkQueryPoolCreateFlags</type> <name>flags</name></member>
- <member><type>VkQueryType</type> <name>queryType</name></member>
- <member><type>uint32_t</type> <name>queryCount</name></member>
- <member optional="true" noautovalidity="true"><type>VkQueryPipelineStatisticFlags</type> <name>pipelineStatistics</name><comment>Optional</comment></member>
- </type>
- <type category="struct" name="VkFramebufferCreateInfo">
- <member values="VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkFramebufferCreateFlags</type> <name>flags</name></member>
- <member><type>VkRenderPass</type> <name>renderPass</name></member>
- <member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member>
- <member noautovalidity="true" len="attachmentCount">const <type>VkImageView</type>* <name>pAttachments</name></member>
- <member><type>uint32_t</type> <name>width</name></member>
- <member><type>uint32_t</type> <name>height</name></member>
- <member><type>uint32_t</type> <name>layers</name></member>
- </type>
- <type category="struct" name="VkDrawIndirectCommand">
- <member><type>uint32_t</type> <name>vertexCount</name></member>
- <member><type>uint32_t</type> <name>instanceCount</name></member>
- <member><type>uint32_t</type> <name>firstVertex</name></member>
- <member noautovalidity="true"><type>uint32_t</type> <name>firstInstance</name></member>
- </type>
- <type category="struct" name="VkDrawIndexedIndirectCommand">
- <member><type>uint32_t</type> <name>indexCount</name></member>
- <member><type>uint32_t</type> <name>instanceCount</name></member>
- <member><type>uint32_t</type> <name>firstIndex</name></member>
- <member><type>int32_t</type> <name>vertexOffset</name></member>
- <member noautovalidity="true"><type>uint32_t</type> <name>firstInstance</name></member>
- </type>
- <type category="struct" name="VkDispatchIndirectCommand">
- <member noautovalidity="true"><type>uint32_t</type> <name>x</name></member>
- <member noautovalidity="true"><type>uint32_t</type> <name>y</name></member>
- <member noautovalidity="true"><type>uint32_t</type> <name>z</name></member>
- </type>
- <type category="struct" name="VkMultiDrawInfoEXT">
- <member><type>uint32_t</type> <name>firstVertex</name></member>
- <member><type>uint32_t</type> <name>vertexCount</name></member>
- </type>
- <type category="struct" name="VkMultiDrawIndexedInfoEXT">
- <member><type>uint32_t</type> <name>firstIndex</name></member>
- <member><type>uint32_t</type> <name>indexCount</name></member>
- <member><type>int32_t</type> <name>vertexOffset</name></member>
- </type>
- <type category="struct" name="VkSubmitInfo">
- <member values="VK_STRUCTURE_TYPE_SUBMIT_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></member>
- <member len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></member>
- <member len="waitSemaphoreCount">const <type>VkPipelineStageFlags</type>* <name>pWaitDstStageMask</name></member>
- <member optional="true"><type>uint32_t</type> <name>commandBufferCount</name></member>
- <member len="commandBufferCount">const <type>VkCommandBuffer</type>* <name>pCommandBuffers</name></member>
- <member optional="true"><type>uint32_t</type> <name>signalSemaphoreCount</name></member>
- <member len="signalSemaphoreCount">const <type>VkSemaphore</type>* <name>pSignalSemaphores</name></member>
- </type>
- <comment>WSI extensions</comment>
- <type category="struct" name="VkDisplayPropertiesKHR" returnedonly="true">
- <member><type>VkDisplayKHR</type> <name>display</name><comment>Handle of the display object</comment></member>
- <member len="null-terminated">const <type>char</type>* <name>displayName</name><comment>Name of the display</comment></member>
- <member><type>VkExtent2D</type> <name>physicalDimensions</name><comment>In millimeters?</comment></member>
- <member><type>VkExtent2D</type> <name>physicalResolution</name><comment>Max resolution for CRT?</comment></member>
- <member optional="true"><type>VkSurfaceTransformFlagsKHR</type> <name>supportedTransforms</name><comment>one or more bits from VkSurfaceTransformFlagsKHR</comment></member>
- <member><type>VkBool32</type> <name>planeReorderPossible</name><comment>VK_TRUE if the overlay plane's z-order can be changed on this display.</comment></member>
- <member><type>VkBool32</type> <name>persistentContent</name><comment>VK_TRUE if this is a "smart" display that supports self-refresh/internal buffering.</comment></member>
- </type>
- <type category="struct" name="VkDisplayPlanePropertiesKHR" returnedonly="true">
- <member><type>VkDisplayKHR</type> <name>currentDisplay</name><comment>Display the plane is currently associated with. Will be VK_NULL_HANDLE if the plane is not in use.</comment></member>
- <member><type>uint32_t</type> <name>currentStackIndex</name><comment>Current z-order of the plane.</comment></member>
- </type>
- <type category="struct" name="VkDisplayModeParametersKHR">
- <member><type>VkExtent2D</type> <name>visibleRegion</name><comment>Visible scanout region.</comment></member>
- <member noautovalidity="true"><type>uint32_t</type> <name>refreshRate</name><comment>Number of times per second the display is updated.</comment></member>
- </type>
- <type category="struct" name="VkDisplayModePropertiesKHR" returnedonly="true">
- <member><type>VkDisplayModeKHR</type> <name>displayMode</name><comment>Handle of this display mode.</comment></member>
- <member><type>VkDisplayModeParametersKHR</type> <name>parameters</name><comment>The parameters this mode uses.</comment></member>
- </type>
- <type category="struct" name="VkDisplayModeCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkDisplayModeCreateFlagsKHR</type> <name>flags</name></member>
- <member><type>VkDisplayModeParametersKHR</type> <name>parameters</name><comment>The parameters this mode uses.</comment></member>
- </type>
- <type category="struct" name="VkDisplayPlaneCapabilitiesKHR" returnedonly="true">
- <member optional="true"><type>VkDisplayPlaneAlphaFlagsKHR</type> <name>supportedAlpha</name><comment>Types of alpha blending supported, if any.</comment></member>
- <member><type>VkOffset2D</type> <name>minSrcPosition</name><comment>Does the plane have any position and extent restrictions?</comment></member>
- <member><type>VkOffset2D</type> <name>maxSrcPosition</name></member>
- <member><type>VkExtent2D</type> <name>minSrcExtent</name></member>
- <member><type>VkExtent2D</type> <name>maxSrcExtent</name></member>
- <member><type>VkOffset2D</type> <name>minDstPosition</name></member>
- <member><type>VkOffset2D</type> <name>maxDstPosition</name></member>
- <member><type>VkExtent2D</type> <name>minDstExtent</name></member>
- <member><type>VkExtent2D</type> <name>maxDstExtent</name></member>
- </type>
- <type category="struct" name="VkDisplaySurfaceCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkDisplaySurfaceCreateFlagsKHR</type> <name>flags</name></member>
- <member><type>VkDisplayModeKHR</type> <name>displayMode</name><comment>The mode to use when displaying this surface</comment></member>
- <member><type>uint32_t</type> <name>planeIndex</name><comment>The plane on which this surface appears. Must be between 0 and the value returned by vkGetPhysicalDeviceDisplayPlanePropertiesKHR() in pPropertyCount.</comment></member>
- <member><type>uint32_t</type> <name>planeStackIndex</name><comment>The z-order of the plane.</comment></member>
- <member><type>VkSurfaceTransformFlagBitsKHR</type> <name>transform</name><comment>Transform to apply to the images as part of the scanout operation</comment></member>
- <member><type>float</type> <name>globalAlpha</name><comment>Global alpha value. Must be between 0 and 1, inclusive. Ignored if alphaMode is not VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR</comment></member>
- <member><type>VkDisplayPlaneAlphaFlagBitsKHR</type> <name>alphaMode</name><comment>What type of alpha blending to use. Must be a bit from vkGetDisplayPlanePropertiesKHR::supportedAlpha.</comment></member>
- <member><type>VkExtent2D</type> <name>imageExtent</name><comment>size of the images to use with this surface</comment></member>
- </type>
- <type category="struct" name="VkDisplayPresentInfoKHR" structextends="VkPresentInfoKHR">
- <member values="VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkRect2D</type> <name>srcRect</name><comment>Rectangle within the presentable image to read pixel data from when presenting to the display.</comment></member>
- <member><type>VkRect2D</type> <name>dstRect</name><comment>Rectangle within the current display mode's visible region to display srcRectangle in.</comment></member>
- <member><type>VkBool32</type> <name>persistent</name><comment>For smart displays, use buffered mode. If the display properties member "persistentMode" is VK_FALSE, this member must always be VK_FALSE.</comment></member>
- </type>
- <type category="struct" name="VkSurfaceCapabilitiesKHR" returnedonly="true">
- <member><type>uint32_t</type> <name>minImageCount</name><comment>Supported minimum number of images for the surface</comment></member>
- <member><type>uint32_t</type> <name>maxImageCount</name><comment>Supported maximum number of images for the surface, 0 for unlimited</comment></member>
- <member><type>VkExtent2D</type> <name>currentExtent</name><comment>Current image width and height for the surface, (0, 0) if undefined</comment></member>
- <member><type>VkExtent2D</type> <name>minImageExtent</name><comment>Supported minimum image width and height for the surface</comment></member>
- <member><type>VkExtent2D</type> <name>maxImageExtent</name><comment>Supported maximum image width and height for the surface</comment></member>
- <member><type>uint32_t</type> <name>maxImageArrayLayers</name><comment>Supported maximum number of image layers for the surface</comment></member>
- <member><type>VkSurfaceTransformFlagsKHR</type> <name>supportedTransforms</name><comment>1 or more bits representing the transforms supported</comment></member>
- <member><type>VkSurfaceTransformFlagBitsKHR</type> <name>currentTransform</name><comment>The surface's current transform relative to the device's natural orientation</comment></member>
- <member><type>VkCompositeAlphaFlagsKHR</type> <name>supportedCompositeAlpha</name><comment>1 or more bits representing the alpha compositing modes supported</comment></member>
- <member><type>VkImageUsageFlags</type> <name>supportedUsageFlags</name><comment>Supported image usage flags for the surface</comment></member>
- </type>
- <type category="struct" name="VkAndroidSurfaceCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkAndroidSurfaceCreateFlagsKHR</type> <name>flags</name></member>
- <member noautovalidity="true">struct <type>ANativeWindow</type>* <name>window</name></member>
- </type>
- <type category="struct" name="VkViSurfaceCreateInfoNN">
- <member values="VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkViSurfaceCreateFlagsNN</type> <name>flags</name></member>
- <member noautovalidity="true"><type>void</type>* <name>window</name></member>
- </type>
- <type category="struct" name="VkWaylandSurfaceCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkWaylandSurfaceCreateFlagsKHR</type> <name>flags</name></member>
- <member noautovalidity="true">struct <type>wl_display</type>* <name>display</name></member>
- <member noautovalidity="true">struct <type>wl_surface</type>* <name>surface</name></member>
- </type>
- <type category="struct" name="VkWin32SurfaceCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkWin32SurfaceCreateFlagsKHR</type> <name>flags</name></member>
- <member><type>HINSTANCE</type> <name>hinstance</name></member>
- <member><type>HWND</type> <name>hwnd</name></member>
- </type>
- <type category="struct" name="VkXlibSurfaceCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkXlibSurfaceCreateFlagsKHR</type> <name>flags</name></member>
- <member noautovalidity="true"><type>Display</type>* <name>dpy</name></member>
- <member><type>Window</type> <name>window</name></member>
- </type>
- <type category="struct" name="VkXcbSurfaceCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkXcbSurfaceCreateFlagsKHR</type> <name>flags</name></member>
- <member noautovalidity="true"><type>xcb_connection_t</type>* <name>connection</name></member>
- <member><type>xcb_window_t</type> <name>window</name></member>
- </type>
- <type category="struct" name="VkDirectFBSurfaceCreateInfoEXT">
- <member values="VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkDirectFBSurfaceCreateFlagsEXT</type> <name>flags</name></member>
- <member noautovalidity="true"><type>IDirectFB</type>* <name>dfb</name></member>
- <member noautovalidity="true"><type>IDirectFBSurface</type>* <name>surface</name></member>
- </type>
- <type category="struct" name="VkImagePipeSurfaceCreateInfoFUCHSIA">
- <member values="VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkImagePipeSurfaceCreateFlagsFUCHSIA</type> <name>flags</name></member>
- <member><type>zx_handle_t</type> <name>imagePipeHandle</name></member>
- </type>
- <type category="struct" name="VkStreamDescriptorSurfaceCreateInfoGGP">
- <member values="VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkStreamDescriptorSurfaceCreateFlagsGGP</type> <name>flags</name></member>
- <member><type>GgpStreamDescriptor</type> <name>streamDescriptor</name></member>
- </type>
- <type category="struct" name="VkScreenSurfaceCreateInfoQNX">
- <member values="VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkScreenSurfaceCreateFlagsQNX</type> <name>flags</name></member>
- <member noautovalidity="true">struct <type>_screen_context</type>* <name>context</name></member>
- <member noautovalidity="true">struct <type>_screen_window</type>* <name>window</name></member>
- </type>
- <type category="struct" name="VkSurfaceFormatKHR" returnedonly="true">
- <member><type>VkFormat</type> <name>format</name><comment>Supported pair of rendering format</comment></member>
- <member><type>VkColorSpaceKHR</type> <name>colorSpace</name><comment>and color space for the surface</comment></member>
- </type>
- <type category="struct" name="VkSwapchainCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkSwapchainCreateFlagsKHR</type> <name>flags</name></member>
- <member><type>VkSurfaceKHR</type> <name>surface</name><comment>The swapchain's target surface</comment></member>
- <member><type>uint32_t</type> <name>minImageCount</name><comment>Minimum number of presentation images the application needs</comment></member>
- <member><type>VkFormat</type> <name>imageFormat</name><comment>Format of the presentation images</comment></member>
- <member><type>VkColorSpaceKHR</type> <name>imageColorSpace</name><comment>Colorspace of the presentation images</comment></member>
- <member><type>VkExtent2D</type> <name>imageExtent</name><comment>Dimensions of the presentation images</comment></member>
- <member><type>uint32_t</type> <name>imageArrayLayers</name><comment>Determines the number of views for multiview/stereo presentation</comment></member>
- <member><type>VkImageUsageFlags</type> <name>imageUsage</name><comment>Bits indicating how the presentation images will be used</comment></member>
- <member><type>VkSharingMode</type> <name>imageSharingMode</name><comment>Sharing mode used for the presentation images</comment></member>
- <member optional="true"><type>uint32_t</type> <name>queueFamilyIndexCount</name><comment>Number of queue families having access to the images in case of concurrent sharing mode</comment></member>
- <member noautovalidity="true" len="queueFamilyIndexCount">const <type>uint32_t</type>* <name>pQueueFamilyIndices</name><comment>Array of queue family indices having access to the images in case of concurrent sharing mode</comment></member>
- <member><type>VkSurfaceTransformFlagBitsKHR</type> <name>preTransform</name><comment>The transform, relative to the device's natural orientation, applied to the image content prior to presentation</comment></member>
- <member><type>VkCompositeAlphaFlagBitsKHR</type> <name>compositeAlpha</name><comment>The alpha blending mode used when compositing this surface with other surfaces in the window system</comment></member>
- <member><type>VkPresentModeKHR</type> <name>presentMode</name><comment>Which presentation mode to use for presents on this swap chain</comment></member>
- <member><type>VkBool32</type> <name>clipped</name><comment>Specifies whether presentable images may be affected by window clip regions</comment></member>
- <member optional="true"><type>VkSwapchainKHR</type> <name>oldSwapchain</name><comment>Existing swap chain to replace, if any</comment></member>
- </type>
- <type category="struct" name="VkPresentInfoKHR">
- <member values="VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name><comment>Number of semaphores to wait for before presenting</comment></member>
- <member len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name><comment>Semaphores to wait for before presenting</comment></member>
- <member><type>uint32_t</type> <name>swapchainCount</name><comment>Number of swapchains to present in this call</comment></member>
- <member len="swapchainCount">const <type>VkSwapchainKHR</type>* <name>pSwapchains</name><comment>Swapchains to present an image from</comment></member>
- <member len="swapchainCount">const <type>uint32_t</type>* <name>pImageIndices</name><comment>Indices of which presentable images to present</comment></member>
- <member optional="true" len="swapchainCount"><type>VkResult</type>* <name>pResults</name><comment>Optional (i.e. if non-NULL) VkResult for each swapchain</comment></member>
- </type>
- <type category="struct" name="VkDebugReportCallbackCreateInfoEXT" structextends="VkInstanceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkDebugReportFlagsEXT</type> <name>flags</name><comment>Indicates which events call this callback</comment></member>
- <member><type>PFN_vkDebugReportCallbackEXT</type> <name>pfnCallback</name><comment>Function pointer of a callback function</comment></member>
- <member optional="true"><type>void</type>* <name>pUserData</name><comment>User data provided to callback function</comment></member>
- </type>
- <type category="struct" name="VkValidationFlagsEXT" structextends="VkInstanceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT"><type>VkStructureType</type> <name>sType</name><comment>Must be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT</comment></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>disabledValidationCheckCount</name><comment>Number of validation checks to disable</comment></member>
- <member len="disabledValidationCheckCount">const <type>VkValidationCheckEXT</type>* <name>pDisabledValidationChecks</name><comment>Validation checks to disable</comment></member>
- </type>
- <type category="struct" name="VkValidationFeaturesEXT" structextends="VkInstanceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name><comment>Must be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT</comment></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>enabledValidationFeatureCount</name><comment>Number of validation features to enable</comment></member>
- <member len="enabledValidationFeatureCount">const <type>VkValidationFeatureEnableEXT</type>* <name>pEnabledValidationFeatures</name><comment>Validation features to enable</comment></member>
- <member optional="true"><type>uint32_t</type> <name>disabledValidationFeatureCount</name><comment>Number of validation features to disable</comment></member>
- <member len="disabledValidationFeatureCount">const <type>VkValidationFeatureDisableEXT</type>* <name>pDisabledValidationFeatures</name><comment>Validation features to disable</comment></member>
- </type>
- <type category="struct" name="VkPipelineRasterizationStateRasterizationOrderAMD" structextends="VkPipelineRasterizationStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkRasterizationOrderAMD</type> <name>rasterizationOrder</name><comment>Rasterization order to use for the pipeline</comment></member>
- </type>
- <type category="struct" name="VkDebugMarkerObjectNameInfoEXT">
- <member values="VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDebugReportObjectTypeEXT</type> <name>objectType</name><comment>The type of the object</comment></member>
- <member objecttype="objectType"><type>uint64_t</type> <name>object</name><comment>The handle of the object, cast to uint64_t</comment></member>
- <member len="null-terminated">const <type>char</type>* <name>pObjectName</name><comment>Name to apply to the object</comment></member>
- </type>
- <type category="struct" name="VkDebugMarkerObjectTagInfoEXT">
- <member values="VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDebugReportObjectTypeEXT</type> <name>objectType</name><comment>The type of the object</comment></member>
- <member objecttype="objectType"><type>uint64_t</type> <name>object</name><comment>The handle of the object, cast to uint64_t</comment></member>
- <member><type>uint64_t</type> <name>tagName</name><comment>The name of the tag to set on the object</comment></member>
- <member><type>size_t</type> <name>tagSize</name><comment>The length in bytes of the tag data</comment></member>
- <member len="tagSize">const <type>void</type>* <name>pTag</name><comment>Tag data to attach to the object</comment></member>
- </type>
- <type category="struct" name="VkDebugMarkerMarkerInfoEXT">
- <member values="VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member len="null-terminated">const <type>char</type>* <name>pMarkerName</name><comment>Name of the debug marker</comment></member>
- <member><type>float</type> <name>color</name>[4]<comment>Optional color for debug marker</comment></member>
- </type>
- <type category="struct" name="VkDedicatedAllocationImageCreateInfoNV" structextends="VkImageCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>dedicatedAllocation</name><comment>Whether this image uses a dedicated allocation</comment></member>
- </type>
- <type category="struct" name="VkDedicatedAllocationBufferCreateInfoNV" structextends="VkBufferCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>dedicatedAllocation</name><comment>Whether this buffer uses a dedicated allocation</comment></member>
- </type>
- <type category="struct" name="VkDedicatedAllocationMemoryAllocateInfoNV" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkImage</type> <name>image</name><comment>Image that this allocation will be bound to</comment></member>
- <member optional="true"><type>VkBuffer</type> <name>buffer</name><comment>Buffer that this allocation will be bound to</comment></member>
- </type>
- <type category="struct" name="VkExternalImageFormatPropertiesNV" returnedonly="true">
- <member><type>VkImageFormatProperties</type> <name>imageFormatProperties</name></member>
- <member optional="true"><type>VkExternalMemoryFeatureFlagsNV</type> <name>externalMemoryFeatures</name></member>
- <member optional="true"><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>exportFromImportedHandleTypes</name></member>
- <member optional="true"><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>compatibleHandleTypes</name></member>
- </type>
- <type category="struct" name="VkExternalMemoryImageCreateInfoNV" structextends="VkImageCreateInfo">
- <member values="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>handleTypes</name></member>
- </type>
- <type category="struct" name="VkExportMemoryAllocateInfoNV" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>handleTypes</name></member>
- </type>
- <type category="struct" name="VkImportMemoryWin32HandleInfoNV" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>handleType</name></member>
- <member optional="true"><type>HANDLE</type> <name>handle</name></member>
- </type>
- <type category="struct" name="VkExportMemoryWin32HandleInfoNV" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true">const <type>SECURITY_ATTRIBUTES</type>* <name>pAttributes</name></member>
- <member optional="true"><type>DWORD</type> <name>dwAccess</name></member>
- </type>
- <type category="struct" name="VkWin32KeyedMutexAcquireReleaseInfoNV" structextends="VkSubmitInfo,VkSubmitInfo2">
- <member values="VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>acquireCount</name></member>
- <member len="acquireCount">const <type>VkDeviceMemory</type>* <name>pAcquireSyncs</name></member>
- <member len="acquireCount">const <type>uint64_t</type>* <name>pAcquireKeys</name></member>
- <member len="acquireCount">const <type>uint32_t</type>* <name>pAcquireTimeoutMilliseconds</name></member>
- <member optional="true"><type>uint32_t</type> <name>releaseCount</name></member>
- <member len="releaseCount">const <type>VkDeviceMemory</type>* <name>pReleaseSyncs</name></member>
- <member len="releaseCount">const <type>uint64_t</type>* <name>pReleaseKeys</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>deviceGeneratedCommands</name></member>
- </type>
- <type category="struct" name="VkDevicePrivateDataCreateInfo" allowduplicate="true" structextends="VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>privateDataSlotRequestCount</name></member>
- </type>
- <type category="struct" name="VkDevicePrivateDataCreateInfoEXT" alias="VkDevicePrivateDataCreateInfo"/>
- <type category="struct" name="VkPrivateDataSlotCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkPrivateDataSlotCreateFlags</type> <name>flags</name></member>
- </type>
- <type category="struct" name="VkPrivateDataSlotCreateInfoEXT" alias="VkPrivateDataSlotCreateInfo"/>
- <type category="struct" name="VkPhysicalDevicePrivateDataFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>privateData</name></member>
- </type>
- <type category="struct" name="VkPhysicalDevicePrivateDataFeaturesEXT" alias="VkPhysicalDevicePrivateDataFeatures"/>
- <type category="struct" name="VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxGraphicsShaderGroupCount</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxIndirectSequenceCount</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxIndirectCommandsTokenCount</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxIndirectCommandsStreamCount</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxIndirectCommandsTokenOffset</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxIndirectCommandsStreamStride</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>minSequencesCountBufferOffsetAlignment</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>minSequencesIndexBufferOffsetAlignment</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>minIndirectCommandsBufferOffsetAlignment</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMultiDrawPropertiesEXT" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxMultiDrawCount</name></member>
- </type>
- <type category="struct" name="VkGraphicsShaderGroupCreateInfoNV">
- <member values="VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_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>stageCount</name></member>
- <member len="stageCount">const <type>VkPipelineShaderStageCreateInfo</type>* <name>pStages</name></member>
- <member noautovalidity="true" optional="true">const <type>VkPipelineVertexInputStateCreateInfo</type>* <name>pVertexInputState</name></member>
- <member noautovalidity="true" optional="true">const <type>VkPipelineTessellationStateCreateInfo</type>* <name>pTessellationState</name></member>
- </type>
- <type category="struct" name="VkGraphicsPipelineShaderGroupsCreateInfoNV" structextends="VkGraphicsPipelineCreateInfo">
- <member values="VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_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>groupCount</name></member>
- <member len="groupCount">const <type>VkGraphicsShaderGroupCreateInfoNV</type>* <name>pGroups</name></member>
- <member optional="true"><type>uint32_t</type> <name>pipelineCount</name></member>
- <member len="pipelineCount">const <type>VkPipeline</type>* <name>pPipelines</name></member>
- </type>
- <type category="struct" name="VkBindShaderGroupIndirectCommandNV">
- <member><type>uint32_t</type> <name>groupIndex</name></member>
- </type>
- <type category="struct" name="VkBindIndexBufferIndirectCommandNV">
- <member><type>VkDeviceAddress</type> <name>bufferAddress</name></member>
- <member><type>uint32_t</type> <name>size</name></member>
- <member><type>VkIndexType</type> <name>indexType</name></member>
- </type>
- <type category="struct" name="VkBindVertexBufferIndirectCommandNV">
- <member><type>VkDeviceAddress</type> <name>bufferAddress</name></member>
- <member><type>uint32_t</type> <name>size</name></member>
- <member><type>uint32_t</type> <name>stride</name></member>
- </type>
- <type category="struct" name="VkSetStateFlagsIndirectCommandNV">
- <member><type>uint32_t</type> <name>data</name></member>
- </type>
- <type category="struct" name="VkIndirectCommandsStreamNV">
- <member><type>VkBuffer</type> <name>buffer</name></member>
- <member><type>VkDeviceSize</type> <name>offset</name></member>
- </type>
- <type category="struct" name="VkIndirectCommandsLayoutTokenNV">
- <member values="VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkIndirectCommandsTokenTypeNV</type> <name>tokenType</name></member>
- <member><type>uint32_t</type> <name>stream</name></member>
- <member><type>uint32_t</type> <name>offset</name></member>
- <member><type>uint32_t</type> <name>vertexBindingUnit</name></member>
- <member><type>VkBool32</type> <name>vertexDynamicStride</name></member>
- <member optional="true"><type>VkPipelineLayout</type> <name>pushconstantPipelineLayout</name></member>
- <member optional="true"><type>VkShaderStageFlags</type> <name>pushconstantShaderStageFlags</name></member>
- <member><type>uint32_t</type> <name>pushconstantOffset</name></member>
- <member><type>uint32_t</type> <name>pushconstantSize</name></member>
- <member optional="true"><type>VkIndirectStateFlagsNV</type> <name>indirectStateFlags</name></member>
- <member optional="true"><type>uint32_t</type> <name>indexTypeCount</name></member>
- <member len="indexTypeCount">const <type>VkIndexType</type>* <name>pIndexTypes</name></member>
- <member len="indexTypeCount">const <type>uint32_t</type>* <name>pIndexTypeValues</name></member>
- </type>
- <type category="struct" name="VkIndirectCommandsLayoutCreateInfoNV">
- <member values="VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkIndirectCommandsLayoutUsageFlagsNV</type> <name>flags</name></member>
- <member><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></member>
- <member><type>uint32_t</type> <name>tokenCount</name></member>
- <member len="tokenCount">const <type>VkIndirectCommandsLayoutTokenNV</type>* <name>pTokens</name></member>
- <member><type>uint32_t</type> <name>streamCount</name></member>
- <member len="streamCount">const <type>uint32_t</type>* <name>pStreamStrides</name></member>
- </type>
- <type category="struct" name="VkGeneratedCommandsInfoNV">
- <member values="VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></member>
- <member><type>VkPipeline</type> <name>pipeline</name></member>
- <member><type>VkIndirectCommandsLayoutNV</type> <name>indirectCommandsLayout</name></member>
- <member><type>uint32_t</type> <name>streamCount</name></member>
- <member len="streamCount">const <type>VkIndirectCommandsStreamNV</type>* <name>pStreams</name></member>
- <member><type>uint32_t</type> <name>sequencesCount</name></member>
- <member><type>VkBuffer</type> <name>preprocessBuffer</name></member>
- <member><type>VkDeviceSize</type> <name>preprocessOffset</name></member>
- <member><type>VkDeviceSize</type> <name>preprocessSize</name></member>
- <member optional="true"><type>VkBuffer</type> <name>sequencesCountBuffer</name></member>
- <member><type>VkDeviceSize</type> <name>sequencesCountOffset</name></member>
- <member optional="true"><type>VkBuffer</type> <name>sequencesIndexBuffer</name></member>
- <member><type>VkDeviceSize</type> <name>sequencesIndexOffset</name></member>
- </type>
- <type category="struct" name="VkGeneratedCommandsMemoryRequirementsInfoNV">
- <member values="VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></member>
- <member><type>VkPipeline</type> <name>pipeline</name></member>
- <member><type>VkIndirectCommandsLayoutNV</type> <name>indirectCommandsLayout</name></member>
- <member><type>uint32_t</type> <name>maxSequencesCount</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFeatures2" structextends="VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkPhysicalDeviceFeatures</type> <name>features</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFeatures2KHR" alias="VkPhysicalDeviceFeatures2"/>
- <type category="struct" name="VkPhysicalDeviceProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="struct"><type>VkPhysicalDeviceProperties</type> <name>properties</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceProperties2KHR" alias="VkPhysicalDeviceProperties2"/>
- <type category="struct" name="VkFormatProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkFormatProperties</type> <name>formatProperties</name></member>
- </type>
- <type category="struct" name="VkFormatProperties2KHR" alias="VkFormatProperties2"/>
- <type category="struct" name="VkImageFormatProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkImageFormatProperties</type> <name>imageFormatProperties</name></member>
- </type>
- <type category="struct" name="VkImageFormatProperties2KHR" alias="VkImageFormatProperties2"/>
- <type category="struct" name="VkPhysicalDeviceImageFormatInfo2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkFormat</type> <name>format</name></member>
- <member><type>VkImageType</type> <name>type</name></member>
- <member><type>VkImageTiling</type> <name>tiling</name></member>
- <member><type>VkImageUsageFlags</type> <name>usage</name></member>
- <member optional="true"><type>VkImageCreateFlags</type> <name>flags</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceImageFormatInfo2KHR" alias="VkPhysicalDeviceImageFormatInfo2"/>
- <type category="struct" name="VkQueueFamilyProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkQueueFamilyProperties</type> <name>queueFamilyProperties</name></member>
- </type>
- <type category="struct" name="VkQueueFamilyProperties2KHR" alias="VkQueueFamilyProperties2"/>
- <type category="struct" name="VkPhysicalDeviceMemoryProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkPhysicalDeviceMemoryProperties</type> <name>memoryProperties</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMemoryProperties2KHR" alias="VkPhysicalDeviceMemoryProperties2"/>
- <type category="struct" name="VkSparseImageFormatProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkSparseImageFormatProperties</type> <name>properties</name></member>
- </type>
- <type category="struct" name="VkSparseImageFormatProperties2KHR" alias="VkSparseImageFormatProperties2"/>
- <type category="struct" name="VkPhysicalDeviceSparseImageFormatInfo2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkFormat</type> <name>format</name></member>
- <member><type>VkImageType</type> <name>type</name></member>
- <member><type>VkSampleCountFlagBits</type> <name>samples</name></member>
- <member><type>VkImageUsageFlags</type> <name>usage</name></member>
- <member><type>VkImageTiling</type> <name>tiling</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceSparseImageFormatInfo2KHR" alias="VkPhysicalDeviceSparseImageFormatInfo2"/>
- <type category="struct" name="VkPhysicalDevicePushDescriptorPropertiesKHR" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPushDescriptors</name></member>
- </type>
- <type category="struct" name="VkConformanceVersion">
- <member><type>uint8_t</type> <name>major</name></member>
- <member><type>uint8_t</type> <name>minor</name></member>
- <member><type>uint8_t</type> <name>subminor</name></member>
- <member><type>uint8_t</type> <name>patch</name></member>
- </type>
- <type category="struct" name="VkConformanceVersionKHR" alias="VkConformanceVersion"/>
- <type category="struct" name="VkPhysicalDeviceDriverProperties" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>VkDriverId</type> <name>driverID</name></member>
- <member limittype="noauto"><type>char</type> <name>driverName</name>[<enum>VK_MAX_DRIVER_NAME_SIZE</enum>]</member>
- <member limittype="noauto"><type>char</type> <name>driverInfo</name>[<enum>VK_MAX_DRIVER_INFO_SIZE</enum>]</member>
- <member limittype="noauto"><type>VkConformanceVersion</type> <name>conformanceVersion</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceDriverPropertiesKHR" alias="VkPhysicalDeviceDriverProperties"/>
- <type category="struct" name="VkPresentRegionsKHR" structextends="VkPresentInfoKHR">
- <member values="VK_STRUCTURE_TYPE_PRESENT_REGIONS_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>swapchainCount</name><comment>Copy of VkPresentInfoKHR::swapchainCount</comment></member>
- <member len="swapchainCount" optional="true">const <type>VkPresentRegionKHR</type>* <name>pRegions</name><comment>The regions that have changed</comment></member>
- </type>
- <type category="struct" name="VkPresentRegionKHR">
- <member optional="true"><type>uint32_t</type> <name>rectangleCount</name><comment>Number of rectangles in pRectangles</comment></member>
- <member optional="true" len="rectangleCount">const <type>VkRectLayerKHR</type>* <name>pRectangles</name><comment>Array of rectangles that have changed in a swapchain's image(s)</comment></member>
- </type>
- <type category="struct" name="VkRectLayerKHR">
- <member><type>VkOffset2D</type> <name>offset</name><comment>upper-left corner of a rectangle that has not changed, in pixels of a presentation images</comment></member>
- <member noautovalidity="true"><type>VkExtent2D</type> <name>extent</name><comment>Dimensions of a rectangle that has not changed, in pixels of a presentation images</comment></member>
- <member><type>uint32_t</type> <name>layer</name><comment>Layer of a swapchain's image(s), for stereoscopic-3D images</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceVariablePointersFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>variablePointersStorageBuffer</name></member>
- <member><type>VkBool32</type> <name>variablePointers</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceVariablePointersFeaturesKHR" alias="VkPhysicalDeviceVariablePointersFeatures"/>
- <type category="struct" name="VkPhysicalDeviceVariablePointerFeaturesKHR" alias="VkPhysicalDeviceVariablePointersFeatures"/>
- <type category="struct" name="VkPhysicalDeviceVariablePointerFeatures" alias="VkPhysicalDeviceVariablePointersFeatures"/>
- <type category="struct" name="VkExternalMemoryProperties" returnedonly="true">
- <member><type>VkExternalMemoryFeatureFlags</type> <name>externalMemoryFeatures</name></member>
- <member optional="true"><type>VkExternalMemoryHandleTypeFlags</type> <name>exportFromImportedHandleTypes</name></member>
- <member><type>VkExternalMemoryHandleTypeFlags</type> <name>compatibleHandleTypes</name></member>
- </type>
- <type category="struct" name="VkExternalMemoryPropertiesKHR" alias="VkExternalMemoryProperties"/>
- <type category="struct" name="VkPhysicalDeviceExternalImageFormatInfo" structextends="VkPhysicalDeviceImageFormatInfo2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceExternalImageFormatInfoKHR" alias="VkPhysicalDeviceExternalImageFormatInfo"/>
- <type category="struct" name="VkExternalImageFormatProperties" returnedonly="true" structextends="VkImageFormatProperties2">
- <member values="VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkExternalMemoryProperties</type> <name>externalMemoryProperties</name></member>
- </type>
- <type category="struct" name="VkExternalImageFormatPropertiesKHR" alias="VkExternalImageFormatProperties"/>
- <type category="struct" name="VkPhysicalDeviceExternalBufferInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkBufferCreateFlags</type> <name>flags</name></member>
- <member><type>VkBufferUsageFlags</type> <name>usage</name></member>
- <member><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceExternalBufferInfoKHR" alias="VkPhysicalDeviceExternalBufferInfo"/>
- <type category="struct" name="VkExternalBufferProperties" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkExternalMemoryProperties</type> <name>externalMemoryProperties</name></member>
- </type>
- <type category="struct" name="VkExternalBufferPropertiesKHR" alias="VkExternalBufferProperties"/>
- <type category="struct" name="VkPhysicalDeviceIDProperties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>uint8_t</type> <name>deviceUUID</name>[<enum>VK_UUID_SIZE</enum>]</member>
- <member limittype="noauto"><type>uint8_t</type> <name>driverUUID</name>[<enum>VK_UUID_SIZE</enum>]</member>
- <member limittype="noauto"><type>uint8_t</type> <name>deviceLUID</name>[<enum>VK_LUID_SIZE</enum>]</member>
- <member limittype="noauto"><type>uint32_t</type> <name>deviceNodeMask</name></member>
- <member limittype="noauto"><type>VkBool32</type> <name>deviceLUIDValid</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceIDPropertiesKHR" alias="VkPhysicalDeviceIDProperties"/>
- <type category="struct" name="VkExternalMemoryImageCreateInfo" structextends="VkImageCreateInfo">
- <member values="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkExternalMemoryHandleTypeFlags</type> <name>handleTypes</name></member>
- </type>
- <type category="struct" name="VkExternalMemoryImageCreateInfoKHR" alias="VkExternalMemoryImageCreateInfo"/>
- <type category="struct" name="VkExternalMemoryBufferCreateInfo" structextends="VkBufferCreateInfo">
- <member values="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkExternalMemoryHandleTypeFlags</type> <name>handleTypes</name></member>
- </type>
- <type category="struct" name="VkExternalMemoryBufferCreateInfoKHR" alias="VkExternalMemoryBufferCreateInfo"/>
- <type category="struct" name="VkExportMemoryAllocateInfo" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkExternalMemoryHandleTypeFlags</type> <name>handleTypes</name></member>
- </type>
- <type category="struct" name="VkExportMemoryAllocateInfoKHR" alias="VkExportMemoryAllocateInfo"/>
- <type category="struct" name="VkImportMemoryWin32HandleInfoKHR" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></member>
- <member optional="true"><type>HANDLE</type> <name>handle</name></member>
- <member optional="true"><type>LPCWSTR</type> <name>name</name></member>
- </type>
- <type category="struct" name="VkExportMemoryWin32HandleInfoKHR" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true">const <type>SECURITY_ATTRIBUTES</type>* <name>pAttributes</name></member>
- <member><type>DWORD</type> <name>dwAccess</name></member>
- <member><type>LPCWSTR</type> <name>name</name></member>
- </type>
- <type category="struct" name="VkImportMemoryZirconHandleInfoFUCHSIA" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></member>
- <member optional="true"><type>zx_handle_t</type> <name>handle</name></member>
- </type>
- <type category="struct" name="VkMemoryZirconHandlePropertiesFUCHSIA" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>memoryTypeBits</name></member>
- </type>
- <type category="struct" name="VkMemoryGetZirconHandleInfoFUCHSIA">
- <member values="VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceMemory</type> <name>memory</name></member>
- <member><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></member>
- </type>
- <type category="struct" name="VkMemoryWin32HandlePropertiesKHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>memoryTypeBits</name></member>
- </type>
- <type category="struct" name="VkMemoryGetWin32HandleInfoKHR">
- <member values="VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceMemory</type> <name>memory</name></member>
- <member><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></member>
- </type>
- <type category="struct" name="VkImportMemoryFdInfoKHR" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></member>
- <member><type>int</type> <name>fd</name></member>
- </type>
- <type category="struct" name="VkMemoryFdPropertiesKHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>memoryTypeBits</name></member>
- </type>
- <type category="struct" name="VkMemoryGetFdInfoKHR">
- <member values="VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceMemory</type> <name>memory</name></member>
- <member><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></member>
- </type>
- <type category="struct" name="VkWin32KeyedMutexAcquireReleaseInfoKHR" structextends="VkSubmitInfo,VkSubmitInfo2">
- <member values="VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>acquireCount</name></member>
- <member len="acquireCount">const <type>VkDeviceMemory</type>* <name>pAcquireSyncs</name></member>
- <member len="acquireCount">const <type>uint64_t</type>* <name>pAcquireKeys</name></member>
- <member len="acquireCount">const <type>uint32_t</type>* <name>pAcquireTimeouts</name></member>
- <member optional="true"><type>uint32_t</type> <name>releaseCount</name></member>
- <member len="releaseCount">const <type>VkDeviceMemory</type>* <name>pReleaseSyncs</name></member>
- <member len="releaseCount">const <type>uint64_t</type>* <name>pReleaseKeys</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceExternalSemaphoreInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkExternalSemaphoreHandleTypeFlagBits</type> <name>handleType</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceExternalSemaphoreInfoKHR" alias="VkPhysicalDeviceExternalSemaphoreInfo"/>
- <type category="struct" name="VkExternalSemaphoreProperties" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkExternalSemaphoreHandleTypeFlags</type> <name>exportFromImportedHandleTypes</name></member>
- <member><type>VkExternalSemaphoreHandleTypeFlags</type> <name>compatibleHandleTypes</name></member>
- <member optional="true"><type>VkExternalSemaphoreFeatureFlags</type> <name>externalSemaphoreFeatures</name></member>
- </type>
- <type category="struct" name="VkExternalSemaphorePropertiesKHR" alias="VkExternalSemaphoreProperties"/>
- <type category="struct" name="VkExportSemaphoreCreateInfo" structextends="VkSemaphoreCreateInfo">
- <member values="VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkExternalSemaphoreHandleTypeFlags</type> <name>handleTypes</name></member>
- </type>
- <type category="struct" name="VkExportSemaphoreCreateInfoKHR" alias="VkExportSemaphoreCreateInfo"/>
- <type category="struct" name="VkImportSemaphoreWin32HandleInfoKHR">
- <member values="VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member externsync="true"><type>VkSemaphore</type> <name>semaphore</name></member>
- <member optional="true"><type>VkSemaphoreImportFlags</type> <name>flags</name></member>
- <member noautovalidity="true"><type>VkExternalSemaphoreHandleTypeFlagBits</type> <name>handleType</name></member>
- <member optional="true"><type>HANDLE</type> <name>handle</name></member>
- <member optional="true"><type>LPCWSTR</type> <name>name</name></member>
- </type>
- <type category="struct" name="VkExportSemaphoreWin32HandleInfoKHR" structextends="VkSemaphoreCreateInfo">
- <member values="VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true">const <type>SECURITY_ATTRIBUTES</type>* <name>pAttributes</name></member>
- <member><type>DWORD</type> <name>dwAccess</name></member>
- <member><type>LPCWSTR</type> <name>name</name></member>
- </type>
- <type category="struct" name="VkD3D12FenceSubmitInfoKHR" structextends="VkSubmitInfo">
- <member values="VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>waitSemaphoreValuesCount</name></member>
- <member optional="true" len="waitSemaphoreValuesCount">const <type>uint64_t</type>* <name>pWaitSemaphoreValues</name></member>
- <member optional="true"><type>uint32_t</type> <name>signalSemaphoreValuesCount</name></member>
- <member optional="true" len="signalSemaphoreValuesCount">const <type>uint64_t</type>* <name>pSignalSemaphoreValues</name></member>
- </type>
- <type category="struct" name="VkSemaphoreGetWin32HandleInfoKHR">
- <member values="VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkSemaphore</type> <name>semaphore</name></member>
- <member><type>VkExternalSemaphoreHandleTypeFlagBits</type> <name>handleType</name></member>
- </type>
- <type category="struct" name="VkImportSemaphoreFdInfoKHR">
- <member values="VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member externsync="true"><type>VkSemaphore</type> <name>semaphore</name></member>
- <member optional="true"><type>VkSemaphoreImportFlags</type> <name>flags</name></member>
- <member><type>VkExternalSemaphoreHandleTypeFlagBits</type> <name>handleType</name></member>
- <member><type>int</type> <name>fd</name></member>
- </type>
- <type category="struct" name="VkSemaphoreGetFdInfoKHR">
- <member values="VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkSemaphore</type> <name>semaphore</name></member>
- <member><type>VkExternalSemaphoreHandleTypeFlagBits</type> <name>handleType</name></member>
- </type>
- <type category="struct" name="VkImportSemaphoreZirconHandleInfoFUCHSIA">
- <member values="VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member externsync="true"><type>VkSemaphore</type> <name>semaphore</name></member>
- <member optional="true"><type>VkSemaphoreImportFlags</type> <name>flags</name></member>
- <member><type>VkExternalSemaphoreHandleTypeFlagBits</type> <name>handleType</name></member>
- <member><type>zx_handle_t</type> <name>zirconHandle</name></member>
- </type>
- <type category="struct" name="VkSemaphoreGetZirconHandleInfoFUCHSIA">
- <member values="VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkSemaphore</type> <name>semaphore</name></member>
- <member><type>VkExternalSemaphoreHandleTypeFlagBits</type> <name>handleType</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceExternalFenceInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkExternalFenceHandleTypeFlagBits</type> <name>handleType</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceExternalFenceInfoKHR" alias="VkPhysicalDeviceExternalFenceInfo"/>
- <type category="struct" name="VkExternalFenceProperties" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkExternalFenceHandleTypeFlags</type> <name>exportFromImportedHandleTypes</name></member>
- <member><type>VkExternalFenceHandleTypeFlags</type> <name>compatibleHandleTypes</name></member>
- <member optional="true"><type>VkExternalFenceFeatureFlags</type> <name>externalFenceFeatures</name></member>
- </type>
- <type category="struct" name="VkExternalFencePropertiesKHR" alias="VkExternalFenceProperties"/>
- <type category="struct" name="VkExportFenceCreateInfo" structextends="VkFenceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkExternalFenceHandleTypeFlags</type> <name>handleTypes</name></member>
- </type>
- <type category="struct" name="VkExportFenceCreateInfoKHR" alias="VkExportFenceCreateInfo"/>
- <type category="struct" name="VkImportFenceWin32HandleInfoKHR">
- <member values="VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member externsync="true"><type>VkFence</type> <name>fence</name></member>
- <member optional="true"><type>VkFenceImportFlags</type> <name>flags</name></member>
- <member noautovalidity="true"><type>VkExternalFenceHandleTypeFlagBits</type> <name>handleType</name></member>
- <member optional="true"><type>HANDLE</type> <name>handle</name></member>
- <member optional="true"><type>LPCWSTR</type> <name>name</name></member>
- </type>
- <type category="struct" name="VkExportFenceWin32HandleInfoKHR" structextends="VkFenceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true">const <type>SECURITY_ATTRIBUTES</type>* <name>pAttributes</name></member>
- <member><type>DWORD</type> <name>dwAccess</name></member>
- <member><type>LPCWSTR</type> <name>name</name></member>
- </type>
- <type category="struct" name="VkFenceGetWin32HandleInfoKHR">
- <member values="VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkFence</type> <name>fence</name></member>
- <member><type>VkExternalFenceHandleTypeFlagBits</type> <name>handleType</name></member>
- </type>
- <type category="struct" name="VkImportFenceFdInfoKHR">
- <member values="VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member externsync="true"><type>VkFence</type> <name>fence</name></member>
- <member optional="true"><type>VkFenceImportFlags</type> <name>flags</name></member>
- <member><type>VkExternalFenceHandleTypeFlagBits</type> <name>handleType</name></member>
- <member><type>int</type> <name>fd</name></member>
- </type>
- <type category="struct" name="VkFenceGetFdInfoKHR">
- <member values="VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkFence</type> <name>fence</name></member>
- <member><type>VkExternalFenceHandleTypeFlagBits</type> <name>handleType</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMultiviewFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>multiview</name><comment>Multiple views in a renderpass</comment></member>
- <member><type>VkBool32</type> <name>multiviewGeometryShader</name><comment>Multiple views in a renderpass w/ geometry shader</comment></member>
- <member><type>VkBool32</type> <name>multiviewTessellationShader</name><comment>Multiple views in a renderpass w/ tessellation shader</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMultiviewFeaturesKHR" alias="VkPhysicalDeviceMultiviewFeatures"/>
- <type category="struct" name="VkPhysicalDeviceMultiviewProperties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxMultiviewViewCount</name><comment>max number of views in a subpass</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxMultiviewInstanceIndex</name><comment>max instance index for a draw in a multiview subpass</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMultiviewPropertiesKHR" alias="VkPhysicalDeviceMultiviewProperties"/>
- <type category="struct" name="VkRenderPassMultiviewCreateInfo" structextends="VkRenderPassCreateInfo">
- <member values="VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>subpassCount</name></member>
- <member len="subpassCount">const <type>uint32_t</type>* <name>pViewMasks</name></member>
- <member optional="true"><type>uint32_t</type> <name>dependencyCount</name></member>
- <member len="dependencyCount">const <type>int32_t</type>* <name>pViewOffsets</name></member>
- <member optional="true"><type>uint32_t</type> <name>correlationMaskCount</name></member>
- <member len="correlationMaskCount">const <type>uint32_t</type>* <name>pCorrelationMasks</name></member>
- </type>
- <type category="struct" name="VkRenderPassMultiviewCreateInfoKHR" alias="VkRenderPassMultiviewCreateInfo"/>
- <type category="struct" name="VkSurfaceCapabilities2EXT" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>minImageCount</name><comment>Supported minimum number of images for the surface</comment></member>
- <member><type>uint32_t</type> <name>maxImageCount</name><comment>Supported maximum number of images for the surface, 0 for unlimited</comment></member>
- <member><type>VkExtent2D</type> <name>currentExtent</name><comment>Current image width and height for the surface, (0, 0) if undefined</comment></member>
- <member><type>VkExtent2D</type> <name>minImageExtent</name><comment>Supported minimum image width and height for the surface</comment></member>
- <member><type>VkExtent2D</type> <name>maxImageExtent</name><comment>Supported maximum image width and height for the surface</comment></member>
- <member><type>uint32_t</type> <name>maxImageArrayLayers</name><comment>Supported maximum number of image layers for the surface</comment></member>
- <member><type>VkSurfaceTransformFlagsKHR</type> <name>supportedTransforms</name><comment>1 or more bits representing the transforms supported</comment></member>
- <member><type>VkSurfaceTransformFlagBitsKHR</type> <name>currentTransform</name><comment>The surface's current transform relative to the device's natural orientation</comment></member>
- <member><type>VkCompositeAlphaFlagsKHR</type> <name>supportedCompositeAlpha</name><comment>1 or more bits representing the alpha compositing modes supported</comment></member>
- <member><type>VkImageUsageFlags</type> <name>supportedUsageFlags</name><comment>Supported image usage flags for the surface</comment></member>
- <member optional="true"><type>VkSurfaceCounterFlagsEXT</type> <name>supportedSurfaceCounters</name></member>
- </type>
- <type category="struct" name="VkDisplayPowerInfoEXT">
- <member values="VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDisplayPowerStateEXT</type> <name>powerState</name></member>
- </type>
- <type category="struct" name="VkDeviceEventInfoEXT">
- <member values="VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceEventTypeEXT</type> <name>deviceEvent</name></member>
- </type>
- <type category="struct" name="VkDisplayEventInfoEXT">
- <member values="VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDisplayEventTypeEXT</type> <name>displayEvent</name></member>
- </type>
- <type category="struct" name="VkSwapchainCounterCreateInfoEXT" structextends="VkSwapchainCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkSurfaceCounterFlagsEXT</type> <name>surfaceCounters</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceGroupProperties" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>physicalDeviceCount</name></member>
- <member><type>VkPhysicalDevice</type> <name>physicalDevices</name>[<enum>VK_MAX_DEVICE_GROUP_SIZE</enum>]</member>
- <member><type>VkBool32</type> <name>subsetAllocation</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceGroupPropertiesKHR" alias="VkPhysicalDeviceGroupProperties"/>
- <type category="struct" name="VkMemoryAllocateFlagsInfo" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkMemoryAllocateFlags</type> <name>flags</name></member>
- <member><type>uint32_t</type> <name>deviceMask</name></member>
- </type>
- <type category="struct" name="VkMemoryAllocateFlagsInfoKHR" alias="VkMemoryAllocateFlagsInfo"/>
- <type category="struct" name="VkBindBufferMemoryInfo">
- <member values="VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBuffer</type> <name>buffer</name></member>
- <member><type>VkDeviceMemory</type> <name>memory</name></member>
- <member><type>VkDeviceSize</type> <name>memoryOffset</name></member>
- </type>
- <type category="struct" name="VkBindBufferMemoryInfoKHR" alias="VkBindBufferMemoryInfo"/>
- <type category="struct" name="VkBindBufferMemoryDeviceGroupInfo" structextends="VkBindBufferMemoryInfo">
- <member values="VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>deviceIndexCount</name></member>
- <member len="deviceIndexCount">const <type>uint32_t</type>* <name>pDeviceIndices</name></member>
- </type>
- <type category="struct" name="VkBindBufferMemoryDeviceGroupInfoKHR" alias="VkBindBufferMemoryDeviceGroupInfo"/>
- <type category="struct" name="VkBindImageMemoryInfo">
- <member values="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImage</type> <name>image</name></member>
- <member noautovalidity="true"><type>VkDeviceMemory</type> <name>memory</name></member>
- <member><type>VkDeviceSize</type> <name>memoryOffset</name></member>
- </type>
- <type category="struct" name="VkBindImageMemoryInfoKHR" alias="VkBindImageMemoryInfo"/>
- <type category="struct" name="VkBindImageMemoryDeviceGroupInfo" structextends="VkBindImageMemoryInfo">
- <member values="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>deviceIndexCount</name></member>
- <member len="deviceIndexCount">const <type>uint32_t</type>* <name>pDeviceIndices</name></member>
- <member optional="true"><type>uint32_t</type> <name>splitInstanceBindRegionCount</name></member>
- <member len="splitInstanceBindRegionCount">const <type>VkRect2D</type>* <name>pSplitInstanceBindRegions</name></member>
- </type>
- <type category="struct" name="VkBindImageMemoryDeviceGroupInfoKHR" alias="VkBindImageMemoryDeviceGroupInfo"/>
- <type category="struct" name="VkDeviceGroupRenderPassBeginInfo" structextends="VkRenderPassBeginInfo,VkRenderingInfo">
- <member values="VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>deviceMask</name></member>
- <member optional="true"><type>uint32_t</type> <name>deviceRenderAreaCount</name></member>
- <member len="deviceRenderAreaCount">const <type>VkRect2D</type>* <name>pDeviceRenderAreas</name></member>
- </type>
- <type category="struct" name="VkDeviceGroupRenderPassBeginInfoKHR" alias="VkDeviceGroupRenderPassBeginInfo"/>
- <type category="struct" name="VkDeviceGroupCommandBufferBeginInfo" structextends="VkCommandBufferBeginInfo">
- <member values="VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>deviceMask</name></member>
- </type>
- <type category="struct" name="VkDeviceGroupCommandBufferBeginInfoKHR" alias="VkDeviceGroupCommandBufferBeginInfo"/>
- <type category="struct" name="VkDeviceGroupSubmitInfo" structextends="VkSubmitInfo">
- <member values="VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></member>
- <member len="waitSemaphoreCount">const <type>uint32_t</type>* <name>pWaitSemaphoreDeviceIndices</name></member>
- <member optional="true"><type>uint32_t</type> <name>commandBufferCount</name></member>
- <member len="commandBufferCount">const <type>uint32_t</type>* <name>pCommandBufferDeviceMasks</name></member>
- <member optional="true"><type>uint32_t</type> <name>signalSemaphoreCount</name></member>
- <member len="signalSemaphoreCount">const <type>uint32_t</type>* <name>pSignalSemaphoreDeviceIndices</name></member>
- </type>
- <type category="struct" name="VkDeviceGroupSubmitInfoKHR" alias="VkDeviceGroupSubmitInfo"/>
- <type category="struct" name="VkDeviceGroupBindSparseInfo" structextends="VkBindSparseInfo">
- <member values="VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>resourceDeviceIndex</name></member>
- <member><type>uint32_t</type> <name>memoryDeviceIndex</name></member>
- </type>
- <type category="struct" name="VkDeviceGroupBindSparseInfoKHR" alias="VkDeviceGroupBindSparseInfo"/>
- <type category="struct" name="VkDeviceGroupPresentCapabilitiesKHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>presentMask</name>[<enum>VK_MAX_DEVICE_GROUP_SIZE</enum>]</member>
- <member><type>VkDeviceGroupPresentModeFlagsKHR</type> <name>modes</name></member>
- </type>
- <type category="struct" name="VkImageSwapchainCreateInfoKHR" structextends="VkImageCreateInfo">
- <member values="VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkSwapchainKHR</type> <name>swapchain</name></member>
- </type>
- <type category="struct" name="VkBindImageMemorySwapchainInfoKHR" structextends="VkBindImageMemoryInfo">
- <member values="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member externsync="true"><type>VkSwapchainKHR</type> <name>swapchain</name></member>
- <member><type>uint32_t</type> <name>imageIndex</name></member>
- </type>
- <type category="struct" name="VkAcquireNextImageInfoKHR">
- <member values="VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member externsync="true"><type>VkSwapchainKHR</type> <name>swapchain</name></member>
- <member><type>uint64_t</type> <name>timeout</name></member>
- <member optional="true" externsync="true"><type>VkSemaphore</type> <name>semaphore</name></member>
- <member optional="true" externsync="true"><type>VkFence</type> <name>fence</name></member>
- <member><type>uint32_t</type> <name>deviceMask</name></member>
- </type>
- <type category="struct" name="VkDeviceGroupPresentInfoKHR" structextends="VkPresentInfoKHR">
- <member values="VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>swapchainCount</name></member>
- <member len="swapchainCount">const <type>uint32_t</type>* <name>pDeviceMasks</name></member>
- <member><type>VkDeviceGroupPresentModeFlagBitsKHR</type> <name>mode</name></member>
- </type>
- <type category="struct" name="VkDeviceGroupDeviceCreateInfo" structextends="VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>physicalDeviceCount</name></member>
- <member len="physicalDeviceCount">const <type>VkPhysicalDevice</type>* <name>pPhysicalDevices</name></member>
- </type>
- <type category="struct" name="VkDeviceGroupDeviceCreateInfoKHR" alias="VkDeviceGroupDeviceCreateInfo"/>
- <type category="struct" name="VkDeviceGroupSwapchainCreateInfoKHR" structextends="VkSwapchainCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceGroupPresentModeFlagsKHR</type> <name>modes</name></member>
- </type>
- <type category="struct" name="VkDescriptorUpdateTemplateEntry">
- <member><type>uint32_t</type> <name>dstBinding</name><comment>Binding within the destination descriptor set to write</comment></member>
- <member><type>uint32_t</type> <name>dstArrayElement</name><comment>Array element within the destination binding to write</comment></member>
- <member><type>uint32_t</type> <name>descriptorCount</name><comment>Number of descriptors to write</comment></member>
- <member><type>VkDescriptorType</type> <name>descriptorType</name><comment>Descriptor type to write</comment></member>
- <member><type>size_t</type> <name>offset</name><comment>Offset into pData where the descriptors to update are stored</comment></member>
- <member><type>size_t</type> <name>stride</name><comment>Stride between two descriptors in pData when writing more than one descriptor</comment></member>
- </type>
- <type category="struct" name="VkDescriptorUpdateTemplateEntryKHR" alias="VkDescriptorUpdateTemplateEntry"/>
- <type category="struct" name="VkDescriptorUpdateTemplateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkDescriptorUpdateTemplateCreateFlags</type> <name>flags</name></member>
- <member><type>uint32_t</type> <name>descriptorUpdateEntryCount</name><comment>Number of descriptor update entries to use for the update template</comment></member>
- <member len="descriptorUpdateEntryCount">const <type>VkDescriptorUpdateTemplateEntry</type>* <name>pDescriptorUpdateEntries</name><comment>Descriptor update entries for the template</comment></member>
- <member><type>VkDescriptorUpdateTemplateType</type> <name>templateType</name></member>
- <member noautovalidity="true"><type>VkDescriptorSetLayout</type> <name>descriptorSetLayout</name></member>
- <member noautovalidity="true"><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></member>
- <member noautovalidity="true"><type>VkPipelineLayout</type><name>pipelineLayout</name><comment>If used for push descriptors, this is the only allowed layout</comment></member>
- <member noautovalidity="true"><type>uint32_t</type> <name>set</name></member>
- </type>
- <type category="struct" name="VkDescriptorUpdateTemplateCreateInfoKHR" alias="VkDescriptorUpdateTemplateCreateInfo"/>
- <type category="struct" name="VkXYColorEXT" comment="Chromaticity coordinate">
- <member><type>float</type> <name>x</name></member>
- <member><type>float</type> <name>y</name></member>
- </type>
- <type category="struct" name="VkPhysicalDevicePresentIdFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>presentId</name><comment>Present ID in VkPresentInfoKHR</comment></member>
- </type>
- <type category="struct" name="VkPresentIdKHR" structextends="VkPresentInfoKHR">
- <member values="VK_STRUCTURE_TYPE_PRESENT_ID_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>swapchainCount</name><comment>Copy of VkPresentInfoKHR::swapchainCount</comment></member>
- <member len="swapchainCount" optional="true">const <type>uint64_t</type>* <name>pPresentIds</name><comment>Present ID values for each swapchain</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDevicePresentWaitFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>presentWait</name><comment>vkWaitForPresentKHR is supported</comment></member>
- </type>
- <type category="struct" name="VkHdrMetadataEXT">
- <comment>Display primary in chromaticity coordinates</comment>
- <member values="VK_STRUCTURE_TYPE_HDR_METADATA_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <comment> From SMPTE 2086</comment>
- <member noautovalidity="true"><type>VkXYColorEXT</type> <name>displayPrimaryRed</name><comment>Display primary's Red</comment></member>
- <member noautovalidity="true"><type>VkXYColorEXT</type> <name>displayPrimaryGreen</name><comment>Display primary's Green</comment></member>
- <member noautovalidity="true"><type>VkXYColorEXT</type> <name>displayPrimaryBlue</name><comment>Display primary's Blue</comment></member>
- <member noautovalidity="true"><type>VkXYColorEXT</type> <name>whitePoint</name><comment>Display primary's Blue</comment></member>
- <member noautovalidity="true"><type>float</type> <name>maxLuminance</name><comment>Display maximum luminance</comment></member>
- <member noautovalidity="true"><type>float</type> <name>minLuminance</name><comment>Display minimum luminance</comment></member>
- <comment> From CTA 861.3</comment>
- <member noautovalidity="true"><type>float</type> <name>maxContentLightLevel</name><comment>Content maximum luminance</comment></member>
- <member noautovalidity="true"><type>float</type> <name>maxFrameAverageLightLevel</name></member>
- </type>
- <type category="struct" name="VkDisplayNativeHdrSurfaceCapabilitiesAMD" returnedonly="true" structextends="VkSurfaceCapabilities2KHR">
- <member values="VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>localDimmingSupport</name></member>
- </type>
- <type category="struct" name="VkSwapchainDisplayNativeHdrCreateInfoAMD" structextends="VkSwapchainCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>localDimmingEnable</name></member>
- </type>
- <type category="struct" name="VkRefreshCycleDurationGOOGLE" returnedonly="true">
- <member><type>uint64_t</type> <name>refreshDuration</name><comment>Number of nanoseconds from the start of one refresh cycle to the next</comment></member>
- </type>
- <type category="struct" name="VkPastPresentationTimingGOOGLE" returnedonly="true">
- <member><type>uint32_t</type> <name>presentID</name><comment>Application-provided identifier, previously given to vkQueuePresentKHR</comment></member>
- <member><type>uint64_t</type> <name>desiredPresentTime</name><comment>Earliest time an image should have been presented, previously given to vkQueuePresentKHR</comment></member>
- <member><type>uint64_t</type> <name>actualPresentTime</name><comment>Time the image was actually displayed</comment></member>
- <member><type>uint64_t</type> <name>earliestPresentTime</name><comment>Earliest time the image could have been displayed</comment></member>
- <member><type>uint64_t</type> <name>presentMargin</name><comment>How early vkQueuePresentKHR was processed vs. how soon it needed to be and make earliestPresentTime</comment></member>
- </type>
- <type category="struct" name="VkPresentTimesInfoGOOGLE" structextends="VkPresentInfoKHR">
- <member values="VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>swapchainCount</name><comment>Copy of VkPresentInfoKHR::swapchainCount</comment></member>
- <member len="swapchainCount" optional="true">const <type>VkPresentTimeGOOGLE</type>* <name>pTimes</name><comment>The earliest times to present images</comment></member>
- </type>
- <type category="struct" name="VkPresentTimeGOOGLE">
- <member><type>uint32_t</type> <name>presentID</name><comment>Application-provided identifier</comment></member>
- <member><type>uint64_t</type> <name>desiredPresentTime</name><comment>Earliest time an image should be presented</comment></member>
- </type>
- <type category="struct" name="VkIOSSurfaceCreateInfoMVK">
- <member values="VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkIOSSurfaceCreateFlagsMVK</type> <name>flags</name></member>
- <member noautovalidity="true">const <type>void</type>* <name>pView</name></member>
- </type>
- <type category="struct" name="VkMacOSSurfaceCreateInfoMVK">
- <member values="VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkMacOSSurfaceCreateFlagsMVK</type> <name>flags</name></member>
- <member noautovalidity="true">const <type>void</type>* <name>pView</name></member>
- </type>
- <type category="struct" name="VkMetalSurfaceCreateInfoEXT">
- <member values="VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkMetalSurfaceCreateFlagsEXT</type> <name>flags</name></member>
- <member noautovalidity="true">const <type>CAMetalLayer</type>* <name>pLayer</name></member>
- </type>
- <type category="struct" name="VkViewportWScalingNV">
- <member><type>float</type> <name>xcoeff</name></member>
- <member><type>float</type> <name>ycoeff</name></member>
- </type>
- <type category="struct" name="VkPipelineViewportWScalingStateCreateInfoNV" structextends="VkPipelineViewportStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>viewportWScalingEnable</name></member>
- <member><type>uint32_t</type> <name>viewportCount</name></member>
- <member noautovalidity="true" optional="true" len="viewportCount">const <type>VkViewportWScalingNV</type>* <name>pViewportWScalings</name></member>
- </type>
- <type category="struct" name="VkViewportSwizzleNV">
- <member><type>VkViewportCoordinateSwizzleNV</type> <name>x</name></member>
- <member><type>VkViewportCoordinateSwizzleNV</type> <name>y</name></member>
- <member><type>VkViewportCoordinateSwizzleNV</type> <name>z</name></member>
- <member><type>VkViewportCoordinateSwizzleNV</type> <name>w</name></member>
- </type>
- <type category="struct" name="VkPipelineViewportSwizzleStateCreateInfoNV" structextends="VkPipelineViewportStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineViewportSwizzleStateCreateFlagsNV</type> <name>flags</name></member>
- <member><type>uint32_t</type> <name>viewportCount</name></member>
- <member len="viewportCount">const <type>VkViewportSwizzleNV</type>* <name>pViewportSwizzles</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceDiscardRectanglePropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDiscardRectangles</name><comment>max number of active discard rectangles</comment></member>
- </type>
- <type category="struct" name="VkPipelineDiscardRectangleStateCreateInfoEXT" structextends="VkGraphicsPipelineCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineDiscardRectangleStateCreateFlagsEXT</type> <name>flags</name></member>
- <member><type>VkDiscardRectangleModeEXT</type> <name>discardRectangleMode</name></member>
- <member optional="true"><type>uint32_t</type> <name>discardRectangleCount</name></member>
- <member noautovalidity="true" len="discardRectangleCount">const <type>VkRect2D</type>* <name>pDiscardRectangles</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>perViewPositionAllComponents</name></member>
- </type>
- <type category="struct" name="VkInputAttachmentAspectReference">
- <member><type>uint32_t</type> <name>subpass</name></member>
- <member><type>uint32_t</type> <name>inputAttachmentIndex</name></member>
- <member><type>VkImageAspectFlags</type> <name>aspectMask</name></member>
- </type>
- <type category="struct" name="VkInputAttachmentAspectReferenceKHR" alias="VkInputAttachmentAspectReference"/>
- <type category="struct" name="VkRenderPassInputAttachmentAspectCreateInfo" structextends="VkRenderPassCreateInfo">
- <member values="VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>aspectReferenceCount</name></member>
- <member len="aspectReferenceCount">const <type>VkInputAttachmentAspectReference</type>* <name>pAspectReferences</name></member>
- </type>
- <type category="struct" name="VkRenderPassInputAttachmentAspectCreateInfoKHR" alias="VkRenderPassInputAttachmentAspectCreateInfo"/>
- <type category="struct" name="VkPhysicalDeviceSurfaceInfo2KHR">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkSurfaceKHR</type> <name>surface</name></member>
- </type>
- <type category="struct" name="VkSurfaceCapabilities2KHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkSurfaceCapabilitiesKHR</type> <name>surfaceCapabilities</name></member>
- </type>
- <type category="struct" name="VkSurfaceFormat2KHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkSurfaceFormatKHR</type> <name>surfaceFormat</name></member>
- </type>
- <type category="struct" name="VkDisplayProperties2KHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkDisplayPropertiesKHR</type> <name>displayProperties</name></member>
- </type>
- <type category="struct" name="VkDisplayPlaneProperties2KHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkDisplayPlanePropertiesKHR</type> <name>displayPlaneProperties</name></member>
- </type>
- <type category="struct" name="VkDisplayModeProperties2KHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkDisplayModePropertiesKHR</type> <name>displayModeProperties</name></member>
- </type>
- <type category="struct" name="VkDisplayPlaneInfo2KHR">
- <member values="VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member externsync="true"><type>VkDisplayModeKHR</type> <name>mode</name></member>
- <member><type>uint32_t</type> <name>planeIndex</name></member>
- </type>
- <type category="struct" name="VkDisplayPlaneCapabilities2KHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkDisplayPlaneCapabilitiesKHR</type> <name>capabilities</name></member>
- </type>
- <type category="struct" name="VkSharedPresentSurfaceCapabilitiesKHR" returnedonly="true" structextends="VkSurfaceCapabilities2KHR">
- <member values="VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkImageUsageFlags</type> <name>sharedPresentSupportedUsageFlags</name><comment>Supported image usage flags if swapchain created using a shared present mode</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDevice16BitStorageFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>storageBuffer16BitAccess</name><comment>16-bit integer/floating-point variables supported in BufferBlock</comment></member>
- <member><type>VkBool32</type> <name>uniformAndStorageBuffer16BitAccess</name><comment>16-bit integer/floating-point variables supported in BufferBlock and Block</comment></member>
- <member><type>VkBool32</type> <name>storagePushConstant16</name><comment>16-bit integer/floating-point variables supported in PushConstant</comment></member>
- <member><type>VkBool32</type> <name>storageInputOutput16</name><comment>16-bit integer/floating-point variables supported in shader inputs and outputs</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDevice16BitStorageFeaturesKHR" alias="VkPhysicalDevice16BitStorageFeatures"/>
- <type category="struct" name="VkPhysicalDeviceSubgroupProperties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto" noautovalidity="true"><type>uint32_t</type> <name>subgroupSize</name><comment>The size of a subgroup for this queue.</comment></member>
- <member limittype="bitmask" noautovalidity="true"><type>VkShaderStageFlags</type> <name>supportedStages</name><comment>Bitfield of what shader stages support subgroup operations</comment></member>
- <member limittype="bitmask" noautovalidity="true"><type>VkSubgroupFeatureFlags</type> <name>supportedOperations</name><comment>Bitfield of what subgroup operations are supported.</comment></member>
- <member limittype="bitmask" noautovalidity="true"><type>VkBool32</type> <name>quadOperationsInAllStages</name><comment>Flag to specify whether quad operations are available in all stages.</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkBool32</type> <name>shaderSubgroupExtendedTypes</name><comment>Flag to specify whether subgroup operations with extended types are supported</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR" alias="VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures"/>
- <type category="struct" name="VkBufferMemoryRequirementsInfo2">
- <member values="VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBuffer</type> <name>buffer</name></member>
- </type>
- <type category="struct" name="VkBufferMemoryRequirementsInfo2KHR" alias="VkBufferMemoryRequirementsInfo2"/>
- <type category="struct" name="VkDeviceBufferMemoryRequirements">
- <member values="VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member>const <type>VkBufferCreateInfo</type>* <name>pCreateInfo</name></member>
- </type>
- <type category="struct" name="VkDeviceBufferMemoryRequirementsKHR" alias="VkDeviceBufferMemoryRequirements"/>
- <type category="struct" name="VkImageMemoryRequirementsInfo2">
- <member values="VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImage</type> <name>image</name></member>
- </type>
- <type category="struct" name="VkImageMemoryRequirementsInfo2KHR" alias="VkImageMemoryRequirementsInfo2"/>
- <type category="struct" name="VkImageSparseMemoryRequirementsInfo2">
- <member values="VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImage</type> <name>image</name></member>
- </type>
- <type category="struct" name="VkImageSparseMemoryRequirementsInfo2KHR" alias="VkImageSparseMemoryRequirementsInfo2"/>
- <type category="struct" name="VkDeviceImageMemoryRequirements">
- <member values="VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member>const <type>VkImageCreateInfo</type>* <name>pCreateInfo</name></member>
- <member><type>VkImageAspectFlagBits</type> <name>planeAspect</name></member>
- </type>
- <type category="struct" name="VkDeviceImageMemoryRequirementsKHR" alias="VkDeviceImageMemoryRequirements"/>
- <type category="struct" name="VkMemoryRequirements2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkMemoryRequirements</type> <name>memoryRequirements</name></member>
- </type>
- <type category="struct" name="VkMemoryRequirements2KHR" alias="VkMemoryRequirements2"/>
- <type category="struct" name="VkSparseImageMemoryRequirements2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkSparseImageMemoryRequirements</type> <name>memoryRequirements</name></member>
- </type>
- <type category="struct" name="VkSparseImageMemoryRequirements2KHR" alias="VkSparseImageMemoryRequirements2"/>
- <type category="struct" name="VkPhysicalDevicePointClippingProperties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>VkPointClippingBehavior</type> <name>pointClippingBehavior</name></member>
- </type>
- <type category="struct" name="VkPhysicalDevicePointClippingPropertiesKHR" alias="VkPhysicalDevicePointClippingProperties"/>
- <type category="struct" name="VkMemoryDedicatedRequirements" returnedonly="true" structextends="VkMemoryRequirements2">
- <member values="VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>prefersDedicatedAllocation</name></member>
- <member><type>VkBool32</type> <name>requiresDedicatedAllocation</name></member>
- </type>
- <type category="struct" name="VkMemoryDedicatedRequirementsKHR" alias="VkMemoryDedicatedRequirements"/>
- <type category="struct" name="VkMemoryDedicatedAllocateInfo" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkImage</type> <name>image</name><comment>Image that this allocation will be bound to</comment></member>
- <member optional="true"><type>VkBuffer</type> <name>buffer</name><comment>Buffer that this allocation will be bound to</comment></member>
- </type>
- <type category="struct" name="VkMemoryDedicatedAllocateInfoKHR" alias="VkMemoryDedicatedAllocateInfo"/>
- <type category="struct" name="VkImageViewUsageCreateInfo" structextends="VkImageViewCreateInfo">
- <member values="VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImageUsageFlags</type> <name>usage</name></member>
- </type>
- <type category="struct" name="VkImageViewUsageCreateInfoKHR" alias="VkImageViewUsageCreateInfo"/>
- <type category="struct" name="VkPipelineTessellationDomainOriginStateCreateInfo" structextends="VkPipelineTessellationStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkTessellationDomainOrigin</type> <name>domainOrigin</name></member>
- </type>
- <type category="struct" name="VkPipelineTessellationDomainOriginStateCreateInfoKHR" alias="VkPipelineTessellationDomainOriginStateCreateInfo"/>
- <type category="struct" name="VkSamplerYcbcrConversionInfo" structextends="VkSamplerCreateInfo,VkImageViewCreateInfo">
- <member values="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkSamplerYcbcrConversion</type> <name>conversion</name></member>
- </type>
- <type category="struct" name="VkSamplerYcbcrConversionInfoKHR" alias="VkSamplerYcbcrConversionInfo"/>
- <type category="struct" name="VkSamplerYcbcrConversionCreateInfo">
- <member values="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkFormat</type> <name>format</name></member>
- <member><type>VkSamplerYcbcrModelConversion</type> <name>ycbcrModel</name></member>
- <member><type>VkSamplerYcbcrRange</type> <name>ycbcrRange</name></member>
- <member><type>VkComponentMapping</type> <name>components</name></member>
- <member><type>VkChromaLocation</type> <name>xChromaOffset</name></member>
- <member><type>VkChromaLocation</type> <name>yChromaOffset</name></member>
- <member><type>VkFilter</type> <name>chromaFilter</name></member>
- <member><type>VkBool32</type> <name>forceExplicitReconstruction</name></member>
- </type>
- <type category="struct" name="VkSamplerYcbcrConversionCreateInfoKHR" alias="VkSamplerYcbcrConversionCreateInfo"/>
- <type category="struct" name="VkBindImagePlaneMemoryInfo" structextends="VkBindImageMemoryInfo">
- <member values="VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImageAspectFlagBits</type> <name>planeAspect</name></member>
- </type>
- <type category="struct" name="VkBindImagePlaneMemoryInfoKHR" alias="VkBindImagePlaneMemoryInfo"/>
- <type category="struct" name="VkImagePlaneMemoryRequirementsInfo" structextends="VkImageMemoryRequirementsInfo2">
- <member values="VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImageAspectFlagBits</type> <name>planeAspect</name></member>
- </type>
- <type category="struct" name="VkImagePlaneMemoryRequirementsInfoKHR" alias="VkImagePlaneMemoryRequirementsInfo"/>
- <type category="struct" name="VkPhysicalDeviceSamplerYcbcrConversionFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>samplerYcbcrConversion</name><comment>Sampler color conversion supported</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR" alias="VkPhysicalDeviceSamplerYcbcrConversionFeatures"/>
- <type category="struct" name="VkSamplerYcbcrConversionImageFormatProperties" returnedonly="true" structextends="VkImageFormatProperties2">
- <member values="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>combinedImageSamplerDescriptorCount</name></member>
- </type>
- <type category="struct" name="VkSamplerYcbcrConversionImageFormatPropertiesKHR" alias="VkSamplerYcbcrConversionImageFormatProperties"/>
- <type category="struct" name="VkTextureLODGatherFormatPropertiesAMD" returnedonly="true" structextends="VkImageFormatProperties2">
- <member values="VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>supportsTextureGatherLODBiasAMD</name></member>
- </type>
- <type category="struct" name="VkConditionalRenderingBeginInfoEXT">
- <member values="VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBuffer</type> <name>buffer</name></member>
- <member><type>VkDeviceSize</type> <name>offset</name></member>
- <member optional="true"><type>VkConditionalRenderingFlagsEXT</type> <name>flags</name></member>
- </type>
- <type category="struct" name="VkProtectedSubmitInfo" structextends="VkSubmitInfo">
- <member values="VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>protectedSubmit</name><comment>Submit protected command buffers</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceProtectedMemoryFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>protectedMemory</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceProtectedMemoryProperties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>VkBool32</type> <name>protectedNoFault</name></member>
- </type>
- <type category="struct" name="VkDeviceQueueInfo2">
- <member values="VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkDeviceQueueCreateFlags</type> <name>flags</name></member>
- <member><type>uint32_t</type> <name>queueFamilyIndex</name></member>
- <member><type>uint32_t</type> <name>queueIndex</name></member>
- </type>
- <type category="struct" name="VkPipelineCoverageToColorStateCreateInfoNV" structextends="VkPipelineMultisampleStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineCoverageToColorStateCreateFlagsNV</type> <name>flags</name></member>
- <member><type>VkBool32</type> <name>coverageToColorEnable</name></member>
- <member optional="true"><type>uint32_t</type> <name>coverageToColorLocation</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceSamplerFilterMinmaxProperties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>filterMinmaxSingleComponentFormats</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>filterMinmaxImageComponentMapping</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT" alias="VkPhysicalDeviceSamplerFilterMinmaxProperties"/>
- <type category="struct" name="VkSampleLocationEXT">
- <member><type>float</type> <name>x</name></member>
- <member><type>float</type> <name>y</name></member>
- </type>
- <type category="struct" name="VkSampleLocationsInfoEXT" structextends="VkImageMemoryBarrier,VkImageMemoryBarrier2">
- <member values="VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkSampleCountFlagBits</type> <name>sampleLocationsPerPixel</name></member>
- <member><type>VkExtent2D</type> <name>sampleLocationGridSize</name></member>
- <member optional="true"><type>uint32_t</type> <name>sampleLocationsCount</name></member>
- <member len="sampleLocationsCount">const <type>VkSampleLocationEXT</type>* <name>pSampleLocations</name></member>
- </type>
- <type category="struct" name="VkAttachmentSampleLocationsEXT">
- <member><type>uint32_t</type> <name>attachmentIndex</name></member>
- <member><type>VkSampleLocationsInfoEXT</type> <name>sampleLocationsInfo</name></member>
- </type>
- <type category="struct" name="VkSubpassSampleLocationsEXT">
- <member><type>uint32_t</type> <name>subpassIndex</name></member>
- <member><type>VkSampleLocationsInfoEXT</type> <name>sampleLocationsInfo</name></member>
- </type>
- <type category="struct" name="VkRenderPassSampleLocationsBeginInfoEXT" structextends="VkRenderPassBeginInfo">
- <member values="VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>attachmentInitialSampleLocationsCount</name></member>
- <member len="attachmentInitialSampleLocationsCount">const <type>VkAttachmentSampleLocationsEXT</type>* <name>pAttachmentInitialSampleLocations</name></member>
- <member optional="true"><type>uint32_t</type> <name>postSubpassSampleLocationsCount</name></member>
- <member len="postSubpassSampleLocationsCount">const <type>VkSubpassSampleLocationsEXT</type>* <name>pPostSubpassSampleLocations</name></member>
- </type>
- <type category="struct" name="VkPipelineSampleLocationsStateCreateInfoEXT" structextends="VkPipelineMultisampleStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>sampleLocationsEnable</name></member>
- <member><type>VkSampleLocationsInfoEXT</type> <name>sampleLocationsInfo</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceSampleLocationsPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="bitmask"><type>VkSampleCountFlags</type> <name>sampleLocationSampleCounts</name></member>
- <member limittype="max"><type>VkExtent2D</type> <name>maxSampleLocationGridSize</name></member>
- <member limittype="range"><type>float</type> <name>sampleLocationCoordinateRange</name>[2]</member>
- <member limittype="noauto"><type>uint32_t</type> <name>sampleLocationSubPixelBits</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>variableSampleLocations</name></member>
- </type>
- <type category="struct" name="VkMultisamplePropertiesEXT" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkExtent2D</type> <name>maxSampleLocationGridSize</name></member>
- </type>
- <type category="struct" name="VkSamplerReductionModeCreateInfo" structextends="VkSamplerCreateInfo">
- <member values="VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkSamplerReductionMode</type> <name>reductionMode</name></member>
- </type>
- <type category="struct" name="VkSamplerReductionModeCreateInfoEXT" alias="VkSamplerReductionModeCreateInfo"/>
- <type category="struct" name="VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>advancedBlendCoherentOperations</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMultiDrawFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>multiDraw</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>advancedBlendMaxColorAttachments</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>advancedBlendIndependentBlend</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>advancedBlendNonPremultipliedSrcColor</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>advancedBlendNonPremultipliedDstColor</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>advancedBlendCorrelatedOverlap</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>advancedBlendAllOperations</name></member>
- </type>
- <type category="struct" name="VkPipelineColorBlendAdvancedStateCreateInfoEXT" structextends="VkPipelineColorBlendStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>srcPremultiplied</name></member>
- <member><type>VkBool32</type> <name>dstPremultiplied</name></member>
- <member><type>VkBlendOverlapEXT</type> <name>blendOverlap</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceInlineUniformBlockFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>inlineUniformBlock</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingInlineUniformBlockUpdateAfterBind</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceInlineUniformBlockFeaturesEXT" alias="VkPhysicalDeviceInlineUniformBlockFeatures"/>
- <type category="struct" name="VkPhysicalDeviceInlineUniformBlockProperties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxInlineUniformBlockSize</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorInlineUniformBlocks</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetInlineUniformBlocks</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindInlineUniformBlocks</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceInlineUniformBlockPropertiesEXT" alias="VkPhysicalDeviceInlineUniformBlockProperties"/>
- <type category="struct" name="VkWriteDescriptorSetInlineUniformBlock" structextends="VkWriteDescriptorSet">
- <member values="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>dataSize</name></member>
- <member len="dataSize">const <type>void</type>* <name>pData</name></member>
- </type>
- <type category="struct" name="VkWriteDescriptorSetInlineUniformBlockEXT" alias="VkWriteDescriptorSetInlineUniformBlock"/>
- <type category="struct" name="VkDescriptorPoolInlineUniformBlockCreateInfo" structextends="VkDescriptorPoolCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>maxInlineUniformBlockBindings</name></member>
- </type>
- <type category="struct" name="VkDescriptorPoolInlineUniformBlockCreateInfoEXT" alias="VkDescriptorPoolInlineUniformBlockCreateInfo"/>
- <type category="struct" name="VkPipelineCoverageModulationStateCreateInfoNV" structextends="VkPipelineMultisampleStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineCoverageModulationStateCreateFlagsNV</type> <name>flags</name></member>
- <member><type>VkCoverageModulationModeNV</type> <name>coverageModulationMode</name></member>
- <member><type>VkBool32</type> <name>coverageModulationTableEnable</name></member>
- <member optional="true"><type>uint32_t</type> <name>coverageModulationTableCount</name></member>
- <member noautovalidity="true" optional="true" len="coverageModulationTableCount">const <type>float</type>* <name>pCoverageModulationTable</name></member>
- </type>
- <type category="struct" name="VkImageFormatListCreateInfo" structextends="VkImageCreateInfo,VkSwapchainCreateInfoKHR,VkPhysicalDeviceImageFormatInfo2">
- <member values="VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>viewFormatCount</name></member>
- <member len="viewFormatCount">const <type>VkFormat</type>* <name>pViewFormats</name></member>
- </type>
- <type category="struct" name="VkImageFormatListCreateInfoKHR" alias="VkImageFormatListCreateInfo"/>
- <type category="struct" name="VkValidationCacheCreateInfoEXT">
- <member values="VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkValidationCacheCreateFlagsEXT</type> <name>flags</name></member>
- <member optional="true"><type>size_t</type> <name>initialDataSize</name></member>
- <member len="initialDataSize">const <type>void</type>* <name>pInitialData</name></member>
- </type>
- <type category="struct" name="VkShaderModuleValidationCacheCreateInfoEXT" structextends="VkShaderModuleCreateInfo">
- <member values="VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkValidationCacheEXT</type> <name>validationCache</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMaintenance3Properties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerSetDescriptors</name></member>
- <member limittype="max"><type>VkDeviceSize</type> <name>maxMemoryAllocationSize</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMaintenance3PropertiesKHR" alias="VkPhysicalDeviceMaintenance3Properties"/>
- <type category="struct" name="VkPhysicalDeviceMaintenance4Features" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>maintenance4</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMaintenance4FeaturesKHR" alias="VkPhysicalDeviceMaintenance4Features"/>
- <type category="struct" name="VkPhysicalDeviceMaintenance4Properties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>VkDeviceSize</type> <name>maxBufferSize</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMaintenance4PropertiesKHR" alias="VkPhysicalDeviceMaintenance4Properties"/>
- <type category="struct" name="VkDescriptorSetLayoutSupport" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>supported</name></member>
- </type>
- <type category="struct" name="VkDescriptorSetLayoutSupportKHR" alias="VkDescriptorSetLayoutSupport"/>
- <type category="struct" name="VkPhysicalDeviceShaderDrawParametersFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderDrawParameters</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderDrawParameterFeatures" alias="VkPhysicalDeviceShaderDrawParametersFeatures"/>
- <type category="struct" name="VkPhysicalDeviceShaderFloat16Int8Features" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderFloat16</name><comment>16-bit floats (halfs) in shaders</comment></member>
- <member><type>VkBool32</type> <name>shaderInt8</name><comment>8-bit integers in shaders</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderFloat16Int8FeaturesKHR" alias="VkPhysicalDeviceShaderFloat16Int8Features"/>
- <type category="struct" name="VkPhysicalDeviceFloat16Int8FeaturesKHR" alias="VkPhysicalDeviceShaderFloat16Int8Features"/>
- <type category="struct" name="VkPhysicalDeviceFloatControlsProperties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>VkShaderFloatControlsIndependence</type> <name>denormBehaviorIndependence</name></member>
- <member limittype="noauto"><type>VkShaderFloatControlsIndependence</type> <name>roundingModeIndependence</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderSignedZeroInfNanPreserveFloat16</name><comment>An implementation can preserve signed zero, nan, inf</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderSignedZeroInfNanPreserveFloat32</name><comment>An implementation can preserve signed zero, nan, inf</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderSignedZeroInfNanPreserveFloat64</name><comment>An implementation can preserve signed zero, nan, inf</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormPreserveFloat16</name><comment>An implementation can preserve denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormPreserveFloat32</name><comment>An implementation can preserve denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormPreserveFloat64</name><comment>An implementation can preserve denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormFlushToZeroFloat16</name><comment>An implementation can flush to zero denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormFlushToZeroFloat32</name><comment>An implementation can flush to zero denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormFlushToZeroFloat64</name><comment>An implementation can flush to zero denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTEFloat16</name><comment>An implementation can support RTE</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTEFloat32</name><comment>An implementation can support RTE</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTEFloat64</name><comment>An implementation can support RTE</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTZFloat16</name><comment>An implementation can support RTZ</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTZFloat32</name><comment>An implementation can support RTZ</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTZFloat64</name><comment>An implementation can support RTZ</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFloatControlsPropertiesKHR" alias="VkPhysicalDeviceFloatControlsProperties"/>
- <type category="struct" name="VkPhysicalDeviceHostQueryResetFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>hostQueryReset</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceHostQueryResetFeaturesEXT" alias="VkPhysicalDeviceHostQueryResetFeatures"/>
- <type category="struct" name="VkNativeBufferUsage2ANDROID">
- <member><type>uint64_t</type> <name>consumer</name></member>
- <member><type>uint64_t</type> <name>producer</name></member>
- </type>
- <type category="struct" name="VkNativeBufferANDROID">
- <member values="VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member>const <type>void</type>* <name>handle</name></member>
- <member><type>int</type> <name>stride</name></member>
- <member><type>int</type> <name>format</name></member>
- <member><type>int</type> <name>usage</name></member>
- <member><type>VkNativeBufferUsage2ANDROID</type> <name>usage2</name></member>
- </type>
- <type category="struct" name="VkSwapchainImageCreateInfoANDROID">
- <member values="VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkSwapchainImageUsageFlagsANDROID</type> <name>usage</name></member>
- </type>
- <type category="struct" name="VkPhysicalDevicePresentationPropertiesANDROID">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>sharedImage</name></member>
- </type>
- <type category="struct" name="VkShaderResourceUsageAMD" returnedonly="true">
- <member><type>uint32_t</type> <name>numUsedVgprs</name></member>
- <member><type>uint32_t</type> <name>numUsedSgprs</name></member>
- <member><type>uint32_t</type> <name>ldsSizePerLocalWorkGroup</name></member>
- <member><type>size_t</type> <name>ldsUsageSizeInBytes</name></member>
- <member><type>size_t</type> <name>scratchMemUsageInBytes</name></member>
- </type>
- <type category="struct" name="VkShaderStatisticsInfoAMD" returnedonly="true">
- <member><type>VkShaderStageFlags</type> <name>shaderStageMask</name></member>
- <member><type>VkShaderResourceUsageAMD</type> <name>resourceUsage</name></member>
- <member><type>uint32_t</type> <name>numPhysicalVgprs</name></member>
- <member><type>uint32_t</type> <name>numPhysicalSgprs</name></member>
- <member><type>uint32_t</type> <name>numAvailableVgprs</name></member>
- <member><type>uint32_t</type> <name>numAvailableSgprs</name></member>
- <member><type>uint32_t</type> <name>computeWorkGroupSize</name>[3]</member>
- </type>
- <type category="struct" name="VkDeviceQueueGlobalPriorityCreateInfoKHR" structextends="VkDeviceQueueCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkQueueGlobalPriorityKHR</type> <name>globalPriority</name></member>
- </type>
- <type category="struct" name="VkDeviceQueueGlobalPriorityCreateInfoEXT" alias="VkDeviceQueueGlobalPriorityCreateInfoKHR"/>
- <type category="struct" name="VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>globalPriorityQuery</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT" alias="VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR"/>
- <type category="struct" name="VkQueueFamilyGlobalPriorityPropertiesKHR" structextends="VkQueueFamilyProperties2">
- <member values="VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>priorityCount</name></member>
- <member><type>VkQueueGlobalPriorityKHR</type> <name>priorities</name>[<enum>VK_MAX_GLOBAL_PRIORITY_SIZE_KHR</enum>]</member>
- </type>
- <type category="struct" name="VkQueueFamilyGlobalPriorityPropertiesEXT" alias="VkQueueFamilyGlobalPriorityPropertiesKHR"/>
- <type category="struct" name="VkDebugUtilsObjectNameInfoEXT">
- <member values="VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkObjectType</type> <name>objectType</name></member>
- <member objecttype="objectType"><type>uint64_t</type> <name>objectHandle</name></member>
- <member optional="true" len="null-terminated">const <type>char</type>* <name>pObjectName</name></member>
- </type>
- <type category="struct" name="VkDebugUtilsObjectTagInfoEXT">
- <member values="VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkObjectType</type> <name>objectType</name></member>
- <member objecttype="objectType"><type>uint64_t</type> <name>objectHandle</name></member>
- <member><type>uint64_t</type> <name>tagName</name></member>
- <member><type>size_t</type> <name>tagSize</name></member>
- <member len="tagSize">const <type>void</type>* <name>pTag</name></member>
- </type>
- <type category="struct" name="VkDebugUtilsLabelEXT">
- <member values="VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member len="null-terminated">const <type>char</type>* <name>pLabelName</name></member>
- <member><type>float</type> <name>color</name>[4]</member>
- </type>
- <type category="struct" name="VkDebugUtilsMessengerCreateInfoEXT" allowduplicate="true" structextends="VkInstanceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkDebugUtilsMessengerCreateFlagsEXT</type> <name>flags</name></member>
- <member><type>VkDebugUtilsMessageSeverityFlagsEXT</type> <name>messageSeverity</name></member>
- <member><type>VkDebugUtilsMessageTypeFlagsEXT</type> <name>messageType</name></member>
- <member><type>PFN_vkDebugUtilsMessengerCallbackEXT</type> <name>pfnUserCallback</name></member>
- <member optional="true"><type>void</type>* <name>pUserData</name></member>
- </type>
- <type category="struct" name="VkDebugUtilsMessengerCallbackDataEXT">
- <member values="VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkDebugUtilsMessengerCallbackDataFlagsEXT</type> <name>flags</name></member>
- <member optional="true" len="null-terminated">const <type>char</type>* <name>pMessageIdName</name></member>
- <member><type>int32_t</type> <name>messageIdNumber</name></member>
- <member len="null-terminated">const <type>char</type>* <name>pMessage</name></member>
- <member optional="true"><type>uint32_t</type> <name>queueLabelCount</name></member>
- <member len="queueLabelCount">const <type>VkDebugUtilsLabelEXT</type>* <name>pQueueLabels</name></member>
- <member optional="true"><type>uint32_t</type> <name>cmdBufLabelCount</name></member>
- <member len="cmdBufLabelCount">const <type>VkDebugUtilsLabelEXT</type>* <name>pCmdBufLabels</name></member>
- <member optional="true"><type>uint32_t</type> <name>objectCount</name></member>
- <member len="objectCount">const <type>VkDebugUtilsObjectNameInfoEXT</type>* <name>pObjects</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceDeviceMemoryReportFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>deviceMemoryReport</name></member>
- </type>
- <type category="struct" name="VkDeviceDeviceMemoryReportCreateInfoEXT" allowduplicate="true" structextends="VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceMemoryReportFlagsEXT</type> <name>flags</name></member>
- <member><type>PFN_vkDeviceMemoryReportCallbackEXT</type> <name>pfnUserCallback</name></member>
- <member><type>void</type>* <name>pUserData</name></member>
- </type>
- <type category="struct" name="VkDeviceMemoryReportCallbackDataEXT" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceMemoryReportFlagsEXT</type> <name>flags</name></member>
- <member><type>VkDeviceMemoryReportEventTypeEXT</type> <name>type</name></member>
- <member><type>uint64_t</type> <name>memoryObjectId</name></member>
- <member><type>VkDeviceSize</type> <name>size</name></member>
- <member><type>VkObjectType</type> <name>objectType</name></member>
- <member objecttype="objectType"><type>uint64_t</type> <name>objectHandle</name></member>
- <member><type>uint32_t</type> <name>heapIndex</name></member>
- </type>
- <type category="struct" name="VkImportMemoryHostPointerInfoEXT" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></member>
- <member optional="false"><type>void</type>* <name>pHostPointer</name></member>
- </type>
- <type category="struct" name="VkMemoryHostPointerPropertiesEXT" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>memoryTypeBits</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceExternalMemoryHostPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>VkDeviceSize</type> <name>minImportedHostPointerAlignment</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceConservativeRasterizationPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>float</type> <name>primitiveOverestimationSize</name><comment>The size in pixels the primitive is enlarged at each edge during conservative rasterization</comment></member>
- <member limittype="max"><type>float</type> <name>maxExtraPrimitiveOverestimationSize</name><comment>The maximum additional overestimation the client can specify in the pipeline state</comment></member>
- <member limittype="noauto"><type>float</type> <name>extraPrimitiveOverestimationSizeGranularity</name><comment>The granularity of extra overestimation sizes the implementations supports between 0 and maxExtraOverestimationSize</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>primitiveUnderestimation</name><comment>true if the implementation supports conservative rasterization underestimation mode</comment></member>
- <member limittype="noauto"><type>VkBool32</type> <name>conservativePointAndLineRasterization</name><comment>true if conservative rasterization also applies to points and lines</comment></member>
- <member limittype="noauto"><type>VkBool32</type> <name>degenerateTrianglesRasterized</name><comment>true if degenerate triangles (those with zero area after snap) are rasterized</comment></member>
- <member limittype="noauto"><type>VkBool32</type> <name>degenerateLinesRasterized</name><comment>true if degenerate lines (those with zero length after snap) are rasterized</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>fullyCoveredFragmentShaderInputVariable</name><comment>true if the implementation supports the FullyCoveredEXT SPIR-V builtin fragment shader input variable</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>conservativeRasterizationPostDepthCoverage</name><comment>true if the implementation supports both conservative rasterization and post depth coverage sample coverage mask</comment></member>
- </type>
- <type category="struct" name="VkCalibratedTimestampInfoEXT">
- <member values="VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkTimeDomainEXT</type> <name>timeDomain</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderCorePropertiesAMD" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>shaderEngineCount</name><comment>number of shader engines</comment></member>
- <member limittype="noauto"><type>uint32_t</type> <name>shaderArraysPerEngineCount</name><comment>number of shader arrays</comment></member>
- <member limittype="noauto"><type>uint32_t</type> <name>computeUnitsPerShaderArray</name><comment>number of physical CUs per shader array</comment></member>
- <member limittype="noauto"><type>uint32_t</type> <name>simdPerComputeUnit</name><comment>number of SIMDs per compute unit</comment></member>
- <member limittype="noauto"><type>uint32_t</type> <name>wavefrontsPerSimd</name><comment>number of wavefront slots in each SIMD</comment></member>
- <member limittype="noauto"><type>uint32_t</type> <name>wavefrontSize</name><comment>maximum number of threads per wavefront</comment></member>
- <member limittype="noauto"><type>uint32_t</type> <name>sgprsPerSimd</name><comment>number of physical SGPRs per SIMD</comment></member>
- <member limittype="min"><type>uint32_t</type> <name>minSgprAllocation</name><comment>minimum number of SGPRs that can be allocated by a wave</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxSgprAllocation</name><comment>number of available SGPRs</comment></member>
- <member limittype="noauto"><type>uint32_t</type> <name>sgprAllocationGranularity</name><comment>SGPRs are allocated in groups of this size</comment></member>
- <member limittype="noauto"><type>uint32_t</type> <name>vgprsPerSimd</name><comment>number of physical VGPRs per SIMD</comment></member>
- <member limittype="min"><type>uint32_t</type> <name>minVgprAllocation</name><comment>minimum number of VGPRs that can be allocated by a wave</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxVgprAllocation</name><comment>number of available VGPRs</comment></member>
- <member limittype="noauto"><type>uint32_t</type> <name>vgprAllocationGranularity</name><comment>VGPRs are allocated in groups of this size</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderCoreProperties2AMD" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name><comment>Pointer to next structure</comment></member>
- <member limittype="bitmask"><type>VkShaderCorePropertiesFlagsAMD</type> <name>shaderCoreFeatures</name><comment>features supported by the shader core</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>activeComputeUnitCount</name><comment>number of active compute units across all shader engines/arrays</comment></member>
- </type>
- <type category="struct" name="VkPipelineRasterizationConservativeStateCreateInfoEXT" structextends="VkPipelineRasterizationStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineRasterizationConservativeStateCreateFlagsEXT</type> <name>flags</name><comment>Reserved</comment></member>
- <member><type>VkConservativeRasterizationModeEXT</type> <name>conservativeRasterizationMode</name><comment>Conservative rasterization mode</comment></member>
- <member><type>float</type> <name>extraPrimitiveOverestimationSize</name><comment>Extra overestimation to add to the primitive</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceDescriptorIndexingFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderInputAttachmentArrayDynamicIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderUniformTexelBufferArrayDynamicIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderStorageTexelBufferArrayDynamicIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderUniformBufferArrayNonUniformIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderSampledImageArrayNonUniformIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderStorageBufferArrayNonUniformIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderStorageImageArrayNonUniformIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderInputAttachmentArrayNonUniformIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderUniformTexelBufferArrayNonUniformIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderStorageTexelBufferArrayNonUniformIndexing</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingUniformBufferUpdateAfterBind</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingSampledImageUpdateAfterBind</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingStorageImageUpdateAfterBind</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingStorageBufferUpdateAfterBind</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingUniformTexelBufferUpdateAfterBind</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingStorageTexelBufferUpdateAfterBind</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingUpdateUnusedWhilePending</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingPartiallyBound</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingVariableDescriptorCount</name></member>
- <member><type>VkBool32</type> <name>runtimeDescriptorArray</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceDescriptorIndexingFeaturesEXT" alias="VkPhysicalDeviceDescriptorIndexingFeatures"/>
- <type category="struct" name="VkPhysicalDeviceDescriptorIndexingProperties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxUpdateAfterBindDescriptorsInAllPools</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderUniformBufferArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderSampledImageArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderStorageBufferArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderStorageImageArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderInputAttachmentArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>robustBufferAccessUpdateAfterBind</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>quadDivergentImplicitLod</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindSamplers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindUniformBuffers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindStorageBuffers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindSampledImages</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindStorageImages</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindInputAttachments</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageUpdateAfterBindResources</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindSamplers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindUniformBuffers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindUniformBuffersDynamic</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindStorageBuffers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindStorageBuffersDynamic</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindSampledImages</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindStorageImages</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindInputAttachments</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceDescriptorIndexingPropertiesEXT" alias="VkPhysicalDeviceDescriptorIndexingProperties"/>
- <type category="struct" name="VkDescriptorSetLayoutBindingFlagsCreateInfo" structextends="VkDescriptorSetLayoutCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>bindingCount</name></member>
- <member len="bindingCount" optional="false,true">const <type>VkDescriptorBindingFlags</type>* <name>pBindingFlags</name></member>
- </type>
- <type category="struct" name="VkDescriptorSetLayoutBindingFlagsCreateInfoEXT" alias="VkDescriptorSetLayoutBindingFlagsCreateInfo"/>
- <type category="struct" name="VkDescriptorSetVariableDescriptorCountAllocateInfo" structextends="VkDescriptorSetAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>descriptorSetCount</name></member>
- <member len="descriptorSetCount">const <type>uint32_t</type>* <name>pDescriptorCounts</name></member>
- </type>
- <type category="struct" name="VkDescriptorSetVariableDescriptorCountAllocateInfoEXT" alias="VkDescriptorSetVariableDescriptorCountAllocateInfo"/>
- <type category="struct" name="VkDescriptorSetVariableDescriptorCountLayoutSupport" structextends="VkDescriptorSetLayoutSupport" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>maxVariableDescriptorCount</name></member>
- </type>
- <type category="struct" name="VkDescriptorSetVariableDescriptorCountLayoutSupportEXT" alias="VkDescriptorSetVariableDescriptorCountLayoutSupport"/>
- <type category="struct" name="VkAttachmentDescription2">
- <member values="VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkAttachmentDescriptionFlags</type> <name>flags</name></member>
- <member><type>VkFormat</type> <name>format</name></member>
- <member><type>VkSampleCountFlagBits</type> <name>samples</name></member>
- <member><type>VkAttachmentLoadOp</type> <name>loadOp</name><comment>Load operation for color or depth data</comment></member>
- <member><type>VkAttachmentStoreOp</type> <name>storeOp</name><comment>Store operation for color or depth data</comment></member>
- <member><type>VkAttachmentLoadOp</type> <name>stencilLoadOp</name><comment>Load operation for stencil data</comment></member>
- <member><type>VkAttachmentStoreOp</type> <name>stencilStoreOp</name><comment>Store operation for stencil data</comment></member>
- <member><type>VkImageLayout</type> <name>initialLayout</name></member>
- <member><type>VkImageLayout</type> <name>finalLayout</name></member>
- </type>
- <type category="struct" name="VkAttachmentDescription2KHR" alias="VkAttachmentDescription2"/>
- <type category="struct" name="VkAttachmentReference2">
- <member values="VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>attachment</name></member>
- <member><type>VkImageLayout</type> <name>layout</name></member>
- <member noautovalidity="true"><type>VkImageAspectFlags</type> <name>aspectMask</name></member>
- </type>
- <type category="struct" name="VkAttachmentReference2KHR" alias="VkAttachmentReference2"/>
- <type category="struct" name="VkSubpassDescription2">
- <member values="VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkSubpassDescriptionFlags</type> <name>flags</name></member>
- <member><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></member>
- <member><type>uint32_t</type> <name>viewMask</name></member>
- <member optional="true"><type>uint32_t</type> <name>inputAttachmentCount</name></member>
- <member len="inputAttachmentCount">const <type>VkAttachmentReference2</type>* <name>pInputAttachments</name></member>
- <member optional="true"><type>uint32_t</type> <name>colorAttachmentCount</name></member>
- <member len="colorAttachmentCount">const <type>VkAttachmentReference2</type>* <name>pColorAttachments</name></member>
- <member optional="true" len="colorAttachmentCount">const <type>VkAttachmentReference2</type>* <name>pResolveAttachments</name></member>
- <member optional="true">const <type>VkAttachmentReference2</type>* <name>pDepthStencilAttachment</name></member>
- <member optional="true"><type>uint32_t</type> <name>preserveAttachmentCount</name></member>
- <member len="preserveAttachmentCount">const <type>uint32_t</type>* <name>pPreserveAttachments</name></member>
- </type>
- <type category="struct" name="VkSubpassDescription2KHR" alias="VkSubpassDescription2"/>
- <type category="struct" name="VkSubpassDependency2">
- <member values="VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>srcSubpass</name></member>
- <member><type>uint32_t</type> <name>dstSubpass</name></member>
- <member optional="true"><type>VkPipelineStageFlags</type> <name>srcStageMask</name></member>
- <member optional="true"><type>VkPipelineStageFlags</type> <name>dstStageMask</name></member>
- <member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name></member>
- <member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name></member>
- <member optional="true"><type>VkDependencyFlags</type> <name>dependencyFlags</name></member>
- <member><type>int32_t</type> <name>viewOffset</name></member>
- </type>
- <type category="struct" name="VkSubpassDependency2KHR" alias="VkSubpassDependency2"/>
- <type category="struct" name="VkRenderPassCreateInfo2">
- <member values="VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkRenderPassCreateFlags</type> <name>flags</name></member>
- <member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member>
- <member len="attachmentCount">const <type>VkAttachmentDescription2</type>* <name>pAttachments</name></member>
- <member><type>uint32_t</type> <name>subpassCount</name></member>
- <member len="subpassCount">const <type>VkSubpassDescription2</type>* <name>pSubpasses</name></member>
- <member optional="true"><type>uint32_t</type> <name>dependencyCount</name></member>
- <member len="dependencyCount">const <type>VkSubpassDependency2</type>* <name>pDependencies</name></member>
- <member optional="true"><type>uint32_t</type> <name>correlatedViewMaskCount</name></member>
- <member len="correlatedViewMaskCount">const <type>uint32_t</type>* <name>pCorrelatedViewMasks</name></member>
- </type>
- <type category="struct" name="VkRenderPassCreateInfo2KHR" alias="VkRenderPassCreateInfo2"/>
- <type category="struct" name="VkSubpassBeginInfo">
- <member values="VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkSubpassContents</type> <name>contents</name></member>
- </type>
- <type category="struct" name="VkSubpassBeginInfoKHR" alias="VkSubpassBeginInfo"/>
- <type category="struct" name="VkSubpassEndInfo">
- <member values="VK_STRUCTURE_TYPE_SUBPASS_END_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- </type>
- <type category="struct" name="VkSubpassEndInfoKHR" alias="VkSubpassEndInfo"/>
- <type category="struct" name="VkPhysicalDeviceTimelineSemaphoreFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>timelineSemaphore</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceTimelineSemaphoreFeaturesKHR" alias="VkPhysicalDeviceTimelineSemaphoreFeatures"/>
- <type category="struct" name="VkPhysicalDeviceTimelineSemaphoreProperties" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint64_t</type> <name>maxTimelineSemaphoreValueDifference</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceTimelineSemaphorePropertiesKHR" alias="VkPhysicalDeviceTimelineSemaphoreProperties"/>
- <type category="struct" name="VkSemaphoreTypeCreateInfo" structextends="VkSemaphoreCreateInfo,VkPhysicalDeviceExternalSemaphoreInfo">
- <member values="VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkSemaphoreType</type> <name>semaphoreType</name></member>
- <member><type>uint64_t</type> <name>initialValue</name></member>
- </type>
- <type category="struct" name="VkSemaphoreTypeCreateInfoKHR" alias="VkSemaphoreTypeCreateInfo"/>
- <type category="struct" name="VkTimelineSemaphoreSubmitInfo" structextends="VkSubmitInfo,VkBindSparseInfo">
- <member values="VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>waitSemaphoreValueCount</name></member>
- <member optional="true" len="waitSemaphoreValueCount">const <type>uint64_t</type>* <name>pWaitSemaphoreValues</name></member>
- <member optional="true"><type>uint32_t</type> <name>signalSemaphoreValueCount</name></member>
- <member optional="true" len="signalSemaphoreValueCount">const <type>uint64_t</type>* <name>pSignalSemaphoreValues</name></member>
- </type>
- <type category="struct" name="VkTimelineSemaphoreSubmitInfoKHR" alias="VkTimelineSemaphoreSubmitInfo"/>
- <type category="struct" name="VkSemaphoreWaitInfo">
- <member values="VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkSemaphoreWaitFlags</type> <name>flags</name></member>
- <member><type>uint32_t</type> <name>semaphoreCount</name></member>
- <member len="semaphoreCount">const <type>VkSemaphore</type>* <name>pSemaphores</name></member>
- <member len="semaphoreCount">const <type>uint64_t</type>* <name>pValues</name></member>
- </type>
- <type category="struct" name="VkSemaphoreWaitInfoKHR" alias="VkSemaphoreWaitInfo"/>
- <type category="struct" name="VkSemaphoreSignalInfo">
- <member values="VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkSemaphore</type> <name>semaphore</name></member>
- <member><type>uint64_t</type> <name>value</name></member>
- </type>
- <type category="struct" name="VkSemaphoreSignalInfoKHR" alias="VkSemaphoreSignalInfo"/>
- <type category="struct" name="VkVertexInputBindingDivisorDescriptionEXT">
- <member><type>uint32_t</type> <name>binding</name></member>
- <member><type>uint32_t</type> <name>divisor</name></member>
- </type>
- <type category="struct" name="VkPipelineVertexInputDivisorStateCreateInfoEXT" structextends="VkPipelineVertexInputStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>vertexBindingDivisorCount</name></member>
- <member len="vertexBindingDivisorCount">const <type>VkVertexInputBindingDivisorDescriptionEXT</type>* <name>pVertexBindingDivisors</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxVertexAttribDivisor</name><comment>max value of vertex attribute divisor</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDevicePCIBusInfoPropertiesEXT" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>pciDomain</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>pciBus</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>pciDevice</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>pciFunction</name></member>
- </type>
- <type category="struct" name="VkImportAndroidHardwareBufferInfoANDROID" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member>struct <type>AHardwareBuffer</type>* <name>buffer</name></member>
- </type>
- <type category="struct" name="VkAndroidHardwareBufferUsageANDROID" structextends="VkImageFormatProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint64_t</type> <name>androidHardwareBufferUsage</name></member>
- </type>
- <type category="struct" name="VkAndroidHardwareBufferPropertiesANDROID" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceSize</type> <name>allocationSize</name></member>
- <member><type>uint32_t</type> <name>memoryTypeBits</name></member>
- </type>
- <type category="struct" name="VkMemoryGetAndroidHardwareBufferInfoANDROID">
- <member values="VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceMemory</type> <name>memory</name></member>
- </type>
- <type category="struct" name="VkAndroidHardwareBufferFormatPropertiesANDROID" structextends="VkAndroidHardwareBufferPropertiesANDROID" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkFormat</type> <name>format</name></member>
- <member><type>uint64_t</type> <name>externalFormat</name></member>
- <member><type>VkFormatFeatureFlags</type> <name>formatFeatures</name></member>
- <member><type>VkComponentMapping</type> <name>samplerYcbcrConversionComponents</name></member>
- <member><type>VkSamplerYcbcrModelConversion</type> <name>suggestedYcbcrModel</name></member>
- <member><type>VkSamplerYcbcrRange</type> <name>suggestedYcbcrRange</name></member>
- <member><type>VkChromaLocation</type> <name>suggestedXChromaOffset</name></member>
- <member><type>VkChromaLocation</type> <name>suggestedYChromaOffset</name></member>
- </type>
- <type category="struct" name="VkCommandBufferInheritanceConditionalRenderingInfoEXT" structextends="VkCommandBufferInheritanceInfo">
- <member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>conditionalRenderingEnable</name><comment>Whether this secondary command buffer may be executed during an active conditional rendering</comment></member>
- </type>
- <type category="struct" name="VkExternalFormatANDROID" structextends="VkImageCreateInfo,VkSamplerYcbcrConversionCreateInfo">
- <member values="VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint64_t</type> <name>externalFormat</name></member>
- </type>
- <type category="struct" name="VkPhysicalDevice8BitStorageFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>storageBuffer8BitAccess</name><comment>8-bit integer variables supported in StorageBuffer</comment></member>
- <member><type>VkBool32</type> <name>uniformAndStorageBuffer8BitAccess</name><comment>8-bit integer variables supported in StorageBuffer and Uniform</comment></member>
- <member><type>VkBool32</type> <name>storagePushConstant8</name><comment>8-bit integer variables supported in PushConstant</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDevice8BitStorageFeaturesKHR" alias="VkPhysicalDevice8BitStorageFeatures"/>
- <type category="struct" name="VkPhysicalDeviceConditionalRenderingFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>conditionalRendering</name></member>
- <member><type>VkBool32</type> <name>inheritedConditionalRendering</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceVulkanMemoryModelFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>vulkanMemoryModel</name></member>
- <member><type>VkBool32</type> <name>vulkanMemoryModelDeviceScope</name></member>
- <member><type>VkBool32</type> <name>vulkanMemoryModelAvailabilityVisibilityChains</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceVulkanMemoryModelFeaturesKHR" alias="VkPhysicalDeviceVulkanMemoryModelFeatures"/>
- <type category="struct" name="VkPhysicalDeviceShaderAtomicInt64Features" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderBufferInt64Atomics</name></member>
- <member><type>VkBool32</type> <name>shaderSharedInt64Atomics</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderAtomicInt64FeaturesKHR" alias="VkPhysicalDeviceShaderAtomicInt64Features"/>
- <type category="struct" name="VkPhysicalDeviceShaderAtomicFloatFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderBufferFloat32Atomics</name></member>
- <member><type>VkBool32</type> <name>shaderBufferFloat32AtomicAdd</name></member>
- <member><type>VkBool32</type> <name>shaderBufferFloat64Atomics</name></member>
- <member><type>VkBool32</type> <name>shaderBufferFloat64AtomicAdd</name></member>
- <member><type>VkBool32</type> <name>shaderSharedFloat32Atomics</name></member>
- <member><type>VkBool32</type> <name>shaderSharedFloat32AtomicAdd</name></member>
- <member><type>VkBool32</type> <name>shaderSharedFloat64Atomics</name></member>
- <member><type>VkBool32</type> <name>shaderSharedFloat64AtomicAdd</name></member>
- <member><type>VkBool32</type> <name>shaderImageFloat32Atomics</name></member>
- <member><type>VkBool32</type> <name>shaderImageFloat32AtomicAdd</name></member>
- <member><type>VkBool32</type> <name>sparseImageFloat32Atomics</name></member>
- <member><type>VkBool32</type> <name>sparseImageFloat32AtomicAdd</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderBufferFloat16Atomics</name></member>
- <member><type>VkBool32</type> <name>shaderBufferFloat16AtomicAdd</name></member>
- <member><type>VkBool32</type> <name>shaderBufferFloat16AtomicMinMax</name></member>
- <member><type>VkBool32</type> <name>shaderBufferFloat32AtomicMinMax</name></member>
- <member><type>VkBool32</type> <name>shaderBufferFloat64AtomicMinMax</name></member>
- <member><type>VkBool32</type> <name>shaderSharedFloat16Atomics</name></member>
- <member><type>VkBool32</type> <name>shaderSharedFloat16AtomicAdd</name></member>
- <member><type>VkBool32</type> <name>shaderSharedFloat16AtomicMinMax</name></member>
- <member><type>VkBool32</type> <name>shaderSharedFloat32AtomicMinMax</name></member>
- <member><type>VkBool32</type> <name>shaderSharedFloat64AtomicMinMax</name></member>
- <member><type>VkBool32</type> <name>shaderImageFloat32AtomicMinMax</name></member>
- <member><type>VkBool32</type> <name>sparseImageFloat32AtomicMinMax</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>vertexAttributeInstanceRateDivisor</name></member>
- <member><type>VkBool32</type> <name>vertexAttributeInstanceRateZeroDivisor</name></member>
- </type>
- <type category="struct" name="VkQueueFamilyCheckpointPropertiesNV" structextends="VkQueueFamilyProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkPipelineStageFlags</type> <name>checkpointExecutionStageMask</name></member>
- </type>
- <type category="struct" name="VkCheckpointDataNV" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkPipelineStageFlagBits</type> <name>stage</name></member>
- <member noautovalidity="true"><type>void</type>* <name>pCheckpointMarker</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceDepthStencilResolveProperties" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="bitmask"><type>VkResolveModeFlags</type> <name>supportedDepthResolveModes</name><comment>supported depth resolve modes</comment></member>
- <member limittype="bitmask"><type>VkResolveModeFlags</type> <name>supportedStencilResolveModes</name><comment>supported stencil resolve modes</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>independentResolveNone</name><comment>depth and stencil resolve modes can be set independently if one of them is none</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>independentResolve</name><comment>depth and stencil resolve modes can be set independently</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceDepthStencilResolvePropertiesKHR" alias="VkPhysicalDeviceDepthStencilResolveProperties"/>
- <type category="struct" name="VkSubpassDescriptionDepthStencilResolve" structextends="VkSubpassDescription2">
- <member values="VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkResolveModeFlagBits</type> <name>depthResolveMode</name><comment>depth resolve mode</comment></member>
- <member noautovalidity="true"><type>VkResolveModeFlagBits</type> <name>stencilResolveMode</name><comment>stencil resolve mode</comment></member>
- <member optional="true">const <type>VkAttachmentReference2</type>* <name>pDepthStencilResolveAttachment</name><comment>depth/stencil resolve attachment</comment></member>
- </type>
- <type category="struct" name="VkSubpassDescriptionDepthStencilResolveKHR" alias="VkSubpassDescriptionDepthStencilResolve"/>
- <type category="struct" name="VkImageViewASTCDecodeModeEXT" structextends="VkImageViewCreateInfo">
- <member values="VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkFormat</type> <name>decodeMode</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceASTCDecodeFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>decodeModeSharedExponent</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceTransformFeedbackFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>transformFeedback</name></member>
- <member><type>VkBool32</type> <name>geometryStreams</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceTransformFeedbackPropertiesEXT" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTransformFeedbackStreams</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTransformFeedbackBuffers</name></member>
- <member limittype="max"><type>VkDeviceSize</type> <name>maxTransformFeedbackBufferSize</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTransformFeedbackStreamDataSize</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTransformFeedbackBufferDataSize</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>maxTransformFeedbackBufferDataStride</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>transformFeedbackQueries</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>transformFeedbackStreamsLinesTriangles</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>transformFeedbackRasterizationStreamSelect</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>transformFeedbackDraw</name></member>
- </type>
- <type category="struct" name="VkPipelineRasterizationStateStreamCreateInfoEXT" structextends="VkPipelineRasterizationStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineRasterizationStateStreamCreateFlagsEXT</type> <name>flags</name></member>
- <member><type>uint32_t</type> <name>rasterizationStream</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>representativeFragmentTest</name></member>
- </type>
- <type category="struct" name="VkPipelineRepresentativeFragmentTestStateCreateInfoNV" structextends="VkGraphicsPipelineCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>representativeFragmentTestEnable</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceExclusiveScissorFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>exclusiveScissor</name></member>
- </type>
- <type category="struct" name="VkPipelineViewportExclusiveScissorStateCreateInfoNV" structextends="VkPipelineViewportStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>exclusiveScissorCount</name></member>
- <member noautovalidity="true" len="exclusiveScissorCount">const <type>VkRect2D</type>* <name>pExclusiveScissors</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceCornerSampledImageFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>cornerSampledImage</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceComputeShaderDerivativesFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>computeDerivativeGroupQuads</name></member>
- <member><type>VkBool32</type> <name>computeDerivativeGroupLinear</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>fragmentShaderBarycentric</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderImageFootprintFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>imageFootprint</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>dedicatedAllocationImageAliasing</name></member>
- </type>
- <type category="struct" name="VkShadingRatePaletteNV">
- <member><type>uint32_t</type> <name>shadingRatePaletteEntryCount</name></member>
- <member len="shadingRatePaletteEntryCount">const <type>VkShadingRatePaletteEntryNV</type>* <name>pShadingRatePaletteEntries</name></member>
- </type>
- <type category="struct" name="VkPipelineViewportShadingRateImageStateCreateInfoNV" structextends="VkPipelineViewportStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shadingRateImageEnable</name></member>
- <member optional="true"><type>uint32_t</type> <name>viewportCount</name></member>
- <member noautovalidity="true" len="viewportCount">const <type>VkShadingRatePaletteNV</type>* <name>pShadingRatePalettes</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShadingRateImageFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shadingRateImage</name></member>
- <member><type>VkBool32</type> <name>shadingRateCoarseSampleOrder</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShadingRateImagePropertiesNV" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>VkExtent2D</type> <name>shadingRateTexelSize</name></member>
- <member limittype="max"><type>uint32_t</type> <name>shadingRatePaletteSize</name></member>
- <member limittype="max"><type>uint32_t</type> <name>shadingRateMaxCoarseSamples</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceInvocationMaskFeaturesHUAWEI" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>invocationMask</name></member>
- </type>
- <type category="struct" name="VkCoarseSampleLocationNV">
- <member><type>uint32_t</type> <name>pixelX</name></member>
- <member><type>uint32_t</type> <name>pixelY</name></member>
- <member><type>uint32_t</type> <name>sample</name></member>
- </type>
- <type category="struct" name="VkCoarseSampleOrderCustomNV">
- <member><type>VkShadingRatePaletteEntryNV</type> <name>shadingRate</name></member>
- <member><type>uint32_t</type> <name>sampleCount</name></member>
- <member><type>uint32_t</type> <name>sampleLocationCount</name></member>
- <member len="sampleLocationCount">const <type>VkCoarseSampleLocationNV</type>* <name>pSampleLocations</name></member>
- </type>
- <type category="struct" name="VkPipelineViewportCoarseSampleOrderStateCreateInfoNV" structextends="VkPipelineViewportStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkCoarseSampleOrderTypeNV</type> <name>sampleOrderType</name></member>
- <member optional="true"><type>uint32_t</type> <name>customSampleOrderCount</name></member>
- <member len="customSampleOrderCount">const <type>VkCoarseSampleOrderCustomNV</type>* <name>pCustomSampleOrders</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMeshShaderFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>taskShader</name></member>
- <member><type>VkBool32</type> <name>meshShader</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMeshShaderPropertiesNV" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDrawMeshTasksCount</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTaskWorkGroupInvocations</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTaskWorkGroupSize</name>[3]</member>
- <member limittype="max"><type>uint32_t</type> <name>maxTaskTotalMemorySize</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxTaskOutputCount</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxMeshWorkGroupInvocations</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxMeshWorkGroupSize</name>[3]</member>
- <member limittype="max"><type>uint32_t</type> <name>maxMeshTotalMemorySize</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxMeshOutputVertices</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxMeshOutputPrimitives</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxMeshMultiviewViewCount</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>meshOutputPerVertexGranularity</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>meshOutputPerPrimitiveGranularity</name></member>
- </type>
- <type category="struct" name="VkDrawMeshTasksIndirectCommandNV">
- <member><type>uint32_t</type> <name>taskCount</name></member>
- <member><type>uint32_t</type> <name>firstTask</name></member>
- </type>
- <type category="struct" name="VkRayTracingShaderGroupCreateInfoNV">
- <member values="VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkRayTracingShaderGroupTypeKHR</type> <name>type</name></member>
- <member><type>uint32_t</type> <name>generalShader</name></member>
- <member><type>uint32_t</type> <name>closestHitShader</name></member>
- <member><type>uint32_t</type> <name>anyHitShader</name></member>
- <member><type>uint32_t</type> <name>intersectionShader</name></member>
- </type>
- <type category="struct" name="VkRayTracingShaderGroupCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkRayTracingShaderGroupTypeKHR</type> <name>type</name></member>
- <member><type>uint32_t</type> <name>generalShader</name></member>
- <member><type>uint32_t</type> <name>closestHitShader</name></member>
- <member><type>uint32_t</type> <name>anyHitShader</name></member>
- <member><type>uint32_t</type> <name>intersectionShader</name></member>
- <member optional="true">const <type>void</type>* <name>pShaderGroupCaptureReplayHandle</name></member>
- </type>
- <type category="struct" name="VkRayTracingPipelineCreateInfoNV">
- <member values="VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineCreateFlags</type> <name>flags</name><comment>Pipeline creation flags</comment></member>
- <member><type>uint32_t</type> <name>stageCount</name></member>
- <member len="stageCount">const <type>VkPipelineShaderStageCreateInfo</type>* <name>pStages</name><comment>One entry for each active shader stage</comment></member>
- <member><type>uint32_t</type> <name>groupCount</name></member>
- <member len="groupCount">const <type>VkRayTracingShaderGroupCreateInfoNV</type>* <name>pGroups</name></member>
- <member><type>uint32_t</type> <name>maxRecursionDepth</name></member>
- <member><type>VkPipelineLayout</type> <name>layout</name><comment>Interface layout of the pipeline</comment></member>
- <member noautovalidity="true" optional="true"><type>VkPipeline</type> <name>basePipelineHandle</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of</comment></member>
- <member><type>int32_t</type> <name>basePipelineIndex</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of</comment></member>
- </type>
- <type category="struct" name="VkRayTracingPipelineCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineCreateFlags</type> <name>flags</name><comment>Pipeline creation flags</comment></member>
- <member optional="true"><type>uint32_t</type> <name>stageCount</name></member>
- <member len="stageCount">const <type>VkPipelineShaderStageCreateInfo</type>* <name>pStages</name><comment>One entry for each active shader stage</comment></member>
- <member optional="true"><type>uint32_t</type> <name>groupCount</name></member>
- <member len="groupCount">const <type>VkRayTracingShaderGroupCreateInfoKHR</type>* <name>pGroups</name></member>
- <member><type>uint32_t</type> <name>maxPipelineRayRecursionDepth</name></member>
- <member optional="true">const <type>VkPipelineLibraryCreateInfoKHR</type>* <name>pLibraryInfo</name></member>
- <member optional="true">const <type>VkRayTracingPipelineInterfaceCreateInfoKHR</type>* <name>pLibraryInterface</name></member>
- <member optional="true">const <type>VkPipelineDynamicStateCreateInfo</type>* <name>pDynamicState</name></member>
- <member><type>VkPipelineLayout</type> <name>layout</name><comment>Interface layout of the pipeline</comment></member>
- <member noautovalidity="true" optional="true"><type>VkPipeline</type> <name>basePipelineHandle</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of</comment></member>
- <member><type>int32_t</type> <name>basePipelineIndex</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of</comment></member>
- </type>
- <type category="struct" name="VkGeometryTrianglesNV">
- <member values="VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkBuffer</type> <name>vertexData</name></member>
- <member><type>VkDeviceSize</type> <name>vertexOffset</name></member>
- <member><type>uint32_t</type> <name>vertexCount</name></member>
- <member><type>VkDeviceSize</type> <name>vertexStride</name></member>
- <member><type>VkFormat</type> <name>vertexFormat</name></member>
- <member optional="true"><type>VkBuffer</type> <name>indexData</name></member>
- <member><type>VkDeviceSize</type> <name>indexOffset</name></member>
- <member><type>uint32_t</type> <name>indexCount</name></member>
- <member><type>VkIndexType</type> <name>indexType</name></member>
- <member optional="true"><type>VkBuffer</type> <name>transformData</name><comment>Optional reference to array of floats representing a 3x4 row major affine transformation matrix.</comment></member>
- <member><type>VkDeviceSize</type> <name>transformOffset</name></member>
- </type>
- <type category="struct" name="VkGeometryAABBNV">
- <member values="VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkBuffer</type> <name>aabbData</name></member>
- <member><type>uint32_t</type> <name>numAABBs</name></member>
- <member><type>uint32_t</type> <name>stride</name><comment>Stride in bytes between AABBs</comment></member>
- <member><type>VkDeviceSize</type> <name>offset</name><comment>Offset in bytes of the first AABB in aabbData</comment></member>
- </type>
- <type category="struct" name="VkGeometryDataNV">
- <member><type>VkGeometryTrianglesNV</type> <name>triangles</name></member>
- <member><type>VkGeometryAABBNV</type> <name>aabbs</name></member>
- </type>
- <type category="struct" name="VkGeometryNV">
- <member values="VK_STRUCTURE_TYPE_GEOMETRY_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkGeometryTypeKHR</type> <name>geometryType</name></member>
- <member><type>VkGeometryDataNV</type> <name>geometry</name></member>
- <member optional="true"><type>VkGeometryFlagsKHR</type> <name>flags</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureInfoNV">
- <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkAccelerationStructureTypeNV</type> <name>type</name></member>
- <member optional="true"><type>VkBuildAccelerationStructureFlagsNV</type><name>flags</name></member>
- <member optional="true"><type>uint32_t</type> <name>instanceCount</name></member>
- <member optional="true"><type>uint32_t</type> <name>geometryCount</name></member>
- <member len="geometryCount">const <type>VkGeometryNV</type>* <name>pGeometries</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureCreateInfoNV">
- <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceSize</type> <name>compactedSize</name></member>
- <member><type>VkAccelerationStructureInfoNV</type> <name>info</name></member>
- </type>
- <type category="struct" name="VkBindAccelerationStructureMemoryInfoNV">
- <member values="VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkAccelerationStructureNV</type> <name>accelerationStructure</name></member>
- <member><type>VkDeviceMemory</type> <name>memory</name></member>
- <member><type>VkDeviceSize</type> <name>memoryOffset</name></member>
- <member optional="true"><type>uint32_t</type> <name>deviceIndexCount</name></member>
- <member len="deviceIndexCount">const <type>uint32_t</type>* <name>pDeviceIndices</name></member>
- </type>
- <type category="struct" name="VkWriteDescriptorSetAccelerationStructureKHR" structextends="VkWriteDescriptorSet">
- <member values="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_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>accelerationStructureCount</name></member>
- <member optional="false,true" len="accelerationStructureCount">const <type>VkAccelerationStructureKHR</type>* <name>pAccelerationStructures</name></member>
- </type>
- <type category="struct" name="VkWriteDescriptorSetAccelerationStructureNV" structextends="VkWriteDescriptorSet">
- <member values="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_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>accelerationStructureCount</name></member>
- <member optional="false,true" len="accelerationStructureCount">const <type>VkAccelerationStructureNV</type>* <name>pAccelerationStructures</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureMemoryRequirementsInfoNV">
- <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkAccelerationStructureMemoryRequirementsTypeNV</type> <name>type</name></member>
- <member><type>VkAccelerationStructureNV</type> <name>accelerationStructure</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceAccelerationStructureFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>accelerationStructure</name></member>
- <member><type>VkBool32</type> <name>accelerationStructureCaptureReplay</name></member>
- <member><type>VkBool32</type> <name>accelerationStructureIndirectBuild</name></member>
- <member><type>VkBool32</type> <name>accelerationStructureHostCommands</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingAccelerationStructureUpdateAfterBind</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceRayTracingPipelineFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>rayTracingPipeline</name></member>
- <member><type>VkBool32</type> <name>rayTracingPipelineShaderGroupHandleCaptureReplay</name></member>
- <member><type>VkBool32</type> <name>rayTracingPipelineShaderGroupHandleCaptureReplayMixed</name></member>
- <member><type>VkBool32</type> <name>rayTracingPipelineTraceRaysIndirect</name></member>
- <member><type>VkBool32</type> <name>rayTraversalPrimitiveCulling</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceRayQueryFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>rayQuery</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceAccelerationStructurePropertiesKHR" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint64_t</type> <name>maxGeometryCount</name></member>
- <member limittype="max"><type>uint64_t</type> <name>maxInstanceCount</name></member>
- <member limittype="max"><type>uint64_t</type> <name>maxPrimitiveCount</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorAccelerationStructures</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindAccelerationStructures</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetAccelerationStructures</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindAccelerationStructures</name></member>
- <member limittype="min"><type>uint32_t</type> <name>minAccelerationStructureScratchOffsetAlignment</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceRayTracingPipelinePropertiesKHR" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>shaderGroupHandleSize</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxRayRecursionDepth</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxShaderGroupStride</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>shaderGroupBaseAlignment</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>shaderGroupHandleCaptureReplaySize</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxRayDispatchInvocationCount</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>shaderGroupHandleAlignment</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxRayHitAttributeSize</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceRayTracingPropertiesNV" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>shaderGroupHandleSize</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxRecursionDepth</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxShaderGroupStride</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>shaderGroupBaseAlignment</name></member>
- <member limittype="max"><type>uint64_t</type> <name>maxGeometryCount</name></member>
- <member limittype="max"><type>uint64_t</type> <name>maxInstanceCount</name></member>
- <member limittype="max"><type>uint64_t</type> <name>maxTriangleCount</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetAccelerationStructures</name></member>
- </type>
- <type category="struct" name="VkStridedDeviceAddressRegionKHR">
- <member optional="true"><type>VkDeviceAddress</type> <name>deviceAddress</name></member>
- <member><type>VkDeviceSize</type> <name>stride</name></member>
- <member><type>VkDeviceSize</type> <name>size</name></member>
- </type>
- <type category="struct" name="VkTraceRaysIndirectCommandKHR">
- <member><type>uint32_t</type> <name>width</name></member>
- <member><type>uint32_t</type> <name>height</name></member>
- <member><type>uint32_t</type> <name>depth</name></member>
- </type>
- <type category="struct" name="VkDrmFormatModifierPropertiesListEXT" returnedonly="true" structextends="VkFormatProperties2">
- <member values="VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>drmFormatModifierCount</name></member>
- <member optional="true,false" len="drmFormatModifierCount"><type>VkDrmFormatModifierPropertiesEXT</type>* <name>pDrmFormatModifierProperties</name></member>
- </type>
- <type category="struct" name="VkDrmFormatModifierPropertiesEXT" returnedonly="true">
- <member><type>uint64_t</type> <name>drmFormatModifier</name></member>
- <member><type>uint32_t</type> <name>drmFormatModifierPlaneCount</name></member>
- <member><type>VkFormatFeatureFlags</type> <name>drmFormatModifierTilingFeatures</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceImageDrmFormatModifierInfoEXT" structextends="VkPhysicalDeviceImageFormatInfo2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint64_t</type> <name>drmFormatModifier</name></member>
- <member><type>VkSharingMode</type> <name>sharingMode</name></member>
- <member optional="true"><type>uint32_t</type> <name>queueFamilyIndexCount</name></member>
- <member noautovalidity="true" len="queueFamilyIndexCount">const <type>uint32_t</type>* <name>pQueueFamilyIndices</name></member>
- </type>
- <type category="struct" name="VkImageDrmFormatModifierListCreateInfoEXT" structextends="VkImageCreateInfo">
- <member values="VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>drmFormatModifierCount</name></member>
- <member len="drmFormatModifierCount">const <type>uint64_t</type>* <name>pDrmFormatModifiers</name></member>
- </type>
- <type category="struct" name="VkImageDrmFormatModifierExplicitCreateInfoEXT" structextends="VkImageCreateInfo">
- <member values="VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint64_t</type> <name>drmFormatModifier</name></member>
- <member optional="false"><type>uint32_t</type> <name>drmFormatModifierPlaneCount</name></member>
- <member len="drmFormatModifierPlaneCount">const <type>VkSubresourceLayout</type>* <name>pPlaneLayouts</name></member>
- </type>
- <type category="struct" name="VkImageDrmFormatModifierPropertiesEXT" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint64_t</type> <name>drmFormatModifier</name></member>
- </type>
- <type category="struct" name="VkImageStencilUsageCreateInfo" structextends="VkImageCreateInfo,VkPhysicalDeviceImageFormatInfo2">
- <member values="VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImageUsageFlags</type> <name>stencilUsage</name></member>
- </type>
- <type category="struct" name="VkImageStencilUsageCreateInfoEXT" alias="VkImageStencilUsageCreateInfo"/>
- <type category="struct" name="VkDeviceMemoryOverallocationCreateInfoAMD" structextends="VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkMemoryOverallocationBehaviorAMD</type> <name>overallocationBehavior</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFragmentDensityMapFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>fragmentDensityMap</name></member>
- <member><type>VkBool32</type> <name>fragmentDensityMapDynamic</name></member>
- <member><type>VkBool32</type> <name>fragmentDensityMapNonSubsampledImages</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFragmentDensityMap2FeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>fragmentDensityMapDeferred</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>fragmentDensityMapOffset</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFragmentDensityMapPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="min"><type>VkExtent2D</type> <name>minFragmentDensityTexelSize</name></member>
- <member limittype="max"><type>VkExtent2D</type> <name>maxFragmentDensityTexelSize</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>fragmentDensityInvocations</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFragmentDensityMap2PropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>VkBool32</type> <name>subsampledLoads</name></member>
- <member limittype="noauto"><type>VkBool32</type> <name>subsampledCoarseReconstructionEarlyAccess</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxSubsampledArrayLayers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetSubsampledSamplers</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>VkExtent2D</type> <name>fragmentDensityOffsetGranularity</name></member>
- </type>
- <type category="struct" name="VkRenderPassFragmentDensityMapCreateInfoEXT" structextends="VkRenderPassCreateInfo,VkRenderPassCreateInfo2">
- <member values="VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkAttachmentReference</type> <name>fragmentDensityMapAttachment</name></member>
- </type>
- <type category="struct" name="VkSubpassFragmentDensityMapOffsetEndInfoQCOM" structextends="VkSubpassEndInfo">
- <member values="VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>fragmentDensityOffsetCount</name></member>
- <member len="fragmentDensityOffsetCount">const <type>VkOffset2D</type>* <name>pFragmentDensityOffsets</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceScalarBlockLayoutFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>scalarBlockLayout</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceScalarBlockLayoutFeaturesEXT" alias="VkPhysicalDeviceScalarBlockLayoutFeatures"/>
- <type category="struct" name="VkSurfaceProtectedCapabilitiesKHR" structextends="VkSurfaceCapabilities2KHR">
- <member values="VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>supportsProtected</name><comment>Represents if surface can be protected</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceUniformBufferStandardLayoutFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>uniformBufferStandardLayout</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR" alias="VkPhysicalDeviceUniformBufferStandardLayoutFeatures"/>
- <type category="struct" name="VkPhysicalDeviceDepthClipEnableFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>depthClipEnable</name></member>
- </type>
- <type category="struct" name="VkPipelineRasterizationDepthClipStateCreateInfoEXT" structextends="VkPipelineRasterizationStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineRasterizationDepthClipStateCreateFlagsEXT</type> <name>flags</name><comment>Reserved</comment></member>
- <member><type>VkBool32</type> <name>depthClipEnable</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMemoryBudgetPropertiesEXT" structextends="VkPhysicalDeviceMemoryProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceSize</type> <name>heapBudget</name>[<enum>VK_MAX_MEMORY_HEAPS</enum>]</member>
- <member><type>VkDeviceSize</type> <name>heapUsage</name>[<enum>VK_MAX_MEMORY_HEAPS</enum>]</member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMemoryPriorityFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>memoryPriority</name></member>
- </type>
- <type category="struct" name="VkMemoryPriorityAllocateInfoEXT" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>float</type> <name>priority</name></member>
- </type>
- <type category="struct" name="VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>pageableDeviceLocalMemory</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceBufferDeviceAddressFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>bufferDeviceAddress</name></member>
- <member><type>VkBool32</type> <name>bufferDeviceAddressCaptureReplay</name></member>
- <member><type>VkBool32</type> <name>bufferDeviceAddressMultiDevice</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceBufferDeviceAddressFeaturesKHR" alias="VkPhysicalDeviceBufferDeviceAddressFeatures"/>
- <type category="struct" name="VkPhysicalDeviceBufferDeviceAddressFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>bufferDeviceAddress</name></member>
- <member><type>VkBool32</type> <name>bufferDeviceAddressCaptureReplay</name></member>
- <member><type>VkBool32</type> <name>bufferDeviceAddressMultiDevice</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceBufferAddressFeaturesEXT" alias="VkPhysicalDeviceBufferDeviceAddressFeaturesEXT"/>
- <type category="struct" name="VkBufferDeviceAddressInfo">
- <member values="VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBuffer</type> <name>buffer</name></member>
- </type>
- <type category="struct" name="VkBufferDeviceAddressInfoKHR" alias="VkBufferDeviceAddressInfo"/>
- <type category="struct" name="VkBufferDeviceAddressInfoEXT" alias="VkBufferDeviceAddressInfo"/>
- <type category="struct" name="VkBufferOpaqueCaptureAddressCreateInfo" structextends="VkBufferCreateInfo">
- <member values="VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint64_t</type> <name>opaqueCaptureAddress</name></member>
- </type>
- <type category="struct" name="VkBufferOpaqueCaptureAddressCreateInfoKHR" alias="VkBufferOpaqueCaptureAddressCreateInfo"/>
- <type category="struct" name="VkBufferDeviceAddressCreateInfoEXT" structextends="VkBufferCreateInfo">
- <member values="VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceAddress</type> <name>deviceAddress</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceImageViewImageFormatInfoEXT" structextends="VkPhysicalDeviceImageFormatInfo2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkImageViewType</type> <name>imageViewType</name></member>
- </type>
- <type category="struct" name="VkFilterCubicImageViewImageFormatPropertiesEXT" returnedonly="true" structextends="VkImageFormatProperties2">
- <member values="VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>filterCubic</name><comment>The combinations of format, image type (and image view type if provided) can be filtered with VK_FILTER_CUBIC_EXT</comment></member>
- <member><type>VkBool32</type> <name>filterCubicMinmax</name><comment>The combination of format, image type (and image view type if provided) can be filtered with VK_FILTER_CUBIC_EXT and ReductionMode of Min or Max</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceImagelessFramebufferFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>imagelessFramebuffer</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceImagelessFramebufferFeaturesKHR" alias="VkPhysicalDeviceImagelessFramebufferFeatures"/>
- <type category="struct" name="VkFramebufferAttachmentsCreateInfo" structextends="VkFramebufferCreateInfo">
- <member values="VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>attachmentImageInfoCount</name></member>
- <member len="attachmentImageInfoCount">const <type>VkFramebufferAttachmentImageInfo</type>* <name>pAttachmentImageInfos</name></member>
- </type>
- <type category="struct" name="VkFramebufferAttachmentsCreateInfoKHR" alias="VkFramebufferAttachmentsCreateInfo"/>
- <type category="struct" name="VkFramebufferAttachmentImageInfo">
- <member values="VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkImageCreateFlags</type> <name>flags</name><comment>Image creation flags</comment></member>
- <member><type>VkImageUsageFlags</type> <name>usage</name><comment>Image usage flags</comment></member>
- <member><type>uint32_t</type> <name>width</name></member>
- <member><type>uint32_t</type> <name>height</name></member>
- <member><type>uint32_t</type> <name>layerCount</name></member>
- <member optional="true"><type>uint32_t</type> <name>viewFormatCount</name></member>
- <member len="viewFormatCount">const <type>VkFormat</type>* <name>pViewFormats</name></member>
- </type>
- <type category="struct" name="VkFramebufferAttachmentImageInfoKHR" alias="VkFramebufferAttachmentImageInfo"/>
- <type category="struct" name="VkRenderPassAttachmentBeginInfo" structextends="VkRenderPassBeginInfo">
- <member values="VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member>
- <member len="attachmentCount">const <type>VkImageView</type>* <name>pAttachments</name></member>
- </type>
- <type category="struct" name="VkRenderPassAttachmentBeginInfoKHR" alias="VkRenderPassAttachmentBeginInfo"/>
- <type category="struct" name="VkPhysicalDeviceTextureCompressionASTCHDRFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>textureCompressionASTC_HDR</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT" alias="VkPhysicalDeviceTextureCompressionASTCHDRFeatures"/>
- <type category="struct" name="VkPhysicalDeviceCooperativeMatrixFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>cooperativeMatrix</name></member>
- <member><type>VkBool32</type> <name>cooperativeMatrixRobustBufferAccess</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceCooperativeMatrixPropertiesNV" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="bitmask"><type>VkShaderStageFlags</type> <name>cooperativeMatrixSupportedStages</name></member>
- </type>
- <type category="struct" name="VkCooperativeMatrixPropertiesNV">
- <member values="VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>MSize</name></member>
- <member><type>uint32_t</type> <name>NSize</name></member>
- <member><type>uint32_t</type> <name>KSize</name></member>
- <member><type>VkComponentTypeNV</type> <name>AType</name></member>
- <member><type>VkComponentTypeNV</type> <name>BType</name></member>
- <member><type>VkComponentTypeNV</type> <name>CType</name></member>
- <member><type>VkComponentTypeNV</type> <name>DType</name></member>
- <member><type>VkScopeNV</type> <name>scope</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceYcbcrImageArraysFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>ycbcrImageArrays</name></member>
- </type>
- <type category="struct" name="VkImageViewHandleInfoNVX">
- <member values="VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImageView</type> <name>imageView</name></member>
- <member><type>VkDescriptorType</type> <name>descriptorType</name></member>
- <member optional="true"><type>VkSampler</type> <name>sampler</name></member>
- </type>
- <type category="struct" name="VkImageViewAddressPropertiesNVX" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceAddress</type> <name>deviceAddress</name></member>
- <member><type>VkDeviceSize</type> <name>size</name></member>
- </type>
- <type category="struct" name="VkPresentFrameTokenGGP" structextends="VkPresentInfoKHR">
- <member values="VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>GgpFrameToken</type> <name>frameToken</name></member>
- </type>
- <type category="struct" name="VkPipelineCreationFeedback" returnedonly="true">
- <member><type>VkPipelineCreationFeedbackFlags</type> <name>flags</name></member>
- <member><type>uint64_t</type> <name>duration</name></member>
- </type>
- <type category="struct" name="VkPipelineCreationFeedbackEXT" alias="VkPipelineCreationFeedback"/>
- <type category="struct" name="VkPipelineCreationFeedbackCreateInfo" structextends="VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkRayTracingPipelineCreateInfoNV,VkRayTracingPipelineCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkPipelineCreationFeedback</type>* <name>pPipelineCreationFeedback</name><comment>Output pipeline creation feedback.</comment></member>
- <member><type>uint32_t</type> <name>pipelineStageCreationFeedbackCount</name></member>
- <member len="pipelineStageCreationFeedbackCount"><type>VkPipelineCreationFeedback</type>* <name>pPipelineStageCreationFeedbacks</name><comment>One entry for each shader stage specified in the parent Vk*PipelineCreateInfo struct</comment></member>
- </type>
- <type category="struct" name="VkPipelineCreationFeedbackCreateInfoEXT" alias="VkPipelineCreationFeedbackCreateInfo"/>
- <type category="struct" name="VkSurfaceFullScreenExclusiveInfoEXT" structextends="VkPhysicalDeviceSurfaceInfo2KHR,VkSwapchainCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkFullScreenExclusiveEXT</type> <name>fullScreenExclusive</name></member>
- </type>
- <type category="struct" name="VkSurfaceFullScreenExclusiveWin32InfoEXT" structextends="VkPhysicalDeviceSurfaceInfo2KHR,VkSwapchainCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>HMONITOR</type> <name>hmonitor</name></member>
- </type>
- <type category="struct" name="VkSurfaceCapabilitiesFullScreenExclusiveEXT" structextends="VkSurfaceCapabilities2KHR">
- <member values="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>fullScreenExclusiveSupported</name></member>
- </type>
- <type category="struct" name="VkPhysicalDevicePerformanceQueryFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>performanceCounterQueryPools</name><comment>performance counters supported in query pools</comment></member>
- <member><type>VkBool32</type> <name>performanceCounterMultipleQueryPools</name><comment>performance counters from multiple query pools can be accessed in the same primary command buffer</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDevicePerformanceQueryPropertiesKHR" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="bitmask" noautovalidity="true"><type>VkBool32</type> <name>allowCommandBufferQueryCopies</name><comment>Flag to specify whether performance queries are allowed to be used in vkCmdCopyQueryPoolResults</comment></member>
- </type>
- <type category="struct" name="VkPerformanceCounterKHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkPerformanceCounterUnitKHR</type> <name>unit</name></member>
- <member><type>VkPerformanceCounterScopeKHR</type> <name>scope</name></member>
- <member><type>VkPerformanceCounterStorageKHR</type> <name>storage</name></member>
- <member><type>uint8_t</type> <name>uuid</name>[<enum>VK_UUID_SIZE</enum>]</member>
- </type>
- <type category="struct" name="VkPerformanceCounterDescriptionKHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPerformanceCounterDescriptionFlagsKHR</type> <name>flags</name></member>
- <member><type>char</type> <name>name</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>char</type> <name>category</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- </type>
- <type category="struct" name="VkQueryPoolPerformanceCreateInfoKHR" structextends="VkQueryPoolCreateInfo">
- <member values="VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_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>queueFamilyIndex</name></member>
- <member><type>uint32_t</type> <name>counterIndexCount</name></member>
- <member len="counterIndexCount">const <type>uint32_t</type>* <name>pCounterIndices</name></member>
- </type>
- <type category="union" name="VkPerformanceCounterResultKHR" comment="// Union of all the possible return types a counter result could return">
- <member><type>int32_t</type> <name>int32</name></member>
- <member><type>int64_t</type> <name>int64</name></member>
- <member><type>uint32_t</type> <name>uint32</name></member>
- <member><type>uint64_t</type> <name>uint64</name></member>
- <member><type>float</type> <name>float32</name></member>
- <member><type>double</type> <name>float64</name></member>
- </type>
- <type category="struct" name="VkAcquireProfilingLockInfoKHR">
- <member values="VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkAcquireProfilingLockFlagsKHR</type> <name>flags</name><comment>Acquire profiling lock flags</comment></member>
- <member><type>uint64_t</type> <name>timeout</name></member>
- </type>
- <type category="struct" name="VkPerformanceQuerySubmitInfoKHR" structextends="VkSubmitInfo,VkSubmitInfo2">
- <member values="VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_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>counterPassIndex</name><comment>Index for which counter pass to submit</comment></member>
- </type>
- <type category="struct" name="VkHeadlessSurfaceCreateInfoEXT">
- <member values="VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkHeadlessSurfaceCreateFlagsEXT</type> <name>flags</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceCoverageReductionModeFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>coverageReductionMode</name></member>
- </type>
- <type category="struct" name="VkPipelineCoverageReductionStateCreateInfoNV" structextends="VkPipelineMultisampleStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineCoverageReductionStateCreateFlagsNV</type> <name>flags</name></member>
- <member><type>VkCoverageReductionModeNV</type> <name>coverageReductionMode</name></member>
- </type>
- <type category="struct" name="VkFramebufferMixedSamplesCombinationNV" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkCoverageReductionModeNV</type> <name>coverageReductionMode</name></member>
- <member><type>VkSampleCountFlagBits</type> <name>rasterizationSamples</name></member>
- <member><type>VkSampleCountFlags</type> <name>depthStencilSamples</name></member>
- <member><type>VkSampleCountFlags</type> <name>colorSamples</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderIntegerFunctions2</name></member>
- </type>
- <type category="union" name="VkPerformanceValueDataINTEL">
- <member selection="VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL"><type>uint32_t</type> <name>value32</name></member>
- <member selection="VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL"><type>uint64_t</type> <name>value64</name></member>
- <member selection="VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL"><type>float</type> <name>valueFloat</name></member>
- <member selection="VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL"><type>VkBool32</type> <name>valueBool</name></member>
- <member selection="VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL" len="null-terminated">const <type>char</type>* <name>valueString</name></member>
- </type>
- <type category="struct" name="VkPerformanceValueINTEL">
- <member><type>VkPerformanceValueTypeINTEL</type> <name>type</name></member>
- <member selector="type" noautovalidity="true"><type>VkPerformanceValueDataINTEL</type> <name>data</name></member>
- </type>
- <type category="struct" name="VkInitializePerformanceApiInfoINTEL" >
- <member values="VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>void</type>* <name>pUserData</name></member>
- </type>
- <type category="struct" name="VkQueryPoolPerformanceQueryCreateInfoINTEL" structextends="VkQueryPoolCreateInfo">
- <member values="VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkQueryPoolSamplingModeINTEL</type> <name>performanceCountersSampling</name></member>
- </type>
- <type category="struct" name="VkQueryPoolCreateInfoINTEL" alias="VkQueryPoolPerformanceQueryCreateInfoINTEL"/>
- <type category="struct" name="VkPerformanceMarkerInfoINTEL">
- <member values="VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint64_t</type> <name>marker</name></member>
- </type>
- <type category="struct" name="VkPerformanceStreamMarkerInfoINTEL">
- <member values="VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>marker</name></member>
- </type>
- <type category="struct" name="VkPerformanceOverrideInfoINTEL">
- <member values="VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkPerformanceOverrideTypeINTEL</type> <name>type</name></member>
- <member><type>VkBool32</type> <name>enable</name></member>
- <member><type>uint64_t</type> <name>parameter</name></member>
- </type>
- <type category="struct" name="VkPerformanceConfigurationAcquireInfoINTEL">
- <member values="VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkPerformanceConfigurationTypeINTEL</type> <name>type</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderClockFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderSubgroupClock</name></member>
- <member><type>VkBool32</type> <name>shaderDeviceClock</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceIndexTypeUint8FeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>indexTypeUint8</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderSMBuiltinsPropertiesNV" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>shaderSMCount</name></member>
- <member limittype="max"><type>uint32_t</type> <name>shaderWarpsPerSM</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderSMBuiltinsFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderSMBuiltins</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name><comment>Pointer to next structure</comment></member>
- <member><type>VkBool32</type> <name>fragmentShaderSampleInterlock</name></member>
- <member><type>VkBool32</type> <name>fragmentShaderPixelInterlock</name></member>
- <member><type>VkBool32</type> <name>fragmentShaderShadingRateInterlock</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>separateDepthStencilLayouts</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR" alias="VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures"/>
- <type category="struct" name="VkAttachmentReferenceStencilLayout" structextends="VkAttachmentReference2">
- <member values="VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkImageLayout</type> <name>stencilLayout</name></member>
- </type>
- <type category="struct" name="VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>primitiveTopologyListRestart</name></member>
- <member><type>VkBool32</type> <name>primitiveTopologyPatchListRestart</name></member>
- </type>
- <type category="struct" name="VkAttachmentReferenceStencilLayoutKHR" alias="VkAttachmentReferenceStencilLayout"/>
- <type category="struct" name="VkAttachmentDescriptionStencilLayout" structextends="VkAttachmentDescription2">
- <member values="VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkImageLayout</type> <name>stencilInitialLayout</name></member>
- <member><type>VkImageLayout</type> <name>stencilFinalLayout</name></member>
- </type>
- <type category="struct" name="VkAttachmentDescriptionStencilLayoutKHR" alias="VkAttachmentDescriptionStencilLayout"/>
- <type category="struct" name="VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>pipelineExecutableInfo</name></member>
- </type>
- <type category="struct" name="VkPipelineInfoKHR">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkPipeline</type> <name>pipeline</name></member>
- </type>
- <type category="struct" name="VkPipelineExecutablePropertiesKHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkShaderStageFlags</type> <name>stages</name></member>
- <member><type>char</type> <name>name</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>uint32_t</type> <name>subgroupSize</name></member>
- </type>
- <type category="struct" name="VkPipelineExecutableInfoKHR">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkPipeline</type> <name>pipeline</name></member>
- <member><type>uint32_t</type> <name>executableIndex</name></member>
- </type>
- <type category="union" name="VkPipelineExecutableStatisticValueKHR" returnedonly="true">
- <member selection="VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR"><type>VkBool32</type> <name>b32</name></member>
- <member selection="VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR"><type>int64_t</type> <name>i64</name></member>
- <member selection="VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR"><type>uint64_t</type> <name>u64</name></member>
- <member selection="VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR"><type>double</type> <name>f64</name></member>
- </type>
- <type category="struct" name="VkPipelineExecutableStatisticKHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>char</type> <name>name</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>VkPipelineExecutableStatisticFormatKHR</type> <name>format</name></member>
- <member selector="format" noautovalidity="true"><type>VkPipelineExecutableStatisticValueKHR</type> <name>value</name></member>
- </type>
- <type category="struct" name="VkPipelineExecutableInternalRepresentationKHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>char</type> <name>name</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>VkBool32</type> <name>isText</name></member>
- <member><type>size_t</type> <name>dataSize</name></member>
- <member optional="true" len="dataSize"><type>void</type>* <name>pData</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderDemoteToHelperInvocation</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT" alias="VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures"/>
- <type category="struct" name="VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>texelBufferAlignment</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceTexelBufferAlignmentProperties" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>VkDeviceSize</type> <name>storageTexelBufferOffsetAlignmentBytes</name></member>
- <member limittype="noauto"><type>VkBool32</type> <name>storageTexelBufferOffsetSingleTexelAlignment</name></member>
- <member limittype="noauto"><type>VkDeviceSize</type> <name>uniformTexelBufferOffsetAlignmentBytes</name></member>
- <member limittype="noauto"><type>VkBool32</type> <name>uniformTexelBufferOffsetSingleTexelAlignment</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT" alias="VkPhysicalDeviceTexelBufferAlignmentProperties"/>
- <type category="struct" name="VkPhysicalDeviceSubgroupSizeControlFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>subgroupSizeControl</name></member>
- <member><type>VkBool32</type> <name>computeFullSubgroups</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceSubgroupSizeControlFeaturesEXT" alias="VkPhysicalDeviceSubgroupSizeControlFeatures"/>
- <type category="struct" name="VkPhysicalDeviceSubgroupSizeControlProperties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="min" noautovalidity="true"><type>uint32_t</type> <name>minSubgroupSize</name><comment>The minimum subgroup size supported by this device</comment></member>
- <member limittype="max" noautovalidity="true"><type>uint32_t</type> <name>maxSubgroupSize</name><comment>The maximum subgroup size supported by this device</comment></member>
- <member limittype="max" noautovalidity="true"><type>uint32_t</type> <name>maxComputeWorkgroupSubgroups</name><comment>The maximum number of subgroups supported in a workgroup</comment></member>
- <member limittype="bitmask"><type>VkShaderStageFlags</type> <name>requiredSubgroupSizeStages</name><comment>The shader stages that support specifying a subgroup size</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceSubgroupSizeControlPropertiesEXT" alias="VkPhysicalDeviceSubgroupSizeControlProperties"/>
- <type category="struct" name="VkPipelineShaderStageRequiredSubgroupSizeCreateInfo" returnedonly="true" structextends="VkPipelineShaderStageCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>requiredSubgroupSize</name></member>
- </type>
- <type category="struct" name="VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT" alias="VkPipelineShaderStageRequiredSubgroupSizeCreateInfo"/>
- <type category="struct" name="VkSubpassShadingPipelineCreateInfoHUAWEI" returnedonly="true" structextends="VkComputePipelineCreateInfo">
- <member values="VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkRenderPass</type> <name>renderPass</name></member>
- <member><type>uint32_t</type> <name>subpass</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceSubpassShadingPropertiesHUAWEI" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>maxSubpassShadingWorkgroupSizeAspectRatio</name></member>
- </type>
- <type category="struct" name="VkMemoryOpaqueCaptureAddressAllocateInfo" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint64_t</type> <name>opaqueCaptureAddress</name></member>
- </type>
- <type category="struct" name="VkMemoryOpaqueCaptureAddressAllocateInfoKHR" alias="VkMemoryOpaqueCaptureAddressAllocateInfo"/>
- <type category="struct" name="VkDeviceMemoryOpaqueCaptureAddressInfo">
- <member values="VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceMemory</type> <name>memory</name></member>
- </type>
- <type category="struct" name="VkDeviceMemoryOpaqueCaptureAddressInfoKHR" alias="VkDeviceMemoryOpaqueCaptureAddressInfo"/>
- <type category="struct" name="VkPhysicalDeviceLineRasterizationFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>rectangularLines</name></member>
- <member><type>VkBool32</type> <name>bresenhamLines</name></member>
- <member><type>VkBool32</type> <name>smoothLines</name></member>
- <member><type>VkBool32</type> <name>stippledRectangularLines</name></member>
- <member><type>VkBool32</type> <name>stippledBresenhamLines</name></member>
- <member><type>VkBool32</type> <name>stippledSmoothLines</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceLineRasterizationPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>lineSubPixelPrecisionBits</name></member>
- </type>
- <type category="struct" name="VkPipelineRasterizationLineStateCreateInfoEXT" structextends="VkPipelineRasterizationStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkLineRasterizationModeEXT</type> <name>lineRasterizationMode</name></member>
- <member><type>VkBool32</type> <name>stippledLineEnable</name></member>
- <member><type>uint32_t</type> <name>lineStippleFactor</name></member>
- <member><type>uint16_t</type> <name>lineStipplePattern</name></member>
- </type>
- <type category="struct" name="VkPhysicalDevicePipelineCreationCacheControlFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>pipelineCreationCacheControl</name></member>
- </type>
- <type category="struct" name="VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT" alias="VkPhysicalDevicePipelineCreationCacheControlFeatures"/>
- <type category="struct" name="VkPhysicalDeviceVulkan11Features" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>storageBuffer16BitAccess</name><comment>16-bit integer/floating-point variables supported in BufferBlock</comment></member>
- <member><type>VkBool32</type> <name>uniformAndStorageBuffer16BitAccess</name><comment>16-bit integer/floating-point variables supported in BufferBlock and Block</comment></member>
- <member><type>VkBool32</type> <name>storagePushConstant16</name><comment>16-bit integer/floating-point variables supported in PushConstant</comment></member>
- <member><type>VkBool32</type> <name>storageInputOutput16</name><comment>16-bit integer/floating-point variables supported in shader inputs and outputs</comment></member>
- <member><type>VkBool32</type> <name>multiview</name><comment>Multiple views in a renderpass</comment></member>
- <member><type>VkBool32</type> <name>multiviewGeometryShader</name><comment>Multiple views in a renderpass w/ geometry shader</comment></member>
- <member><type>VkBool32</type> <name>multiviewTessellationShader</name><comment>Multiple views in a renderpass w/ tessellation shader</comment></member>
- <member><type>VkBool32</type> <name>variablePointersStorageBuffer</name></member>
- <member><type>VkBool32</type> <name>variablePointers</name></member>
- <member><type>VkBool32</type> <name>protectedMemory</name></member>
- <member><type>VkBool32</type> <name>samplerYcbcrConversion</name><comment>Sampler color conversion supported</comment></member>
- <member><type>VkBool32</type> <name>shaderDrawParameters</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceVulkan11Properties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>uint8_t</type> <name>deviceUUID</name>[<enum>VK_UUID_SIZE</enum>]</member>
- <member limittype="noauto"><type>uint8_t</type> <name>driverUUID</name>[<enum>VK_UUID_SIZE</enum>]</member>
- <member limittype="noauto"><type>uint8_t</type> <name>deviceLUID</name>[<enum>VK_LUID_SIZE</enum>]</member>
- <member limittype="noauto"><type>uint32_t</type> <name>deviceNodeMask</name></member>
- <member limittype="noauto"><type>VkBool32</type> <name>deviceLUIDValid</name></member>
- <member limittype="noauto" noautovalidity="true"><type>uint32_t</type> <name>subgroupSize</name><comment>The size of a subgroup for this queue.</comment></member>
- <member limittype="bitmask" noautovalidity="true"><type>VkShaderStageFlags</type> <name>subgroupSupportedStages</name><comment>Bitfield of what shader stages support subgroup operations</comment></member>
- <member limittype="bitmask" noautovalidity="true"><type>VkSubgroupFeatureFlags</type> <name>subgroupSupportedOperations</name><comment>Bitfield of what subgroup operations are supported.</comment></member>
- <member limittype="bitmask" noautovalidity="true"><type>VkBool32</type> <name>subgroupQuadOperationsInAllStages</name><comment>Flag to specify whether quad operations are available in all stages.</comment></member>
- <member limittype="noauto"><type>VkPointClippingBehavior</type> <name>pointClippingBehavior</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxMultiviewViewCount</name><comment>max number of views in a subpass</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxMultiviewInstanceIndex</name><comment>max instance index for a draw in a multiview subpass</comment></member>
- <member limittype="noauto"><type>VkBool32</type> <name>protectedNoFault</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerSetDescriptors</name></member>
- <member limittype="max"><type>VkDeviceSize</type> <name>maxMemoryAllocationSize</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceVulkan12Features" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>samplerMirrorClampToEdge</name></member>
- <member><type>VkBool32</type> <name>drawIndirectCount</name></member>
- <member><type>VkBool32</type> <name>storageBuffer8BitAccess</name><comment>8-bit integer variables supported in StorageBuffer</comment></member>
- <member><type>VkBool32</type> <name>uniformAndStorageBuffer8BitAccess</name><comment>8-bit integer variables supported in StorageBuffer and Uniform</comment></member>
- <member><type>VkBool32</type> <name>storagePushConstant8</name><comment>8-bit integer variables supported in PushConstant</comment></member>
- <member><type>VkBool32</type> <name>shaderBufferInt64Atomics</name></member>
- <member><type>VkBool32</type> <name>shaderSharedInt64Atomics</name></member>
- <member><type>VkBool32</type> <name>shaderFloat16</name><comment>16-bit floats (halfs) in shaders</comment></member>
- <member><type>VkBool32</type> <name>shaderInt8</name><comment>8-bit integers in shaders</comment></member>
- <member><type>VkBool32</type> <name>descriptorIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderInputAttachmentArrayDynamicIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderUniformTexelBufferArrayDynamicIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderStorageTexelBufferArrayDynamicIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderUniformBufferArrayNonUniformIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderSampledImageArrayNonUniformIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderStorageBufferArrayNonUniformIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderStorageImageArrayNonUniformIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderInputAttachmentArrayNonUniformIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderUniformTexelBufferArrayNonUniformIndexing</name></member>
- <member><type>VkBool32</type> <name>shaderStorageTexelBufferArrayNonUniformIndexing</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingUniformBufferUpdateAfterBind</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingSampledImageUpdateAfterBind</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingStorageImageUpdateAfterBind</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingStorageBufferUpdateAfterBind</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingUniformTexelBufferUpdateAfterBind</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingStorageTexelBufferUpdateAfterBind</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingUpdateUnusedWhilePending</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingPartiallyBound</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingVariableDescriptorCount</name></member>
- <member><type>VkBool32</type> <name>runtimeDescriptorArray</name></member>
- <member><type>VkBool32</type> <name>samplerFilterMinmax</name></member>
- <member><type>VkBool32</type> <name>scalarBlockLayout</name></member>
- <member><type>VkBool32</type> <name>imagelessFramebuffer</name></member>
- <member><type>VkBool32</type> <name>uniformBufferStandardLayout</name></member>
- <member><type>VkBool32</type> <name>shaderSubgroupExtendedTypes</name></member>
- <member><type>VkBool32</type> <name>separateDepthStencilLayouts</name></member>
- <member><type>VkBool32</type> <name>hostQueryReset</name></member>
- <member><type>VkBool32</type> <name>timelineSemaphore</name></member>
- <member><type>VkBool32</type> <name>bufferDeviceAddress</name></member>
- <member><type>VkBool32</type> <name>bufferDeviceAddressCaptureReplay</name></member>
- <member><type>VkBool32</type> <name>bufferDeviceAddressMultiDevice</name></member>
- <member><type>VkBool32</type> <name>vulkanMemoryModel</name></member>
- <member><type>VkBool32</type> <name>vulkanMemoryModelDeviceScope</name></member>
- <member><type>VkBool32</type> <name>vulkanMemoryModelAvailabilityVisibilityChains</name></member>
- <member><type>VkBool32</type> <name>shaderOutputViewportIndex</name></member>
- <member><type>VkBool32</type> <name>shaderOutputLayer</name></member>
- <member><type>VkBool32</type> <name>subgroupBroadcastDynamicId</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceVulkan12Properties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>VkDriverId</type> <name>driverID</name></member>
- <member limittype="noauto"><type>char</type> <name>driverName</name>[<enum>VK_MAX_DRIVER_NAME_SIZE</enum>]</member>
- <member limittype="noauto"><type>char</type> <name>driverInfo</name>[<enum>VK_MAX_DRIVER_INFO_SIZE</enum>]</member>
- <member limittype="noauto"><type>VkConformanceVersion</type> <name>conformanceVersion</name></member>
- <member limittype="noauto"><type>VkShaderFloatControlsIndependence</type><name>denormBehaviorIndependence</name></member>
- <member limittype="noauto"><type>VkShaderFloatControlsIndependence</type><name>roundingModeIndependence</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderSignedZeroInfNanPreserveFloat16</name><comment>An implementation can preserve signed zero, nan, inf</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderSignedZeroInfNanPreserveFloat32</name><comment>An implementation can preserve signed zero, nan, inf</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderSignedZeroInfNanPreserveFloat64</name><comment>An implementation can preserve signed zero, nan, inf</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormPreserveFloat16</name><comment>An implementation can preserve denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormPreserveFloat32</name><comment>An implementation can preserve denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormPreserveFloat64</name><comment>An implementation can preserve denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormFlushToZeroFloat16</name><comment>An implementation can flush to zero denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormFlushToZeroFloat32</name><comment>An implementation can flush to zero denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormFlushToZeroFloat64</name><comment>An implementation can flush to zero denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTEFloat16</name><comment>An implementation can support RTE</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTEFloat32</name><comment>An implementation can support RTE</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTEFloat64</name><comment>An implementation can support RTE</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTZFloat16</name><comment>An implementation can support RTZ</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTZFloat32</name><comment>An implementation can support RTZ</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTZFloat64</name><comment>An implementation can support RTZ</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxUpdateAfterBindDescriptorsInAllPools</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderUniformBufferArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderSampledImageArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderStorageBufferArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderStorageImageArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderInputAttachmentArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>robustBufferAccessUpdateAfterBind</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>quadDivergentImplicitLod</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindSamplers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindUniformBuffers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindStorageBuffers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindSampledImages</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindStorageImages</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindInputAttachments</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageUpdateAfterBindResources</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindSamplers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindUniformBuffers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindUniformBuffersDynamic</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindStorageBuffers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindStorageBuffersDynamic</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindSampledImages</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindStorageImages</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindInputAttachments</name></member>
- <member limittype="bitmask"><type>VkResolveModeFlags</type> <name>supportedDepthResolveModes</name><comment>supported depth resolve modes</comment></member>
- <member limittype="bitmask"><type>VkResolveModeFlags</type> <name>supportedStencilResolveModes</name><comment>supported stencil resolve modes</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>independentResolveNone</name><comment>depth and stencil resolve modes can be set independently if one of them is none</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>independentResolve</name><comment>depth and stencil resolve modes can be set independently</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>filterMinmaxSingleComponentFormats</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>filterMinmaxImageComponentMapping</name></member>
- <member limittype="max"><type>uint64_t</type> <name>maxTimelineSemaphoreValueDifference</name></member>
- <member limittype="bitmask" optional="true"><type>VkSampleCountFlags</type> <name>framebufferIntegerColorSampleCounts</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceVulkan13Features" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>robustImageAccess</name></member>
- <member><type>VkBool32</type> <name>inlineUniformBlock</name></member>
- <member><type>VkBool32</type> <name>descriptorBindingInlineUniformBlockUpdateAfterBind</name></member>
- <member><type>VkBool32</type> <name>pipelineCreationCacheControl</name></member>
- <member><type>VkBool32</type> <name>privateData</name></member>
- <member><type>VkBool32</type> <name>shaderDemoteToHelperInvocation</name></member>
- <member><type>VkBool32</type> <name>shaderTerminateInvocation</name></member>
- <member><type>VkBool32</type> <name>subgroupSizeControl</name></member>
- <member><type>VkBool32</type> <name>computeFullSubgroups</name></member>
- <member><type>VkBool32</type> <name>synchronization2</name></member>
- <member><type>VkBool32</type> <name>textureCompressionASTC_HDR</name></member>
- <member><type>VkBool32</type> <name>shaderZeroInitializeWorkgroupMemory</name></member>
- <member><type>VkBool32</type> <name>dynamicRendering</name></member>
- <member><type>VkBool32</type> <name>shaderIntegerDotProduct</name></member>
- <member><type>VkBool32</type> <name>maintenance4</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceVulkan13Properties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="min" noautovalidity="true"><type>uint32_t</type> <name>minSubgroupSize</name><comment>The minimum subgroup size supported by this device</comment></member>
- <member limittype="max" noautovalidity="true"><type>uint32_t</type> <name>maxSubgroupSize</name><comment>The maximum subgroup size supported by this device</comment></member>
- <member limittype="max" noautovalidity="true"><type>uint32_t</type> <name>maxComputeWorkgroupSubgroups</name><comment>The maximum number of subgroups supported in a workgroup</comment></member>
- <member limittype="bitmask"><type>VkShaderStageFlags</type> <name>requiredSubgroupSizeStages</name><comment>The shader stages that support specifying a subgroup size</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxInlineUniformBlockSize</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorInlineUniformBlocks</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetInlineUniformBlocks</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindInlineUniformBlocks</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxInlineUniformTotalSize</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct8BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct8BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct8BitMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct4x8BitPackedUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct4x8BitPackedSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct4x8BitPackedMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct16BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct16BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct16BitMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct32BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct32BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct32BitMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct64BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct64BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct64BitMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating8BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating8BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating16BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating16BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating32BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating32BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating64BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating64BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated</name></member>
- <member limittype="noauto"><type>VkDeviceSize</type> <name>storageTexelBufferOffsetAlignmentBytes</name></member>
- <member limittype="noauto"><type>VkBool32</type> <name>storageTexelBufferOffsetSingleTexelAlignment</name></member>
- <member limittype="noauto"><type>VkDeviceSize</type> <name>uniformTexelBufferOffsetAlignmentBytes</name></member>
- <member limittype="noauto"><type>VkBool32</type> <name>uniformTexelBufferOffsetSingleTexelAlignment</name></member>
- <member limittype="max"><type>VkDeviceSize</type> <name>maxBufferSize</name></member>
- </type>
- <type category="struct" name="VkPipelineCompilerControlCreateInfoAMD" structextends="VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineCompilerControlFlagsAMD</type> <name>compilerControlFlags</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceCoherentMemoryFeaturesAMD" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>deviceCoherentMemory</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceToolProperties" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>char</type> <name>name</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]</member>
- <member><type>char</type> <name>version</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]</member>
- <member><type>VkToolPurposeFlags</type> <name>purposes</name></member>
- <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>char</type> <name>layer</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]</member>
- </type>
- <type category="struct" name="VkPhysicalDeviceToolPropertiesEXT" alias="VkPhysicalDeviceToolProperties"/>
- <type category="struct" name="VkSamplerCustomBorderColorCreateInfoEXT" structextends="VkSamplerCreateInfo">
- <member values="VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkClearColorValue</type> <name>customBorderColor</name></member>
- <member><type>VkFormat</type> <name>format</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceCustomBorderColorPropertiesEXT" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxCustomBorderColorSamplers</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceCustomBorderColorFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>customBorderColors</name></member>
- <member><type>VkBool32</type> <name>customBorderColorWithoutFormat</name></member>
- </type>
- <type category="struct" name="VkSamplerBorderColorComponentMappingCreateInfoEXT" structextends="VkSamplerCreateInfo">
- <member values="VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkComponentMapping</type> <name>components</name></member>
- <member><type>VkBool32</type> <name>srgb</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceBorderColorSwizzleFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>borderColorSwizzle</name></member>
- <member><type>VkBool32</type> <name>borderColorSwizzleFromImage</name></member>
- </type>
- <type category="union" name="VkDeviceOrHostAddressKHR">
- <member noautovalidity="true"><type>VkDeviceAddress</type> <name>deviceAddress</name></member>
- <member noautovalidity="true"><type>void</type>* <name>hostAddress</name></member>
- </type>
- <type category="union" name="VkDeviceOrHostAddressConstKHR">
- <member noautovalidity="true"><type>VkDeviceAddress</type> <name>deviceAddress</name></member>
- <member noautovalidity="true">const <type>void</type>* <name>hostAddress</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureGeometryTrianglesDataKHR">
- <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkFormat</type> <name>vertexFormat</name></member>
- <member noautovalidity="true"><type>VkDeviceOrHostAddressConstKHR</type> <name>vertexData</name></member>
- <member><type>VkDeviceSize</type> <name>vertexStride</name></member>
- <member><type>uint32_t</type> <name>maxVertex</name></member>
- <member><type>VkIndexType</type> <name>indexType</name></member>
- <member noautovalidity="true"><type>VkDeviceOrHostAddressConstKHR</type> <name>indexData</name></member>
- <member noautovalidity="true"><type>VkDeviceOrHostAddressConstKHR</type> <name>transformData</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureGeometryAabbsDataKHR">
- <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkDeviceOrHostAddressConstKHR</type> <name>data</name></member>
- <member><type>VkDeviceSize</type> <name>stride</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureGeometryInstancesDataKHR">
- <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>arrayOfPointers</name></member>
- <member noautovalidity="true"><type>VkDeviceOrHostAddressConstKHR</type> <name>data</name></member>
- </type>
- <type category="union" name="VkAccelerationStructureGeometryDataKHR">
- <member selection="VK_GEOMETRY_TYPE_TRIANGLES_KHR"><type>VkAccelerationStructureGeometryTrianglesDataKHR</type> <name>triangles</name></member>
- <member selection="VK_GEOMETRY_TYPE_AABBS_KHR"><type>VkAccelerationStructureGeometryAabbsDataKHR</type> <name>aabbs</name></member>
- <member selection="VK_GEOMETRY_TYPE_INSTANCES_KHR"><type>VkAccelerationStructureGeometryInstancesDataKHR</type> <name>instances</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureGeometryKHR">
- <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkGeometryTypeKHR</type> <name>geometryType</name></member>
- <member selector="geometryType"><type>VkAccelerationStructureGeometryDataKHR</type> <name>geometry</name></member>
- <member optional="true"><type>VkGeometryFlagsKHR</type> <name>flags</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureBuildGeometryInfoKHR">
- <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkAccelerationStructureTypeKHR</type> <name>type</name></member>
- <member optional="true"><type>VkBuildAccelerationStructureFlagsKHR</type> <name>flags</name></member>
- <member noautovalidity="true"><type>VkBuildAccelerationStructureModeKHR</type> <name>mode</name></member>
- <member optional="true" noautovalidity="true"><type>VkAccelerationStructureKHR</type> <name>srcAccelerationStructure</name></member>
- <member optional="true" noautovalidity="true"><type>VkAccelerationStructureKHR</type> <name>dstAccelerationStructure</name></member>
- <member optional="true"><type>uint32_t</type> <name>geometryCount</name></member>
- <member len="geometryCount" optional="true">const <type>VkAccelerationStructureGeometryKHR</type>* <name>pGeometries</name></member>
- <member len="geometryCount,1" optional="true,false">const <type>VkAccelerationStructureGeometryKHR</type>* const* <name>ppGeometries</name></member>
- <member noautovalidity="true"><type>VkDeviceOrHostAddressKHR</type> <name>scratchData</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureBuildRangeInfoKHR">
- <member><type>uint32_t</type> <name>primitiveCount</name></member>
- <member><type>uint32_t</type> <name>primitiveOffset</name></member>
- <member><type>uint32_t</type> <name>firstVertex</name></member>
- <member><type>uint32_t</type> <name>transformOffset</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkAccelerationStructureCreateFlagsKHR</type> <name>createFlags</name></member>
- <member><type>VkBuffer</type> <name>buffer</name></member>
- <member><type>VkDeviceSize</type> <name>offset</name><comment>Specified in bytes</comment></member>
- <member><type>VkDeviceSize</type> <name>size</name></member>
- <member><type>VkAccelerationStructureTypeKHR</type> <name>type</name></member>
- <member optional="true"><type>VkDeviceAddress</type> <name>deviceAddress</name></member>
- </type>
- <type category="struct" name="VkAabbPositionsKHR">
- <member><type>float</type> <name>minX</name></member>
- <member><type>float</type> <name>minY</name></member>
- <member><type>float</type> <name>minZ</name></member>
- <member><type>float</type> <name>maxX</name></member>
- <member><type>float</type> <name>maxY</name></member>
- <member><type>float</type> <name>maxZ</name></member>
- </type>
- <type category="struct" name="VkAabbPositionsNV" alias="VkAabbPositionsKHR"/>
- <type category="struct" name="VkTransformMatrixKHR">
- <member><type>float</type> <name>matrix</name>[3][4]</member>
- </type>
- <type category="struct" name="VkTransformMatrixNV" alias="VkTransformMatrixKHR"/>
- <type category="struct" name="VkAccelerationStructureInstanceKHR">
- <comment>The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout.</comment>
- <member><type>VkTransformMatrixKHR</type> <name>transform</name></member>
- <member><type>uint32_t</type> <name>instanceCustomIndex</name>:24</member>
- <member><type>uint32_t</type> <name>mask</name>:8</member>
- <member><type>uint32_t</type> <name>instanceShaderBindingTableRecordOffset</name>:24</member>
- <member optional="true"><type>VkGeometryInstanceFlagsKHR</type> <name>flags</name>:8</member>
- <member><type>uint64_t</type> <name>accelerationStructureReference</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureInstanceNV" alias="VkAccelerationStructureInstanceKHR"/>
- <type category="struct" name="VkAccelerationStructureDeviceAddressInfoKHR">
- <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkAccelerationStructureKHR</type> <name>accelerationStructure</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureVersionInfoKHR">
- <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member len="latexmath:[2 \times \mathtt{VK\_UUID\_SIZE}]" altlen="2*VK_UUID_SIZE">const <type>uint8_t</type>* <name>pVersionData</name></member>
- </type>
- <type category="struct" name="VkCopyAccelerationStructureInfoKHR">
- <member values="VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkAccelerationStructureKHR</type> <name>src</name></member>
- <member><type>VkAccelerationStructureKHR</type> <name>dst</name></member>
- <member><type>VkCopyAccelerationStructureModeKHR</type> <name>mode</name></member>
- </type>
- <type category="struct" name="VkCopyAccelerationStructureToMemoryInfoKHR">
- <member values="VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkAccelerationStructureKHR</type> <name>src</name></member>
- <member noautovalidity="true"><type>VkDeviceOrHostAddressKHR</type> <name>dst</name></member>
- <member><type>VkCopyAccelerationStructureModeKHR</type> <name>mode</name></member>
- </type>
- <type category="struct" name="VkCopyMemoryToAccelerationStructureInfoKHR">
- <member values="VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkDeviceOrHostAddressConstKHR</type> <name>src</name></member>
- <member><type>VkAccelerationStructureKHR</type> <name>dst</name></member>
- <member><type>VkCopyAccelerationStructureModeKHR</type> <name>mode</name></member>
- </type>
- <type category="struct" name="VkRayTracingPipelineInterfaceCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_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>maxPipelineRayPayloadSize</name></member>
- <member><type>uint32_t</type> <name>maxPipelineRayHitAttributeSize</name></member>
- </type>
- <type category="struct" name="VkPipelineLibraryCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>libraryCount</name></member>
- <member len="libraryCount">const <type>VkPipeline</type>* <name>pLibraries</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceExtendedDynamicStateFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>extendedDynamicState</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceExtendedDynamicState2FeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>extendedDynamicState2</name></member>
- <member><type>VkBool32</type> <name>extendedDynamicState2LogicOp</name></member>
- <member><type>VkBool32</type> <name>extendedDynamicState2PatchControlPoints</name></member>
- </type>
- <type category="struct" name="VkRenderPassTransformBeginInfoQCOM" structextends="VkRenderPassBeginInfo">
- <member values="VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name><comment>Pointer to next structure</comment></member>
- <member noautovalidity="true"><type>VkSurfaceTransformFlagBitsKHR</type> <name>transform</name></member>
- </type>
- <type category="struct" name="VkCopyCommandTransformInfoQCOM" structextends="VkBufferImageCopy2,VkImageBlit2">
- <member values="VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkSurfaceTransformFlagBitsKHR</type> <name>transform</name></member>
- </type>
- <type category="struct" name="VkCommandBufferInheritanceRenderPassTransformInfoQCOM" structextends="VkCommandBufferInheritanceInfo">
- <member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name><comment>Pointer to next structure</comment></member>
- <member noautovalidity="true"><type>VkSurfaceTransformFlagBitsKHR</type> <name>transform</name></member>
- <member><type>VkRect2D</type> <name>renderArea</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceDiagnosticsConfigFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>diagnosticsConfig</name></member>
- </type>
- <type category="struct" name="VkDeviceDiagnosticsConfigCreateInfoNV" structextends="VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkDeviceDiagnosticsConfigFlagsNV</type> <name>flags</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderZeroInitializeWorkgroupMemory</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR" alias="VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures"/>
- <type category="struct" name="VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderSubgroupUniformControlFlow</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceRobustness2FeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>robustBufferAccess2</name></member>
- <member><type>VkBool32</type> <name>robustImageAccess2</name></member>
- <member><type>VkBool32</type> <name>nullDescriptor</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceRobustness2PropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>VkDeviceSize</type> <name>robustStorageBufferAccessSizeAlignment</name></member>
- <member limittype="noauto"><type>VkDeviceSize</type> <name>robustUniformBufferAccessSizeAlignment</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceImageRobustnessFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>robustImageAccess</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceImageRobustnessFeaturesEXT" alias="VkPhysicalDeviceImageRobustnessFeatures"/>
- <type category="struct" name="VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>workgroupMemoryExplicitLayout</name></member>
- <member><type>VkBool32</type> <name>workgroupMemoryExplicitLayoutScalarBlockLayout</name></member>
- <member><type>VkBool32</type> <name>workgroupMemoryExplicitLayout8BitAccess</name></member>
- <member><type>VkBool32</type> <name>workgroupMemoryExplicitLayout16BitAccess</name></member>
- </type>
- <type category="struct" name="VkPhysicalDevicePortabilitySubsetFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>constantAlphaColorBlendFactors</name></member>
- <member><type>VkBool32</type> <name>events</name></member>
- <member><type>VkBool32</type> <name>imageViewFormatReinterpretation</name></member>
- <member><type>VkBool32</type> <name>imageViewFormatSwizzle</name></member>
- <member><type>VkBool32</type> <name>imageView2DOn3DImage</name></member>
- <member><type>VkBool32</type> <name>multisampleArrayImage</name></member>
- <member><type>VkBool32</type> <name>mutableComparisonSamplers</name></member>
- <member><type>VkBool32</type> <name>pointPolygons</name></member>
- <member><type>VkBool32</type> <name>samplerMipLodBias</name></member>
- <member><type>VkBool32</type> <name>separateStencilMaskRef</name></member>
- <member><type>VkBool32</type> <name>shaderSampleRateInterpolationFunctions</name></member>
- <member><type>VkBool32</type> <name>tessellationIsolines</name></member>
- <member><type>VkBool32</type> <name>tessellationPointMode</name></member>
- <member><type>VkBool32</type> <name>triangleFans</name></member>
- <member><type>VkBool32</type> <name>vertexAttributeAccessBeyondStride</name></member>
- </type>
- <type category="struct" name="VkPhysicalDevicePortabilitySubsetPropertiesKHR" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>minVertexInputBindingStrideAlignment</name></member>
- </type>
- <type category="struct" name="VkPhysicalDevice4444FormatsFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>formatA4R4G4B4</name></member>
- <member><type>VkBool32</type> <name>formatA4B4G4R4</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceSubpassShadingFeaturesHUAWEI" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>subpassShading</name></member>
- </type>
- <type category="struct" name="VkBufferCopy2">
- <member values="VK_STRUCTURE_TYPE_BUFFER_COPY_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceSize</type> <name>srcOffset</name><comment>Specified in bytes</comment></member>
- <member><type>VkDeviceSize</type> <name>dstOffset</name><comment>Specified in bytes</comment></member>
- <member noautovalidity="true"><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member>
- </type>
- <type category="struct" name="VkBufferCopy2KHR" alias="VkBufferCopy2"/>
- <type category="struct" name="VkImageCopy2">
- <member values="VK_STRUCTURE_TYPE_IMAGE_COPY_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImageSubresourceLayers</type> <name>srcSubresource</name></member>
- <member><type>VkOffset3D</type> <name>srcOffset</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member>
- <member><type>VkImageSubresourceLayers</type> <name>dstSubresource</name></member>
- <member><type>VkOffset3D</type> <name>dstOffset</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member>
- <member><type>VkExtent3D</type> <name>extent</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member>
- </type>
- <type category="struct" name="VkImageCopy2KHR" alias="VkImageCopy2"/>
- <type category="struct" name="VkImageBlit2">
- <member values="VK_STRUCTURE_TYPE_IMAGE_BLIT_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImageSubresourceLayers</type> <name>srcSubresource</name></member>
- <member><type>VkOffset3D</type> <name>srcOffsets</name>[2]<comment>Specified in pixels for both compressed and uncompressed images</comment></member>
- <member><type>VkImageSubresourceLayers</type> <name>dstSubresource</name></member>
- <member><type>VkOffset3D</type> <name>dstOffsets</name>[2]<comment>Specified in pixels for both compressed and uncompressed images</comment></member>
- </type>
- <type category="struct" name="VkImageBlit2KHR" alias="VkImageBlit2"/>
- <type category="struct" name="VkBufferImageCopy2">
- <member values="VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceSize</type> <name>bufferOffset</name><comment>Specified in bytes</comment></member>
- <member><type>uint32_t</type> <name>bufferRowLength</name><comment>Specified in texels</comment></member>
- <member><type>uint32_t</type> <name>bufferImageHeight</name></member>
- <member><type>VkImageSubresourceLayers</type> <name>imageSubresource</name></member>
- <member><type>VkOffset3D</type> <name>imageOffset</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member>
- <member><type>VkExtent3D</type> <name>imageExtent</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member>
- </type>
- <type category="struct" name="VkBufferImageCopy2KHR" alias="VkBufferImageCopy2"/>
- <type category="struct" name="VkImageResolve2">
- <member values="VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImageSubresourceLayers</type> <name>srcSubresource</name></member>
- <member><type>VkOffset3D</type> <name>srcOffset</name></member>
- <member><type>VkImageSubresourceLayers</type> <name>dstSubresource</name></member>
- <member><type>VkOffset3D</type> <name>dstOffset</name></member>
- <member><type>VkExtent3D</type> <name>extent</name></member>
- </type>
- <type category="struct" name="VkImageResolve2KHR" alias="VkImageResolve2"/>
- <type category="struct" name="VkCopyBufferInfo2">
- <member values="VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBuffer</type> <name>srcBuffer</name></member>
- <member><type>VkBuffer</type> <name>dstBuffer</name></member>
- <member><type>uint32_t</type> <name>regionCount</name></member>
- <member len="regionCount">const <type>VkBufferCopy2</type>* <name>pRegions</name></member>
- </type>
- <type category="struct" name="VkCopyBufferInfo2KHR" alias="VkCopyBufferInfo2"/>
- <type category="struct" name="VkCopyImageInfo2">
- <member values="VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImage</type> <name>srcImage</name></member>
- <member><type>VkImageLayout</type> <name>srcImageLayout</name></member>
- <member><type>VkImage</type> <name>dstImage</name></member>
- <member><type>VkImageLayout</type> <name>dstImageLayout</name></member>
- <member><type>uint32_t</type> <name>regionCount</name></member>
- <member len="regionCount">const <type>VkImageCopy2</type>* <name>pRegions</name></member>
- </type>
- <type category="struct" name="VkCopyImageInfo2KHR" alias="VkCopyImageInfo2"/>
- <type category="struct" name="VkBlitImageInfo2">
- <member values="VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImage</type> <name>srcImage</name></member>
- <member><type>VkImageLayout</type> <name>srcImageLayout</name></member>
- <member><type>VkImage</type> <name>dstImage</name></member>
- <member><type>VkImageLayout</type> <name>dstImageLayout</name></member>
- <member><type>uint32_t</type> <name>regionCount</name></member>
- <member len="regionCount">const <type>VkImageBlit2</type>* <name>pRegions</name></member>
- <member><type>VkFilter</type> <name>filter</name></member>
- </type>
- <type category="struct" name="VkBlitImageInfo2KHR" alias="VkBlitImageInfo2"/>
- <type category="struct" name="VkCopyBufferToImageInfo2">
- <member values="VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBuffer</type> <name>srcBuffer</name></member>
- <member><type>VkImage</type> <name>dstImage</name></member>
- <member><type>VkImageLayout</type> <name>dstImageLayout</name></member>
- <member><type>uint32_t</type> <name>regionCount</name></member>
- <member len="regionCount">const <type>VkBufferImageCopy2</type>* <name>pRegions</name></member>
- </type>
- <type category="struct" name="VkCopyBufferToImageInfo2KHR" alias="VkCopyBufferToImageInfo2"/>
- <type category="struct" name="VkCopyImageToBufferInfo2">
- <member values="VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImage</type> <name>srcImage</name></member>
- <member><type>VkImageLayout</type> <name>srcImageLayout</name></member>
- <member><type>VkBuffer</type> <name>dstBuffer</name></member>
- <member><type>uint32_t</type> <name>regionCount</name></member>
- <member len="regionCount">const <type>VkBufferImageCopy2</type>* <name>pRegions</name></member>
- </type>
- <type category="struct" name="VkCopyImageToBufferInfo2KHR" alias="VkCopyImageToBufferInfo2"/>
- <type category="struct" name="VkResolveImageInfo2">
- <member values="VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImage</type> <name>srcImage</name></member>
- <member><type>VkImageLayout</type> <name>srcImageLayout</name></member>
- <member><type>VkImage</type> <name>dstImage</name></member>
- <member><type>VkImageLayout</type> <name>dstImageLayout</name></member>
- <member><type>uint32_t</type> <name>regionCount</name></member>
- <member len="regionCount">const <type>VkImageResolve2</type>* <name>pRegions</name></member>
- </type>
- <type category="struct" name="VkResolveImageInfo2KHR" alias="VkResolveImageInfo2"/>
- <type category="struct" name="VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderImageInt64Atomics</name></member>
- <member><type>VkBool32</type> <name>sparseImageInt64Atomics</name></member>
- </type>
- <type category="struct" name="VkFragmentShadingRateAttachmentInfoKHR" structextends="VkSubpassDescription2">
- <member values="VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true">const <type>VkAttachmentReference2</type>* <name>pFragmentShadingRateAttachment</name></member>
- <member><type>VkExtent2D</type> <name>shadingRateAttachmentTexelSize</name></member>
- </type>
- <type category="struct" name="VkPipelineFragmentShadingRateStateCreateInfoKHR" structextends="VkGraphicsPipelineCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkExtent2D</type> <name>fragmentSize</name></member>
- <member><type>VkFragmentShadingRateCombinerOpKHR</type> <name>combinerOps</name>[2]</member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFragmentShadingRateFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>pipelineFragmentShadingRate</name></member>
- <member><type>VkBool32</type> <name>primitiveFragmentShadingRate</name></member>
- <member><type>VkBool32</type> <name>attachmentFragmentShadingRate</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFragmentShadingRatePropertiesKHR" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="min"><type>VkExtent2D</type> <name>minFragmentShadingRateAttachmentTexelSize</name></member>
- <member limittype="max"><type>VkExtent2D</type> <name>maxFragmentShadingRateAttachmentTexelSize</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>maxFragmentShadingRateAttachmentTexelSizeAspectRatio</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>primitiveFragmentShadingRateWithMultipleViewports</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>layeredShadingRateAttachments</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>fragmentShadingRateNonTrivialCombinerOps</name></member>
- <member limittype="max"><type>VkExtent2D</type> <name>maxFragmentSize</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>maxFragmentSizeAspectRatio</name></member>
- <member limittype="noauto"><type>uint32_t</type> <name>maxFragmentShadingRateCoverageSamples</name></member>
- <member limittype="max"><type>VkSampleCountFlagBits</type> <name>maxFragmentShadingRateRasterizationSamples</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>fragmentShadingRateWithShaderDepthStencilWrites</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>fragmentShadingRateWithSampleMask</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>fragmentShadingRateWithShaderSampleMask</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>fragmentShadingRateWithConservativeRasterization</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>fragmentShadingRateWithFragmentShaderInterlock</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>fragmentShadingRateWithCustomSampleLocations</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>fragmentShadingRateStrictMultiplyCombiner</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFragmentShadingRateKHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkSampleCountFlags</type> <name>sampleCounts</name></member>
- <member><type>VkExtent2D</type> <name>fragmentSize</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderTerminateInvocationFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderTerminateInvocation</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR" alias="VkPhysicalDeviceShaderTerminateInvocationFeatures"/>
- <type category="struct" name="VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>fragmentShadingRateEnums</name></member>
- <member><type>VkBool32</type> <name>supersampleFragmentShadingRates</name></member>
- <member><type>VkBool32</type> <name>noInvocationFragmentShadingRates</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="bitmask"><type>VkSampleCountFlagBits</type> <name>maxFragmentShadingRateInvocationCount</name></member>
- </type>
- <type category="struct" name="VkPipelineFragmentShadingRateEnumStateCreateInfoNV" structextends="VkGraphicsPipelineCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkFragmentShadingRateTypeNV</type> <name>shadingRateType</name></member>
- <member><type>VkFragmentShadingRateNV</type> <name>shadingRate</name></member>
- <member><type>VkFragmentShadingRateCombinerOpKHR</type> <name>combinerOps</name>[2]</member>
- </type>
- <type category="struct" name="VkAccelerationStructureBuildSizesInfoKHR">
- <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceSize</type> <name>accelerationStructureSize</name></member>
- <member><type>VkDeviceSize</type> <name>updateScratchSize</name></member>
- <member><type>VkDeviceSize</type> <name>buildScratchSize</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>mutableDescriptorType</name></member>
- </type>
- <type category="struct" name="VkMutableDescriptorTypeListVALVE">
- <member optional="true"><type>uint32_t</type> <name>descriptorTypeCount</name></member>
- <member len="descriptorTypeCount">const <type>VkDescriptorType</type>* <name>pDescriptorTypes</name></member>
- </type>
- <type category="struct" name="VkMutableDescriptorTypeCreateInfoVALVE" structextends="VkDescriptorSetLayoutCreateInfo,VkDescriptorPoolCreateInfo">
- <member values="VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>mutableDescriptorTypeListCount</name></member>
- <member len="mutableDescriptorTypeListCount">const <type>VkMutableDescriptorTypeListVALVE</type>* <name>pMutableDescriptorTypeLists</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceDepthClipControlFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>depthClipControl</name></member>
- </type>
- <type category="struct" name="VkPipelineViewportDepthClipControlCreateInfoEXT" structextends="VkPipelineViewportStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>negativeOneToOne</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>vertexInputDynamicState</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceExternalMemoryRDMAFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>externalMemoryRDMA</name></member>
- </type>
- <type category="struct" name="VkVertexInputBindingDescription2EXT">
- <member values="VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>binding</name></member>
- <member><type>uint32_t</type> <name>stride</name></member>
- <member><type>VkVertexInputRate</type> <name>inputRate</name></member>
- <member><type>uint32_t</type> <name>divisor</name></member>
- </type>
- <type category="struct" name="VkVertexInputAttributeDescription2EXT">
- <member values="VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>location</name><comment>location of the shader vertex attrib</comment></member>
- <member><type>uint32_t</type> <name>binding</name><comment>Vertex buffer binding id</comment></member>
- <member><type>VkFormat</type> <name>format</name><comment>format of source data</comment></member>
- <member><type>uint32_t</type> <name>offset</name><comment>Offset of first element in bytes from base of vertex</comment></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceColorWriteEnableFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>colorWriteEnable</name></member>
- </type>
- <type category="struct" name="VkPipelineColorWriteCreateInfoEXT" structextends="VkPipelineColorBlendStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>attachmentCount</name><comment># of pAttachments</comment></member>
- <member len="attachmentCount">const <type>VkBool32</type>* <name>pColorWriteEnables</name></member>
- </type>
- <type category="struct" name="VkMemoryBarrier2" structextends="VkSubpassDependency2">
- <member values="VK_STRUCTURE_TYPE_MEMORY_BARRIER_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineStageFlags2</type> <name>srcStageMask</name></member>
- <member optional="true"><type>VkAccessFlags2</type> <name>srcAccessMask</name></member>
- <member optional="true"><type>VkPipelineStageFlags2</type> <name>dstStageMask</name></member>
- <member optional="true"><type>VkAccessFlags2</type> <name>dstAccessMask</name></member>
- </type>
- <type category="struct" name="VkMemoryBarrier2KHR" alias="VkMemoryBarrier2"/>
- <type category="struct" name="VkImageMemoryBarrier2">
- <member values="VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineStageFlags2</type> <name>srcStageMask</name></member>
- <member optional="true"><type>VkAccessFlags2</type> <name>srcAccessMask</name></member>
- <member optional="true"><type>VkPipelineStageFlags2</type> <name>dstStageMask</name></member>
- <member optional="true"><type>VkAccessFlags2</type> <name>dstAccessMask</name></member>
- <member><type>VkImageLayout</type> <name>oldLayout</name></member>
- <member><type>VkImageLayout</type> <name>newLayout</name></member>
- <member><type>uint32_t</type> <name>srcQueueFamilyIndex</name></member>
- <member><type>uint32_t</type> <name>dstQueueFamilyIndex</name></member>
- <member><type>VkImage</type> <name>image</name></member>
- <member><type>VkImageSubresourceRange</type> <name>subresourceRange</name></member>
- </type>
- <type category="struct" name="VkImageMemoryBarrier2KHR" alias="VkImageMemoryBarrier2"/>
- <type category="struct" name="VkBufferMemoryBarrier2">
- <member values="VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkPipelineStageFlags2</type> <name>srcStageMask</name></member>
- <member optional="true"><type>VkAccessFlags2</type> <name>srcAccessMask</name></member>
- <member optional="true"><type>VkPipelineStageFlags2</type> <name>dstStageMask</name></member>
- <member optional="true"><type>VkAccessFlags2</type> <name>dstAccessMask</name></member>
- <member><type>uint32_t</type> <name>srcQueueFamilyIndex</name></member>
- <member><type>uint32_t</type> <name>dstQueueFamilyIndex</name></member>
- <member><type>VkBuffer</type> <name>buffer</name></member>
- <member><type>VkDeviceSize</type> <name>offset</name></member>
- <member><type>VkDeviceSize</type> <name>size</name></member>
- </type>
- <type category="struct" name="VkBufferMemoryBarrier2KHR" alias="VkBufferMemoryBarrier2"/>
- <type category="struct" name="VkDependencyInfo">
- <member values="VK_STRUCTURE_TYPE_DEPENDENCY_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkDependencyFlags</type> <name>dependencyFlags</name></member>
- <member optional="true"><type>uint32_t</type> <name>memoryBarrierCount</name></member>
- <member len="memoryBarrierCount">const <type>VkMemoryBarrier2</type>* <name>pMemoryBarriers</name></member>
- <member optional="true"><type>uint32_t</type> <name>bufferMemoryBarrierCount</name></member>
- <member len="bufferMemoryBarrierCount">const <type>VkBufferMemoryBarrier2</type>* <name>pBufferMemoryBarriers</name></member>
- <member optional="true"><type>uint32_t</type> <name>imageMemoryBarrierCount</name></member>
- <member len="imageMemoryBarrierCount">const <type>VkImageMemoryBarrier2</type>* <name>pImageMemoryBarriers</name></member>
- </type>
- <type category="struct" name="VkDependencyInfoKHR" alias="VkDependencyInfo"/>
- <type category="struct" name="VkSemaphoreSubmitInfo">
- <member values="VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkSemaphore</type> <name>semaphore</name></member>
- <member><type>uint64_t</type> <name>value</name></member>
- <member optional="true"><type>VkPipelineStageFlags2</type> <name>stageMask</name></member>
- <member><type>uint32_t</type> <name>deviceIndex</name></member>
- </type>
- <type category="struct" name="VkSemaphoreSubmitInfoKHR" alias="VkSemaphoreSubmitInfo"/>
- <type category="struct" name="VkCommandBufferSubmitInfo">
- <member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkCommandBuffer</type> <name>commandBuffer</name></member>
- <member><type>uint32_t</type> <name>deviceMask</name></member>
- </type>
- <type category="struct" name="VkCommandBufferSubmitInfoKHR" alias="VkCommandBufferSubmitInfo"/>
- <type category="struct" name="VkSubmitInfo2">
- <member values="VK_STRUCTURE_TYPE_SUBMIT_INFO_2"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkSubmitFlags</type> <name>flags</name></member>
- <member optional="true"><type>uint32_t</type> <name>waitSemaphoreInfoCount</name></member>
- <member len="waitSemaphoreInfoCount">const <type>VkSemaphoreSubmitInfo</type>* <name>pWaitSemaphoreInfos</name></member>
- <member optional="true"><type>uint32_t</type> <name>commandBufferInfoCount</name></member>
- <member len="commandBufferInfoCount">const <type>VkCommandBufferSubmitInfo</type>* <name>pCommandBufferInfos</name></member>
- <member optional="true"><type>uint32_t</type> <name>signalSemaphoreInfoCount</name></member>
- <member len="signalSemaphoreInfoCount">const <type>VkSemaphoreSubmitInfo</type>* <name>pSignalSemaphoreInfos</name></member>
- </type>
- <type category="struct" name="VkSubmitInfo2KHR" alias="VkSubmitInfo2"/>
- <type category="struct" name="VkQueueFamilyCheckpointProperties2NV" structextends="VkQueueFamilyProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkPipelineStageFlags2</type> <name>checkpointExecutionStageMask</name></member>
- </type>
- <type category="struct" name="VkCheckpointData2NV" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkPipelineStageFlags2</type> <name>stage</name></member>
- <member noautovalidity="true"><type>void</type>* <name>pCheckpointMarker</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceSynchronization2Features" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>synchronization2</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceSynchronization2FeaturesKHR" alias="VkPhysicalDeviceSynchronization2Features"/>
- <type category="struct" name="VkVideoQueueFamilyProperties2KHR" structextends="VkQueueFamilyProperties2">
- <member values="VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkVideoCodecOperationFlagsKHR</type> <name>videoCodecOperations</name></member>
- </type>
- <type category="struct" name="VkQueueFamilyQueryResultStatusProperties2KHR" structextends="VkQueueFamilyProperties2">
- <member values="VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>supported</name></member>
- </type>
- <type category="struct" name="VkVideoProfilesKHR" structextends="VkFormatProperties2,VkImageCreateInfo,VkImageViewCreateInfo,VkBufferCreateInfo">
- <member values="VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>profileCount</name></member>
- <member>const <type>VkVideoProfileKHR</type>* <name>pProfiles</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceVideoFormatInfoKHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkImageUsageFlags</type> <name>imageUsage</name></member>
- <member>const <type>VkVideoProfilesKHR</type>* <name>pVideoProfiles</name></member>
- </type>
- <type category="struct" name="VkVideoFormatPropertiesKHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkFormat</type> <name>format</name></member>
- </type>
- <type category="struct" name="VkVideoProfileKHR" structextends="VkQueryPoolCreateInfo,VkFormatProperties2,VkImageCreateInfo,VkImageViewCreateInfo,VkBufferCreateInfo">
- <member values="VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkVideoCodecOperationFlagBitsKHR</type> <name>videoCodecOperation</name></member>
- <member><type>VkVideoChromaSubsamplingFlagsKHR</type> <name>chromaSubsampling</name></member>
- <member><type>VkVideoComponentBitDepthFlagsKHR</type> <name>lumaBitDepth</name></member>
- <member><type>VkVideoComponentBitDepthFlagsKHR</type> <name>chromaBitDepth</name></member>
- </type>
- <type category="struct" name="VkVideoCapabilitiesKHR" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkVideoCapabilityFlagsKHR</type> <name>capabilityFlags</name></member>
- <member><type>VkDeviceSize</type> <name>minBitstreamBufferOffsetAlignment</name></member>
- <member><type>VkDeviceSize</type> <name>minBitstreamBufferSizeAlignment</name></member>
- <member><type>VkExtent2D</type> <name>videoPictureExtentGranularity</name></member>
- <member><type>VkExtent2D</type> <name>minExtent</name></member>
- <member><type>VkExtent2D</type> <name>maxExtent</name></member>
- <member><type>uint32_t</type> <name>maxReferencePicturesSlotsCount</name></member>
- <member><type>uint32_t</type> <name>maxReferencePicturesActiveCount</name></member>
- </type>
- <type category="struct" name="VkVideoGetMemoryPropertiesKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_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>memoryBindIndex</name></member>
- <member><type>VkMemoryRequirements2</type>* <name>pMemoryRequirements</name></member>
- </type>
- <type category="struct" name="VkVideoBindMemoryKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_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>memoryBindIndex</name></member>
- <member><type>VkDeviceMemory</type> <name>memory</name></member>
- <member><type>VkDeviceSize</type> <name>memoryOffset</name></member>
- <member><type>VkDeviceSize</type> <name>memorySize</name></member>
- </type>
- <type category="struct" name="VkVideoPictureResourceKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkOffset2D</type> <name>codedOffset</name><comment>The offset to be used for the picture resource, currently only used in field mode</comment></member>
- <member><type>VkExtent2D</type> <name>codedExtent</name><comment>The extent to be used for the picture resource</comment></member>
- <member><type>uint32_t</type> <name>baseArrayLayer</name><comment>TThe first array layer to be accessed for the Decode or Encode Operations</comment></member>
- <member><type>VkImageView</type> <name>imageViewBinding</name><comment>The ImageView binding of the resource</comment></member>
- </type>
- <type category="struct" name="VkVideoReferenceSlotKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>int8_t</type> <name>slotIndex</name><comment>The reference slot index</comment></member>
- <member>const <type>VkVideoPictureResourceKHR</type>* <name>pPictureResource</name><comment>The reference picture resource</comment></member>
- </type>
- <type category="struct" name="VkVideoDecodeInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkVideoDecodeFlagsKHR</type> <name>flags</name></member>
- <member><type>VkOffset2D</type> <name>codedOffset</name></member>
- <member><type>VkExtent2D</type> <name>codedExtent</name></member>
- <member><type>VkBuffer</type> <name>srcBuffer</name></member>
- <member><type>VkDeviceSize</type> <name>srcBufferOffset</name></member>
- <member><type>VkDeviceSize</type> <name>srcBufferRange</name></member>
- <member><type>VkVideoPictureResourceKHR</type> <name>dstPictureResource</name></member>
- <member>const <type>VkVideoReferenceSlotKHR</type>* <name>pSetupReferenceSlot</name></member>
- <member optional="true"><type>uint32_t</type> <name>referenceSlotCount</name></member>
- <member len="referenceSlotCount">const <type>VkVideoReferenceSlotKHR</type>* <name>pReferenceSlots</name></member>
- </type>
- <comment>Video Decode Codec Standard specific structures</comment>
- <type category="include" name="vk_video/vulkan_video_codec_h264std.h">#include "vk_video/vulkan_video_codec_h264std.h"</type>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264ProfileIdc"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264Level"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264ChromaFormatIdc"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264PocType"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264SpsFlags"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264ScalingLists"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264SequenceParameterSetVui"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264AspectRatioIdc"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264HrdParameters"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264SpsVuiFlags"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264WeightedBipredIdc"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264PpsFlags"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264SliceType"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264CabacInitIdc"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264DisableDeblockingFilterIdc"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264PictureType"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264ModificationOfPicNumsIdc"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264MemMgmtControlOp"/>
- <type category="include" name="vk_video/vulkan_video_codec_h264std_decode.h">#include "vk_video/vulkan_video_codec_h264std_decode.h"</type>
- <type requires="vk_video/vulkan_video_codec_h264std_decode.h" name="StdVideoDecodeH264PictureInfo"/>
- <type requires="vk_video/vulkan_video_codec_h264std_decode.h" name="StdVideoDecodeH264ReferenceInfo"/>
- <type requires="vk_video/vulkan_video_codec_h264std_decode.h" name="StdVideoDecodeH264Mvc"/>
- <type requires="vk_video/vulkan_video_codec_h264std_decode.h" name="StdVideoDecodeH264PictureInfoFlags"/>
- <type requires="vk_video/vulkan_video_codec_h264std_decode.h" name="StdVideoDecodeH264ReferenceInfoFlags"/>
- <type requires="vk_video/vulkan_video_codec_h264std_decode.h" name="StdVideoDecodeH264MvcElement"/>
- <type requires="vk_video/vulkan_video_codec_h264std_decode.h" name="StdVideoDecodeH264MvcElementFlags"/>
- <type category="struct" name="VkVideoDecodeH264ProfileEXT" structextends="VkVideoProfileKHR,VkQueryPoolCreateInfo,VkFormatProperties2,VkImageCreateInfo,VkImageViewCreateInfo,VkBufferCreateInfo">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>StdVideoH264ProfileIdc</type> <name>stdProfileIdc</name></member>
- <member noautovalidity="true"><type>VkVideoDecodeH264PictureLayoutFlagsEXT</type> <name>pictureLayout</name></member>
- </type>
- <type category="struct" name="VkVideoDecodeH264CapabilitiesEXT" returnedonly="true" structextends="VkVideoCapabilitiesKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>maxLevel</name></member>
- <member><type>VkOffset2D</type> <name>fieldOffsetGranularity</name></member>
- <member><type>VkExtensionProperties</type> <name>stdExtensionVersion</name></member>
- </type>
- <type category="struct" name="VkVideoDecodeH264SessionCreateInfoEXT" structextends="VkVideoSessionCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkVideoDecodeH264CreateFlagsEXT</type> <name>flags</name></member>
- <member>const <type>VkExtensionProperties</type>* <name>pStdExtensionVersion</name></member>
- </type>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264SequenceParameterSet"/>
- <type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264PictureParameterSet"/>
- <type category="struct" name="VkVideoDecodeH264SessionParametersAddInfoEXT" structextends="VkVideoSessionParametersUpdateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>spsStdCount</name></member>
- <member len="spsStdCount" optional="true">const <type>StdVideoH264SequenceParameterSet</type>* <name>pSpsStd</name></member>
- <member><type>uint32_t</type> <name>ppsStdCount</name></member>
- <member len="ppsStdCount" optional="true">const <type>StdVideoH264PictureParameterSet</type>* <name>pPpsStd</name><comment>List of Picture Parameters associated with the spsStd, above</comment></member>
- </type>
- <type category="struct" name="VkVideoDecodeH264SessionParametersCreateInfoEXT" structextends="VkVideoSessionParametersCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>maxSpsStdCount</name></member>
- <member><type>uint32_t</type> <name>maxPpsStdCount</name></member>
- <member optional="true">const <type>VkVideoDecodeH264SessionParametersAddInfoEXT</type>* <name>pParametersAddInfo</name></member>
- </type>
- <type category="struct" name="VkVideoDecodeH264PictureInfoEXT" structextends="VkVideoDecodeInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
- <member>const <type>StdVideoDecodeH264PictureInfo</type>* <name>pStdPictureInfo</name></member>
- <member><type>uint32_t</type> <name>slicesCount</name></member>
- <member len="slicesCount">const <type>uint32_t</type>* <name>pSlicesDataOffsets</name></member>
- </type>
- <type category="struct" name="VkVideoDecodeH264DpbSlotInfoEXT" structextends="VkVideoReferenceSlotKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member>const <type>StdVideoDecodeH264ReferenceInfo</type>* <name>pStdReferenceInfo</name></member>
- </type>
- <type category="struct" name="VkVideoDecodeH264MvcEXT" structextends="VkVideoDecodeH264PictureInfoEXT">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true" noautovalidity="true">const <type>void</type>*<name>pNext</name></member>
- <member>const <type>StdVideoDecodeH264Mvc</type>* <name>pStdMvc</name></member>
- </type>
- <type category="include" name="vk_video/vulkan_video_codec_h265std.h">#include "vk_video/vulkan_video_codec_h265std.h"</type>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265ProfileIdc"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265VideoParameterSet"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265SequenceParameterSet"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265PictureParameterSet"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265DecPicBufMgr"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265HrdParameters"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265VpsFlags"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265Level"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265SpsFlags"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265ScalingLists"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265SequenceParameterSetVui"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265PredictorPaletteEntries"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265PpsFlags"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265SubLayerHrdParameters"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265HrdFlags"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265SpsVuiFlags"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265SliceType"/>
- <type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265PictureType"/>
- <type category="include" name="vk_video/vulkan_video_codec_h265std_decode.h">#include "vk_video/vulkan_video_codec_h265std_decode.h"</type>
- <type requires="vk_video/vulkan_video_codec_h265std_decode.h" name="StdVideoDecodeH265PictureInfo"/>
- <type requires="vk_video/vulkan_video_codec_h265std_decode.h" name="StdVideoDecodeH265ReferenceInfo"/>
- <type requires="vk_video/vulkan_video_codec_h265std_decode.h" name="StdVideoDecodeH265PictureInfoFlags"/>
- <type requires="vk_video/vulkan_video_codec_h265std_decode.h" name="StdVideoDecodeH265ReferenceInfoFlags"/>
- <type category="struct" name="VkVideoDecodeH265ProfileEXT" structextends="VkVideoProfileKHR,VkQueryPoolCreateInfo,VkFormatProperties2,VkImageCreateInfo,VkImageViewCreateInfo,VkBufferCreateInfo">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>StdVideoH265ProfileIdc</type> <name>stdProfileIdc</name></member>
- </type>
- <type category="struct" name="VkVideoDecodeH265CapabilitiesEXT" returnedonly="true" structextends="VkVideoCapabilitiesKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>maxLevel</name></member>
- <member><type>VkExtensionProperties</type> <name>stdExtensionVersion</name></member>
- </type>
- <type category="struct" name="VkVideoDecodeH265SessionCreateInfoEXT" structextends="VkVideoSessionCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkVideoDecodeH265CreateFlagsEXT</type> <name>flags</name></member>
- <member>const <type>VkExtensionProperties</type>* <name>pStdExtensionVersion</name></member>
- </type>
- <type category="struct" name="VkVideoDecodeH265SessionParametersAddInfoEXT" structextends="VkVideoSessionParametersUpdateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>spsStdCount</name></member>
- <member len="spsStdCount" optional="true">const <type>StdVideoH265SequenceParameterSet</type>* <name>pSpsStd</name></member>
- <member><type>uint32_t</type> <name>ppsStdCount</name></member>
- <member len="ppsStdCount" optional="true">const <type>StdVideoH265PictureParameterSet</type>* <name>pPpsStd</name><comment>List of Picture Parameters associated with the spsStd, above</comment></member>
- </type>
- <type category="struct" name="VkVideoDecodeH265SessionParametersCreateInfoEXT" structextends="VkVideoSessionParametersCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>maxSpsStdCount</name></member>
- <member><type>uint32_t</type> <name>maxPpsStdCount</name></member>
- <member optional="true">const <type>VkVideoDecodeH265SessionParametersAddInfoEXT</type>* <name>pParametersAddInfo</name></member>
- </type>
- <type category="struct" name="VkVideoDecodeH265PictureInfoEXT" structextends="VkVideoDecodeInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>StdVideoDecodeH265PictureInfo</type>* <name>pStdPictureInfo</name></member>
- <member><type>uint32_t</type> <name>slicesCount</name></member>
- <member len="slicesCount">const <type>uint32_t</type>* <name>pSlicesDataOffsets</name></member>
- </type>
- <type category="struct" name="VkVideoDecodeH265DpbSlotInfoEXT" structextends="VkVideoReferenceSlotKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member>const <type>StdVideoDecodeH265ReferenceInfo</type>* <name>pStdReferenceInfo</name></member>
- </type>
- <type category="struct" name="VkVideoSessionCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_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>queueFamilyIndex</name></member>
- <member optional="true"><type>VkVideoSessionCreateFlagsKHR</type> <name>flags</name></member>
- <member>const <type>VkVideoProfileKHR</type>* <name>pVideoProfile</name></member>
- <member><type>VkFormat</type> <name>pictureFormat</name></member>
- <member><type>VkExtent2D</type> <name>maxCodedExtent</name></member>
- <member><type>VkFormat</type> <name>referencePicturesFormat</name></member>
- <member><type>uint32_t</type> <name>maxReferencePicturesSlotsCount</name></member>
- <member><type>uint32_t</type> <name>maxReferencePicturesActiveCount</name></member>
- </type>
- <type category="struct" name="VkVideoSessionParametersCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkVideoSessionParametersKHR</type> <name>videoSessionParametersTemplate</name></member>
- <member><type>VkVideoSessionKHR</type> <name>videoSession</name></member>
- </type>
- <type category="struct" name="VkVideoSessionParametersUpdateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_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>updateSequenceCount</name></member>
- </type>
- <type category="struct" name="VkVideoBeginCodingInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkVideoBeginCodingFlagsKHR</type> <name>flags</name></member>
- <member><type>VkVideoCodingQualityPresetFlagsKHR</type> <name>codecQualityPreset</name></member>
- <member><type>VkVideoSessionKHR</type> <name>videoSession</name></member>
- <member optional="true"><type>VkVideoSessionParametersKHR</type> <name>videoSessionParameters</name></member>
- <member optional="true"><type>uint32_t</type> <name>referenceSlotCount</name></member>
- <member len="referenceSlotCount">const <type>VkVideoReferenceSlotKHR</type>* <name>pReferenceSlots</name></member>
- </type>
- <type category="struct" name="VkVideoEndCodingInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkVideoEndCodingFlagsKHR</type> <name>flags</name></member>
- </type>
- <type category="struct" name="VkVideoCodingControlInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkVideoCodingControlFlagsKHR</type> <name>flags</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkVideoEncodeFlagsKHR</type> <name>flags</name></member>
- <member><type>uint32_t</type> <name>qualityLevel</name></member>
- <member><type>VkExtent2D</type> <name>codedExtent</name></member>
- <member><type>VkBuffer</type> <name>dstBitstreamBuffer</name></member>
- <member><type>VkDeviceSize</type> <name>dstBitstreamBufferOffset</name></member>
- <member><type>VkDeviceSize</type> <name>dstBitstreamBufferMaxRange</name></member>
- <member><type>VkVideoPictureResourceKHR</type> <name>srcPictureResource</name></member>
- <member>const <type>VkVideoReferenceSlotKHR</type>* <name>pSetupReferenceSlot</name></member>
- <member optional="true"><type>uint32_t</type> <name>referenceSlotCount</name></member>
- <member len="referenceSlotCount">const <type>VkVideoReferenceSlotKHR</type>* <name>pReferenceSlots</name></member>
- <member><type>uint32_t</type> <name>precedingExternallyEncodedBytes</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeRateControlInfoKHR" structextends="VkVideoCodingControlInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkVideoEncodeRateControlFlagsKHR</type> <name>flags</name></member>
- <member><type>VkVideoEncodeRateControlModeFlagBitsKHR</type> <name>rateControlMode</name></member>
- <member><type>uint8_t</type> <name>layerCount</name></member>
- <member len="layerCount">const <type>VkVideoEncodeRateControlLayerInfoKHR</type>* <name>pLayerConfigs</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeRateControlLayerInfoKHR" structextends="VkVideoCodingControlInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member>const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>averageBitrate</name></member>
- <member><type>uint32_t</type> <name>maxBitrate</name></member>
- <member><type>uint32_t</type> <name>frameRateNumerator</name></member>
- <member><type>uint32_t</type> <name>frameRateDenominator</name></member>
- <member><type>uint32_t</type> <name>virtualBufferSizeInMs</name></member>
- <member><type>uint32_t</type> <name>initialVirtualBufferSizeInMs</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeCapabilitiesKHR" structextends="VkVideoCapabilitiesKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkVideoEncodeCapabilityFlagsKHR</type> <name>flags</name></member>
- <member><type>VkVideoEncodeRateControlModeFlagsKHR</type> <name>rateControlModes</name></member>
- <member><type>uint8_t</type> <name>rateControlLayerCount</name></member>
- <member><type>uint8_t</type> <name>qualityLevelCount</name></member>
- <member><type>VkExtent2D</type> <name>inputImageDataFillAlignment</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264CapabilitiesEXT" structextends="VkVideoEncodeCapabilitiesKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkVideoEncodeH264CapabilityFlagsEXT</type> <name>flags</name></member>
- <member><type>VkVideoEncodeH264InputModeFlagsEXT</type> <name>inputModeFlags</name></member>
- <member><type>VkVideoEncodeH264OutputModeFlagsEXT</type> <name>outputModeFlags</name></member>
- <member><type>uint8_t</type> <name>maxPPictureL0ReferenceCount</name></member>
- <member><type>uint8_t</type> <name>maxBPictureL0ReferenceCount</name></member>
- <member><type>uint8_t</type> <name>maxL1ReferenceCount</name></member>
- <member><type>VkBool32</type> <name>motionVectorsOverPicBoundariesFlag</name></member>
- <member><type>uint32_t</type> <name>maxBytesPerPicDenom</name></member>
- <member><type>uint32_t</type> <name>maxBitsPerMbDenom</name></member>
- <member><type>uint32_t</type> <name>log2MaxMvLengthHorizontal</name></member>
- <member><type>uint32_t</type> <name>log2MaxMvLengthVertical</name></member>
- <member><type>VkExtensionProperties</type> <name>stdExtensionVersion</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264SessionCreateInfoEXT" structextends="VkVideoSessionCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkVideoEncodeH264CreateFlagsEXT</type> <name>flags</name></member>
- <member><type>VkExtent2D</type> <name>maxPictureSizeInMbs</name></member>
- <member>const <type>VkExtensionProperties</type>* <name>pStdExtensionVersion</name></member>
- </type>
- <type category="include" name="vk_video/vulkan_video_codec_h264std_encode.h">#include "vk_video/vulkan_video_codec_h264std_encode.h"</type>
- <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264SliceHeader"/>
- <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264PictureInfo"/>
- <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264ReferenceInfo"/>
- <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264SliceHeaderFlags"/>
- <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264RefMemMgmtCtrlOperations"/>
- <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264PictureInfoFlags"/>
- <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264ReferenceInfoFlags"/>
- <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264RefMgmtFlags"/>
- <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264RefListModEntry"/>
- <type requires="vk_video/vulkan_video_codec_h264std_encode.h" name="StdVideoEncodeH264RefPicMarkingEntry"/>
- <type category="struct" name="VkVideoEncodeH264SessionParametersAddInfoEXT" structextends="VkVideoSessionParametersUpdateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>spsStdCount</name></member>
- <member len="spsStdCount" optional="true">const <type>StdVideoH264SequenceParameterSet</type>* <name>pSpsStd</name></member>
- <member><type>uint32_t</type> <name>ppsStdCount</name></member>
- <member len="ppsStdCount" optional="true">const <type>StdVideoH264PictureParameterSet</type>* <name>pPpsStd</name><comment>List of Picture Parameters associated with the spsStd, above</comment></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264SessionParametersCreateInfoEXT" structextends="VkVideoSessionParametersCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>maxSpsStdCount</name></member>
- <member><type>uint32_t</type> <name>maxPpsStdCount</name></member>
- <member optional="true">const <type>VkVideoEncodeH264SessionParametersAddInfoEXT</type>* <name>pParametersAddInfo</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264DpbSlotInfoEXT">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>int8_t</type> <name>slotIndex</name></member>
- <member>const <type>StdVideoEncodeH264ReferenceInfo</type>* <name>pStdReferenceInfo</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264VclFrameInfoEXT" structextends="VkVideoEncodeInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true">const <type>VkVideoEncodeH264ReferenceListsEXT</type>* <name>pReferenceFinalLists</name></member>
- <member><type>uint32_t</type> <name>naluSliceEntryCount</name></member>
- <member len="naluSliceEntryCount">const <type>VkVideoEncodeH264NaluSliceEXT</type>* <name>pNaluSliceEntries</name></member>
- <member>const <type>StdVideoEncodeH264PictureInfo</type>* <name>pCurrentPictureInfo</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264ReferenceListsEXT">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint8_t</type> <name>referenceList0EntryCount</name></member>
- <member len="referenceList0EntryCount">const <type>VkVideoEncodeH264DpbSlotInfoEXT</type>* <name>pReferenceList0Entries</name></member>
- <member optional="true"><type>uint8_t</type> <name>referenceList1EntryCount</name></member>
- <member len="referenceList1EntryCount">const <type>VkVideoEncodeH264DpbSlotInfoEXT</type>* <name>pReferenceList1Entries</name></member>
- <member>const <type>StdVideoEncodeH264RefMemMgmtCtrlOperations</type>* <name>pMemMgmtCtrlOperations</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264EmitPictureParametersEXT" structextends="VkVideoEncodeInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint8_t</type> <name>spsId</name></member>
- <member><type>VkBool32</type> <name>emitSpsEnable</name></member>
- <member><type>uint32_t</type> <name>ppsIdEntryCount</name></member>
- <member len="ppsIdEntryCount">const <type>uint8_t</type>* <name>ppsIdEntries</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264ProfileEXT" structextends="VkVideoProfileKHR,VkQueryPoolCreateInfo,VkFormatProperties2,VkImageCreateInfo,VkImageViewCreateInfo,VkBufferCreateInfo">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>StdVideoH264ProfileIdc</type> <name>stdProfileIdc</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264NaluSliceEXT">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>mbCount</name></member>
- <member optional="true">const <type>VkVideoEncodeH264ReferenceListsEXT</type>* <name>pReferenceFinalLists</name></member>
- <member>const <type>StdVideoEncodeH264SliceHeader</type>* <name>pSliceHeaderStd</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264RateControlInfoEXT" structextends="VkVideoEncodeRateControlInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>gopFrameCount</name></member>
- <member><type>uint32_t</type> <name>idrPeriod</name></member>
- <member><type>uint32_t</type> <name>consecutiveBFrameCount</name></member>
- <member><type>VkVideoEncodeH264RateControlStructureFlagBitsEXT</type> <name>rateControlStructure</name></member>
- <member><type>uint8_t</type> <name>temporalLayerCount</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264QpEXT">
- <member noautovalidity="true"><type>int32_t</type> <name>qpI</name></member>
- <member noautovalidity="true"><type>int32_t</type> <name>qpP</name></member>
- <member noautovalidity="true"><type>int32_t</type> <name>qpB</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264FrameSizeEXT">
- <member noautovalidity="true"><type>uint32_t</type> <name>frameISize</name></member>
- <member noautovalidity="true"><type>uint32_t</type> <name>framePSize</name></member>
- <member noautovalidity="true"><type>uint32_t</type> <name>frameBSize</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH264RateControlLayerInfoEXT" structextends="VkVideoEncodeRateControlLayerInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint8_t</type> <name>temporalLayerId</name></member>
- <member><type>VkBool32</type> <name>useInitialRcQp</name></member>
- <member><type>VkVideoEncodeH264QpEXT</type> <name>initialRcQp</name></member>
- <member><type>VkBool32</type> <name>useMinQp</name></member>
- <member><type>VkVideoEncodeH264QpEXT</type> <name>minQp</name></member>
- <member><type>VkBool32</type> <name>useMaxQp</name></member>
- <member><type>VkVideoEncodeH264QpEXT</type> <name>maxQp</name></member>
- <member><type>VkBool32</type> <name>useMaxFrameSize</name></member>
- <member><type>VkVideoEncodeH264FrameSizeEXT</type> <name>maxFrameSize</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH265CapabilitiesEXT" structextends="VkVideoEncodeCapabilitiesKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkVideoEncodeH265CapabilityFlagsEXT</type> <name>flags</name></member>
- <member><type>VkVideoEncodeH265InputModeFlagsEXT</type> <name>inputModeFlags</name></member>
- <member><type>VkVideoEncodeH265OutputModeFlagsEXT</type> <name>outputModeFlags</name></member>
- <member><type>VkVideoEncodeH265CtbSizeFlagsEXT</type> <name>ctbSizes</name></member>
- <member><type>VkVideoEncodeH265TransformBlockSizeFlagsEXT</type> <name>transformBlockSizes</name></member>
- <member><type>uint8_t</type> <name>maxPPictureL0ReferenceCount</name></member>
- <member><type>uint8_t</type> <name>maxBPictureL0ReferenceCount</name></member>
- <member><type>uint8_t</type> <name>maxL1ReferenceCount</name></member>
- <member><type>uint8_t</type> <name>maxSubLayersCount</name></member>
- <member><type>uint8_t</type> <name>minLog2MinLumaCodingBlockSizeMinus3</name></member>
- <member><type>uint8_t</type> <name>maxLog2MinLumaCodingBlockSizeMinus3</name></member>
- <member><type>uint8_t</type> <name>minLog2MinLumaTransformBlockSizeMinus2</name></member>
- <member><type>uint8_t</type> <name>maxLog2MinLumaTransformBlockSizeMinus2</name></member>
- <member><type>uint8_t</type> <name>minMaxTransformHierarchyDepthInter</name></member>
- <member><type>uint8_t</type> <name>maxMaxTransformHierarchyDepthInter</name></member>
- <member><type>uint8_t</type> <name>minMaxTransformHierarchyDepthIntra</name></member>
- <member><type>uint8_t</type> <name>maxMaxTransformHierarchyDepthIntra</name></member>
- <member><type>uint8_t</type> <name>maxDiffCuQpDeltaDepth</name></member>
- <member><type>uint8_t</type> <name>minMaxNumMergeCand</name></member>
- <member><type>uint8_t</type> <name>maxMaxNumMergeCand</name></member>
- <member><type>VkExtensionProperties</type> <name>stdExtensionVersion</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH265SessionCreateInfoEXT" structextends="VkVideoSessionCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkVideoEncodeH265CreateFlagsEXT</type> <name>flags</name></member>
- <member>const <type>VkExtensionProperties</type>* <name>pStdExtensionVersion</name></member>
- </type>
- <type category="include" name="vk_video/vulkan_video_codec_h265std_encode.h">#include "vk_video/vulkan_video_codec_h265std_encode.h"</type>
- <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265PictureInfoFlags"/>
- <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265PictureInfo"/>
- <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265SliceSegmentHeader"/>
- <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceInfo"/>
- <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceModifications"/>
- <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265SliceSegmentHeaderFlags"/>
- <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceInfoFlags"/>
- <type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceModificationFlags"/>
- <type category="struct" name="VkVideoEncodeH265SessionParametersAddInfoEXT" structextends="VkVideoSessionParametersUpdateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>vpsStdCount</name></member>
- <member len="vpsStdCount" optional="true">const <type>StdVideoH265VideoParameterSet</type>* <name>pVpsStd</name></member>
- <member><type>uint32_t</type> <name>spsStdCount</name></member>
- <member len="spsStdCount" optional="true">const <type>StdVideoH265SequenceParameterSet</type>* <name>pSpsStd</name></member>
- <member><type>uint32_t</type> <name>ppsStdCount</name></member>
- <member len="ppsStdCount" optional="true">const <type>StdVideoH265PictureParameterSet</type>* <name>pPpsStd</name><comment>List of Picture Parameters associated with the spsStd, above</comment></member>
- </type>
- <type category="struct" name="VkVideoEncodeH265SessionParametersCreateInfoEXT" structextends="VkVideoSessionParametersCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>maxVpsStdCount</name></member>
- <member><type>uint32_t</type> <name>maxSpsStdCount</name></member>
- <member><type>uint32_t</type> <name>maxPpsStdCount</name></member>
- <member optional="true">const <type>VkVideoEncodeH265SessionParametersAddInfoEXT</type>* <name>pParametersAddInfo</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH265VclFrameInfoEXT" structextends="VkVideoEncodeInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true">const <type>VkVideoEncodeH265ReferenceListsEXT</type>* <name>pReferenceFinalLists</name></member>
- <member><type>uint32_t</type> <name>naluSliceSegmentEntryCount</name></member>
- <member len="naluSliceSegmentEntryCount">const <type>VkVideoEncodeH265NaluSliceSegmentEXT</type>* <name>pNaluSliceSegmentEntries</name></member>
- <member>const <type>StdVideoEncodeH265PictureInfo</type>* <name>pCurrentPictureInfo</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH265EmitPictureParametersEXT" structextends="VkVideoEncodeInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint8_t</type> <name>vpsId</name></member>
- <member><type>uint8_t</type> <name>spsId</name></member>
- <member><type>VkBool32</type> <name>emitVpsEnable</name></member>
- <member><type>VkBool32</type> <name>emitSpsEnable</name></member>
- <member optional="true"><type>uint32_t</type> <name>ppsIdEntryCount</name></member>
- <member len="ppsIdEntryCount">const <type>uint8_t</type>* <name>ppsIdEntries</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH265NaluSliceSegmentEXT">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>ctbCount</name></member>
- <member optional="true">const <type>VkVideoEncodeH265ReferenceListsEXT</type>* <name>pReferenceFinalLists</name></member>
- <member>const <type>StdVideoEncodeH265SliceSegmentHeader</type>* <name>pSliceSegmentHeaderStd</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH265RateControlInfoEXT" structextends="VkVideoEncodeRateControlInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>gopFrameCount</name></member>
- <member><type>uint32_t</type> <name>idrPeriod</name></member>
- <member><type>uint32_t</type> <name>consecutiveBFrameCount</name></member>
- <member><type>VkVideoEncodeH265RateControlStructureFlagBitsEXT</type> <name>rateControlStructure</name></member>
- <member><type>uint8_t</type> <name>subLayerCount</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH265QpEXT">
- <member noautovalidity="true"><type>int32_t</type> <name>qpI</name></member>
- <member noautovalidity="true"><type>int32_t</type> <name>qpP</name></member>
- <member noautovalidity="true"><type>int32_t</type> <name>qpB</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH265FrameSizeEXT">
- <member noautovalidity="true"><type>uint32_t</type> <name>frameISize</name></member>
- <member noautovalidity="true"><type>uint32_t</type> <name>framePSize</name></member>
- <member noautovalidity="true"><type>uint32_t</type> <name>frameBSize</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH265RateControlLayerInfoEXT" structextends="VkVideoEncodeRateControlLayerInfoKHR">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint8_t</type> <name>temporalId</name></member>
- <member><type>VkBool32</type> <name>useInitialRcQp</name></member>
- <member><type>VkVideoEncodeH265QpEXT</type> <name>initialRcQp</name></member>
- <member><type>VkBool32</type> <name>useMinQp</name></member>
- <member><type>VkVideoEncodeH265QpEXT</type> <name>minQp</name></member>
- <member><type>VkBool32</type> <name>useMaxQp</name></member>
- <member><type>VkVideoEncodeH265QpEXT</type> <name>maxQp</name></member>
- <member><type>VkBool32</type> <name>useMaxFrameSize</name></member>
- <member><type>VkVideoEncodeH265FrameSizeEXT</type> <name>maxFrameSize</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH265ProfileEXT" structextends="VkVideoProfileKHR,VkQueryPoolCreateInfo,VkFormatProperties2,VkImageCreateInfo,VkImageViewCreateInfo,VkBufferCreateInfo">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>StdVideoH265ProfileIdc</type> <name>stdProfileIdc</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH265DpbSlotInfoEXT">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>int8_t</type> <name>slotIndex</name></member>
- <member>const <type>StdVideoEncodeH265ReferenceInfo</type>* <name>pStdReferenceInfo</name></member>
- </type>
- <type category="struct" name="VkVideoEncodeH265ReferenceListsEXT">
- <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint8_t</type> <name>referenceList0EntryCount</name></member>
- <member len="referenceList0EntryCount">const <type>VkVideoEncodeH265DpbSlotInfoEXT</type>* <name>pReferenceList0Entries</name></member>
- <member optional="true"><type>uint8_t</type> <name>referenceList1EntryCount</name></member>
- <member len="referenceList1EntryCount">const <type>VkVideoEncodeH265DpbSlotInfoEXT</type>* <name>pReferenceList1Entries</name></member>
- <member>const <type>StdVideoEncodeH265ReferenceModifications</type>* <name>pReferenceModifications</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceInheritedViewportScissorFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>inheritedViewportScissor2D</name></member>
- </type>
- <type category="struct" name="VkCommandBufferInheritanceViewportScissorInfoNV" structextends="VkCommandBufferInheritanceInfo">
- <member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>viewportScissor2D</name></member>
- <member><type>uint32_t</type> <name>viewportDepthCount</name></member>
- <member noautovalidity="true">const <type>VkViewport</type>* <name>pViewportDepths</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>ycbcr2plane444Formats</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceProvokingVertexFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>provokingVertexLast</name></member>
- <member><type>VkBool32</type> <name>transformFeedbackPreservesProvokingVertex</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceProvokingVertexPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>provokingVertexModePerPipeline</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>transformFeedbackPreservesTriangleFanProvokingVertex</name></member>
- </type>
- <type category="struct" name="VkPipelineRasterizationProvokingVertexStateCreateInfoEXT" structextends="VkPipelineRasterizationStateCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkProvokingVertexModeEXT</type> <name>provokingVertexMode</name></member>
- </type>
- <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>
- </type>
- <type category="struct" name="VkCuFunctionCreateInfoNVX">
- <member values="VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkCuModuleNVX</type> <name>module</name></member>
- <member len="null-terminated">const <type>char</type>* <name>pName</name></member>
- </type>
- <type category="struct" name="VkCuLaunchInfoNVX">
- <member values="VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkCuFunctionNVX</type> <name>function</name></member>
- <member><type>uint32_t</type> <name>gridDimX</name></member>
- <member><type>uint32_t</type> <name>gridDimY</name></member>
- <member><type>uint32_t</type> <name>gridDimZ</name></member>
- <member><type>uint32_t</type> <name>blockDimX</name></member>
- <member><type>uint32_t</type> <name>blockDimY</name></member>
- <member><type>uint32_t</type> <name>blockDimZ</name></member>
- <member><type>uint32_t</type> <name>sharedMemBytes</name></member>
- <member optional="true"><type>size_t</type> <name>paramCount</name></member>
- <member len="paramCount">const <type>void</type>* const * <name>pParams</name></member>
- <member optional="true"><type>size_t</type> <name>extraCount</name></member>
- <member len="extraCount">const <type>void</type>* const * <name>pExtras</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderIntegerDotProductFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>shaderIntegerDotProduct</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR" alias="VkPhysicalDeviceShaderIntegerDotProductFeatures"/>
- <type category="struct" name="VkPhysicalDeviceShaderIntegerDotProductProperties" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct8BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct8BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct8BitMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct4x8BitPackedUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct4x8BitPackedSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct4x8BitPackedMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct16BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct16BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct16BitMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct32BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct32BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct32BitMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct64BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct64BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProduct64BitMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating8BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating8BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating16BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating16BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating32BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating32BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating64BitUnsignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating64BitSignedAccelerated</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR" alias="VkPhysicalDeviceShaderIntegerDotProductProperties"/>
- <type category="struct" name="VkPhysicalDeviceDrmPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>hasPrimary</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>hasRender</name></member>
- <member limittype="noauto"><type>int64_t</type> <name>primaryMajor</name></member>
- <member limittype="noauto"><type>int64_t</type> <name>primaryMinor</name></member>
- <member limittype="noauto"><type>int64_t</type> <name>renderMajor</name></member>
- <member limittype="noauto"><type>int64_t</type> <name>renderMinor</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceRayTracingMotionBlurFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>rayTracingMotionBlur</name></member>
- <member><type>VkBool32</type> <name>rayTracingMotionBlurPipelineTraceRaysIndirect</name></member>
- </type>
- <type name="VkAccelerationStructureMotionInstanceTypeNV" category="enum"/>
- <type category="struct" name="VkAccelerationStructureGeometryMotionTrianglesDataNV" structextends="VkAccelerationStructureGeometryTrianglesDataKHR">
- <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>VkDeviceOrHostAddressConstKHR</type> <name>vertexData</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureMotionInfoNV" structextends="VkAccelerationStructureCreateInfoKHR">
- <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_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>maxInstances</name></member>
- <member optional="true"><type>VkAccelerationStructureMotionInfoFlagsNV</type> <name>flags</name></member>
- </type>
- <type category="struct" name="VkSRTDataNV">
- <member><type>float</type> <name>sx</name></member>
- <member><type>float</type> <name>a</name></member>
- <member><type>float</type> <name>b</name></member>
- <member><type>float</type> <name>pvx</name></member>
- <member><type>float</type> <name>sy</name></member>
- <member><type>float</type> <name>c</name></member>
- <member><type>float</type> <name>pvy</name></member>
- <member><type>float</type> <name>sz</name></member>
- <member><type>float</type> <name>pvz</name></member>
- <member><type>float</type> <name>qx</name></member>
- <member><type>float</type> <name>qy</name></member>
- <member><type>float</type> <name>qz</name></member>
- <member><type>float</type> <name>qw</name></member>
- <member><type>float</type> <name>tx</name></member>
- <member><type>float</type> <name>ty</name></member>
- <member><type>float</type> <name>tz</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureSRTMotionInstanceNV">
- <comment>The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout.</comment>
- <member><type>VkSRTDataNV</type> <name>transformT0</name></member>
- <member><type>VkSRTDataNV</type> <name>transformT1</name></member>
- <member><type>uint32_t</type> <name>instanceCustomIndex</name>:24</member>
- <member><type>uint32_t</type> <name>mask</name>:8</member>
- <member><type>uint32_t</type> <name>instanceShaderBindingTableRecordOffset</name>:24</member>
- <member optional="true"><type>VkGeometryInstanceFlagsKHR</type> <name>flags</name>:8</member>
- <member><type>uint64_t</type> <name>accelerationStructureReference</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureMatrixMotionInstanceNV">
- <comment>The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout.</comment>
- <member><type>VkTransformMatrixKHR</type> <name>transformT0</name></member>
- <member><type>VkTransformMatrixKHR</type> <name>transformT1</name></member>
- <member><type>uint32_t</type> <name>instanceCustomIndex</name>:24</member>
- <member><type>uint32_t</type> <name>mask</name>:8</member>
- <member><type>uint32_t</type> <name>instanceShaderBindingTableRecordOffset</name>:24</member>
- <member optional="true"><type>VkGeometryInstanceFlagsKHR</type> <name>flags</name>:8</member>
- <member><type>uint64_t</type> <name>accelerationStructureReference</name></member>
- </type>
- <type category="union" name="VkAccelerationStructureMotionInstanceDataNV">
- <member selection="VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV"><type>VkAccelerationStructureInstanceKHR</type> <name>staticInstance</name></member>
- <member selection="VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV"><type>VkAccelerationStructureMatrixMotionInstanceNV</type> <name>matrixMotionInstance</name></member>
- <member selection="VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV"><type>VkAccelerationStructureSRTMotionInstanceNV</type> <name>srtMotionInstance</name></member>
- </type>
- <type category="struct" name="VkAccelerationStructureMotionInstanceNV">
- <member><type>VkAccelerationStructureMotionInstanceTypeNV</type> <name>type</name></member>
- <member optional="true"><type>VkAccelerationStructureMotionInstanceFlagsNV</type> <name>flags</name></member>
- <member selector="type"><type>VkAccelerationStructureMotionInstanceDataNV</type> <name>data</name></member>
- </type>
- <type category="basetype">typedef <type>void</type>* <name>VkRemoteAddressNV</name>;</type>
- <type category="struct" name="VkMemoryGetRemoteAddressInfoNV">
- <member values="VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkDeviceMemory</type> <name>memory</name></member>
- <member><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></member>
- </type>
- <type category="struct" name="VkImportMemoryBufferCollectionFUCHSIA" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBufferCollectionFUCHSIA</type> <name>collection</name></member>
- <member><type>uint32_t</type> <name>index</name></member>
- </type>
- <type category="struct" name="VkBufferCollectionImageCreateInfoFUCHSIA" structextends="VkImageCreateInfo">
- <member values="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBufferCollectionFUCHSIA</type> <name>collection</name></member>
- <member><type>uint32_t</type> <name>index</name></member>
- </type>
- <type category="struct" name="VkBufferCollectionBufferCreateInfoFUCHSIA" structextends="VkBufferCreateInfo">
- <member values="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBufferCollectionFUCHSIA</type> <name>collection</name></member>
- <member><type>uint32_t</type> <name>index</name></member>
- </type>
- <type category="struct" name="VkBufferCollectionCreateInfoFUCHSIA">
- <member values="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>zx_handle_t</type> <name>collectionToken</name></member>
- </type>
- <type category="struct" name="VkBufferCollectionPropertiesFUCHSIA">
- <member values="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>memoryTypeBits</name></member>
- <member><type>uint32_t</type> <name>bufferCount</name></member>
- <member><type>uint32_t</type> <name>createInfoIndex</name></member>
- <member><type>uint64_t</type> <name>sysmemPixelFormat</name></member>
- <member><type>VkFormatFeatureFlags</type> <name>formatFeatures</name></member>
- <member><type>VkSysmemColorSpaceFUCHSIA</type> <name>sysmemColorSpaceIndex</name></member>
- <member><type>VkComponentMapping</type> <name>samplerYcbcrConversionComponents</name></member>
- <member><type>VkSamplerYcbcrModelConversion</type> <name>suggestedYcbcrModel</name></member>
- <member><type>VkSamplerYcbcrRange</type> <name>suggestedYcbcrRange</name></member>
- <member><type>VkChromaLocation</type> <name>suggestedXChromaOffset</name></member>
- <member><type>VkChromaLocation</type> <name>suggestedYChromaOffset</name></member>
- </type>
- <type category="struct" name="VkBufferConstraintsInfoFUCHSIA">
- <member values="VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBufferCreateInfo</type> <name>createInfo</name></member>
- <member optional="true"><type>VkFormatFeatureFlags</type> <name>requiredFormatFeatures</name></member>
- <member><type>VkBufferCollectionConstraintsInfoFUCHSIA</type> <name>bufferCollectionConstraints</name></member>
- </type>
- <type category="struct" name="VkSysmemColorSpaceFUCHSIA">
- <member values="VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>colorSpace</name></member>
- </type>
- <type category="struct" name="VkImageFormatConstraintsInfoFUCHSIA">
- <member values="VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImageCreateInfo</type> <name>imageCreateInfo</name></member>
- <member><type>VkFormatFeatureFlags</type> <name>requiredFormatFeatures</name></member>
- <member optional="true"><type>VkImageFormatConstraintsFlagsFUCHSIA</type> <name>flags</name></member>
- <member optional="true"><type>uint64_t</type> <name>sysmemPixelFormat</name></member>
- <member><type>uint32_t</type> <name>colorSpaceCount</name></member>
- <member len="colorSpaceCount">const <type>VkSysmemColorSpaceFUCHSIA</type>* <name>pColorSpaces</name></member>
- </type>
- <type category="struct" name="VkImageConstraintsInfoFUCHSIA">
- <member values="VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>formatConstraintsCount</name></member>
- <member len="formatConstraintsCount">const <type>VkImageFormatConstraintsInfoFUCHSIA</type>* <name>pFormatConstraints</name></member>
- <member><type>VkBufferCollectionConstraintsInfoFUCHSIA</type> <name>bufferCollectionConstraints</name></member>
- <member optional="true"><type>VkImageConstraintsInfoFlagsFUCHSIA</type> <name>flags</name></member>
- </type>
- <type category="struct" name="VkBufferCollectionConstraintsInfoFUCHSIA">
- <member values="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>minBufferCount</name></member>
- <member><type>uint32_t</type> <name>maxBufferCount</name></member>
- <member><type>uint32_t</type> <name>minBufferCountForCamping</name></member>
- <member><type>uint32_t</type> <name>minBufferCountForDedicatedSlack</name></member>
- <member><type>uint32_t</type> <name>minBufferCountForSharedSlack</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>formatRgba10x6WithoutYCbCrSampler</name></member>
- </type>
- <type category="struct" name="VkFormatProperties3" returnedonly="true" structextends="VkFormatProperties2">
- <member values="VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkFormatFeatureFlags2</type> <name>linearTilingFeatures</name></member>
- <member optional="true"><type>VkFormatFeatureFlags2</type> <name>optimalTilingFeatures</name></member>
- <member optional="true"><type>VkFormatFeatureFlags2</type> <name>bufferFeatures</name></member>
- </type>
- <type category="struct" name="VkFormatProperties3KHR" alias="VkFormatProperties3"/>
- <type category="struct" name="VkDrmFormatModifierPropertiesList2EXT" returnedonly="true" structextends="VkFormatProperties2">
- <member values="VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>drmFormatModifierCount</name></member>
- <member optional="true,false" len="drmFormatModifierCount"><type>VkDrmFormatModifierProperties2EXT</type>* <name>pDrmFormatModifierProperties</name></member>
- </type>
- <type category="struct" name="VkDrmFormatModifierProperties2EXT" returnedonly="true">
- <member><type>uint64_t</type> <name>drmFormatModifier</name></member>
- <member><type>uint32_t</type> <name>drmFormatModifierPlaneCount</name></member>
- <member><type>VkFormatFeatureFlags2</type> <name>drmFormatModifierTilingFeatures</name></member>
- </type>
- <type category="struct" name="VkAndroidHardwareBufferFormatProperties2ANDROID" structextends="VkAndroidHardwareBufferPropertiesANDROID" returnedonly="true">
- <member values="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkFormat</type> <name>format</name></member>
- <member><type>uint64_t</type> <name>externalFormat</name></member>
- <member><type>VkFormatFeatureFlags2</type> <name>formatFeatures</name></member>
- <member><type>VkComponentMapping</type> <name>samplerYcbcrConversionComponents</name></member>
- <member><type>VkSamplerYcbcrModelConversion</type> <name>suggestedYcbcrModel</name></member>
- <member><type>VkSamplerYcbcrRange</type> <name>suggestedYcbcrRange</name></member>
- <member><type>VkChromaLocation</type> <name>suggestedXChromaOffset</name></member>
- <member><type>VkChromaLocation</type> <name>suggestedYChromaOffset</name></member>
- </type>
- <type category="struct" name="VkPipelineRenderingCreateInfo" structextends="VkGraphicsPipelineCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>uint32_t</type> <name>viewMask</name></member>
- <member optional="true"><type>uint32_t</type> <name>colorAttachmentCount</name></member>
- <member len="colorAttachmentCount">const <type>VkFormat</type>* <name>pColorAttachmentFormats</name></member>
- <member><type>VkFormat</type> <name>depthAttachmentFormat</name></member>
- <member><type>VkFormat</type> <name>stencilAttachmentFormat</name></member>
- </type>
- <type category="struct" name="VkPipelineRenderingCreateInfoKHR" alias="VkPipelineRenderingCreateInfo"/>
- <type category="struct" name="VkRenderingInfo">
- <member values="VK_STRUCTURE_TYPE_RENDERING_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkRenderingFlags</type> <name>flags</name></member>
- <member><type>VkRect2D</type> <name>renderArea</name></member>
- <member><type>uint32_t</type> <name>layerCount</name></member>
- <member><type>uint32_t</type> <name>viewMask</name></member>
- <member optional="true"><type>uint32_t</type> <name>colorAttachmentCount</name></member>
- <member len="colorAttachmentCount">const <type>VkRenderingAttachmentInfo</type>* <name>pColorAttachments</name></member>
- <member optional="true">const <type>VkRenderingAttachmentInfo</type>* <name>pDepthAttachment</name></member>
- <member optional="true">const <type>VkRenderingAttachmentInfo</type>* <name>pStencilAttachment</name></member>
- </type>
- <type category="struct" name="VkRenderingInfoKHR" alias="VkRenderingInfo"/>
- <type category="struct" name="VkRenderingAttachmentInfo">
- <member values="VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkImageView</type> <name>imageView</name></member>
- <member><type>VkImageLayout</type> <name>imageLayout</name></member>
- <member optional="true"><type>VkResolveModeFlagBits</type> <name>resolveMode</name></member>
- <member optional="true"><type>VkImageView</type> <name>resolveImageView</name></member>
- <member><type>VkImageLayout</type> <name>resolveImageLayout</name></member>
- <member><type>VkAttachmentLoadOp</type> <name>loadOp</name></member>
- <member><type>VkAttachmentStoreOp</type> <name>storeOp</name></member>
- <member><type>VkClearValue</type> <name>clearValue</name></member>
- </type>
- <type category="struct" name="VkRenderingAttachmentInfoKHR" alias="VkRenderingAttachmentInfo"/>
- <type category="struct" name="VkRenderingFragmentShadingRateAttachmentInfoKHR" structextends="VkRenderingInfo">
- <member values="VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkImageView</type> <name>imageView</name></member>
- <member><type>VkImageLayout</type> <name>imageLayout</name></member>
- <member><type>VkExtent2D</type> <name>shadingRateAttachmentTexelSize</name></member>
- </type>
- <type category="struct" name="VkRenderingFragmentDensityMapAttachmentInfoEXT" structextends="VkRenderingInfo">
- <member values="VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkImageView</type> <name>imageView</name></member>
- <member><type>VkImageLayout</type> <name>imageLayout</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceDynamicRenderingFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>dynamicRendering</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceDynamicRenderingFeaturesKHR" alias="VkPhysicalDeviceDynamicRenderingFeatures"/>
- <type category="struct" name="VkCommandBufferInheritanceRenderingInfo" structextends="VkCommandBufferInheritanceInfo">
- <member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkRenderingFlags</type> <name>flags</name></member>
- <member><type>uint32_t</type> <name>viewMask</name></member>
- <member optional="true"><type>uint32_t</type> <name>colorAttachmentCount</name></member>
- <member len="colorAttachmentCount">const <type>VkFormat</type>* <name>pColorAttachmentFormats</name></member>
- <member><type>VkFormat</type> <name>depthAttachmentFormat</name></member>
- <member><type>VkFormat</type> <name>stencilAttachmentFormat</name></member>
- <member optional="true"><type>VkSampleCountFlagBits</type> <name>rasterizationSamples</name></member>
- </type>
- <type category="struct" name="VkCommandBufferInheritanceRenderingInfoKHR" alias="VkCommandBufferInheritanceRenderingInfo"/>
- <type category="struct" name="VkAttachmentSampleCountInfoAMD" structextends="VkCommandBufferInheritanceInfo,VkGraphicsPipelineCreateInfo">
- <member values="VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>uint32_t</type> <name>colorAttachmentCount</name></member>
- <member len="colorAttachmentCount">const <type>VkSampleCountFlagBits</type>* <name>pColorAttachmentSamples</name></member>
- <member optional="true"><type>VkSampleCountFlagBits</type> <name>depthStencilAttachmentSamples</name></member>
- </type>
- <type category="struct" name="VkAttachmentSampleCountInfoNV" alias="VkAttachmentSampleCountInfoAMD"/>
- <type category="struct" name="VkMultiviewPerViewAttributesInfoNVX" structextends="VkCommandBufferInheritanceInfo,VkGraphicsPipelineCreateInfo,VkRenderingInfo">
- <member values="VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>perViewAttributes</name></member>
- <member><type>VkBool32</type> <name>perViewAttributesPositionXOnly</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceImageViewMinLodFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>minLod</name></member>
- </type>
- <type category="struct" name="VkImageViewMinLodCreateInfoEXT" structextends="VkImageViewCreateInfo">
- <member values="VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>float</type> <name>minLod</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>rasterizationOrderColorAttachmentAccess</name></member>
- <member><type>VkBool32</type> <name>rasterizationOrderDepthAttachmentAccess</name></member>
- <member><type>VkBool32</type> <name>rasterizationOrderStencilAttachmentAccess</name></member>
- </type>
- <type category="struct" name="VkPhysicalDeviceLinearColorAttachmentFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
- <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkBool32</type> <name>linearColorAttachment</name></member>
- </type>
- </types>
- <comment>Vulkan enumerant (token) definitions</comment>
-
- <enums name="API Constants" comment="Vulkan hardcoded constants - not an enumerated type, part of the header boilerplate">
- <enum type="uint32_t" value="256" name="VK_MAX_PHYSICAL_DEVICE_NAME_SIZE"/>
- <enum type="uint32_t" value="16" name="VK_UUID_SIZE"/>
- <enum type="uint32_t" value="8" name="VK_LUID_SIZE"/>
- <enum name="VK_LUID_SIZE_KHR" alias="VK_LUID_SIZE"/>
- <enum type="uint32_t" value="256" name="VK_MAX_EXTENSION_NAME_SIZE"/>
- <enum type="uint32_t" value="256" name="VK_MAX_DESCRIPTION_SIZE"/>
- <enum type="uint32_t" value="32" name="VK_MAX_MEMORY_TYPES"/>
- <enum type="uint32_t" value="16" name="VK_MAX_MEMORY_HEAPS" comment="The maximum number of unique memory heaps, each of which supporting 1 or more memory types"/>
- <enum type="float" value="1000.0F" name="VK_LOD_CLAMP_NONE"/>
- <enum type="uint32_t" value="(~0U)" name="VK_REMAINING_MIP_LEVELS"/>
- <enum type="uint32_t" value="(~0U)" name="VK_REMAINING_ARRAY_LAYERS"/>
- <enum type="uint64_t" value="(~0ULL)" name="VK_WHOLE_SIZE"/>
- <enum type="uint32_t" value="(~0U)" name="VK_ATTACHMENT_UNUSED"/>
- <enum type="uint32_t" value="1" name="VK_TRUE"/>
- <enum type="uint32_t" value="0" name="VK_FALSE"/>
- <enum type="uint32_t" value="(~0U)" name="VK_QUEUE_FAMILY_IGNORED"/>
- <enum type="uint32_t" value="(~1U)" name="VK_QUEUE_FAMILY_EXTERNAL"/>
- <enum name="VK_QUEUE_FAMILY_EXTERNAL_KHR" alias="VK_QUEUE_FAMILY_EXTERNAL"/>
- <enum type="uint32_t" value="(~2U)" name="VK_QUEUE_FAMILY_FOREIGN_EXT"/>
- <enum type="uint32_t" value="(~0U)" name="VK_SUBPASS_EXTERNAL"/>
- <enum type="uint32_t" value="32" name="VK_MAX_DEVICE_GROUP_SIZE"/>
- <enum name="VK_MAX_DEVICE_GROUP_SIZE_KHR" alias="VK_MAX_DEVICE_GROUP_SIZE"/>
- <enum type="uint32_t" value="256" name="VK_MAX_DRIVER_NAME_SIZE"/>
- <enum name="VK_MAX_DRIVER_NAME_SIZE_KHR" alias="VK_MAX_DRIVER_NAME_SIZE"/>
- <enum type="uint32_t" value="256" name="VK_MAX_DRIVER_INFO_SIZE"/>
- <enum name="VK_MAX_DRIVER_INFO_SIZE_KHR" alias="VK_MAX_DRIVER_INFO_SIZE"/>
- <enum type="uint32_t" value="(~0U)" name="VK_SHADER_UNUSED_KHR"/>
- <enum name="VK_SHADER_UNUSED_NV" alias="VK_SHADER_UNUSED_KHR"/>
- <enum type="uint32_t" value="16" name="VK_MAX_GLOBAL_PRIORITY_SIZE_KHR"/>
- <enum name="VK_MAX_GLOBAL_PRIORITY_SIZE_EXT" alias="VK_MAX_GLOBAL_PRIORITY_SIZE_KHR"/>
- </enums>
-
- <comment>
- Unlike OpenGL, most tokens in Vulkan are actual typed enumerants in
- their own numeric namespaces. The "name" attribute is the C enum
- type name, and is pulled in from a type tag definition above
- (slightly clunky, but retains the type / enum distinction). "type"
- attributes of "enum" or "bitmask" indicate that these values should
- be generated inside an appropriate definition.
- </comment>
-
- <enums name="VkImageLayout" type="enum">
- <enum value="0" name="VK_IMAGE_LAYOUT_UNDEFINED" comment="Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)"/>
- <enum value="1" name="VK_IMAGE_LAYOUT_GENERAL" comment="General layout when image can be used for any kind of access"/>
- <enum value="2" name="VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" comment="Optimal layout when image is only used for color attachment read/write"/>
- <enum value="3" name="VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL" comment="Optimal layout when image is only used for depth/stencil attachment read/write"/>
- <enum value="4" name="VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL" comment="Optimal layout when image is used for read only depth/stencil attachment and shader access"/>
- <enum value="5" name="VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL" comment="Optimal layout when image is used for read only shader access"/>
- <enum value="6" name="VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL" comment="Optimal layout when image is used only as source of transfer operations"/>
- <enum value="7" name="VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL" comment="Optimal layout when image is used only as destination of transfer operations"/>
- <enum value="8" name="VK_IMAGE_LAYOUT_PREINITIALIZED" comment="Initial layout used when the data is populated by the CPU"/>
- </enums>
- <enums name="VkAttachmentLoadOp" type="enum">
- <enum value="0" name="VK_ATTACHMENT_LOAD_OP_LOAD"/>
- <enum value="1" name="VK_ATTACHMENT_LOAD_OP_CLEAR"/>
- <enum value="2" name="VK_ATTACHMENT_LOAD_OP_DONT_CARE"/>
- </enums>
- <enums name="VkAttachmentStoreOp" type="enum">
- <enum value="0" name="VK_ATTACHMENT_STORE_OP_STORE"/>
- <enum value="1" name="VK_ATTACHMENT_STORE_OP_DONT_CARE"/>
- </enums>
- <enums name="VkImageType" type="enum">
- <enum value="0" name="VK_IMAGE_TYPE_1D"/>
- <enum value="1" name="VK_IMAGE_TYPE_2D"/>
- <enum value="2" name="VK_IMAGE_TYPE_3D"/>
- </enums>
- <enums name="VkImageTiling" type="enum">
- <enum value="0" name="VK_IMAGE_TILING_OPTIMAL"/>
- <enum value="1" name="VK_IMAGE_TILING_LINEAR"/>
- </enums>
- <enums name="VkImageViewType" type="enum">
- <enum value="0" name="VK_IMAGE_VIEW_TYPE_1D"/>
- <enum value="1" name="VK_IMAGE_VIEW_TYPE_2D"/>
- <enum value="2" name="VK_IMAGE_VIEW_TYPE_3D"/>
- <enum value="3" name="VK_IMAGE_VIEW_TYPE_CUBE"/>
- <enum value="4" name="VK_IMAGE_VIEW_TYPE_1D_ARRAY"/>
- <enum value="5" name="VK_IMAGE_VIEW_TYPE_2D_ARRAY"/>
- <enum value="6" name="VK_IMAGE_VIEW_TYPE_CUBE_ARRAY"/>
- </enums>
- <enums name="VkCommandBufferLevel" type="enum">
- <enum value="0" name="VK_COMMAND_BUFFER_LEVEL_PRIMARY"/>
- <enum value="1" name="VK_COMMAND_BUFFER_LEVEL_SECONDARY"/>
- </enums>
- <enums name="VkComponentSwizzle" type="enum">
- <enum value="0" name="VK_COMPONENT_SWIZZLE_IDENTITY"/>
- <enum value="1" name="VK_COMPONENT_SWIZZLE_ZERO"/>
- <enum value="2" name="VK_COMPONENT_SWIZZLE_ONE"/>
- <enum value="3" name="VK_COMPONENT_SWIZZLE_R"/>
- <enum value="4" name="VK_COMPONENT_SWIZZLE_G"/>
- <enum value="5" name="VK_COMPONENT_SWIZZLE_B"/>
- <enum value="6" name="VK_COMPONENT_SWIZZLE_A"/>
- </enums>
- <enums name="VkDescriptorType" type="enum">
- <enum value="0" name="VK_DESCRIPTOR_TYPE_SAMPLER"/>
- <enum value="1" name="VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER"/>
- <enum value="2" name="VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE"/>
- <enum value="3" name="VK_DESCRIPTOR_TYPE_STORAGE_IMAGE"/>
- <enum value="4" name="VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER"/>
- <enum value="5" name="VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER"/>
- <enum value="6" name="VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER"/>
- <enum value="7" name="VK_DESCRIPTOR_TYPE_STORAGE_BUFFER"/>
- <enum value="8" name="VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC"/>
- <enum value="9" name="VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC"/>
- <enum value="10" name="VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT"/>
- </enums>
- <enums name="VkQueryType" type="enum">
- <enum value="0" name="VK_QUERY_TYPE_OCCLUSION"/>
- <enum value="1" name="VK_QUERY_TYPE_PIPELINE_STATISTICS" comment="Optional"/>
- <enum value="2" name="VK_QUERY_TYPE_TIMESTAMP"/>
- </enums>
- <enums name="VkBorderColor" type="enum">
- <enum value="0" name="VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK"/>
- <enum value="1" name="VK_BORDER_COLOR_INT_TRANSPARENT_BLACK"/>
- <enum value="2" name="VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK"/>
- <enum value="3" name="VK_BORDER_COLOR_INT_OPAQUE_BLACK"/>
- <enum value="4" name="VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE"/>
- <enum value="5" name="VK_BORDER_COLOR_INT_OPAQUE_WHITE"/>
- </enums>
- <enums name="VkPipelineBindPoint" type="enum">
- <enum value="0" name="VK_PIPELINE_BIND_POINT_GRAPHICS"/>
- <enum value="1" name="VK_PIPELINE_BIND_POINT_COMPUTE"/>
- </enums>
- <enums name="VkPipelineCacheHeaderVersion" type="enum">
- <enum value="1" name="VK_PIPELINE_CACHE_HEADER_VERSION_ONE"/>
- </enums>
- <enums name="VkPipelineCacheCreateFlagBits" type="bitmask">
- </enums>
- <enums name="VkPrimitiveTopology" type="enum">
- <enum value="0" name="VK_PRIMITIVE_TOPOLOGY_POINT_LIST"/>
- <enum value="1" name="VK_PRIMITIVE_TOPOLOGY_LINE_LIST"/>
- <enum value="2" name="VK_PRIMITIVE_TOPOLOGY_LINE_STRIP"/>
- <enum value="3" name="VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST"/>
- <enum value="4" name="VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP"/>
- <enum value="5" name="VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN"/>
- <enum value="6" name="VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY"/>
- <enum value="7" name="VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY"/>
- <enum value="8" name="VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY"/>
- <enum value="9" name="VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY"/>
- <enum value="10" name="VK_PRIMITIVE_TOPOLOGY_PATCH_LIST"/>
- </enums>
- <enums name="VkSharingMode" type="enum">
- <enum value="0" name="VK_SHARING_MODE_EXCLUSIVE"/>
- <enum value="1" name="VK_SHARING_MODE_CONCURRENT"/>
- </enums>
- <enums name="VkIndexType" type="enum">
- <enum value="0" name="VK_INDEX_TYPE_UINT16"/>
- <enum value="1" name="VK_INDEX_TYPE_UINT32"/>
- </enums>
- <enums name="VkFilter" type="enum">
- <enum value="0" name="VK_FILTER_NEAREST"/>
- <enum value="1" name="VK_FILTER_LINEAR"/>
- </enums>
- <enums name="VkSamplerMipmapMode" type="enum">
- <enum value="0" name="VK_SAMPLER_MIPMAP_MODE_NEAREST" comment="Choose nearest mip level"/>
- <enum value="1" name="VK_SAMPLER_MIPMAP_MODE_LINEAR" comment="Linear filter between mip levels"/>
- </enums>
- <enums name="VkSamplerAddressMode" type="enum">
- <enum value="0" name="VK_SAMPLER_ADDRESS_MODE_REPEAT"/>
- <enum value="1" name="VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT"/>
- <enum value="2" name="VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE"/>
- <enum value="3" name="VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER"/>
- <comment>
- value="4" reserved for VK_KHR_sampler_mirror_clamp_to_edge
- enum VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE; do not
- alias!
- </comment>
- </enums>
- <enums name="VkCompareOp" type="enum">
- <enum value="0" name="VK_COMPARE_OP_NEVER"/>
- <enum value="1" name="VK_COMPARE_OP_LESS"/>
- <enum value="2" name="VK_COMPARE_OP_EQUAL"/>
- <enum value="3" name="VK_COMPARE_OP_LESS_OR_EQUAL"/>
- <enum value="4" name="VK_COMPARE_OP_GREATER"/>
- <enum value="5" name="VK_COMPARE_OP_NOT_EQUAL"/>
- <enum value="6" name="VK_COMPARE_OP_GREATER_OR_EQUAL"/>
- <enum value="7" name="VK_COMPARE_OP_ALWAYS"/>
- </enums>
- <enums name="VkPolygonMode" type="enum">
- <enum value="0" name="VK_POLYGON_MODE_FILL"/>
- <enum value="1" name="VK_POLYGON_MODE_LINE"/>
- <enum value="2" name="VK_POLYGON_MODE_POINT"/>
- </enums>
- <enums name="VkFrontFace" type="enum">
- <enum value="0" name="VK_FRONT_FACE_COUNTER_CLOCKWISE"/>
- <enum value="1" name="VK_FRONT_FACE_CLOCKWISE"/>
- </enums>
- <enums name="VkBlendFactor" type="enum">
- <enum value="0" name="VK_BLEND_FACTOR_ZERO"/>
- <enum value="1" name="VK_BLEND_FACTOR_ONE"/>
- <enum value="2" name="VK_BLEND_FACTOR_SRC_COLOR"/>
- <enum value="3" name="VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR"/>
- <enum value="4" name="VK_BLEND_FACTOR_DST_COLOR"/>
- <enum value="5" name="VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR"/>
- <enum value="6" name="VK_BLEND_FACTOR_SRC_ALPHA"/>
- <enum value="7" name="VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA"/>
- <enum value="8" name="VK_BLEND_FACTOR_DST_ALPHA"/>
- <enum value="9" name="VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA"/>
- <enum value="10" name="VK_BLEND_FACTOR_CONSTANT_COLOR"/>
- <enum value="11" name="VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR"/>
- <enum value="12" name="VK_BLEND_FACTOR_CONSTANT_ALPHA"/>
- <enum value="13" name="VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA"/>
- <enum value="14" name="VK_BLEND_FACTOR_SRC_ALPHA_SATURATE"/>
- <enum value="15" name="VK_BLEND_FACTOR_SRC1_COLOR"/>
- <enum value="16" name="VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR"/>
- <enum value="17" name="VK_BLEND_FACTOR_SRC1_ALPHA"/>
- <enum value="18" name="VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA"/>
- </enums>
- <enums name="VkBlendOp" type="enum">
- <enum value="0" name="VK_BLEND_OP_ADD"/>
- <enum value="1" name="VK_BLEND_OP_SUBTRACT"/>
- <enum value="2" name="VK_BLEND_OP_REVERSE_SUBTRACT"/>
- <enum value="3" name="VK_BLEND_OP_MIN"/>
- <enum value="4" name="VK_BLEND_OP_MAX"/>
- </enums>
- <enums name="VkStencilOp" type="enum">
- <enum value="0" name="VK_STENCIL_OP_KEEP"/>
- <enum value="1" name="VK_STENCIL_OP_ZERO"/>
- <enum value="2" name="VK_STENCIL_OP_REPLACE"/>
- <enum value="3" name="VK_STENCIL_OP_INCREMENT_AND_CLAMP"/>
- <enum value="4" name="VK_STENCIL_OP_DECREMENT_AND_CLAMP"/>
- <enum value="5" name="VK_STENCIL_OP_INVERT"/>
- <enum value="6" name="VK_STENCIL_OP_INCREMENT_AND_WRAP"/>
- <enum value="7" name="VK_STENCIL_OP_DECREMENT_AND_WRAP"/>
- </enums>
- <enums name="VkLogicOp" type="enum">
- <enum value="0" name="VK_LOGIC_OP_CLEAR"/>
- <enum value="1" name="VK_LOGIC_OP_AND"/>
- <enum value="2" name="VK_LOGIC_OP_AND_REVERSE"/>
- <enum value="3" name="VK_LOGIC_OP_COPY"/>
- <enum value="4" name="VK_LOGIC_OP_AND_INVERTED"/>
- <enum value="5" name="VK_LOGIC_OP_NO_OP"/>
- <enum value="6" name="VK_LOGIC_OP_XOR"/>
- <enum value="7" name="VK_LOGIC_OP_OR"/>
- <enum value="8" name="VK_LOGIC_OP_NOR"/>
- <enum value="9" name="VK_LOGIC_OP_EQUIVALENT"/>
- <enum value="10" name="VK_LOGIC_OP_INVERT"/>
- <enum value="11" name="VK_LOGIC_OP_OR_REVERSE"/>
- <enum value="12" name="VK_LOGIC_OP_COPY_INVERTED"/>
- <enum value="13" name="VK_LOGIC_OP_OR_INVERTED"/>
- <enum value="14" name="VK_LOGIC_OP_NAND"/>
- <enum value="15" name="VK_LOGIC_OP_SET"/>
- </enums>
- <enums name="VkInternalAllocationType" type="enum">
- <enum value="0" name="VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE"/>
- </enums>
- <enums name="VkSystemAllocationScope" type="enum">
- <enum value="0" name="VK_SYSTEM_ALLOCATION_SCOPE_COMMAND"/>
- <enum value="1" name="VK_SYSTEM_ALLOCATION_SCOPE_OBJECT"/>
- <enum value="2" name="VK_SYSTEM_ALLOCATION_SCOPE_CACHE"/>
- <enum value="3" name="VK_SYSTEM_ALLOCATION_SCOPE_DEVICE"/>
- <enum value="4" name="VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE"/>
- </enums>
- <enums name="VkPhysicalDeviceType" type="enum">
- <enum value="0" name="VK_PHYSICAL_DEVICE_TYPE_OTHER"/>
- <enum value="1" name="VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU"/>
- <enum value="2" name="VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU"/>
- <enum value="3" name="VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU"/>
- <enum value="4" name="VK_PHYSICAL_DEVICE_TYPE_CPU"/>
- </enums>
- <enums name="VkVertexInputRate" type="enum">
- <enum value="0" name="VK_VERTEX_INPUT_RATE_VERTEX"/>
- <enum value="1" name="VK_VERTEX_INPUT_RATE_INSTANCE"/>
- </enums>
- <enums name="VkFormat" type="enum" comment="Vulkan format definitions">
- <enum value="0" name="VK_FORMAT_UNDEFINED"/>
- <enum value="1" name="VK_FORMAT_R4G4_UNORM_PACK8"/>
- <enum value="2" name="VK_FORMAT_R4G4B4A4_UNORM_PACK16"/>
- <enum value="3" name="VK_FORMAT_B4G4R4A4_UNORM_PACK16"/>
- <enum value="4" name="VK_FORMAT_R5G6B5_UNORM_PACK16"/>
- <enum value="5" name="VK_FORMAT_B5G6R5_UNORM_PACK16"/>
- <enum value="6" name="VK_FORMAT_R5G5B5A1_UNORM_PACK16"/>
- <enum value="7" name="VK_FORMAT_B5G5R5A1_UNORM_PACK16"/>
- <enum value="8" name="VK_FORMAT_A1R5G5B5_UNORM_PACK16"/>
- <enum value="9" name="VK_FORMAT_R8_UNORM"/>
- <enum value="10" name="VK_FORMAT_R8_SNORM"/>
- <enum value="11" name="VK_FORMAT_R8_USCALED"/>
- <enum value="12" name="VK_FORMAT_R8_SSCALED"/>
- <enum value="13" name="VK_FORMAT_R8_UINT"/>
- <enum value="14" name="VK_FORMAT_R8_SINT"/>
- <enum value="15" name="VK_FORMAT_R8_SRGB"/>
- <enum value="16" name="VK_FORMAT_R8G8_UNORM"/>
- <enum value="17" name="VK_FORMAT_R8G8_SNORM"/>
- <enum value="18" name="VK_FORMAT_R8G8_USCALED"/>
- <enum value="19" name="VK_FORMAT_R8G8_SSCALED"/>
- <enum value="20" name="VK_FORMAT_R8G8_UINT"/>
- <enum value="21" name="VK_FORMAT_R8G8_SINT"/>
- <enum value="22" name="VK_FORMAT_R8G8_SRGB"/>
- <enum value="23" name="VK_FORMAT_R8G8B8_UNORM"/>
- <enum value="24" name="VK_FORMAT_R8G8B8_SNORM"/>
- <enum value="25" name="VK_FORMAT_R8G8B8_USCALED"/>
- <enum value="26" name="VK_FORMAT_R8G8B8_SSCALED"/>
- <enum value="27" name="VK_FORMAT_R8G8B8_UINT"/>
- <enum value="28" name="VK_FORMAT_R8G8B8_SINT"/>
- <enum value="29" name="VK_FORMAT_R8G8B8_SRGB"/>
- <enum value="30" name="VK_FORMAT_B8G8R8_UNORM"/>
- <enum value="31" name="VK_FORMAT_B8G8R8_SNORM"/>
- <enum value="32" name="VK_FORMAT_B8G8R8_USCALED"/>
- <enum value="33" name="VK_FORMAT_B8G8R8_SSCALED"/>
- <enum value="34" name="VK_FORMAT_B8G8R8_UINT"/>
- <enum value="35" name="VK_FORMAT_B8G8R8_SINT"/>
- <enum value="36" name="VK_FORMAT_B8G8R8_SRGB"/>
- <enum value="37" name="VK_FORMAT_R8G8B8A8_UNORM"/>
- <enum value="38" name="VK_FORMAT_R8G8B8A8_SNORM"/>
- <enum value="39" name="VK_FORMAT_R8G8B8A8_USCALED"/>
- <enum value="40" name="VK_FORMAT_R8G8B8A8_SSCALED"/>
- <enum value="41" name="VK_FORMAT_R8G8B8A8_UINT"/>
- <enum value="42" name="VK_FORMAT_R8G8B8A8_SINT"/>
- <enum value="43" name="VK_FORMAT_R8G8B8A8_SRGB"/>
- <enum value="44" name="VK_FORMAT_B8G8R8A8_UNORM"/>
- <enum value="45" name="VK_FORMAT_B8G8R8A8_SNORM"/>
- <enum value="46" name="VK_FORMAT_B8G8R8A8_USCALED"/>
- <enum value="47" name="VK_FORMAT_B8G8R8A8_SSCALED"/>
- <enum value="48" name="VK_FORMAT_B8G8R8A8_UINT"/>
- <enum value="49" name="VK_FORMAT_B8G8R8A8_SINT"/>
- <enum value="50" name="VK_FORMAT_B8G8R8A8_SRGB"/>
- <enum value="51" name="VK_FORMAT_A8B8G8R8_UNORM_PACK32"/>
- <enum value="52" name="VK_FORMAT_A8B8G8R8_SNORM_PACK32"/>
- <enum value="53" name="VK_FORMAT_A8B8G8R8_USCALED_PACK32"/>
- <enum value="54" name="VK_FORMAT_A8B8G8R8_SSCALED_PACK32"/>
- <enum value="55" name="VK_FORMAT_A8B8G8R8_UINT_PACK32"/>
- <enum value="56" name="VK_FORMAT_A8B8G8R8_SINT_PACK32"/>
- <enum value="57" name="VK_FORMAT_A8B8G8R8_SRGB_PACK32"/>
- <enum value="58" name="VK_FORMAT_A2R10G10B10_UNORM_PACK32"/>
- <enum value="59" name="VK_FORMAT_A2R10G10B10_SNORM_PACK32"/>
- <enum value="60" name="VK_FORMAT_A2R10G10B10_USCALED_PACK32"/>
- <enum value="61" name="VK_FORMAT_A2R10G10B10_SSCALED_PACK32"/>
- <enum value="62" name="VK_FORMAT_A2R10G10B10_UINT_PACK32"/>
- <enum value="63" name="VK_FORMAT_A2R10G10B10_SINT_PACK32"/>
- <enum value="64" name="VK_FORMAT_A2B10G10R10_UNORM_PACK32"/>
- <enum value="65" name="VK_FORMAT_A2B10G10R10_SNORM_PACK32"/>
- <enum value="66" name="VK_FORMAT_A2B10G10R10_USCALED_PACK32"/>
- <enum value="67" name="VK_FORMAT_A2B10G10R10_SSCALED_PACK32"/>
- <enum value="68" name="VK_FORMAT_A2B10G10R10_UINT_PACK32"/>
- <enum value="69" name="VK_FORMAT_A2B10G10R10_SINT_PACK32"/>
- <enum value="70" name="VK_FORMAT_R16_UNORM"/>
- <enum value="71" name="VK_FORMAT_R16_SNORM"/>
- <enum value="72" name="VK_FORMAT_R16_USCALED"/>
- <enum value="73" name="VK_FORMAT_R16_SSCALED"/>
- <enum value="74" name="VK_FORMAT_R16_UINT"/>
- <enum value="75" name="VK_FORMAT_R16_SINT"/>
- <enum value="76" name="VK_FORMAT_R16_SFLOAT"/>
- <enum value="77" name="VK_FORMAT_R16G16_UNORM"/>
- <enum value="78" name="VK_FORMAT_R16G16_SNORM"/>
- <enum value="79" name="VK_FORMAT_R16G16_USCALED"/>
- <enum value="80" name="VK_FORMAT_R16G16_SSCALED"/>
- <enum value="81" name="VK_FORMAT_R16G16_UINT"/>
- <enum value="82" name="VK_FORMAT_R16G16_SINT"/>
- <enum value="83" name="VK_FORMAT_R16G16_SFLOAT"/>
- <enum value="84" name="VK_FORMAT_R16G16B16_UNORM"/>
- <enum value="85" name="VK_FORMAT_R16G16B16_SNORM"/>
- <enum value="86" name="VK_FORMAT_R16G16B16_USCALED"/>
- <enum value="87" name="VK_FORMAT_R16G16B16_SSCALED"/>
- <enum value="88" name="VK_FORMAT_R16G16B16_UINT"/>
- <enum value="89" name="VK_FORMAT_R16G16B16_SINT"/>
- <enum value="90" name="VK_FORMAT_R16G16B16_SFLOAT"/>
- <enum value="91" name="VK_FORMAT_R16G16B16A16_UNORM"/>
- <enum value="92" name="VK_FORMAT_R16G16B16A16_SNORM"/>
- <enum value="93" name="VK_FORMAT_R16G16B16A16_USCALED"/>
- <enum value="94" name="VK_FORMAT_R16G16B16A16_SSCALED"/>
- <enum value="95" name="VK_FORMAT_R16G16B16A16_UINT"/>
- <enum value="96" name="VK_FORMAT_R16G16B16A16_SINT"/>
- <enum value="97" name="VK_FORMAT_R16G16B16A16_SFLOAT"/>
- <enum value="98" name="VK_FORMAT_R32_UINT"/>
- <enum value="99" name="VK_FORMAT_R32_SINT"/>
- <enum value="100" name="VK_FORMAT_R32_SFLOAT"/>
- <enum value="101" name="VK_FORMAT_R32G32_UINT"/>
- <enum value="102" name="VK_FORMAT_R32G32_SINT"/>
- <enum value="103" name="VK_FORMAT_R32G32_SFLOAT"/>
- <enum value="104" name="VK_FORMAT_R32G32B32_UINT"/>
- <enum value="105" name="VK_FORMAT_R32G32B32_SINT"/>
- <enum value="106" name="VK_FORMAT_R32G32B32_SFLOAT"/>
- <enum value="107" name="VK_FORMAT_R32G32B32A32_UINT"/>
- <enum value="108" name="VK_FORMAT_R32G32B32A32_SINT"/>
- <enum value="109" name="VK_FORMAT_R32G32B32A32_SFLOAT"/>
- <enum value="110" name="VK_FORMAT_R64_UINT"/>
- <enum value="111" name="VK_FORMAT_R64_SINT"/>
- <enum value="112" name="VK_FORMAT_R64_SFLOAT"/>
- <enum value="113" name="VK_FORMAT_R64G64_UINT"/>
- <enum value="114" name="VK_FORMAT_R64G64_SINT"/>
- <enum value="115" name="VK_FORMAT_R64G64_SFLOAT"/>
- <enum value="116" name="VK_FORMAT_R64G64B64_UINT"/>
- <enum value="117" name="VK_FORMAT_R64G64B64_SINT"/>
- <enum value="118" name="VK_FORMAT_R64G64B64_SFLOAT"/>
- <enum value="119" name="VK_FORMAT_R64G64B64A64_UINT"/>
- <enum value="120" name="VK_FORMAT_R64G64B64A64_SINT"/>
- <enum value="121" name="VK_FORMAT_R64G64B64A64_SFLOAT"/>
- <enum value="122" name="VK_FORMAT_B10G11R11_UFLOAT_PACK32"/>
- <enum value="123" name="VK_FORMAT_E5B9G9R9_UFLOAT_PACK32"/>
- <enum value="124" name="VK_FORMAT_D16_UNORM"/>
- <enum value="125" name="VK_FORMAT_X8_D24_UNORM_PACK32"/>
- <enum value="126" name="VK_FORMAT_D32_SFLOAT"/>
- <enum value="127" name="VK_FORMAT_S8_UINT"/>
- <enum value="128" name="VK_FORMAT_D16_UNORM_S8_UINT"/>
- <enum value="129" name="VK_FORMAT_D24_UNORM_S8_UINT"/>
- <enum value="130" name="VK_FORMAT_D32_SFLOAT_S8_UINT"/>
- <enum value="131" name="VK_FORMAT_BC1_RGB_UNORM_BLOCK"/>
- <enum value="132" name="VK_FORMAT_BC1_RGB_SRGB_BLOCK"/>
- <enum value="133" name="VK_FORMAT_BC1_RGBA_UNORM_BLOCK"/>
- <enum value="134" name="VK_FORMAT_BC1_RGBA_SRGB_BLOCK"/>
- <enum value="135" name="VK_FORMAT_BC2_UNORM_BLOCK"/>
- <enum value="136" name="VK_FORMAT_BC2_SRGB_BLOCK"/>
- <enum value="137" name="VK_FORMAT_BC3_UNORM_BLOCK"/>
- <enum value="138" name="VK_FORMAT_BC3_SRGB_BLOCK"/>
- <enum value="139" name="VK_FORMAT_BC4_UNORM_BLOCK"/>
- <enum value="140" name="VK_FORMAT_BC4_SNORM_BLOCK"/>
- <enum value="141" name="VK_FORMAT_BC5_UNORM_BLOCK"/>
- <enum value="142" name="VK_FORMAT_BC5_SNORM_BLOCK"/>
- <enum value="143" name="VK_FORMAT_BC6H_UFLOAT_BLOCK"/>
- <enum value="144" name="VK_FORMAT_BC6H_SFLOAT_BLOCK"/>
- <enum value="145" name="VK_FORMAT_BC7_UNORM_BLOCK"/>
- <enum value="146" name="VK_FORMAT_BC7_SRGB_BLOCK"/>
- <enum value="147" name="VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK"/>
- <enum value="148" name="VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK"/>
- <enum value="149" name="VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK"/>
- <enum value="150" name="VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK"/>
- <enum value="151" name="VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK"/>
- <enum value="152" name="VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK"/>
- <enum value="153" name="VK_FORMAT_EAC_R11_UNORM_BLOCK"/>
- <enum value="154" name="VK_FORMAT_EAC_R11_SNORM_BLOCK"/>
- <enum value="155" name="VK_FORMAT_EAC_R11G11_UNORM_BLOCK"/>
- <enum value="156" name="VK_FORMAT_EAC_R11G11_SNORM_BLOCK"/>
- <enum value="157" name="VK_FORMAT_ASTC_4x4_UNORM_BLOCK"/>
- <enum value="158" name="VK_FORMAT_ASTC_4x4_SRGB_BLOCK"/>
- <enum value="159" name="VK_FORMAT_ASTC_5x4_UNORM_BLOCK"/>
- <enum value="160" name="VK_FORMAT_ASTC_5x4_SRGB_BLOCK"/>
- <enum value="161" name="VK_FORMAT_ASTC_5x5_UNORM_BLOCK"/>
- <enum value="162" name="VK_FORMAT_ASTC_5x5_SRGB_BLOCK"/>
- <enum value="163" name="VK_FORMAT_ASTC_6x5_UNORM_BLOCK"/>
- <enum value="164" name="VK_FORMAT_ASTC_6x5_SRGB_BLOCK"/>
- <enum value="165" name="VK_FORMAT_ASTC_6x6_UNORM_BLOCK"/>
- <enum value="166" name="VK_FORMAT_ASTC_6x6_SRGB_BLOCK"/>
- <enum value="167" name="VK_FORMAT_ASTC_8x5_UNORM_BLOCK"/>
- <enum value="168" name="VK_FORMAT_ASTC_8x5_SRGB_BLOCK"/>
- <enum value="169" name="VK_FORMAT_ASTC_8x6_UNORM_BLOCK"/>
- <enum value="170" name="VK_FORMAT_ASTC_8x6_SRGB_BLOCK"/>
- <enum value="171" name="VK_FORMAT_ASTC_8x8_UNORM_BLOCK"/>
- <enum value="172" name="VK_FORMAT_ASTC_8x8_SRGB_BLOCK"/>
- <enum value="173" name="VK_FORMAT_ASTC_10x5_UNORM_BLOCK"/>
- <enum value="174" name="VK_FORMAT_ASTC_10x5_SRGB_BLOCK"/>
- <enum value="175" name="VK_FORMAT_ASTC_10x6_UNORM_BLOCK"/>
- <enum value="176" name="VK_FORMAT_ASTC_10x6_SRGB_BLOCK"/>
- <enum value="177" name="VK_FORMAT_ASTC_10x8_UNORM_BLOCK"/>
- <enum value="178" name="VK_FORMAT_ASTC_10x8_SRGB_BLOCK"/>
- <enum value="179" name="VK_FORMAT_ASTC_10x10_UNORM_BLOCK"/>
- <enum value="180" name="VK_FORMAT_ASTC_10x10_SRGB_BLOCK"/>
- <enum value="181" name="VK_FORMAT_ASTC_12x10_UNORM_BLOCK"/>
- <enum value="182" name="VK_FORMAT_ASTC_12x10_SRGB_BLOCK"/>
- <enum value="183" name="VK_FORMAT_ASTC_12x12_UNORM_BLOCK"/>
- <enum value="184" name="VK_FORMAT_ASTC_12x12_SRGB_BLOCK"/>
- </enums>
- <enums name="VkStructureType" type="enum" comment="Structure type enumerant">
- <enum value="0" name="VK_STRUCTURE_TYPE_APPLICATION_INFO"/>
- <enum value="1" name="VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"/>
- <enum value="2" name="VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"/>
- <enum value="3" name="VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"/>
- <enum value="4" name="VK_STRUCTURE_TYPE_SUBMIT_INFO"/>
- <enum value="5" name="VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"/>
- <enum value="6" name="VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"/>
- <enum value="7" name="VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"/>
- <enum value="8" name="VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"/>
- <enum value="9" name="VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"/>
- <enum value="10" name="VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"/>
- <enum value="11" name="VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"/>
- <enum value="12" name="VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"/>
- <enum value="13" name="VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"/>
- <enum value="14" name="VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"/>
- <enum value="15" name="VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"/>
- <enum value="16" name="VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"/>
- <enum value="17" name="VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"/>
- <enum value="18" name="VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"/>
- <enum value="19" name="VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"/>
- <enum value="20" name="VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"/>
- <enum value="21" name="VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"/>
- <enum value="22" name="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"/>
- <enum value="23" name="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"/>
- <enum value="24" name="VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"/>
- <enum value="25" name="VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"/>
- <enum value="26" name="VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"/>
- <enum value="27" name="VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"/>
- <enum value="28" name="VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"/>
- <enum value="29" name="VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"/>
- <enum value="30" name="VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"/>
- <enum value="31" name="VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"/>
- <enum value="32" name="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"/>
- <enum value="33" name="VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"/>
- <enum value="34" name="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"/>
- <enum value="35" name="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"/>
- <enum value="36" name="VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"/>
- <enum value="37" name="VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"/>
- <enum value="38" name="VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"/>
- <enum value="39" name="VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"/>
- <enum value="40" name="VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"/>
- <enum value="41" name="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"/>
- <enum value="42" name="VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"/>
- <enum value="43" name="VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"/>
- <enum value="44" name="VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"/>
- <enum value="45" name="VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"/>
- <enum value="46" name="VK_STRUCTURE_TYPE_MEMORY_BARRIER"/>
- <enum value="47" name="VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO" comment="Reserved for internal use by the loader, layers, and ICDs"/>
- <enum value="48" name="VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO" comment="Reserved for internal use by the loader, layers, and ICDs"/>
- </enums>
- <enums name="VkSubpassContents" type="enum">
- <enum value="0" name="VK_SUBPASS_CONTENTS_INLINE"/>
- <enum value="1" name="VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS"/>
- </enums>
- <enums name="VkResult" type="enum" comment="API result codes">
- <comment>Return codes (positive values)</comment>
- <enum value="0" name="VK_SUCCESS" comment="Command completed successfully"/>
- <enum value="1" name="VK_NOT_READY" comment="A fence or query has not yet completed"/>
- <enum value="2" name="VK_TIMEOUT" comment="A wait operation has not completed in the specified time"/>
- <enum value="3" name="VK_EVENT_SET" comment="An event is signaled"/>
- <enum value="4" name="VK_EVENT_RESET" comment="An event is unsignaled"/>
- <enum value="5" name="VK_INCOMPLETE" comment="A return array was too small for the result"/>
- <comment>Error codes (negative values)</comment>
- <enum value="-1" name="VK_ERROR_OUT_OF_HOST_MEMORY" comment="A host memory allocation has failed"/>
- <enum value="-2" name="VK_ERROR_OUT_OF_DEVICE_MEMORY" comment="A device memory allocation has failed"/>
- <enum value="-3" name="VK_ERROR_INITIALIZATION_FAILED" comment="Initialization of a object has failed"/>
- <enum value="-4" name="VK_ERROR_DEVICE_LOST" comment="The logical device has been lost. See &lt;&lt;devsandqueues-lost-device&gt;&gt;"/>
- <enum value="-5" name="VK_ERROR_MEMORY_MAP_FAILED" comment="Mapping of a memory object has failed"/>
- <enum value="-6" name="VK_ERROR_LAYER_NOT_PRESENT" comment="Layer specified does not exist"/>
- <enum value="-7" name="VK_ERROR_EXTENSION_NOT_PRESENT" comment="Extension specified does not exist"/>
- <enum value="-8" name="VK_ERROR_FEATURE_NOT_PRESENT" comment="Requested feature is not available on this device"/>
- <enum value="-9" name="VK_ERROR_INCOMPATIBLE_DRIVER" comment="Unable to find a Vulkan driver"/>
- <enum value="-10" name="VK_ERROR_TOO_MANY_OBJECTS" comment="Too many objects of the type have already been created"/>
- <enum value="-11" name="VK_ERROR_FORMAT_NOT_SUPPORTED" comment="Requested format is not supported on this device"/>
- <enum value="-12" name="VK_ERROR_FRAGMENTED_POOL" comment="A requested pool allocation has failed due to fragmentation of the pool's memory"/>
- <enum value="-13" name="VK_ERROR_UNKNOWN" comment="An unknown error has occurred, due to an implementation or application bug"/>
- <unused start="-14" comment="This is the next unused available error code (negative value)"/>
- </enums>
- <enums name="VkDynamicState" type="enum">
- <enum value="0" name="VK_DYNAMIC_STATE_VIEWPORT"/>
- <enum value="1" name="VK_DYNAMIC_STATE_SCISSOR"/>
- <enum value="2" name="VK_DYNAMIC_STATE_LINE_WIDTH"/>
- <enum value="3" name="VK_DYNAMIC_STATE_DEPTH_BIAS"/>
- <enum value="4" name="VK_DYNAMIC_STATE_BLEND_CONSTANTS"/>
- <enum value="5" name="VK_DYNAMIC_STATE_DEPTH_BOUNDS"/>
- <enum value="6" name="VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK"/>
- <enum value="7" name="VK_DYNAMIC_STATE_STENCIL_WRITE_MASK"/>
- <enum value="8" name="VK_DYNAMIC_STATE_STENCIL_REFERENCE"/>
- </enums>
- <enums name="VkDescriptorUpdateTemplateType" type="enum">
- <enum value="0" name="VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET" comment="Create descriptor update template for descriptor set updates"/>
- </enums>
- <enums name="VkObjectType" type="enum" comment="Enums to track objects of various types - also see objtypeenum attributes on type tags">
- <enum value="0" name="VK_OBJECT_TYPE_UNKNOWN"/>
- <enum value="1" name="VK_OBJECT_TYPE_INSTANCE"/>
- <enum value="2" name="VK_OBJECT_TYPE_PHYSICAL_DEVICE"/>
- <enum value="3" name="VK_OBJECT_TYPE_DEVICE"/>
- <enum value="4" name="VK_OBJECT_TYPE_QUEUE"/>
- <enum value="5" name="VK_OBJECT_TYPE_SEMAPHORE"/>
- <enum value="6" name="VK_OBJECT_TYPE_COMMAND_BUFFER"/>
- <enum value="7" name="VK_OBJECT_TYPE_FENCE"/>
- <enum value="8" name="VK_OBJECT_TYPE_DEVICE_MEMORY"/>
- <enum value="9" name="VK_OBJECT_TYPE_BUFFER"/>
- <enum value="10" name="VK_OBJECT_TYPE_IMAGE"/>
- <enum value="11" name="VK_OBJECT_TYPE_EVENT"/>
- <enum value="12" name="VK_OBJECT_TYPE_QUERY_POOL"/>
- <enum value="13" name="VK_OBJECT_TYPE_BUFFER_VIEW"/>
- <enum value="14" name="VK_OBJECT_TYPE_IMAGE_VIEW"/>
- <enum value="15" name="VK_OBJECT_TYPE_SHADER_MODULE"/>
- <enum value="16" name="VK_OBJECT_TYPE_PIPELINE_CACHE"/>
- <enum value="17" name="VK_OBJECT_TYPE_PIPELINE_LAYOUT"/>
- <enum value="18" name="VK_OBJECT_TYPE_RENDER_PASS"/>
- <enum value="19" name="VK_OBJECT_TYPE_PIPELINE"/>
- <enum value="20" name="VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT"/>
- <enum value="21" name="VK_OBJECT_TYPE_SAMPLER"/>
- <enum value="22" name="VK_OBJECT_TYPE_DESCRIPTOR_POOL"/>
- <enum value="23" name="VK_OBJECT_TYPE_DESCRIPTOR_SET"/>
- <enum value="24" name="VK_OBJECT_TYPE_FRAMEBUFFER"/>
- <enum value="25" name="VK_OBJECT_TYPE_COMMAND_POOL"/>
- </enums>
-
- <comment>Flags</comment>
- <enums name="VkQueueFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_QUEUE_GRAPHICS_BIT" comment="Queue supports graphics operations"/>
- <enum bitpos="1" name="VK_QUEUE_COMPUTE_BIT" comment="Queue supports compute operations"/>
- <enum bitpos="2" name="VK_QUEUE_TRANSFER_BIT" comment="Queue supports transfer operations"/>
- <enum bitpos="3" name="VK_QUEUE_SPARSE_BINDING_BIT" comment="Queue supports sparse resource memory management operations"/>
- </enums>
- <enums name="VkCullModeFlagBits" type="bitmask">
- <enum value="0" name="VK_CULL_MODE_NONE"/>
- <enum bitpos="0" name="VK_CULL_MODE_FRONT_BIT"/>
- <enum bitpos="1" name="VK_CULL_MODE_BACK_BIT"/>
- <enum value="0x00000003" name="VK_CULL_MODE_FRONT_AND_BACK"/>
- </enums>
- <enums name="VkRenderPassCreateFlagBits" type="bitmask">
- </enums>
- <enums name="VkDeviceQueueCreateFlagBits" type="bitmask">
- </enums>
- <enums name="VkMemoryPropertyFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT" comment="If otherwise stated, then allocate memory on device"/>
- <enum bitpos="1" name="VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT" comment="Memory is mappable by host"/>
- <enum bitpos="2" name="VK_MEMORY_PROPERTY_HOST_COHERENT_BIT" comment="Memory will have i/o coherency. If not set, application may need to use vkFlushMappedMemoryRanges and vkInvalidateMappedMemoryRanges to flush/invalidate host cache"/>
- <enum bitpos="3" name="VK_MEMORY_PROPERTY_HOST_CACHED_BIT" comment="Memory will be cached by the host"/>
- <enum bitpos="4" name="VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT" comment="Memory may be allocated by the driver when it is required"/>
- </enums>
- <enums name="VkMemoryHeapFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_MEMORY_HEAP_DEVICE_LOCAL_BIT" comment="If set, heap represents device memory"/>
- </enums>
- <enums name="VkAccessFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_ACCESS_INDIRECT_COMMAND_READ_BIT" comment="Controls coherency of indirect command reads"/>
- <enum bitpos="1" name="VK_ACCESS_INDEX_READ_BIT" comment="Controls coherency of index reads"/>
- <enum bitpos="2" name="VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT" comment="Controls coherency of vertex attribute reads"/>
- <enum bitpos="3" name="VK_ACCESS_UNIFORM_READ_BIT" comment="Controls coherency of uniform buffer reads"/>
- <enum bitpos="4" name="VK_ACCESS_INPUT_ATTACHMENT_READ_BIT" comment="Controls coherency of input attachment reads"/>
- <enum bitpos="5" name="VK_ACCESS_SHADER_READ_BIT" comment="Controls coherency of shader reads"/>
- <enum bitpos="6" name="VK_ACCESS_SHADER_WRITE_BIT" comment="Controls coherency of shader writes"/>
- <enum bitpos="7" name="VK_ACCESS_COLOR_ATTACHMENT_READ_BIT" comment="Controls coherency of color attachment reads"/>
- <enum bitpos="8" name="VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT" comment="Controls coherency of color attachment writes"/>
- <enum bitpos="9" name="VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT" comment="Controls coherency of depth/stencil attachment reads"/>
- <enum bitpos="10" name="VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT" comment="Controls coherency of depth/stencil attachment writes"/>
- <enum bitpos="11" name="VK_ACCESS_TRANSFER_READ_BIT" comment="Controls coherency of transfer reads"/>
- <enum bitpos="12" name="VK_ACCESS_TRANSFER_WRITE_BIT" comment="Controls coherency of transfer writes"/>
- <enum bitpos="13" name="VK_ACCESS_HOST_READ_BIT" comment="Controls coherency of host reads"/>
- <enum bitpos="14" name="VK_ACCESS_HOST_WRITE_BIT" comment="Controls coherency of host writes"/>
- <enum bitpos="15" name="VK_ACCESS_MEMORY_READ_BIT" comment="Controls coherency of memory reads"/>
- <enum bitpos="16" name="VK_ACCESS_MEMORY_WRITE_BIT" comment="Controls coherency of memory writes"/>
- </enums>
- <enums name="VkBufferUsageFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_BUFFER_USAGE_TRANSFER_SRC_BIT" comment="Can be used as a source of transfer operations"/>
- <enum bitpos="1" name="VK_BUFFER_USAGE_TRANSFER_DST_BIT" comment="Can be used as a destination of transfer operations"/>
- <enum bitpos="2" name="VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT" comment="Can be used as TBO"/>
- <enum bitpos="3" name="VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT" comment="Can be used as IBO"/>
- <enum bitpos="4" name="VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT" comment="Can be used as UBO"/>
- <enum bitpos="5" name="VK_BUFFER_USAGE_STORAGE_BUFFER_BIT" comment="Can be used as SSBO"/>
- <enum bitpos="6" name="VK_BUFFER_USAGE_INDEX_BUFFER_BIT" comment="Can be used as source of fixed-function index fetch (index buffer)"/>
- <enum bitpos="7" name="VK_BUFFER_USAGE_VERTEX_BUFFER_BIT" comment="Can be used as source of fixed-function vertex fetch (VBO)"/>
- <enum bitpos="8" name="VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT" comment="Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)"/>
- </enums>
- <enums name="VkBufferCreateFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_BUFFER_CREATE_SPARSE_BINDING_BIT" comment="Buffer should support sparse backing"/>
- <enum bitpos="1" name="VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT" comment="Buffer should support sparse backing with partial residency"/>
- <enum bitpos="2" name="VK_BUFFER_CREATE_SPARSE_ALIASED_BIT" comment="Buffer should support constant data access to physical memory ranges mapped into multiple locations of sparse buffers"/>
- </enums>
- <enums name="VkShaderStageFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_SHADER_STAGE_VERTEX_BIT"/>
- <enum bitpos="1" name="VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"/>
- <enum bitpos="2" name="VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"/>
- <enum bitpos="3" name="VK_SHADER_STAGE_GEOMETRY_BIT"/>
- <enum bitpos="4" name="VK_SHADER_STAGE_FRAGMENT_BIT"/>
- <enum bitpos="5" name="VK_SHADER_STAGE_COMPUTE_BIT"/>
- <enum value="0x0000001F" name="VK_SHADER_STAGE_ALL_GRAPHICS"/>
- <enum value="0x7FFFFFFF" name="VK_SHADER_STAGE_ALL"/>
- </enums>
- <enums name="VkImageUsageFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_IMAGE_USAGE_TRANSFER_SRC_BIT" comment="Can be used as a source of transfer operations"/>
- <enum bitpos="1" name="VK_IMAGE_USAGE_TRANSFER_DST_BIT" comment="Can be used as a destination of transfer operations"/>
- <enum bitpos="2" name="VK_IMAGE_USAGE_SAMPLED_BIT" comment="Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)"/>
- <enum bitpos="3" name="VK_IMAGE_USAGE_STORAGE_BIT" comment="Can be used as storage image (STORAGE_IMAGE descriptor type)"/>
- <enum bitpos="4" name="VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" comment="Can be used as framebuffer color attachment"/>
- <enum bitpos="5" name="VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" comment="Can be used as framebuffer depth/stencil attachment"/>
- <enum bitpos="6" name="VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT" comment="Image data not needed outside of rendering"/>
- <enum bitpos="7" name="VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" comment="Can be used as framebuffer input attachment"/>
- </enums>
- <enums name="VkImageCreateFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_IMAGE_CREATE_SPARSE_BINDING_BIT" comment="Image should support sparse backing"/>
- <enum bitpos="1" name="VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" comment="Image should support sparse backing with partial residency"/>
- <enum bitpos="2" name="VK_IMAGE_CREATE_SPARSE_ALIASED_BIT" comment="Image should support constant data access to physical memory ranges mapped into multiple locations of sparse images"/>
- <enum bitpos="3" name="VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT" comment="Allows image views to have different format than the base image"/>
- <enum bitpos="4" name="VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT" comment="Allows creating image views with cube type from the created image"/>
- </enums>
- <enums name="VkImageViewCreateFlagBits" type="bitmask">
- </enums>
- <enums name="VkSamplerCreateFlagBits" type="bitmask">
- </enums>
- <enums name="VkPipelineCreateFlagBits" type="bitmask" comment="Note that the gap at bitpos 10 is unused, and can be reserved">
- <enum bitpos="0" name="VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"/>
- <enum bitpos="1" name="VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"/>
- <enum bitpos="2" name="VK_PIPELINE_CREATE_DERIVATIVE_BIT"/>
- </enums>
- <enums name="VkPipelineShaderStageCreateFlagBits" type="bitmask">
- </enums>
- <enums name="VkColorComponentFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_COLOR_COMPONENT_R_BIT"/>
- <enum bitpos="1" name="VK_COLOR_COMPONENT_G_BIT"/>
- <enum bitpos="2" name="VK_COLOR_COMPONENT_B_BIT"/>
- <enum bitpos="3" name="VK_COLOR_COMPONENT_A_BIT"/>
- </enums>
- <enums name="VkFenceCreateFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_FENCE_CREATE_SIGNALED_BIT"/>
- </enums>
- <enums name="VkSemaphoreCreateFlagBits" type="bitmask">
- </enums>
- <enums name="VkFormatFeatureFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT" comment="Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)"/>
- <enum bitpos="1" name="VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT" comment="Format can be used for storage images (STORAGE_IMAGE descriptor type)"/>
- <enum bitpos="2" name="VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" comment="Format supports atomic operations in case it is used for storage images"/>
- <enum bitpos="3" name="VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" comment="Format can be used for uniform texel buffers (TBOs)"/>
- <enum bitpos="4" name="VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT" comment="Format can be used for storage texel buffers (IBOs)"/>
- <enum bitpos="5" name="VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT" comment="Format supports atomic operations in case it is used for storage texel buffers"/>
- <enum bitpos="6" name="VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" comment="Format can be used for vertex buffers (VBOs)"/>
- <enum bitpos="7" name="VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" comment="Format can be used for color attachment images"/>
- <enum bitpos="8" name="VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" comment="Format supports blending in case it is used for color attachment images"/>
- <enum bitpos="9" name="VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" comment="Format can be used for depth/stencil attachment images"/>
- <enum bitpos="10" name="VK_FORMAT_FEATURE_BLIT_SRC_BIT" comment="Format can be used as the source image of blits with vkCmdBlitImage"/>
- <enum bitpos="11" name="VK_FORMAT_FEATURE_BLIT_DST_BIT" comment="Format can be used as the destination image of blits with vkCmdBlitImage"/>
- <enum bitpos="12" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" comment="Format can be filtered with VK_FILTER_LINEAR when being sampled"/>
- </enums>
- <enums name="VkQueryControlFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_QUERY_CONTROL_PRECISE_BIT" comment="Require precise results to be collected by the query"/>
- </enums>
- <enums name="VkQueryResultFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_QUERY_RESULT_64_BIT" comment="Results of the queries are written to the destination buffer as 64-bit values"/>
- <enum bitpos="1" name="VK_QUERY_RESULT_WAIT_BIT" comment="Results of the queries are waited on before proceeding with the result copy"/>
- <enum bitpos="2" name="VK_QUERY_RESULT_WITH_AVAILABILITY_BIT" comment="Besides the results of the query, the availability of the results is also written"/>
- <enum bitpos="3" name="VK_QUERY_RESULT_PARTIAL_BIT" comment="Copy the partial results of the query even if the final results are not available"/>
- </enums>
- <enums name="VkCommandBufferUsageFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"/>
- <enum bitpos="1" name="VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"/>
- <enum bitpos="2" name="VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT" comment="Command buffer may be submitted/executed more than once simultaneously"/>
- </enums>
- <enums name="VkQueryPipelineStatisticFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT" comment="Optional"/>
- <enum bitpos="1" name="VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT" comment="Optional"/>
- <enum bitpos="2" name="VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT" comment="Optional"/>
- <enum bitpos="3" name="VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT" comment="Optional"/>
- <enum bitpos="4" name="VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT" comment="Optional"/>
- <enum bitpos="5" name="VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT" comment="Optional"/>
- <enum bitpos="6" name="VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT" comment="Optional"/>
- <enum bitpos="7" name="VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT" comment="Optional"/>
- <enum bitpos="8" name="VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT" comment="Optional"/>
- <enum bitpos="9" name="VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT" comment="Optional"/>
- <enum bitpos="10" name="VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT" comment="Optional"/>
- </enums>
- <enums name="VkImageAspectFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_IMAGE_ASPECT_COLOR_BIT"/>
- <enum bitpos="1" name="VK_IMAGE_ASPECT_DEPTH_BIT"/>
- <enum bitpos="2" name="VK_IMAGE_ASPECT_STENCIL_BIT"/>
- <enum bitpos="3" name="VK_IMAGE_ASPECT_METADATA_BIT"/>
- </enums>
- <enums name="VkSparseImageFormatFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT" comment="Image uses a single mip tail region for all array layers"/>
- <enum bitpos="1" name="VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT" comment="Image requires mip level dimensions to be an integer multiple of the sparse image block dimensions for non-tail mip levels."/>
- <enum bitpos="2" name="VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT" comment="Image uses a non-standard sparse image block dimensions"/>
- </enums>
- <enums name="VkSparseMemoryBindFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_SPARSE_MEMORY_BIND_METADATA_BIT" comment="Operation binds resource metadata to memory"/>
- </enums>
- <enums name="VkPipelineStageFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT" comment="Before subsequent commands are processed"/>
- <enum bitpos="1" name="VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT" comment="Draw/DispatchIndirect command fetch"/>
- <enum bitpos="2" name="VK_PIPELINE_STAGE_VERTEX_INPUT_BIT" comment="Vertex/index fetch"/>
- <enum bitpos="3" name="VK_PIPELINE_STAGE_VERTEX_SHADER_BIT" comment="Vertex shading"/>
- <enum bitpos="4" name="VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT" comment="Tessellation control shading"/>
- <enum bitpos="5" name="VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" comment="Tessellation evaluation shading"/>
- <enum bitpos="6" name="VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" comment="Geometry shading"/>
- <enum bitpos="7" name="VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT" comment="Fragment shading"/>
- <enum bitpos="8" name="VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT" comment="Early fragment (depth and stencil) tests"/>
- <enum bitpos="9" name="VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT" comment="Late fragment (depth and stencil) tests"/>
- <enum bitpos="10" name="VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT" comment="Color attachment writes"/>
- <enum bitpos="11" name="VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT" comment="Compute shading"/>
- <enum bitpos="12" name="VK_PIPELINE_STAGE_TRANSFER_BIT" comment="Transfer/copy operations"/>
- <enum bitpos="13" name="VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT" comment="After previous commands have completed"/>
- <enum bitpos="14" name="VK_PIPELINE_STAGE_HOST_BIT" comment="Indicates host (CPU) is a source/sink of the dependency"/>
- <enum bitpos="15" name="VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT" comment="All stages of the graphics pipeline"/>
- <enum bitpos="16" name="VK_PIPELINE_STAGE_ALL_COMMANDS_BIT" comment="All stages supported on the queue"/>
- </enums>
- <enums name="VkCommandPoolCreateFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_COMMAND_POOL_CREATE_TRANSIENT_BIT" comment="Command buffers have a short lifetime"/>
- <enum bitpos="1" name="VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT" comment="Command buffers may release their memory individually"/>
- </enums>
- <enums name="VkCommandPoolResetFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT" comment="Release resources owned by the pool"/>
- </enums>
- <enums name="VkCommandBufferResetFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT" comment="Release resources owned by the buffer"/>
- </enums>
- <enums name="VkSampleCountFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_SAMPLE_COUNT_1_BIT" comment="Sample count 1 supported"/>
- <enum bitpos="1" name="VK_SAMPLE_COUNT_2_BIT" comment="Sample count 2 supported"/>
- <enum bitpos="2" name="VK_SAMPLE_COUNT_4_BIT" comment="Sample count 4 supported"/>
- <enum bitpos="3" name="VK_SAMPLE_COUNT_8_BIT" comment="Sample count 8 supported"/>
- <enum bitpos="4" name="VK_SAMPLE_COUNT_16_BIT" comment="Sample count 16 supported"/>
- <enum bitpos="5" name="VK_SAMPLE_COUNT_32_BIT" comment="Sample count 32 supported"/>
- <enum bitpos="6" name="VK_SAMPLE_COUNT_64_BIT" comment="Sample count 64 supported"/>
- </enums>
- <enums name="VkAttachmentDescriptionFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT" comment="The attachment may alias physical memory of another attachment in the same render pass"/>
- </enums>
- <enums name="VkStencilFaceFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_STENCIL_FACE_FRONT_BIT" comment="Front face"/>
- <enum bitpos="1" name="VK_STENCIL_FACE_BACK_BIT" comment="Back face"/>
- <enum value="0x00000003" name="VK_STENCIL_FACE_FRONT_AND_BACK" comment="Front and back faces"/>
- <enum name="VK_STENCIL_FRONT_AND_BACK" alias="VK_STENCIL_FACE_FRONT_AND_BACK" comment="Backwards-compatible alias containing a typo"/>
- </enums>
- <enums name="VkDescriptorPoolCreateFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT" comment="Descriptor sets may be freed individually"/>
- </enums>
- <enums name="VkDependencyFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_DEPENDENCY_BY_REGION_BIT" comment="Dependency is per pixel region "/>
- </enums>
- <enums name="VkSemaphoreType" type="enum">
- <enum value="0" name="VK_SEMAPHORE_TYPE_BINARY"/>
- <enum value="1" name="VK_SEMAPHORE_TYPE_TIMELINE"/>
- </enums>
- <enums name="VkSemaphoreWaitFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_SEMAPHORE_WAIT_ANY_BIT"/>
- </enums>
-
- <comment>WSI Extensions</comment>
- <enums name="VkPresentModeKHR" type="enum">
- <enum value="0" name="VK_PRESENT_MODE_IMMEDIATE_KHR"/>
- <enum value="1" name="VK_PRESENT_MODE_MAILBOX_KHR"/>
- <enum value="2" name="VK_PRESENT_MODE_FIFO_KHR"/>
- <enum value="3" name="VK_PRESENT_MODE_FIFO_RELAXED_KHR"/>
- </enums>
- <enums name="VkColorSpaceKHR" type="enum">
- <enum value="0" name="VK_COLOR_SPACE_SRGB_NONLINEAR_KHR"/>
- <enum name="VK_COLORSPACE_SRGB_NONLINEAR_KHR" alias="VK_COLOR_SPACE_SRGB_NONLINEAR_KHR" comment="Backwards-compatible alias containing a typo"/>
- </enums>
- <enums name="VkDisplayPlaneAlphaFlagBitsKHR" type="bitmask">
- <enum bitpos="0" name="VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"/>
- <enum bitpos="1" name="VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"/>
- <enum bitpos="2" name="VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"/>
- <enum bitpos="3" name="VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"/>
- </enums>
- <enums name="VkCompositeAlphaFlagBitsKHR" type="bitmask">
- <enum bitpos="0" name="VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"/>
- <enum bitpos="1" name="VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"/>
- <enum bitpos="2" name="VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"/>
- <enum bitpos="3" name="VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"/>
- </enums>
- <enums name="VkSurfaceTransformFlagBitsKHR" type="bitmask">
- <enum bitpos="0" name="VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"/>
- <enum bitpos="1" name="VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"/>
- <enum bitpos="2" name="VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"/>
- <enum bitpos="3" name="VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"/>
- <enum bitpos="4" name="VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"/>
- <enum bitpos="5" name="VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"/>
- <enum bitpos="6" name="VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"/>
- <enum bitpos="7" name="VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"/>
- <enum bitpos="8" name="VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"/>
- </enums>
- <enums name="VkSwapchainImageUsageFlagBitsANDROID" type="bitmask">
- <enum bitpos="0" name="VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID"/>
- </enums>
- <enums name="VkTimeDomainEXT" type="enum">
- <enum value="0" name="VK_TIME_DOMAIN_DEVICE_EXT"/>
- <enum value="1" name="VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT"/>
- <enum value="2" name="VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT"/>
- <enum value="3" name="VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT"/>
- </enums>
- <enums name="VkDebugReportFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_DEBUG_REPORT_INFORMATION_BIT_EXT"/>
- <enum bitpos="1" name="VK_DEBUG_REPORT_WARNING_BIT_EXT"/>
- <enum bitpos="2" name="VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"/>
- <enum bitpos="3" name="VK_DEBUG_REPORT_ERROR_BIT_EXT"/>
- <enum bitpos="4" name="VK_DEBUG_REPORT_DEBUG_BIT_EXT"/>
- </enums>
- <enums name="VkDebugReportObjectTypeEXT" type="enum">
- <enum value="0" name="VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT"/>
- <enum value="1" name="VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT"/>
- <enum value="2" name="VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT"/>
- <enum value="3" name="VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT"/>
- <enum value="4" name="VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT"/>
- <enum value="5" name="VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT"/>
- <enum value="6" name="VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT"/>
- <enum value="7" name="VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT"/>
- <enum value="8" name="VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT"/>
- <enum value="9" name="VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT"/>
- <enum value="10" name="VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT"/>
- <enum value="11" name="VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT"/>
- <enum value="12" name="VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT"/>
- <enum value="13" name="VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT"/>
- <enum value="14" name="VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT"/>
- <enum value="15" name="VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT"/>
- <enum value="16" name="VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT"/>
- <enum value="17" name="VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT"/>
- <enum value="18" name="VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT"/>
- <enum value="19" name="VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT"/>
- <enum value="20" name="VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT"/>
- <enum value="21" name="VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT"/>
- <enum value="22" name="VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT"/>
- <enum value="23" name="VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT"/>
- <enum value="24" name="VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT"/>
- <enum value="25" name="VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT"/>
- <enum value="26" name="VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT"/>
- <enum value="27" name="VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"/>
- <enum value="28" name="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT"/>
- <enum name="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT" alias="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT" comment="Backwards-compatible alias containing a typo"/>
- <enum value="29" name="VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT"/>
- <enum value="30" name="VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT"/>
- <!--<enum value="31" name="VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT" comment="Removed NVX_device_generated_commands"/>-->
- <!--<enum value="32" name="VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT" comment="Removed NVX_device_generated_commands"/>-->
- <enum value="33" name="VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT"/>
- <enum name="VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT" alias="VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT" comment="Backwards-compatible alias containing a typo"/>
- </enums>
- <enums name="VkDeviceMemoryReportEventTypeEXT" type="enum">
- <enum value="0" name="VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT"/>
- <enum value="1" name="VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT"/>
- <enum value="2" name="VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT"/>
- <enum value="3" name="VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT"/>
- <enum value="4" name="VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT"/>
- </enums>
- <enums name="VkRasterizationOrderAMD" type="enum">
- <enum value="0" name="VK_RASTERIZATION_ORDER_STRICT_AMD"/>
- <enum value="1" name="VK_RASTERIZATION_ORDER_RELAXED_AMD"/>
- </enums>
- <enums name="VkExternalMemoryHandleTypeFlagBitsNV" type="bitmask">
- <enum bitpos="0" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"/>
- <enum bitpos="1" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"/>
- <enum bitpos="2" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"/>
- <enum bitpos="3" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"/>
- </enums>
- <enums name="VkExternalMemoryFeatureFlagBitsNV" type="bitmask">
- <enum bitpos="0" name="VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"/>
- <enum bitpos="1" name="VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"/>
- <enum bitpos="2" name="VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"/>
- </enums>
- <enums name="VkValidationCheckEXT" type="enum">
- <enum value="0" name="VK_VALIDATION_CHECK_ALL_EXT"/>
- <enum value="1" name="VK_VALIDATION_CHECK_SHADERS_EXT"/>
- </enums>
- <enums name="VkValidationFeatureEnableEXT" type="enum">
- <enum value="0" name="VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT"/>
- <enum value="1" name="VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT"/>
- <enum value="2" name="VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT"/>
- <enum value="3" name="VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT"/>
- <enum value="4" name="VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT"/>
- </enums>
- <enums name="VkValidationFeatureDisableEXT" type="enum">
- <enum value="0" name="VK_VALIDATION_FEATURE_DISABLE_ALL_EXT"/>
- <enum value="1" name="VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT"/>
- <enum value="2" name="VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT"/>
- <enum value="3" name="VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT"/>
- <enum value="4" name="VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT"/>
- <enum value="5" name="VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT"/>
- <enum value="6" name="VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT"/>
- <enum value="7" name="VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT"/>
- </enums>
- <enums name="VkSubgroupFeatureFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_SUBGROUP_FEATURE_BASIC_BIT" comment="Basic subgroup operations"/>
- <enum bitpos="1" name="VK_SUBGROUP_FEATURE_VOTE_BIT" comment="Vote subgroup operations"/>
- <enum bitpos="2" name="VK_SUBGROUP_FEATURE_ARITHMETIC_BIT" comment="Arithmetic subgroup operations"/>
- <enum bitpos="3" name="VK_SUBGROUP_FEATURE_BALLOT_BIT" comment="Ballot subgroup operations"/>
- <enum bitpos="4" name="VK_SUBGROUP_FEATURE_SHUFFLE_BIT" comment="Shuffle subgroup operations"/>
- <enum bitpos="5" name="VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT" comment="Shuffle relative subgroup operations"/>
- <enum bitpos="6" name="VK_SUBGROUP_FEATURE_CLUSTERED_BIT" comment="Clustered subgroup operations"/>
- <enum bitpos="7" name="VK_SUBGROUP_FEATURE_QUAD_BIT" comment="Quad subgroup operations"/>
- </enums>
- <enums name="VkIndirectCommandsLayoutUsageFlagBitsNV" type="bitmask">
- <enum bitpos="0" name="VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"/>
- <enum bitpos="1" name="VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"/>
- <enum bitpos="2" name="VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"/>
- </enums>
- <enums name="VkIndirectStateFlagBitsNV" type="bitmask">
- <enum bitpos="0" name="VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"/>
- </enums>
- <enums name="VkIndirectCommandsTokenTypeNV" type="enum">
- <enum value="0" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV"/>
- <enum value="1" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV"/>
- <enum value="2" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV"/>
- <enum value="3" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV"/>
- <enum value="4" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV"/>
- <enum value="5" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV"/>
- <enum value="6" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV"/>
- <enum value="7" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV"/>
- </enums>
- <enums name="VkPrivateDataSlotCreateFlagBits" type="bitmask">
- </enums>
- <enums name="VkDescriptorSetLayoutCreateFlagBits" type="bitmask">
- </enums>
- <enums name="VkExternalMemoryHandleTypeFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"/>
- <enum bitpos="1" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"/>
- <enum bitpos="2" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"/>
- <enum bitpos="3" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"/>
- <enum bitpos="4" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"/>
- <enum bitpos="5" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"/>
- <enum bitpos="6" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"/>
- </enums>
- <enums name="VkExternalMemoryFeatureFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"/>
- <enum bitpos="1" name="VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"/>
- <enum bitpos="2" name="VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"/>
- </enums>
- <enums name="VkExternalSemaphoreHandleTypeFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"/>
- <enum bitpos="1" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"/>
- <enum bitpos="2" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"/>
- <enum bitpos="3" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"/>
- <enum name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT" alias="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"/>
- <enum bitpos="4" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"/>
- </enums>
- <enums name="VkExternalSemaphoreFeatureFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"/>
- <enum bitpos="1" name="VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"/>
- </enums>
- <enums name="VkSemaphoreImportFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"/>
- </enums>
- <enums name="VkExternalFenceHandleTypeFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"/>
- <enum bitpos="1" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"/>
- <enum bitpos="2" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"/>
- <enum bitpos="3" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"/>
- </enums>
- <enums name="VkExternalFenceFeatureFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"/>
- <enum bitpos="1" name="VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"/>
- </enums>
- <enums name="VkFenceImportFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_FENCE_IMPORT_TEMPORARY_BIT"/>
- </enums>
- <enums name="VkSurfaceCounterFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_SURFACE_COUNTER_VBLANK_BIT_EXT"/>
- <enum name="VK_SURFACE_COUNTER_VBLANK_EXT" alias="VK_SURFACE_COUNTER_VBLANK_BIT_EXT" comment="Backwards-compatible alias containing a typo"/>
- </enums>
- <enums name="VkDisplayPowerStateEXT" type="enum">
- <enum value="0" name="VK_DISPLAY_POWER_STATE_OFF_EXT"/>
- <enum value="1" name="VK_DISPLAY_POWER_STATE_SUSPEND_EXT"/>
- <enum value="2" name="VK_DISPLAY_POWER_STATE_ON_EXT"/>
- </enums>
- <enums name="VkDeviceEventTypeEXT" type="enum">
- <enum value="0" name="VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT"/>
- </enums>
- <enums name="VkDisplayEventTypeEXT" type="enum">
- <enum value="0" name="VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT"/>
- </enums>
- <enums name="VkPeerMemoryFeatureFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT" comment="Can read with vkCmdCopy commands"/>
- <enum bitpos="1" name="VK_PEER_MEMORY_FEATURE_COPY_DST_BIT" comment="Can write with vkCmdCopy commands"/>
- <enum bitpos="2" name="VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT" comment="Can read with any access type/command"/>
- <enum bitpos="3" name="VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT" comment="Can write with and access type/command"/>
- </enums>
- <enums name="VkMemoryAllocateFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT" comment="Force allocation on specific devices"/>
- </enums>
- <enums name="VkDeviceGroupPresentModeFlagBitsKHR" type="bitmask">
- <enum bitpos="0" name="VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR" comment="Present from local memory"/>
- <enum bitpos="1" name="VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR" comment="Present from remote memory"/>
- <enum bitpos="2" name="VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR" comment="Present sum of local and/or remote memory"/>
- <enum bitpos="3" name="VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR" comment="Each physical device presents from local memory"/>
- </enums>
- <enums name="VkSwapchainCreateFlagBitsKHR" type="bitmask">
- </enums>
- <enums name="VkViewportCoordinateSwizzleNV" type="enum">
- <enum value="0" name="VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV"/>
- <enum value="1" name="VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV"/>
- <enum value="2" name="VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV"/>
- <enum value="3" name="VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV"/>
- <enum value="4" name="VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV"/>
- <enum value="5" name="VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV"/>
- <enum value="6" name="VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV"/>
- <enum value="7" name="VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV"/>
- </enums>
- <enums name="VkDiscardRectangleModeEXT" type="enum">
- <enum value="0" name="VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT"/>
- <enum value="1" name="VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT"/>
- </enums>
- <enums name="VkSubpassDescriptionFlagBits" type="bitmask">
- </enums>
- <enums name="VkPointClippingBehavior" type="enum">
- <enum value="0" name="VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES"/>
- <enum value="1" name="VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY"/>
- </enums>
- <enums name="VkSamplerReductionMode" type="enum">
- <enum value="0" name="VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE"/>
- <enum value="1" name="VK_SAMPLER_REDUCTION_MODE_MIN"/>
- <enum value="2" name="VK_SAMPLER_REDUCTION_MODE_MAX"/>
- </enums>
- <enums name="VkTessellationDomainOrigin" type="enum">
- <enum value="0" name="VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT"/>
- <enum value="1" name="VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT"/>
- </enums>
- <enums name="VkSamplerYcbcrModelConversion" type="enum">
- <enum value="0" name="VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY"/>
- <enum value="1" name="VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY" comment="just range expansion"/>
- <enum value="2" name="VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709" comment="aka HD YUV"/>
- <enum value="3" name="VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601" comment="aka SD YUV"/>
- <enum value="4" name="VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020" comment="aka UHD YUV"/>
- </enums>
- <enums name="VkSamplerYcbcrRange" type="enum">
- <enum value="0" name="VK_SAMPLER_YCBCR_RANGE_ITU_FULL" comment="Luma 0..1 maps to 0..255, chroma -0.5..0.5 to 1..255 (clamped)"/>
- <enum value="1" name="VK_SAMPLER_YCBCR_RANGE_ITU_NARROW" comment="Luma 0..1 maps to 16..235, chroma -0.5..0.5 to 16..240"/>
- </enums>
- <enums name="VkChromaLocation" type="enum">
- <enum value="0" name="VK_CHROMA_LOCATION_COSITED_EVEN"/>
- <enum value="1" name="VK_CHROMA_LOCATION_MIDPOINT"/>
- </enums>
- <enums name="VkBlendOverlapEXT" type="enum">
- <enum value="0" name="VK_BLEND_OVERLAP_UNCORRELATED_EXT"/>
- <enum value="1" name="VK_BLEND_OVERLAP_DISJOINT_EXT"/>
- <enum value="2" name="VK_BLEND_OVERLAP_CONJOINT_EXT"/>
- </enums>
- <enums name="VkCoverageModulationModeNV" type="enum">
- <enum value="0" name="VK_COVERAGE_MODULATION_MODE_NONE_NV"/>
- <enum value="1" name="VK_COVERAGE_MODULATION_MODE_RGB_NV"/>
- <enum value="2" name="VK_COVERAGE_MODULATION_MODE_ALPHA_NV"/>
- <enum value="3" name="VK_COVERAGE_MODULATION_MODE_RGBA_NV"/>
- </enums>
- <enums name="VkCoverageReductionModeNV" type="enum">
- <enum value="0" name="VK_COVERAGE_REDUCTION_MODE_MERGE_NV"/>
- <enum value="1" name="VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV"/>
- </enums>
- <enums name="VkValidationCacheHeaderVersionEXT" type="enum">
- <enum value="1" name="VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT"/>
- </enums>
- <enums name="VkShaderInfoTypeAMD" type="enum">
- <enum value="0" name="VK_SHADER_INFO_TYPE_STATISTICS_AMD"/>
- <enum value="1" name="VK_SHADER_INFO_TYPE_BINARY_AMD"/>
- <enum value="2" name="VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD"/>
- </enums>
- <enums name="VkQueueGlobalPriorityKHR" type="enum">
- <enum value="128" name="VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR"/>
- <enum value="256" name="VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR"/>
- <enum value="512" name="VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR"/>
- <enum value="1024" name="VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR"/>
- <enum name="VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT" alias="VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR"/>
- <enum name="VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT" alias="VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR"/>
- <enum name="VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT" alias="VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR"/>
- <enum name="VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT" alias="VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR"/>
- </enums>
- <enums name="VkDebugUtilsMessageSeverityFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"/>
- <enum bitpos="4" name="VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"/>
- <enum bitpos="8" name="VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"/>
- <enum bitpos="12" name="VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"/>
- </enums>
- <enums name="VkDebugUtilsMessageTypeFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"/>
- <enum bitpos="1" name="VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"/>
- <enum bitpos="2" name="VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"/>
- </enums>
- <enums name="VkConservativeRasterizationModeEXT" type="enum">
- <enum value="0" name="VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT"/>
- <enum value="1" name="VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT"/>
- <enum value="2" name="VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT"/>
- </enums>
- <enums name="VkDescriptorBindingFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"/>
- <enum bitpos="1" name="VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"/>
- <enum bitpos="2" name="VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"/>
- <enum bitpos="3" name="VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"/>
- </enums>
- <enums name="VkVendorId" type="enum">
- <comment>Vendor IDs are now represented as enums instead of the old
- &lt;vendorids&gt; tag, allowing them to be included in the
- API headers.</comment>
- <enum value="0x10001" name="VK_VENDOR_ID_VIV" comment="Vivante vendor ID"/>
- <enum value="0x10002" name="VK_VENDOR_ID_VSI" comment="VeriSilicon vendor ID"/>
- <enum value="0x10003" name="VK_VENDOR_ID_KAZAN" comment="Kazan Software Renderer"/>
- <enum value="0x10004" name="VK_VENDOR_ID_CODEPLAY" comment="Codeplay Software Ltd. vendor ID"/>
- <enum value="0x10005" name="VK_VENDOR_ID_MESA" comment="Mesa vendor ID"/>
- <enum value="0x10006" name="VK_VENDOR_ID_POCL" comment="PoCL vendor ID"/>
- <unused start="0x10007" comment="This is the next unused available Khronos vendor ID"/>
- </enums>
- <enums name="VkDriverId" type="enum">
- <comment>Driver IDs are now represented as enums instead of the old
- &lt;driverids&gt; tag, allowing them to be included in the
- API headers.</comment>
- <enum value="1" name="VK_DRIVER_ID_AMD_PROPRIETARY" comment="Advanced Micro Devices, Inc."/>
- <enum value="2" name="VK_DRIVER_ID_AMD_OPEN_SOURCE" comment="Advanced Micro Devices, Inc."/>
- <enum value="3" name="VK_DRIVER_ID_MESA_RADV" comment="Mesa open source project"/>
- <enum value="4" name="VK_DRIVER_ID_NVIDIA_PROPRIETARY" comment="NVIDIA Corporation"/>
- <enum value="5" name="VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS" comment="Intel Corporation"/>
- <enum value="6" name="VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA" comment="Intel Corporation"/>
- <enum value="7" name="VK_DRIVER_ID_IMAGINATION_PROPRIETARY" comment="Imagination Technologies"/>
- <enum value="8" name="VK_DRIVER_ID_QUALCOMM_PROPRIETARY" comment="Qualcomm Technologies, Inc."/>
- <enum value="9" name="VK_DRIVER_ID_ARM_PROPRIETARY" comment="Arm Limited"/>
- <enum value="10" name="VK_DRIVER_ID_GOOGLE_SWIFTSHADER" comment="Google LLC"/>
- <enum value="11" name="VK_DRIVER_ID_GGP_PROPRIETARY" comment="Google LLC"/>
- <enum value="12" name="VK_DRIVER_ID_BROADCOM_PROPRIETARY" comment="Broadcom Inc."/>
- <enum value="13" name="VK_DRIVER_ID_MESA_LLVMPIPE" comment="Mesa"/>
- <enum value="14" name="VK_DRIVER_ID_MOLTENVK" comment="MoltenVK"/>
- <enum value="15" name="VK_DRIVER_ID_COREAVI_PROPRIETARY" comment="Core Avionics &amp; Industrial Inc."/>
- <enum value="16" name="VK_DRIVER_ID_JUICE_PROPRIETARY" comment="Juice Technologies, Inc."/>
- <enum value="17" name="VK_DRIVER_ID_VERISILICON_PROPRIETARY" comment="Verisilicon, Inc."/>
- <enum value="18" name="VK_DRIVER_ID_MESA_TURNIP" comment="Mesa open source project"/>
- <enum value="19" name="VK_DRIVER_ID_MESA_V3DV" comment="Mesa open source project"/>
- <enum value="20" name="VK_DRIVER_ID_MESA_PANVK" comment="Mesa open source project"/>
- <enum value="21" name="VK_DRIVER_ID_SAMSUNG_PROPRIETARY" comment="Samsung Electronics Co., Ltd."/>
- <enum value="22" name="VK_DRIVER_ID_MESA_VENUS" comment="Mesa open source project"/>
- </enums>
- <enums name="VkConditionalRenderingFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"/>
- </enums>
- <enums name="VkResolveModeFlagBits" type="bitmask">
- <enum value="0" name="VK_RESOLVE_MODE_NONE"/>
- <enum bitpos="0" name="VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"/>
- <enum bitpos="1" name="VK_RESOLVE_MODE_AVERAGE_BIT"/>
- <enum bitpos="2" name="VK_RESOLVE_MODE_MIN_BIT"/>
- <enum bitpos="3" name="VK_RESOLVE_MODE_MAX_BIT"/>
- </enums>
- <enums name="VkShadingRatePaletteEntryNV" type="enum">
- <enum value="0" name="VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV"/>
- <enum value="1" name="VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV"/>
- <enum value="2" name="VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV"/>
- <enum value="3" name="VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV"/>
- <enum value="4" name="VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV"/>
- <enum value="5" name="VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV"/>
- <enum value="6" name="VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV"/>
- <enum value="7" name="VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV"/>
- <enum value="8" name="VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV"/>
- <enum value="9" name="VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV"/>
- <enum value="10" name="VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV"/>
- <enum value="11" name="VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV"/>
- </enums>
- <enums name="VkCoarseSampleOrderTypeNV" type="enum">
- <enum value="0" name="VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV"/>
- <enum value="1" name="VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV"/>
- <enum value="2" name="VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV"/>
- <enum value="3" name="VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV"/>
- </enums>
- <enums name="VkGeometryInstanceFlagBitsKHR" type="bitmask">
- <enum bitpos="0" name="VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"/>
- <enum bitpos="1" name="VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR"/>
- <enum bitpos="2" name="VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"/>
- <enum bitpos="3" name="VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"/>
- <enum name="VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR" alias="VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR"/>
- </enums>
- <enums name="VkGeometryFlagBitsKHR" type="bitmask">
- <enum bitpos="0" name="VK_GEOMETRY_OPAQUE_BIT_KHR"/>
- <enum bitpos="1" name="VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"/>
- </enums>
- <enums name="VkBuildAccelerationStructureFlagBitsKHR" type="bitmask">
- <enum bitpos="0" name="VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"/>
- <enum bitpos="1" name="VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"/>
- <enum bitpos="2" name="VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"/>
- <enum bitpos="3" name="VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"/>
- <enum bitpos="4" name="VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"/>
- </enums>
- <enums name="VkAccelerationStructureCreateFlagBitsKHR" type="bitmask">
- <enum bitpos="0" name="VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"/>
- </enums>
- <enums name="VkCopyAccelerationStructureModeKHR" type="enum">
- <enum value="0" name="VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR"/>
- <enum value="1" name="VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR"/>
- <enum value="2" name="VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR"/>
- <enum value="3" name="VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR"/>
- </enums>
- <enums name="VkBuildAccelerationStructureModeKHR" type="enum">
- <enum value="0" name="VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR"/>
- <enum value="1" name="VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR"/>
- </enums>
- <enums name="VkAccelerationStructureTypeKHR" type="enum">
- <enum value="0" name="VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR"/>
- <enum value="1" name="VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR"/>
- <enum value="2" name="VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR"/>
- </enums>
- <enums name="VkGeometryTypeKHR" type="enum">
- <enum value="0" name="VK_GEOMETRY_TYPE_TRIANGLES_KHR"/>
- <enum value="1" name="VK_GEOMETRY_TYPE_AABBS_KHR"/>
- <enum value="2" name="VK_GEOMETRY_TYPE_INSTANCES_KHR"/>
- </enums>
- <enums name="VkAccelerationStructureMemoryRequirementsTypeNV" type="enum">
- <enum value="0" name="VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV"/>
- <enum value="1" name="VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV"/>
- <enum value="2" name="VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV"/>
- </enums>
- <enums name="VkAccelerationStructureBuildTypeKHR" type="enum">
- <enum value="0" name="VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR"/>
- <enum value="1" name="VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR"/>
- <enum value="2" name="VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR"/>
- </enums>
- <enums name="VkRayTracingShaderGroupTypeKHR" type="enum">
- <enum value="0" name="VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR"/>
- <enum value="1" name="VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR"/>
- <enum value="2" name="VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR"/>
- </enums>
- <enums name="VkAccelerationStructureCompatibilityKHR" type="enum">
- <enum value="0" name="VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR"/>
- <enum value="1" name="VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR"/>
- </enums>
- <enums name="VkShaderGroupShaderKHR" type="enum">
- <enum value="0" name="VK_SHADER_GROUP_SHADER_GENERAL_KHR"/>
- <enum value="1" name="VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR"/>
- <enum value="2" name="VK_SHADER_GROUP_SHADER_ANY_HIT_KHR"/>
- <enum value="3" name="VK_SHADER_GROUP_SHADER_INTERSECTION_KHR"/>
- </enums>
- <enums name="VkMemoryOverallocationBehaviorAMD" type="enum">
- <enum value="0" name="VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD"/>
- <enum value="1" name="VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD"/>
- <enum value="2" name="VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD"/>
- </enums>
- <enums name="VkFramebufferCreateFlagBits" type="bitmask">
- </enums>
- <enums name="VkScopeNV" type="enum">
- <enum value="1" name="VK_SCOPE_DEVICE_NV"/>
- <enum value="2" name="VK_SCOPE_WORKGROUP_NV"/>
- <enum value="3" name="VK_SCOPE_SUBGROUP_NV"/>
- <enum value="5" name="VK_SCOPE_QUEUE_FAMILY_NV"/>
- </enums>
- <enums name="VkComponentTypeNV" type="enum">
- <enum value="0" name="VK_COMPONENT_TYPE_FLOAT16_NV"/>
- <enum value="1" name="VK_COMPONENT_TYPE_FLOAT32_NV"/>
- <enum value="2" name="VK_COMPONENT_TYPE_FLOAT64_NV"/>
- <enum value="3" name="VK_COMPONENT_TYPE_SINT8_NV"/>
- <enum value="4" name="VK_COMPONENT_TYPE_SINT16_NV"/>
- <enum value="5" name="VK_COMPONENT_TYPE_SINT32_NV"/>
- <enum value="6" name="VK_COMPONENT_TYPE_SINT64_NV"/>
- <enum value="7" name="VK_COMPONENT_TYPE_UINT8_NV"/>
- <enum value="8" name="VK_COMPONENT_TYPE_UINT16_NV"/>
- <enum value="9" name="VK_COMPONENT_TYPE_UINT32_NV"/>
- <enum value="10" name="VK_COMPONENT_TYPE_UINT64_NV"/>
- </enums>
- <enums name="VkDeviceDiagnosticsConfigFlagBitsNV" type="bitmask">
- <enum bitpos="0" name="VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"/>
- <enum bitpos="1" name="VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"/>
- <enum bitpos="2" name="VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"/>
- </enums>
- <enums name="VkPipelineCreationFeedbackFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT"/>
- <enum name="VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT" alias="VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT"/>
- <enum bitpos="1" name="VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT"/>
- <enum name="VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT" alias="VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT"/>
- <enum bitpos="2" name="VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT"/>
- <enum name="VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT" alias="VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT"/>
- </enums>
- <enums name="VkFullScreenExclusiveEXT" type="enum">
- <enum value="0" name="VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT"/>
- <enum value="1" name="VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT"/>
- <enum value="2" name="VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT"/>
- <enum value="3" name="VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT"/>
- </enums>
- <enums name="VkPerformanceCounterScopeKHR" type="enum">
- <enum value="0" name="VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR"/>
- <enum value="1" name="VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR"/>
- <enum value="2" name="VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR"/>
- <enum name="VK_QUERY_SCOPE_COMMAND_BUFFER_KHR" alias="VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR" comment="Backwards-compatible alias containing a typo"/>
- <enum name="VK_QUERY_SCOPE_RENDER_PASS_KHR" alias="VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR" comment="Backwards-compatible alias containing a typo"/>
- <enum name="VK_QUERY_SCOPE_COMMAND_KHR" alias="VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR" comment="Backwards-compatible alias containing a typo"/>
- </enums>
- <enums name="VkPerformanceCounterUnitKHR" type="enum">
- <enum value="0" name="VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR"/>
- <enum value="1" name="VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR"/>
- <enum value="2" name="VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR"/>
- <enum value="3" name="VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR"/>
- <enum value="4" name="VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR"/>
- <enum value="5" name="VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR"/>
- <enum value="6" name="VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR"/>
- <enum value="7" name="VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR"/>
- <enum value="8" name="VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR"/>
- <enum value="9" name="VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR"/>
- <enum value="10" name="VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR"/>
- </enums>
- <enums name="VkPerformanceCounterStorageKHR" type="enum">
- <enum value="0" name="VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR"/>
- <enum value="1" name="VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR"/>
- <enum value="2" name="VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR"/>
- <enum value="3" name="VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR"/>
- <enum value="4" name="VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR"/>
- <enum value="5" name="VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR"/>
- </enums>
- <enums name="VkPerformanceCounterDescriptionFlagBitsKHR" type="bitmask">
- <enum bitpos="0" name="VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"/>
- <enum name="VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR" alias="VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR" comment="Backwards-compatible alias containing a typo"/>
- <enum bitpos="1" name="VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"/>
- <enum name="VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR" alias="VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR" comment="Backwards-compatible alias containing a typo"/>
- </enums>
- <enums name="VkAcquireProfilingLockFlagBitsKHR" type="bitmask">
- </enums>
- <enums name="VkShaderCorePropertiesFlagBitsAMD" type="bitmask">
- </enums>
- <enums name="VkPerformanceConfigurationTypeINTEL" type="enum">
- <enum value="0" name="VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL"/>
- </enums>
- <enums name="VkQueryPoolSamplingModeINTEL" type="enum">
- <enum value="0" name="VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL"/>
- </enums>
- <enums name="VkPerformanceOverrideTypeINTEL" type="enum">
- <enum value="0" name="VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL"/>
- <enum value="1" name="VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL"/>
- </enums>
- <enums name="VkPerformanceParameterTypeINTEL" type="enum">
- <enum value="0" name="VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL"/>
- <enum value="1" name="VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL"/>
- </enums>
- <enums name="VkPerformanceValueTypeINTEL" type="enum">
- <enum value="0" name="VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL"/>
- <enum value="1" name="VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL"/>
- <enum value="2" name="VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL"/>
- <enum value="3" name="VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL"/>
- <enum value="4" name="VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL"/>
- </enums>
- <enums name="VkShaderFloatControlsIndependence" type="enum">
- <enum value="0" name="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY"/>
- <enum value="1" name="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL"/>
- <enum value="2" name="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE"/>
- </enums>
- <enums name="VkPipelineExecutableStatisticFormatKHR" type="enum">
- <enum value="0" name="VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR"/>
- <enum value="1" name="VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR"/>
- <enum value="2" name="VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR"/>
- <enum value="3" name="VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR"/>
- </enums>
- <enums name="VkLineRasterizationModeEXT" type="enum">
- <enum value="0" name="VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT"/>
- <enum value="1" name="VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT"/>
- <enum value="2" name="VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT"/>
- <enum value="3" name="VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT"/>
- </enums>
- <enums name="VkShaderModuleCreateFlagBits" type="bitmask">
- </enums>
- <enums name="VkPipelineCompilerControlFlagBitsAMD" type="bitmask">
- </enums>
- <enums name="VkToolPurposeFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_TOOL_PURPOSE_VALIDATION_BIT"/>
- <enum name="VK_TOOL_PURPOSE_VALIDATION_BIT_EXT" alias="VK_TOOL_PURPOSE_VALIDATION_BIT"/>
- <enum bitpos="1" name="VK_TOOL_PURPOSE_PROFILING_BIT"/>
- <enum name="VK_TOOL_PURPOSE_PROFILING_BIT_EXT" alias="VK_TOOL_PURPOSE_PROFILING_BIT"/>
- <enum bitpos="2" name="VK_TOOL_PURPOSE_TRACING_BIT"/>
- <enum name="VK_TOOL_PURPOSE_TRACING_BIT_EXT" alias="VK_TOOL_PURPOSE_TRACING_BIT"/>
- <enum bitpos="3" name="VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT"/>
- <enum name="VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT" alias="VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT"/>
- <enum bitpos="4" name="VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"/>
- <enum name="VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT" alias="VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"/>
- </enums>
- <enums name="VkFragmentShadingRateCombinerOpKHR" type="enum">
- <enum value="0" name="VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR"/>
- <enum value="1" name="VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR"/>
- <enum value="2" name="VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR"/>
- <enum value="3" name="VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR"/>
- <enum value="4" name="VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR"/>
- </enums>
- <enums name="VkFragmentShadingRateNV" type="enum">
- <enum value="0" name="VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV"/>
- <enum value="1" name="VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV"/>
- <enum value="4" name="VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV"/>
- <enum value="5" name="VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV"/>
- <enum value="6" name="VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV"/>
- <enum value="9" name="VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV"/>
- <enum value="10" name="VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV"/>
- <enum value="11" name="VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV"/>
- <enum value="12" name="VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV"/>
- <enum value="13" name="VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV"/>
- <enum value="14" name="VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV"/>
- <enum value="15" name="VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV"/>
- </enums>
- <enums name="VkFragmentShadingRateTypeNV" type="enum">
- <enum value="0" name="VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV"/>
- <enum value="1" name="VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV"/>
- </enums>
- <enums name="VkAccessFlagBits2" type="bitmask" bitwidth="64">
- <enum value="0" name="VK_ACCESS_2_NONE"/>
- <enum name="VK_ACCESS_2_NONE_KHR" alias="VK_ACCESS_2_NONE"/>
- <enum bitpos="0" name="VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT"/>
- <enum name="VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR" alias="VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT"/>
- <enum bitpos="1" name="VK_ACCESS_2_INDEX_READ_BIT"/>
- <enum name="VK_ACCESS_2_INDEX_READ_BIT_KHR" alias="VK_ACCESS_2_INDEX_READ_BIT"/>
- <enum bitpos="2" name="VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT"/>
- <enum name="VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR" alias="VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT"/>
- <enum bitpos="3" name="VK_ACCESS_2_UNIFORM_READ_BIT"/>
- <enum name="VK_ACCESS_2_UNIFORM_READ_BIT_KHR" alias="VK_ACCESS_2_UNIFORM_READ_BIT"/>
- <enum bitpos="4" name="VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT"/>
- <enum name="VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR" alias="VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT"/>
- <enum bitpos="5" name="VK_ACCESS_2_SHADER_READ_BIT"/>
- <enum name="VK_ACCESS_2_SHADER_READ_BIT_KHR" alias="VK_ACCESS_2_SHADER_READ_BIT"/>
- <enum bitpos="6" name="VK_ACCESS_2_SHADER_WRITE_BIT"/>
- <enum name="VK_ACCESS_2_SHADER_WRITE_BIT_KHR" alias="VK_ACCESS_2_SHADER_WRITE_BIT"/>
- <enum bitpos="7" name="VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT"/>
- <enum name="VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR" alias="VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT"/>
- <enum bitpos="8" name="VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT"/>
- <enum name="VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR" alias="VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT"/>
- <enum bitpos="9" name="VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT"/>
- <enum name="VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR" alias="VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT"/>
- <enum bitpos="10" name="VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"/>
- <enum name="VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR" alias="VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"/>
- <enum bitpos="11" name="VK_ACCESS_2_TRANSFER_READ_BIT"/>
- <enum name="VK_ACCESS_2_TRANSFER_READ_BIT_KHR" alias="VK_ACCESS_2_TRANSFER_READ_BIT"/>
- <enum bitpos="12" name="VK_ACCESS_2_TRANSFER_WRITE_BIT"/>
- <enum name="VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR" alias="VK_ACCESS_2_TRANSFER_WRITE_BIT"/>
- <enum bitpos="13" name="VK_ACCESS_2_HOST_READ_BIT"/>
- <enum name="VK_ACCESS_2_HOST_READ_BIT_KHR" alias="VK_ACCESS_2_HOST_READ_BIT"/>
- <enum bitpos="14" name="VK_ACCESS_2_HOST_WRITE_BIT"/>
- <enum name="VK_ACCESS_2_HOST_WRITE_BIT_KHR" alias="VK_ACCESS_2_HOST_WRITE_BIT"/>
- <enum bitpos="15" name="VK_ACCESS_2_MEMORY_READ_BIT"/>
- <enum name="VK_ACCESS_2_MEMORY_READ_BIT_KHR" alias="VK_ACCESS_2_MEMORY_READ_BIT"/>
- <enum bitpos="16" name="VK_ACCESS_2_MEMORY_WRITE_BIT"/>
- <enum name="VK_ACCESS_2_MEMORY_WRITE_BIT_KHR" alias="VK_ACCESS_2_MEMORY_WRITE_BIT"/>
- <!-- bitpos 17-31 are specified by extensions to the original VkAccessFlagBits enum -->
- <enum bitpos="32" name="VK_ACCESS_2_SHADER_SAMPLED_READ_BIT"/>
- <enum name="VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR" alias="VK_ACCESS_2_SHADER_SAMPLED_READ_BIT"/>
- <enum bitpos="33" name="VK_ACCESS_2_SHADER_STORAGE_READ_BIT"/>
- <enum name="VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR" alias="VK_ACCESS_2_SHADER_STORAGE_READ_BIT"/>
- <enum bitpos="34" name="VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT"/>
- <enum name="VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR" alias="VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT"/>
- </enums>
- <enums name="VkPipelineStageFlagBits2" type="bitmask" bitwidth="64">
- <enum value="0" name="VK_PIPELINE_STAGE_2_NONE"/>
- <enum name="VK_PIPELINE_STAGE_2_NONE_KHR" alias="VK_PIPELINE_STAGE_2_NONE"/>
- <enum bitpos="0" name="VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR" alias="VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT"/>
- <enum bitpos="1" name="VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR" alias="VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT"/>
- <enum bitpos="2" name="VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR" alias="VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT"/>
- <enum bitpos="3" name="VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR" alias="VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT"/>
- <enum bitpos="4" name="VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR" alias="VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT"/>
- <enum bitpos="5" name="VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR" alias="VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT"/>
- <enum bitpos="6" name="VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR" alias="VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT"/>
- <enum bitpos="7" name="VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR" alias="VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT"/>
- <enum bitpos="8" name="VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR" alias="VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT"/>
- <enum bitpos="9" name="VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR" alias="VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT"/>
- <enum bitpos="10" name="VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR" alias="VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT"/>
- <enum bitpos="11" name="VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR" alias="VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT"/>
- <enum bitpos="12" name="VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR" alias="VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_TRANSFER_BIT" alias="VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR"/>
- <enum name="VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR" alias="VK_PIPELINE_STAGE_2_TRANSFER_BIT"/>
- <enum bitpos="13" name="VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR" alias="VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT"/>
- <enum bitpos="14" name="VK_PIPELINE_STAGE_2_HOST_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_HOST_BIT_KHR" alias="VK_PIPELINE_STAGE_2_HOST_BIT"/>
- <enum bitpos="15" name="VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR" alias="VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT"/>
- <enum bitpos="16" name="VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR" alias="VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT"/>
- <!-- bitpos 17-31 are specified by extensions to the original VkPipelineStageFlagBits enum -->
- <enum bitpos="32" name="VK_PIPELINE_STAGE_2_COPY_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_COPY_BIT_KHR" alias="VK_PIPELINE_STAGE_2_COPY_BIT"/>
- <enum bitpos="33" name="VK_PIPELINE_STAGE_2_RESOLVE_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR" alias="VK_PIPELINE_STAGE_2_RESOLVE_BIT"/>
- <enum bitpos="34" name="VK_PIPELINE_STAGE_2_BLIT_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_BLIT_BIT_KHR" alias="VK_PIPELINE_STAGE_2_BLIT_BIT"/>
- <enum bitpos="35" name="VK_PIPELINE_STAGE_2_CLEAR_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR" alias="VK_PIPELINE_STAGE_2_CLEAR_BIT"/>
- <enum bitpos="36" name="VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR" alias="VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT"/>
- <enum bitpos="37" name="VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR" alias="VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT"/>
- <enum bitpos="38" name="VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT"/>
- <enum name="VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR" alias="VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT"/>
- </enums>
- <enums name="VkSubmitFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_SUBMIT_PROTECTED_BIT"/>
- <enum name="VK_SUBMIT_PROTECTED_BIT_KHR" alias="VK_SUBMIT_PROTECTED_BIT"/>
- </enums>
- <enums name="VkEventCreateFlagBits" type="bitmask">
- </enums>
- <enums name="VkPipelineLayoutCreateFlagBits" type="bitmask">
- </enums>
- <enums name="VkProvokingVertexModeEXT" type="enum">
- <enum value="0" name="VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT"/>
- <enum value="1" name="VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT"/>
- </enums>
- <enums name="VkAccelerationStructureMotionInstanceTypeNV" type="enum">
- <enum value="0" name="VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV"/>
- <enum value="1" name="VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV"/>
- <enum value="2" name="VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV"/>
- </enums>
- <enums name="VkPipelineColorBlendStateCreateFlagBits" type="bitmask">
- </enums>
- <enums name="VkPipelineDepthStencilStateCreateFlagBits" type="bitmask">
- </enums>
-
- <enums name="VkVideoCodecOperationFlagBitsKHR" type="bitmask">
- <enum value="0" name="VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR"/>
- </enums>
- <enums name="VkVideoChromaSubsamplingFlagBitsKHR" type="bitmask" comment="Vulkan video chroma subsampling definitions">
- <enum value="0" name="VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR"/>
- <enum bitpos="0" name="VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR"/>
- <enum bitpos="1" name="VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR"/>
- <enum bitpos="2" name="VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR"/>
- <enum bitpos="3" name="VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR"/>
- </enums>
- <enums name="VkVideoComponentBitDepthFlagBitsKHR" type="bitmask" comment="Vulkan video component bit depth definitions">
- <enum value="0" name="VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"/>
- <enum bitpos="0" name="VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR"/>
- <enum bitpos="2" name="VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR"/>
- <enum bitpos="4" name="VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR"/>
- </enums>
- <enums name="VkVideoCapabilityFlagBitsKHR" type="bitmask">
- <enum bitpos="0" name="VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR"/>
- <enum bitpos="1" name="VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR"/>
- </enums>
- <enums name="VkVideoSessionCreateFlagBitsKHR" type="bitmask">
- <enum value="0" name="VK_VIDEO_SESSION_CREATE_DEFAULT_KHR"/>
- <enum bitpos="0" name="VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"/>
- </enums>
- <enums name="VkVideoCodingQualityPresetFlagBitsKHR" type="bitmask">
- <enum bitpos="0" name="VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR"/>
- <enum bitpos="1" name="VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR"/>
- <enum bitpos="2" name="VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR"/>
- </enums>
- <enums name="VkVideoDecodeH264PictureLayoutFlagBitsEXT" type="bitmask">
- <enum value="0" name="VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT"/>
- <enum bitpos="0" name="VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT"/>
- </enums>
- <enums name="VkVideoCodingControlFlagBitsKHR" type="bitmask">
- <enum value="0" name="VK_VIDEO_CODING_CONTROL_DEFAULT_KHR"/>
- <enum bitpos="0" name="VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"/>
- </enums>
- <enums name="VkQueryResultStatusKHR" type="enum">
- <enum value="-1" name="VK_QUERY_RESULT_STATUS_ERROR_KHR"/>
- <enum value="0" name="VK_QUERY_RESULT_STATUS_NOT_READY_KHR"/>
- <enum value="1" name="VK_QUERY_RESULT_STATUS_COMPLETE_KHR"/>
- </enums>
- <enums name="VkVideoDecodeFlagBitsKHR" type="bitmask">
- <enum value="0" name="VK_VIDEO_DECODE_DEFAULT_KHR"/>
- <enum bitpos="0" name="VK_VIDEO_DECODE_RESERVED_0_BIT_KHR"/>
- </enums>
- <enums name="VkVideoEncodeFlagBitsKHR" type="bitmask">
- <enum value="0" name="VK_VIDEO_ENCODE_DEFAULT_KHR"/>
- <enum bitpos="0" name="VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR"/>
- </enums>
- <enums name="VkVideoEncodeCapabilityFlagBitsKHR" type="bitmask">
- <enum value="0" name="VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR"/>
- <enum bitpos="0" name="VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR"/>
- </enums>
- <enums name="VkVideoEncodeRateControlFlagBitsKHR" type="bitmask">
- <enum value="0" name="VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR"/>
- <enum bitpos="0" name="VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR"/>
- </enums>
- <enums name="VkVideoEncodeRateControlModeFlagBitsKHR" type="bitmask">
- <enum value="0" name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"/>
- <enum value="1" name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"/>
- <enum value="2" name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"/>
- </enums>
- <enums name="VkVideoEncodeH264CapabilityFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"/>
- <enum bitpos="2" name="VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT"/>
- <enum bitpos="3" name="VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT"/>
- <enum bitpos="4" name="VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"/>
- <enum bitpos="5" name="VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT"/>
- <enum bitpos="6" name="VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT"/>
- <enum bitpos="7" name="VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT"/>
- <enum bitpos="8" name="VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT"/>
- <enum bitpos="9" name="VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT"/>
- <enum bitpos="10" name="VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT"/>
- <enum bitpos="11" name="VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"/>
- <enum bitpos="12" name="VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT"/>
- <enum bitpos="13" name="VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT"/>
- <enum bitpos="14" name="VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT"/>
- <enum bitpos="15" name="VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT"/>
- <enum bitpos="16" name="VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"/>
- <enum bitpos="17" name="VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"/>
- <enum bitpos="18" name="VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT"/>
- <enum bitpos="19" name="VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT"/>
- <enum bitpos="20" name="VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT"/>
- <enum bitpos="21" name="VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT"/>
- <enum bitpos="22" name="VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"/>
- </enums>
- <enums name="VkVideoEncodeH264InputModeFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT"/>
- <enum bitpos="2" name="VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT"/>
- </enums>
- <enums name="VkVideoEncodeH264OutputModeFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT"/>
- <enum bitpos="2" name="VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT"/>
- </enums>
- <enums name="VkVideoEncodeH264CreateFlagBitsEXT" type="bitmask">
- <enum value="0" name="VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT"/>
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT"/>
- </enums>
- <enums name="VkVideoEncodeH264RateControlStructureFlagBitsEXT" type="bitmask">
- <enum value="0" name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"/>
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"/>
- </enums>
- <enums name="VkImageFormatConstraintsFlagBitsFUCHSIA" type="bitmask">
- </enums>
- <enums name="VkImageConstraintsInfoFlagBitsFUCHSIA" type="bitmask">
- <enum bitpos="0" name="VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA"/>
- <enum bitpos="1" name="VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA"/>
- <enum bitpos="2" name="VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA"/>
- <enum bitpos="3" name="VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA"/>
- <enum bitpos="4" name="VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA"/>
- </enums>
- <enums name="VkFormatFeatureFlagBits2" type="bitmask" bitwidth="64">
- <enum bitpos="0" name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR" alias="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT"/>
- <enum bitpos="1" name="VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR" alias="VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT"/>
- <enum bitpos="2" name="VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR" alias="VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT"/>
- <enum bitpos="3" name="VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR" alias="VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT"/>
- <enum bitpos="4" name="VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR" alias="VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT"/>
- <enum bitpos="5" name="VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR" alias="VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"/>
- <enum bitpos="6" name="VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR" alias="VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT"/>
- <enum bitpos="7" name="VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR" alias="VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT"/>
- <enum bitpos="8" name="VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR" alias="VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT"/>
- <enum bitpos="9" name="VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR" alias="VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT"/>
- <enum bitpos="10" name="VK_FORMAT_FEATURE_2_BLIT_SRC_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR" alias="VK_FORMAT_FEATURE_2_BLIT_SRC_BIT"/>
- <enum bitpos="11" name="VK_FORMAT_FEATURE_2_BLIT_DST_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR" alias="VK_FORMAT_FEATURE_2_BLIT_DST_BIT"/>
- <enum bitpos="12" name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR" alias="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT"/>
- <enum bitpos="13" name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" alias="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT"/>
- <enum bitpos="14" name="VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR" alias="VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT"/>
- <enum bitpos="15" name="VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR" alias="VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT"/>
- <enum bitpos="16" name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR" alias="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT"/>
- <enum bitpos="17" name="VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR" alias="VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT"/>
- <enum bitpos="18" name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR" alias="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"/>
- <enum bitpos="19" name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR" alias="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"/>
- <enum bitpos="20" name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR" alias="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"/>
- <enum bitpos="21" name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR" alias="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"/>
- <enum bitpos="22" name="VK_FORMAT_FEATURE_2_DISJOINT_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR" alias="VK_FORMAT_FEATURE_2_DISJOINT_BIT"/>
- <enum bitpos="23" name="VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR" alias="VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT"/>
- <enum bitpos="31" name="VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR" alias="VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT"/>
- <enum bitpos="32" name="VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR" alias="VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT"/>
- <enum bitpos="33" name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT"/>
- <enum name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR" alias="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT"/>
- </enums>
- <enums name="VkRenderingFlagBits" type="bitmask">
- <enum bitpos="0" name="VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"/>
- <enum name="VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR" alias="VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"/>
- <enum bitpos="1" name="VK_RENDERING_SUSPENDING_BIT"/>
- <enum name="VK_RENDERING_SUSPENDING_BIT_KHR" alias="VK_RENDERING_SUSPENDING_BIT"/>
- <enum bitpos="2" name="VK_RENDERING_RESUMING_BIT"/>
- <enum name="VK_RENDERING_RESUMING_BIT_KHR" alias="VK_RENDERING_RESUMING_BIT"/>
- </enums>
- <enums name="VkVideoEncodeH265CapabilityFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT"/>
- <enum bitpos="2" name="VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT"/>
- <enum bitpos="3" name="VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT"/>
- <enum bitpos="4" name="VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT"/>
- <enum bitpos="5" name="VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"/>
- <enum bitpos="6" name="VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT"/>
- <enum bitpos="7" name="VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT"/>
- <enum bitpos="8" name="VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT"/>
- <enum bitpos="9" name="VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT"/>
- <enum bitpos="10" name="VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT"/>
- <enum bitpos="11" name="VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT"/>
- <enum bitpos="12" name="VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT"/>
- <enum bitpos="13" name="VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"/>
- <enum bitpos="14" name="VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT"/>
- <enum bitpos="15" name="VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT"/>
- <enum bitpos="16" name="VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT"/>
- <enum bitpos="17" name="VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT"/>
- <enum bitpos="18" name="VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT"/>
- <enum bitpos="19" name="VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT"/>
- <enum bitpos="20" name="VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT"/>
- <enum bitpos="21" name="VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT"/>
- <enum bitpos="22" name="VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT"/>
- <enum bitpos="23" name="VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"/>
- </enums>
- <enums name="VkVideoEncodeH265InputModeFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT"/>
- <enum bitpos="2" name="VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT"/>
- </enums>
- <enums name="VkVideoEncodeH265OutputModeFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT"/>
- <enum bitpos="2" name="VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT"/>
- </enums>
- <enums name="VkVideoEncodeH265RateControlStructureFlagBitsEXT" type="bitmask">
- <enum value="0" name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"/>
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"/>
- </enums>
- <enums name="VkVideoEncodeH265CtbSizeFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT"/>
- <enum bitpos="2" name="VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT"/>
- </enums>
- <enums name="VkVideoEncodeH265TransformBlockSizeFlagBitsEXT" type="bitmask">
- <enum bitpos="0" name="VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT"/>
- <enum bitpos="1" name="VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT"/>
- <enum bitpos="2" name="VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT"/>
- <enum bitpos="3" name="VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT"/>
- </enums>
-
- <commands comment="Vulkan command definitions">
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_LAYER_NOT_PRESENT,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INCOMPATIBLE_DRIVER">
- <proto><type>VkResult</type> <name>vkCreateInstance</name></proto>
- <param>const <type>VkInstanceCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkInstance</type>* <name>pInstance</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyInstance</name></proto>
- <param optional="true" externsync="true"><type>VkInstance</type> <name>instance</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <implicitexternsyncparams>
- <param>all sname:VkPhysicalDevice objects enumerated from pname:instance</param>
- </implicitexternsyncparams>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkEnumeratePhysicalDevices</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPhysicalDeviceCount</name></param>
- <param optional="true" len="pPhysicalDeviceCount"><type>VkPhysicalDevice</type>* <name>pPhysicalDevices</name></param>
- </command>
- <command>
- <proto><type>PFN_vkVoidFunction</type> <name>vkGetDeviceProcAddr</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param len="null-terminated">const <type>char</type>* <name>pName</name></param>
- </command>
- <command>
- <proto><type>PFN_vkVoidFunction</type> <name>vkGetInstanceProcAddr</name></proto>
- <param optional="true"><type>VkInstance</type> <name>instance</name></param>
- <param len="null-terminated">const <type>char</type>* <name>pName</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceProperties</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkPhysicalDeviceProperties</type>* <name>pProperties</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceQueueFamilyProperties</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pQueueFamilyPropertyCount</name></param>
- <param optional="true" len="pQueueFamilyPropertyCount"><type>VkQueueFamilyProperties</type>* <name>pQueueFamilyProperties</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceMemoryProperties</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkPhysicalDeviceMemoryProperties</type>* <name>pMemoryProperties</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceFeatures</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkPhysicalDeviceFeatures</type>* <name>pFeatures</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceFormatProperties</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkFormat</type> <name>format</name></param>
- <param><type>VkFormatProperties</type>* <name>pFormatProperties</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_FORMAT_NOT_SUPPORTED">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceImageFormatProperties</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkFormat</type> <name>format</name></param>
- <param><type>VkImageType</type> <name>type</name></param>
- <param><type>VkImageTiling</type> <name>tiling</name></param>
- <param><type>VkImageUsageFlags</type> <name>usage</name></param>
- <param optional="true"><type>VkImageCreateFlags</type> <name>flags</name></param>
- <param><type>VkImageFormatProperties</type>* <name>pImageFormatProperties</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_FEATURE_NOT_PRESENT,VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_DEVICE_LOST">
- <proto><type>VkResult</type> <name>vkCreateDevice</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param>const <type>VkDeviceCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkDevice</type>* <name>pDevice</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyDevice</name></proto>
- <param optional="true" externsync="true"><type>VkDevice</type> <name>device</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <implicitexternsyncparams>
- <param>all sname:VkQueue objects created from pname:device</param>
- </implicitexternsyncparams>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkEnumerateInstanceVersion</name></proto>
- <param><type>uint32_t</type>* <name>pApiVersion</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkEnumerateInstanceLayerProperties</name></proto>
- <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>vkEnumerateInstanceExtensionProperties</name></proto>
- <param optional="true" len="null-terminated">const <type>char</type>* <name>pLayerName</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
- <param optional="true" len="pPropertyCount"><type>VkExtensionProperties</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">
- <proto><type>VkResult</type> <name>vkEnumerateDeviceLayerProperties</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <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>
- <param optional="true" len="null-terminated">const <type>char</type>* <name>pLayerName</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
- <param optional="true" len="pPropertyCount"><type>VkExtensionProperties</type>* <name>pProperties</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetDeviceQueue</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>uint32_t</type> <name>queueFamilyIndex</name></param>
- <param><type>uint32_t</type> <name>queueIndex</name></param>
- <param><type>VkQueue</type>* <name>pQueue</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST">
- <proto><type>VkResult</type> <name>vkQueueSubmit</name></proto>
- <param externsync="true"><type>VkQueue</type> <name>queue</name></param>
- <param optional="true"><type>uint32_t</type> <name>submitCount</name></param>
- <param len="submitCount">const <type>VkSubmitInfo</type>* <name>pSubmits</name></param>
- <param optional="true" externsync="true"><type>VkFence</type> <name>fence</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST">
- <proto><type>VkResult</type> <name>vkQueueWaitIdle</name></proto>
- <param externsync="true"><type>VkQueue</type> <name>queue</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST">
- <proto><type>VkResult</type> <name>vkDeviceWaitIdle</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <implicitexternsyncparams>
- <param>all sname:VkQueue objects created from pname:device</param>
- </implicitexternsyncparams>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_EXTERNAL_HANDLE,VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR">
- <proto><type>VkResult</type> <name>vkAllocateMemory</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkMemoryAllocateInfo</type>* <name>pAllocateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkDeviceMemory</type>* <name>pMemory</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkFreeMemory</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkDeviceMemory</type> <name>memory</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_MEMORY_MAP_FAILED">
- <proto><type>VkResult</type> <name>vkMapMemory</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkDeviceMemory</type> <name>memory</name></param>
- <param><type>VkDeviceSize</type> <name>offset</name></param>
- <param><type>VkDeviceSize</type> <name>size</name></param>
- <param optional="true"><type>VkMemoryMapFlags</type> <name>flags</name></param>
- <param optional="false,true"><type>void</type>** <name>ppData</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkUnmapMemory</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkDeviceMemory</type> <name>memory</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkFlushMappedMemoryRanges</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>uint32_t</type> <name>memoryRangeCount</name></param>
- <param len="memoryRangeCount">const <type>VkMappedMemoryRange</type>* <name>pMemoryRanges</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkInvalidateMappedMemoryRanges</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>uint32_t</type> <name>memoryRangeCount</name></param>
- <param len="memoryRangeCount">const <type>VkMappedMemoryRange</type>* <name>pMemoryRanges</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetDeviceMemoryCommitment</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkDeviceMemory</type> <name>memory</name></param>
- <param><type>VkDeviceSize</type>* <name>pCommittedMemoryInBytes</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetBufferMemoryRequirements</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkBuffer</type> <name>buffer</name></param>
- <param><type>VkMemoryRequirements</type>* <name>pMemoryRequirements</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR">
- <proto><type>VkResult</type> <name>vkBindBufferMemory</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkBuffer</type> <name>buffer</name></param>
- <param><type>VkDeviceMemory</type> <name>memory</name></param>
- <param><type>VkDeviceSize</type> <name>memoryOffset</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetImageMemoryRequirements</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkImage</type> <name>image</name></param>
- <param><type>VkMemoryRequirements</type>* <name>pMemoryRequirements</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkBindImageMemory</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkImage</type> <name>image</name></param>
- <param><type>VkDeviceMemory</type> <name>memory</name></param>
- <param><type>VkDeviceSize</type> <name>memoryOffset</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetImageSparseMemoryRequirements</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkImage</type> <name>image</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pSparseMemoryRequirementCount</name></param>
- <param optional="true" len="pSparseMemoryRequirementCount"><type>VkSparseImageMemoryRequirements</type>* <name>pSparseMemoryRequirements</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceSparseImageFormatProperties</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkFormat</type> <name>format</name></param>
- <param><type>VkImageType</type> <name>type</name></param>
- <param><type>VkSampleCountFlagBits</type> <name>samples</name></param>
- <param><type>VkImageUsageFlags</type> <name>usage</name></param>
- <param><type>VkImageTiling</type> <name>tiling</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
- <param optional="true" len="pPropertyCount"><type>VkSparseImageFormatProperties</type>* <name>pProperties</name></param>
- </command>
- <command queues="sparse_binding" successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST">
- <proto><type>VkResult</type> <name>vkQueueBindSparse</name></proto>
- <param externsync="true"><type>VkQueue</type> <name>queue</name></param>
- <param optional="true"><type>uint32_t</type> <name>bindInfoCount</name></param>
- <param len="bindInfoCount">const <type>VkBindSparseInfo</type>* <name>pBindInfo</name></param>
- <param optional="true" externsync="true"><type>VkFence</type> <name>fence</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateFence</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkFenceCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkFence</type>* <name>pFence</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyFence</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkFence</type> <name>fence</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkResetFences</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>uint32_t</type> <name>fenceCount</name></param>
- <param len="fenceCount" externsync="true">const <type>VkFence</type>* <name>pFences</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_NOT_READY" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST">
- <proto><type>VkResult</type> <name>vkGetFenceStatus</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkFence</type> <name>fence</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_TIMEOUT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST">
- <proto><type>VkResult</type> <name>vkWaitForFences</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>uint32_t</type> <name>fenceCount</name></param>
- <param len="fenceCount">const <type>VkFence</type>* <name>pFences</name></param>
- <param><type>VkBool32</type> <name>waitAll</name></param>
- <param><type>uint64_t</type> <name>timeout</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateSemaphore</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkSemaphoreCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSemaphore</type>* <name>pSemaphore</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroySemaphore</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkSemaphore</type> <name>semaphore</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateEvent</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkEventCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkEvent</type>* <name>pEvent</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyEvent</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkEvent</type> <name>event</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_EVENT_SET,VK_EVENT_RESET" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST">
- <proto><type>VkResult</type> <name>vkGetEventStatus</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkEvent</type> <name>event</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkSetEvent</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkEvent</type> <name>event</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkResetEvent</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkEvent</type> <name>event</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateQueryPool</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkQueryPoolCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkQueryPool</type>* <name>pQueryPool</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyQueryPool</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkQueryPool</type> <name>queryPool</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_NOT_READY" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST">
- <proto><type>VkResult</type> <name>vkGetQueryPoolResults</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkQueryPool</type> <name>queryPool</name></param>
- <param><type>uint32_t</type> <name>firstQuery</name></param>
- <param><type>uint32_t</type> <name>queryCount</name></param>
- <param><type>size_t</type> <name>dataSize</name></param>
- <param len="dataSize"><type>void</type>* <name>pData</name></param>
- <param><type>VkDeviceSize</type> <name>stride</name></param>
- <param optional="true"><type>VkQueryResultFlags</type> <name>flags</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkResetQueryPool</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkQueryPool</type> <name>queryPool</name></param>
- <param><type>uint32_t</type> <name>firstQuery</name></param>
- <param><type>uint32_t</type> <name>queryCount</name></param>
- </command>
- <command name="vkResetQueryPoolEXT" alias="vkResetQueryPool"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR">
- <proto><type>VkResult</type> <name>vkCreateBuffer</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkBufferCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkBuffer</type>* <name>pBuffer</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyBuffer</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkBuffer</type> <name>buffer</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateBufferView</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkBufferViewCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkBufferView</type>* <name>pView</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyBufferView</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkBufferView</type> <name>bufferView</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateImage</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkImageCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkImage</type>* <name>pImage</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyImage</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkImage</type> <name>image</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetImageSubresourceLayout</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkImage</type> <name>image</name></param>
- <param>const <type>VkImageSubresource</type>* <name>pSubresource</name></param>
- <param><type>VkSubresourceLayout</type>* <name>pLayout</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateImageView</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkImageViewCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkImageView</type>* <name>pView</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyImageView</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkImageView</type> <name>imageView</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_SHADER_NV">
- <proto><type>VkResult</type> <name>vkCreateShaderModule</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkShaderModuleCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkShaderModule</type>* <name>pShaderModule</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyShaderModule</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkShaderModule</type> <name>shaderModule</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreatePipelineCache</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkPipelineCacheCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkPipelineCache</type>* <name>pPipelineCache</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyPipelineCache</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkPipelineCache</type> <name>pipelineCache</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetPipelineCacheData</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkPipelineCache</type> <name>pipelineCache</name></param>
- <param optional="false,true"><type>size_t</type>* <name>pDataSize</name></param>
- <param optional="true" len="pDataSize"><type>void</type>* <name>pData</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkMergePipelineCaches</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkPipelineCache</type> <name>dstCache</name></param>
- <param><type>uint32_t</type> <name>srcCacheCount</name></param>
- <param len="srcCacheCount">const <type>VkPipelineCache</type>* <name>pSrcCaches</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_SHADER_NV">
- <proto><type>VkResult</type> <name>vkCreateGraphicsPipelines</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true"><type>VkPipelineCache</type> <name>pipelineCache</name></param>
- <param><type>uint32_t</type> <name>createInfoCount</name></param>
- <param len="createInfoCount">const <type>VkGraphicsPipelineCreateInfo</type>* <name>pCreateInfos</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param len="createInfoCount"><type>VkPipeline</type>* <name>pPipelines</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_SHADER_NV">
- <proto><type>VkResult</type> <name>vkCreateComputePipelines</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true"><type>VkPipelineCache</type> <name>pipelineCache</name></param>
- <param><type>uint32_t</type> <name>createInfoCount</name></param>
- <param len="createInfoCount">const <type>VkComputePipelineCreateInfo</type>* <name>pCreateInfos</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param len="createInfoCount"><type>VkPipeline</type>* <name>pPipelines</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkRenderPass</type> <name>renderpass</name></param>
- <param><type>VkExtent2D</type>* <name>pMaxWorkgroupSize</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyPipeline</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkPipeline</type> <name>pipeline</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreatePipelineLayout</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkPipelineLayoutCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkPipelineLayout</type>* <name>pPipelineLayout</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyPipelineLayout</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkPipelineLayout</type> <name>pipelineLayout</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateSampler</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkSamplerCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSampler</type>* <name>pSampler</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroySampler</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkSampler</type> <name>sampler</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateDescriptorSetLayout</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkDescriptorSetLayoutCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkDescriptorSetLayout</type>* <name>pSetLayout</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyDescriptorSetLayout</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkDescriptorSetLayout</type> <name>descriptorSetLayout</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_FRAGMENTATION_EXT">
- <proto><type>VkResult</type> <name>vkCreateDescriptorPool</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkDescriptorPoolCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkDescriptorPool</type>* <name>pDescriptorPool</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyDescriptorPool</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkDescriptorPool</type> <name>descriptorPool</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS">
- <proto><type>VkResult</type> <name>vkResetDescriptorPool</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkDescriptorPool</type> <name>descriptorPool</name></param>
- <param optional="true"><type>VkDescriptorPoolResetFlags</type> <name>flags</name></param>
- <implicitexternsyncparams>
- <param>any sname:VkDescriptorSet objects allocated from pname:descriptorPool</param>
- </implicitexternsyncparams>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_FRAGMENTED_POOL,VK_ERROR_OUT_OF_POOL_MEMORY">
- <proto><type>VkResult</type> <name>vkAllocateDescriptorSets</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="pAllocateInfo-&gt;descriptorPool">const <type>VkDescriptorSetAllocateInfo</type>* <name>pAllocateInfo</name></param>
- <param len="pAllocateInfo-&gt;descriptorSetCount"><type>VkDescriptorSet</type>* <name>pDescriptorSets</name></param>
- </command>
- <command successcodes="VK_SUCCESS">
- <proto><type>VkResult</type> <name>vkFreeDescriptorSets</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkDescriptorPool</type> <name>descriptorPool</name></param>
- <param><type>uint32_t</type> <name>descriptorSetCount</name></param>
- <param noautovalidity="true" externsync="true" len="descriptorSetCount">const <type>VkDescriptorSet</type>* <name>pDescriptorSets</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkUpdateDescriptorSets</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true"><type>uint32_t</type> <name>descriptorWriteCount</name></param>
- <param len="descriptorWriteCount" externsync="pDescriptorWrites[].dstSet">const <type>VkWriteDescriptorSet</type>* <name>pDescriptorWrites</name></param>
- <param optional="true"><type>uint32_t</type> <name>descriptorCopyCount</name></param>
- <param len="descriptorCopyCount" externsync="pDescriptorCopies[].dstSet">const <type>VkCopyDescriptorSet</type>* <name>pDescriptorCopies</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateFramebuffer</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkFramebufferCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkFramebuffer</type>* <name>pFramebuffer</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyFramebuffer</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkFramebuffer</type> <name>framebuffer</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateRenderPass</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkRenderPassCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkRenderPass</type>* <name>pRenderPass</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyRenderPass</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkRenderPass</type> <name>renderPass</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetRenderAreaGranularity</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkRenderPass</type> <name>renderPass</name></param>
- <param><type>VkExtent2D</type>* <name>pGranularity</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateCommandPool</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkCommandPoolCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkCommandPool</type>* <name>pCommandPool</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyCommandPool</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkCommandPool</type> <name>commandPool</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkResetCommandPool</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkCommandPool</type> <name>commandPool</name></param>
- <param optional="true"><type>VkCommandPoolResetFlags</type> <name>flags</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkAllocateCommandBuffers</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="pAllocateInfo-&gt;commandPool">const <type>VkCommandBufferAllocateInfo</type>* <name>pAllocateInfo</name></param>
- <param len="pAllocateInfo-&gt;commandBufferCount"><type>VkCommandBuffer</type>* <name>pCommandBuffers</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkFreeCommandBuffers</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkCommandPool</type> <name>commandPool</name></param>
- <param><type>uint32_t</type> <name>commandBufferCount</name></param>
- <param noautovalidity="true" externsync="true" len="commandBufferCount">const <type>VkCommandBuffer</type>* <name>pCommandBuffers</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkBeginCommandBuffer</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkCommandBufferBeginInfo</type>* <name>pBeginInfo</name></param>
- <implicitexternsyncparams>
- <param>the sname:VkCommandPool that pname:commandBuffer was allocated from</param>
- </implicitexternsyncparams>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkEndCommandBuffer</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <implicitexternsyncparams>
- <param>the sname:VkCommandPool that pname:commandBuffer was allocated from</param>
- </implicitexternsyncparams>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkResetCommandBuffer</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param optional="true"><type>VkCommandBufferResetFlags</type> <name>flags</name></param>
- <implicitexternsyncparams>
- <param>the sname:VkCommandPool that pname:commandBuffer was allocated from</param>
- </implicitexternsyncparams>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBindPipeline</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></param>
- <param><type>VkPipeline</type> <name>pipeline</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetViewport</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>firstViewport</name></param>
- <param><type>uint32_t</type> <name>viewportCount</name></param>
- <param len="viewportCount">const <type>VkViewport</type>* <name>pViewports</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetScissor</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>firstScissor</name></param>
- <param><type>uint32_t</type> <name>scissorCount</name></param>
- <param len="scissorCount">const <type>VkRect2D</type>* <name>pScissors</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetLineWidth</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>float</type> <name>lineWidth</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetDepthBias</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>float</type> <name>depthBiasConstantFactor</name></param>
- <param><type>float</type> <name>depthBiasClamp</name></param>
- <param><type>float</type> <name>depthBiasSlopeFactor</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetBlendConstants</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>float</type> <name>blendConstants</name>[4]</param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetDepthBounds</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>float</type> <name>minDepthBounds</name></param>
- <param><type>float</type> <name>maxDepthBounds</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetStencilCompareMask</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkStencilFaceFlags</type> <name>faceMask</name></param>
- <param><type>uint32_t</type> <name>compareMask</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetStencilWriteMask</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkStencilFaceFlags</type> <name>faceMask</name></param>
- <param><type>uint32_t</type> <name>writeMask</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetStencilReference</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkStencilFaceFlags</type> <name>faceMask</name></param>
- <param><type>uint32_t</type> <name>reference</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBindDescriptorSets</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></param>
- <param><type>VkPipelineLayout</type> <name>layout</name></param>
- <param><type>uint32_t</type> <name>firstSet</name></param>
- <param><type>uint32_t</type> <name>descriptorSetCount</name></param>
- <param len="descriptorSetCount">const <type>VkDescriptorSet</type>* <name>pDescriptorSets</name></param>
- <param optional="true"><type>uint32_t</type> <name>dynamicOffsetCount</name></param>
- <param len="dynamicOffsetCount">const <type>uint32_t</type>* <name>pDynamicOffsets</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBindIndexBuffer</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBuffer</type> <name>buffer</name></param>
- <param><type>VkDeviceSize</type> <name>offset</name></param>
- <param><type>VkIndexType</type> <name>indexType</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBindVertexBuffers</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>firstBinding</name></param>
- <param><type>uint32_t</type> <name>bindingCount</name></param>
- <param len="bindingCount" optional="false,true">const <type>VkBuffer</type>* <name>pBuffers</name></param>
- <param len="bindingCount">const <type>VkDeviceSize</type>* <name>pOffsets</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDraw</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>vertexCount</name></param>
- <param><type>uint32_t</type> <name>instanceCount</name></param>
- <param><type>uint32_t</type> <name>firstVertex</name></param>
- <param><type>uint32_t</type> <name>firstInstance</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDrawIndexed</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>indexCount</name></param>
- <param><type>uint32_t</type> <name>instanceCount</name></param>
- <param><type>uint32_t</type> <name>firstIndex</name></param>
- <param><type>int32_t</type> <name>vertexOffset</name></param>
- <param><type>uint32_t</type> <name>firstInstance</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDrawMultiEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param optional="true"><type>uint32_t</type> <name>drawCount</name></param>
- <param noautovalidity="true" len="drawCount">const <type>VkMultiDrawInfoEXT</type>* <name>pVertexInfo</name></param>
- <param><type>uint32_t</type> <name>instanceCount</name></param>
- <param><type>uint32_t</type> <name>firstInstance</name></param>
- <param><type>uint32_t</type> <name>stride</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDrawMultiIndexedEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param optional="true"><type>uint32_t</type> <name>drawCount</name></param>
- <param noautovalidity="true" len="drawCount">const <type>VkMultiDrawIndexedInfoEXT</type>* <name>pIndexInfo</name></param>
- <param><type>uint32_t</type> <name>instanceCount</name></param>
- <param><type>uint32_t</type> <name>firstInstance</name></param>
- <param><type>uint32_t</type> <name>stride</name></param>
- <param optional="true">const <type>int32_t</type>* <name>pVertexOffset</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDrawIndirect</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBuffer</type> <name>buffer</name></param>
- <param><type>VkDeviceSize</type> <name>offset</name></param>
- <param><type>uint32_t</type> <name>drawCount</name></param>
- <param><type>uint32_t</type> <name>stride</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDrawIndexedIndirect</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBuffer</type> <name>buffer</name></param>
- <param><type>VkDeviceSize</type> <name>offset</name></param>
- <param><type>uint32_t</type> <name>drawCount</name></param>
- <param><type>uint32_t</type> <name>stride</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDispatch</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>groupCountX</name></param>
- <param><type>uint32_t</type> <name>groupCountY</name></param>
- <param><type>uint32_t</type> <name>groupCountZ</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDispatchIndirect</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBuffer</type> <name>buffer</name></param>
- <param><type>VkDeviceSize</type> <name>offset</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSubpassShadingHUAWEI</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- </command>
- <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdCopyBuffer</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBuffer</type> <name>srcBuffer</name></param>
- <param><type>VkBuffer</type> <name>dstBuffer</name></param>
- <param><type>uint32_t</type> <name>regionCount</name></param>
- <param len="regionCount">const <type>VkBufferCopy</type>* <name>pRegions</name></param>
- </command>
- <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdCopyImage</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkImage</type> <name>srcImage</name></param>
- <param><type>VkImageLayout</type> <name>srcImageLayout</name></param>
- <param><type>VkImage</type> <name>dstImage</name></param>
- <param><type>VkImageLayout</type> <name>dstImageLayout</name></param>
- <param><type>uint32_t</type> <name>regionCount</name></param>
- <param len="regionCount">const <type>VkImageCopy</type>* <name>pRegions</name></param>
- </command>
- <command queues="graphics" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBlitImage</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkImage</type> <name>srcImage</name></param>
- <param><type>VkImageLayout</type> <name>srcImageLayout</name></param>
- <param><type>VkImage</type> <name>dstImage</name></param>
- <param><type>VkImageLayout</type> <name>dstImageLayout</name></param>
- <param><type>uint32_t</type> <name>regionCount</name></param>
- <param len="regionCount">const <type>VkImageBlit</type>* <name>pRegions</name></param>
- <param><type>VkFilter</type> <name>filter</name></param>
- </command>
- <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdCopyBufferToImage</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBuffer</type> <name>srcBuffer</name></param>
- <param><type>VkImage</type> <name>dstImage</name></param>
- <param><type>VkImageLayout</type> <name>dstImageLayout</name></param>
- <param><type>uint32_t</type> <name>regionCount</name></param>
- <param len="regionCount">const <type>VkBufferImageCopy</type>* <name>pRegions</name></param>
- </command>
- <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdCopyImageToBuffer</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkImage</type> <name>srcImage</name></param>
- <param><type>VkImageLayout</type> <name>srcImageLayout</name></param>
- <param><type>VkBuffer</type> <name>dstBuffer</name></param>
- <param><type>uint32_t</type> <name>regionCount</name></param>
- <param len="regionCount">const <type>VkBufferImageCopy</type>* <name>pRegions</name></param>
- </command>
- <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdUpdateBuffer</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBuffer</type> <name>dstBuffer</name></param>
- <param><type>VkDeviceSize</type> <name>dstOffset</name></param>
- <param><type>VkDeviceSize</type> <name>dataSize</name></param>
- <param len="dataSize">const <type>void</type>* <name>pData</name></param>
- </command>
- <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary" comment="transfer support is only available when VK_KHR_maintenance1 is enabled, as documented in valid usage language in the specification">
- <proto><type>void</type> <name>vkCmdFillBuffer</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBuffer</type> <name>dstBuffer</name></param>
- <param><type>VkDeviceSize</type> <name>dstOffset</name></param>
- <param><type>VkDeviceSize</type> <name>size</name></param>
- <param><type>uint32_t</type> <name>data</name></param>
- </command>
- <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdClearColorImage</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkImage</type> <name>image</name></param>
- <param><type>VkImageLayout</type> <name>imageLayout</name></param>
- <param noautovalidity="true">const <type>VkClearColorValue</type>* <name>pColor</name></param>
- <param><type>uint32_t</type> <name>rangeCount</name></param>
- <param len="rangeCount">const <type>VkImageSubresourceRange</type>* <name>pRanges</name></param>
- </command>
- <command queues="graphics" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdClearDepthStencilImage</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkImage</type> <name>image</name></param>
- <param><type>VkImageLayout</type> <name>imageLayout</name></param>
- <param>const <type>VkClearDepthStencilValue</type>* <name>pDepthStencil</name></param>
- <param><type>uint32_t</type> <name>rangeCount</name></param>
- <param len="rangeCount">const <type>VkImageSubresourceRange</type>* <name>pRanges</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdClearAttachments</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>attachmentCount</name></param>
- <param len="attachmentCount">const <type>VkClearAttachment</type>* <name>pAttachments</name></param>
- <param><type>uint32_t</type> <name>rectCount</name></param>
- <param len="rectCount">const <type>VkClearRect</type>* <name>pRects</name></param>
- </command>
- <command queues="graphics" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdResolveImage</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkImage</type> <name>srcImage</name></param>
- <param><type>VkImageLayout</type> <name>srcImageLayout</name></param>
- <param><type>VkImage</type> <name>dstImage</name></param>
- <param><type>VkImageLayout</type> <name>dstImageLayout</name></param>
- <param><type>uint32_t</type> <name>regionCount</name></param>
- <param len="regionCount">const <type>VkImageResolve</type>* <name>pRegions</name></param>
- </command>
- <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetEvent</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkEvent</type> <name>event</name></param>
- <param optional="true"><type>VkPipelineStageFlags</type> <name>stageMask</name></param>
- </command>
- <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdResetEvent</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkEvent</type> <name>event</name></param>
- <param optional="true"><type>VkPipelineStageFlags</type> <name>stageMask</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdWaitEvents</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>eventCount</name></param>
- <param len="eventCount">const <type>VkEvent</type>* <name>pEvents</name></param>
- <param optional="true"><type>VkPipelineStageFlags</type> <name>srcStageMask</name></param>
- <param optional="true"><type>VkPipelineStageFlags</type> <name>dstStageMask</name></param>
- <param optional="true"><type>uint32_t</type> <name>memoryBarrierCount</name></param>
- <param len="memoryBarrierCount">const <type>VkMemoryBarrier</type>* <name>pMemoryBarriers</name></param>
- <param optional="true"><type>uint32_t</type> <name>bufferMemoryBarrierCount</name></param>
- <param len="bufferMemoryBarrierCount">const <type>VkBufferMemoryBarrier</type>* <name>pBufferMemoryBarriers</name></param>
- <param optional="true"><type>uint32_t</type> <name>imageMemoryBarrierCount</name></param>
- <param len="imageMemoryBarrierCount">const <type>VkImageMemoryBarrier</type>* <name>pImageMemoryBarriers</name></param>
- </command>
- <command queues="transfer,graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdPipelineBarrier</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param optional="true"><type>VkPipelineStageFlags</type> <name>srcStageMask</name></param>
- <param optional="true"><type>VkPipelineStageFlags</type> <name>dstStageMask</name></param>
- <param optional="true"><type>VkDependencyFlags</type> <name>dependencyFlags</name></param>
- <param optional="true"><type>uint32_t</type> <name>memoryBarrierCount</name></param>
- <param len="memoryBarrierCount">const <type>VkMemoryBarrier</type>* <name>pMemoryBarriers</name></param>
- <param optional="true"><type>uint32_t</type> <name>bufferMemoryBarrierCount</name></param>
- <param len="bufferMemoryBarrierCount">const <type>VkBufferMemoryBarrier</type>* <name>pBufferMemoryBarriers</name></param>
- <param optional="true"><type>uint32_t</type> <name>imageMemoryBarrierCount</name></param>
- <param len="imageMemoryBarrierCount">const <type>VkImageMemoryBarrier</type>* <name>pImageMemoryBarriers</name></param>
- </command>
- <command queues="graphics,compute,decode,encode" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBeginQuery</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkQueryPool</type> <name>queryPool</name></param>
- <param><type>uint32_t</type> <name>query</name></param>
- <param optional="true"><type>VkQueryControlFlags</type> <name>flags</name></param>
- </command>
- <command queues="graphics,compute,decode,encode" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdEndQuery</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkQueryPool</type> <name>queryPool</name></param>
- <param><type>uint32_t</type> <name>query</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBeginConditionalRenderingEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkConditionalRenderingBeginInfoEXT</type>* <name>pConditionalRenderingBegin</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdEndConditionalRenderingEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- </command>
- <command queues="graphics,compute,decode,encode" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdResetQueryPool</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkQueryPool</type> <name>queryPool</name></param>
- <param><type>uint32_t</type> <name>firstQuery</name></param>
- <param><type>uint32_t</type> <name>queryCount</name></param>
- </command>
- <command queues="transfer,graphics,compute,decode,encode" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdWriteTimestamp</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkPipelineStageFlagBits</type> <name>pipelineStage</name></param>
- <param><type>VkQueryPool</type> <name>queryPool</name></param>
- <param><type>uint32_t</type> <name>query</name></param>
- </command>
- <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdCopyQueryPoolResults</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkQueryPool</type> <name>queryPool</name></param>
- <param><type>uint32_t</type> <name>firstQuery</name></param>
- <param><type>uint32_t</type> <name>queryCount</name></param>
- <param><type>VkBuffer</type> <name>dstBuffer</name></param>
- <param><type>VkDeviceSize</type> <name>dstOffset</name></param>
- <param><type>VkDeviceSize</type> <name>stride</name></param>
- <param optional="true"><type>VkQueryResultFlags</type> <name>flags</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdPushConstants</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkPipelineLayout</type> <name>layout</name></param>
- <param><type>VkShaderStageFlags</type> <name>stageFlags</name></param>
- <param><type>uint32_t</type> <name>offset</name></param>
- <param><type>uint32_t</type> <name>size</name></param>
- <param len="size">const <type>void</type>* <name>pValues</name></param>
- </command>
- <command queues="graphics" renderpass="outside" cmdbufferlevel="primary">
- <proto><type>void</type> <name>vkCmdBeginRenderPass</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkRenderPassBeginInfo</type>* <name>pRenderPassBegin</name></param>
- <param><type>VkSubpassContents</type> <name>contents</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary">
- <proto><type>void</type> <name>vkCmdNextSubpass</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkSubpassContents</type> <name>contents</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary">
- <proto><type>void</type> <name>vkCmdEndRenderPass</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- </command>
- <command queues="transfer,graphics,compute" renderpass="both" cmdbufferlevel="primary">
- <proto><type>void</type> <name>vkCmdExecuteCommands</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>commandBufferCount</name></param>
- <param len="commandBufferCount">const <type>VkCommandBuffer</type>* <name>pCommandBuffers</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_NATIVE_WINDOW_IN_USE_KHR">
- <proto><type>VkResult</type> <name>vkCreateAndroidSurfaceKHR</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkAndroidSurfaceCreateInfoKHR</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceDisplayPropertiesKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
- <param optional="true" len="pPropertyCount"><type>VkDisplayPropertiesKHR</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">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceDisplayPlanePropertiesKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
- <param optional="true" len="pPropertyCount"><type>VkDisplayPlanePropertiesKHR</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">
- <proto><type>VkResult</type> <name>vkGetDisplayPlaneSupportedDisplaysKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>uint32_t</type> <name>planeIndex</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pDisplayCount</name></param>
- <param optional="true" len="pDisplayCount"><type>VkDisplayKHR</type>* <name>pDisplays</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetDisplayModePropertiesKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkDisplayKHR</type> <name>display</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
- <param optional="true" len="pPropertyCount"><type>VkDisplayModePropertiesKHR</type>* <name>pProperties</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkCreateDisplayModeKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param externsync="true"><type>VkDisplayKHR</type> <name>display</name></param>
- <param>const <type>VkDisplayModeCreateInfoKHR</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkDisplayModeKHR</type>* <name>pMode</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetDisplayPlaneCapabilitiesKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param externsync="true"><type>VkDisplayModeKHR</type> <name>mode</name></param>
- <param><type>uint32_t</type> <name>planeIndex</name></param>
- <param><type>VkDisplayPlaneCapabilitiesKHR</type>* <name>pCapabilities</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateDisplayPlaneSurfaceKHR</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkDisplaySurfaceCreateInfoKHR</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INCOMPATIBLE_DISPLAY_KHR,VK_ERROR_DEVICE_LOST,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkCreateSharedSwapchainsKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>uint32_t</type> <name>swapchainCount</name></param>
- <param len="swapchainCount" externsync="pCreateInfos[].surface,pCreateInfos[].oldSwapchain">const <type>VkSwapchainCreateInfoKHR</type>* <name>pCreateInfos</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param len="swapchainCount"><type>VkSwapchainKHR</type>* <name>pSwapchains</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroySurfaceKHR</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param optional="true" externsync="true"><type>VkSurfaceKHR</type> <name>surface</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceSurfaceSupportKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>uint32_t</type> <name>queueFamilyIndex</name></param>
- <param><type>VkSurfaceKHR</type> <name>surface</name></param>
- <param><type>VkBool32</type>* <name>pSupported</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceSurfaceCapabilitiesKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkSurfaceKHR</type> <name>surface</name></param>
- <param><type>VkSurfaceCapabilitiesKHR</type>* <name>pSurfaceCapabilities</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceSurfaceFormatsKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param optional="true"><type>VkSurfaceKHR</type> <name>surface</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pSurfaceFormatCount</name></param>
- <param optional="true" len="pSurfaceFormatCount"><type>VkSurfaceFormatKHR</type>* <name>pSurfaceFormats</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceSurfacePresentModesKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param optional="true"><type>VkSurfaceKHR</type> <name>surface</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPresentModeCount</name></param>
- <param optional="true" len="pPresentModeCount"><type>VkPresentModeKHR</type>* <name>pPresentModes</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST,VK_ERROR_SURFACE_LOST_KHR,VK_ERROR_NATIVE_WINDOW_IN_USE_KHR,VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkCreateSwapchainKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="pCreateInfo-&gt;surface,pCreateInfo-&gt;oldSwapchain">const <type>VkSwapchainCreateInfoKHR</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSwapchainKHR</type>* <name>pSwapchain</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroySwapchainKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkSwapchainKHR</type> <name>swapchain</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetSwapchainImagesKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkSwapchainKHR</type> <name>swapchain</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pSwapchainImageCount</name></param>
- <param optional="true" len="pSwapchainImageCount"><type>VkImage</type>* <name>pSwapchainImages</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_TIMEOUT,VK_NOT_READY,VK_SUBOPTIMAL_KHR" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST,VK_ERROR_OUT_OF_DATE_KHR,VK_ERROR_SURFACE_LOST_KHR,VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT">
- <proto><type>VkResult</type> <name>vkAcquireNextImageKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkSwapchainKHR</type> <name>swapchain</name></param>
- <param><type>uint64_t</type> <name>timeout</name></param>
- <param optional="true" externsync="true"><type>VkSemaphore</type> <name>semaphore</name></param>
- <param optional="true" externsync="true"><type>VkFence</type> <name>fence</name></param>
- <param><type>uint32_t</type>* <name>pImageIndex</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_SUBOPTIMAL_KHR" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST,VK_ERROR_OUT_OF_DATE_KHR,VK_ERROR_SURFACE_LOST_KHR,VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT">
- <proto><type>VkResult</type> <name>vkQueuePresentKHR</name></proto>
- <param externsync="true"><type>VkQueue</type> <name>queue</name></param>
- <param externsync="pPresentInfo-&gt;pWaitSemaphores[],pPresentInfo-&gt;pSwapchains[]">const <type>VkPresentInfoKHR</type>* <name>pPresentInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_NATIVE_WINDOW_IN_USE_KHR">
- <proto><type>VkResult</type> <name>vkCreateViSurfaceNN</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkViSurfaceCreateInfoNN</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateWaylandSurfaceKHR</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkWaylandSurfaceCreateInfoKHR</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command>
- <proto><type>VkBool32</type> <name>vkGetPhysicalDeviceWaylandPresentationSupportKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>uint32_t</type> <name>queueFamilyIndex</name></param>
- <param>struct <type>wl_display</type>* <name>display</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateWin32SurfaceKHR</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkWin32SurfaceCreateInfoKHR</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command>
- <proto><type>VkBool32</type> <name>vkGetPhysicalDeviceWin32PresentationSupportKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>uint32_t</type> <name>queueFamilyIndex</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateXlibSurfaceKHR</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkXlibSurfaceCreateInfoKHR</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command>
- <proto><type>VkBool32</type> <name>vkGetPhysicalDeviceXlibPresentationSupportKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>uint32_t</type> <name>queueFamilyIndex</name></param>
- <param><type>Display</type>* <name>dpy</name></param>
- <param><type>VisualID</type> <name>visualID</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateXcbSurfaceKHR</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkXcbSurfaceCreateInfoKHR</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command>
- <proto><type>VkBool32</type> <name>vkGetPhysicalDeviceXcbPresentationSupportKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>uint32_t</type> <name>queueFamilyIndex</name></param>
- <param><type>xcb_connection_t</type>* <name>connection</name></param>
- <param><type>xcb_visualid_t</type> <name>visual_id</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateDirectFBSurfaceEXT</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkDirectFBSurfaceCreateInfoEXT</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command>
- <proto><type>VkBool32</type> <name>vkGetPhysicalDeviceDirectFBPresentationSupportEXT</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>uint32_t</type> <name>queueFamilyIndex</name></param>
- <param><type>IDirectFB</type>* <name>dfb</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateImagePipeSurfaceFUCHSIA</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkImagePipeSurfaceCreateInfoFUCHSIA</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_NATIVE_WINDOW_IN_USE_KHR">
- <proto><type>VkResult</type> <name>vkCreateStreamDescriptorSurfaceGGP</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkStreamDescriptorSurfaceCreateInfoGGP</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateScreenSurfaceQNX</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkScreenSurfaceCreateInfoQNX</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command>
- <proto><type>VkBool32</type> <name>vkGetPhysicalDeviceScreenPresentationSupportQNX</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>uint32_t</type> <name>queueFamilyIndex</name></param>
- <param>struct <type>_screen_window</type>* <name>window</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateDebugReportCallbackEXT</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkDebugReportCallbackCreateInfoEXT</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkDebugReportCallbackEXT</type>* <name>pCallback</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyDebugReportCallbackEXT</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param optional="true" externsync="true"><type>VkDebugReportCallbackEXT</type> <name>callback</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDebugReportMessageEXT</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param><type>VkDebugReportFlagsEXT</type> <name>flags</name></param>
- <param><type>VkDebugReportObjectTypeEXT</type> <name>objectType</name></param>
- <param objecttype="objectType"><type>uint64_t</type> <name>object</name></param>
- <param><type>size_t</type> <name>location</name></param>
- <param><type>int32_t</type> <name>messageCode</name></param>
- <param len="null-terminated">const <type>char</type>* <name>pLayerPrefix</name></param>
- <param len="null-terminated">const <type>char</type>* <name>pMessage</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkDebugMarkerSetObjectNameEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="pNameInfo-&gt;object">const <type>VkDebugMarkerObjectNameInfoEXT</type>* <name>pNameInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkDebugMarkerSetObjectTagEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="pTagInfo-&gt;object">const <type>VkDebugMarkerObjectTagInfoEXT</type>* <name>pTagInfo</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDebugMarkerBeginEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkDebugMarkerMarkerInfoEXT</type>* <name>pMarkerInfo</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDebugMarkerEndEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDebugMarkerInsertEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkDebugMarkerMarkerInfoEXT</type>* <name>pMarkerInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_FORMAT_NOT_SUPPORTED">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceExternalImageFormatPropertiesNV</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkFormat</type> <name>format</name></param>
- <param><type>VkImageType</type> <name>type</name></param>
- <param><type>VkImageTiling</type> <name>tiling</name></param>
- <param><type>VkImageUsageFlags</type> <name>usage</name></param>
- <param optional="true"><type>VkImageCreateFlags</type> <name>flags</name></param>
- <param optional="true"><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>externalHandleType</name></param>
- <param><type>VkExternalImageFormatPropertiesNV</type>* <name>pExternalImageFormatProperties</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetMemoryWin32HandleNV</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkDeviceMemory</type> <name>memory</name></param>
- <param><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>handleType</name></param>
- <param><type>HANDLE</type>* <name>pHandle</name></param>
- </command>
- <command queues="graphics,compute" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdExecuteGeneratedCommandsNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBool32</type> <name>isPreprocessed</name></param>
- <param>const <type>VkGeneratedCommandsInfoNV</type>* <name>pGeneratedCommandsInfo</name></param>
- </command>
- <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdPreprocessGeneratedCommandsNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkGeneratedCommandsInfoNV</type>* <name>pGeneratedCommandsInfo</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBindPipelineShaderGroupNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></param>
- <param><type>VkPipeline</type> <name>pipeline</name></param>
- <param><type>uint32_t</type> <name>groupIndex</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetGeneratedCommandsMemoryRequirementsNV</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkGeneratedCommandsMemoryRequirementsInfoNV</type>* <name>pInfo</name></param>
- <param><type>VkMemoryRequirements2</type>* <name>pMemoryRequirements</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateIndirectCommandsLayoutNV</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkIndirectCommandsLayoutCreateInfoNV</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkIndirectCommandsLayoutNV</type>* <name>pIndirectCommandsLayout</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyIndirectCommandsLayoutNV</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkIndirectCommandsLayoutNV</type> <name>indirectCommandsLayout</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceFeatures2</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkPhysicalDeviceFeatures2</type>* <name>pFeatures</name></param>
- </command>
- <command name="vkGetPhysicalDeviceFeatures2KHR" alias="vkGetPhysicalDeviceFeatures2"/>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceProperties2</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkPhysicalDeviceProperties2</type>* <name>pProperties</name></param>
- </command>
- <command name="vkGetPhysicalDeviceProperties2KHR" alias="vkGetPhysicalDeviceProperties2"/>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceFormatProperties2</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkFormat</type> <name>format</name></param>
- <param><type>VkFormatProperties2</type>* <name>pFormatProperties</name></param>
- </command>
- <command name="vkGetPhysicalDeviceFormatProperties2KHR" alias="vkGetPhysicalDeviceFormatProperties2"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_FORMAT_NOT_SUPPORTED">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceImageFormatProperties2</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param>const <type>VkPhysicalDeviceImageFormatInfo2</type>* <name>pImageFormatInfo</name></param>
- <param><type>VkImageFormatProperties2</type>* <name>pImageFormatProperties</name></param>
- </command>
- <command name="vkGetPhysicalDeviceImageFormatProperties2KHR" alias="vkGetPhysicalDeviceImageFormatProperties2"/>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceQueueFamilyProperties2</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pQueueFamilyPropertyCount</name></param>
- <param optional="true" len="pQueueFamilyPropertyCount"><type>VkQueueFamilyProperties2</type>* <name>pQueueFamilyProperties</name></param>
- </command>
- <command name="vkGetPhysicalDeviceQueueFamilyProperties2KHR" alias="vkGetPhysicalDeviceQueueFamilyProperties2"/>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceMemoryProperties2</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkPhysicalDeviceMemoryProperties2</type>* <name>pMemoryProperties</name></param>
- </command>
- <command name="vkGetPhysicalDeviceMemoryProperties2KHR" alias="vkGetPhysicalDeviceMemoryProperties2"/>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceSparseImageFormatProperties2</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param>const <type>VkPhysicalDeviceSparseImageFormatInfo2</type>* <name>pFormatInfo</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
- <param optional="true" len="pPropertyCount"><type>VkSparseImageFormatProperties2</type>* <name>pProperties</name></param>
- </command>
- <command name="vkGetPhysicalDeviceSparseImageFormatProperties2KHR" alias="vkGetPhysicalDeviceSparseImageFormatProperties2"/>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdPushDescriptorSetKHR</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></param>
- <param><type>VkPipelineLayout</type> <name>layout</name></param>
- <param><type>uint32_t</type> <name>set</name></param>
- <param><type>uint32_t</type> <name>descriptorWriteCount</name></param>
- <param len="descriptorWriteCount">const <type>VkWriteDescriptorSet</type>* <name>pDescriptorWrites</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkTrimCommandPool</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkCommandPool</type> <name>commandPool</name></param>
- <param optional="true"><type>VkCommandPoolTrimFlags</type> <name>flags</name></param>
- </command>
- <command name="vkTrimCommandPoolKHR" alias="vkTrimCommandPool"/>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceExternalBufferProperties</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param>const <type>VkPhysicalDeviceExternalBufferInfo</type>* <name>pExternalBufferInfo</name></param>
- <param><type>VkExternalBufferProperties</type>* <name>pExternalBufferProperties</name></param>
- </command>
- <command name="vkGetPhysicalDeviceExternalBufferPropertiesKHR" alias="vkGetPhysicalDeviceExternalBufferProperties"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetMemoryWin32HandleKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkMemoryGetWin32HandleInfoKHR</type>* <name>pGetWin32HandleInfo</name></param>
- <param><type>HANDLE</type>* <name>pHandle</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INVALID_EXTERNAL_HANDLE">
- <proto><type>VkResult</type> <name>vkGetMemoryWin32HandlePropertiesKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></param>
- <param><type>HANDLE</type> <name>handle</name></param>
- <param><type>VkMemoryWin32HandlePropertiesKHR</type>* <name>pMemoryWin32HandleProperties</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetMemoryFdKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkMemoryGetFdInfoKHR</type>* <name>pGetFdInfo</name></param>
- <param><type>int</type>* <name>pFd</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INVALID_EXTERNAL_HANDLE">
- <proto><type>VkResult</type> <name>vkGetMemoryFdPropertiesKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></param>
- <param><type>int</type> <name>fd</name></param>
- <param><type>VkMemoryFdPropertiesKHR</type>* <name>pMemoryFdProperties</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetMemoryZirconHandleFUCHSIA</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkMemoryGetZirconHandleInfoFUCHSIA</type>* <name>pGetZirconHandleInfo</name></param>
- <param><type>zx_handle_t</type>* <name>pZirconHandle</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INVALID_EXTERNAL_HANDLE">
- <proto><type>VkResult</type> <name>vkGetMemoryZirconHandlePropertiesFUCHSIA</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></param>
- <param><type>zx_handle_t</type> <name>zirconHandle</name></param>
- <param><type>VkMemoryZirconHandlePropertiesFUCHSIA</type>* <name>pMemoryZirconHandleProperties</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INVALID_EXTERNAL_HANDLE">
- <proto><type>VkResult</type> <name>vkGetMemoryRemoteAddressNV</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkMemoryGetRemoteAddressInfoNV</type>* <name>pMemoryGetRemoteAddressInfo</name></param>
- <param><type>VkRemoteAddressNV</type>* <name>pAddress</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceExternalSemaphoreProperties</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param>const <type>VkPhysicalDeviceExternalSemaphoreInfo</type>* <name>pExternalSemaphoreInfo</name></param>
- <param><type>VkExternalSemaphoreProperties</type>* <name>pExternalSemaphoreProperties</name></param>
- </command>
- <command name="vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" alias="vkGetPhysicalDeviceExternalSemaphoreProperties"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetSemaphoreWin32HandleKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkSemaphoreGetWin32HandleInfoKHR</type>* <name>pGetWin32HandleInfo</name></param>
- <param><type>HANDLE</type>* <name>pHandle</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INVALID_EXTERNAL_HANDLE">
- <proto><type>VkResult</type> <name>vkImportSemaphoreWin32HandleKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkImportSemaphoreWin32HandleInfoKHR</type>* <name>pImportSemaphoreWin32HandleInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetSemaphoreFdKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkSemaphoreGetFdInfoKHR</type>* <name>pGetFdInfo</name></param>
- <param><type>int</type>* <name>pFd</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INVALID_EXTERNAL_HANDLE">
- <proto><type>VkResult</type> <name>vkImportSemaphoreFdKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkImportSemaphoreFdInfoKHR</type>* <name>pImportSemaphoreFdInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetSemaphoreZirconHandleFUCHSIA</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkSemaphoreGetZirconHandleInfoFUCHSIA</type>* <name>pGetZirconHandleInfo</name></param>
- <param><type>zx_handle_t</type>* <name>pZirconHandle</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INVALID_EXTERNAL_HANDLE">
- <proto><type>VkResult</type> <name>vkImportSemaphoreZirconHandleFUCHSIA</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkImportSemaphoreZirconHandleInfoFUCHSIA</type>* <name>pImportSemaphoreZirconHandleInfo</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceExternalFenceProperties</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param>const <type>VkPhysicalDeviceExternalFenceInfo</type>* <name>pExternalFenceInfo</name></param>
- <param><type>VkExternalFenceProperties</type>* <name>pExternalFenceProperties</name></param>
- </command>
- <command name="vkGetPhysicalDeviceExternalFencePropertiesKHR" alias="vkGetPhysicalDeviceExternalFenceProperties"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetFenceWin32HandleKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkFenceGetWin32HandleInfoKHR</type>* <name>pGetWin32HandleInfo</name></param>
- <param><type>HANDLE</type>* <name>pHandle</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INVALID_EXTERNAL_HANDLE">
- <proto><type>VkResult</type> <name>vkImportFenceWin32HandleKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkImportFenceWin32HandleInfoKHR</type>* <name>pImportFenceWin32HandleInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetFenceFdKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkFenceGetFdInfoKHR</type>* <name>pGetFdInfo</name></param>
- <param><type>int</type>* <name>pFd</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INVALID_EXTERNAL_HANDLE">
- <proto><type>VkResult</type> <name>vkImportFenceFdKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkImportFenceFdInfoKHR</type>* <name>pImportFenceFdInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS">
- <proto><type>VkResult</type> <name>vkReleaseDisplayEXT</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkDisplayKHR</type> <name>display</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkAcquireXlibDisplayEXT</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>Display</type>* <name>dpy</name></param>
- <param><type>VkDisplayKHR</type> <name>display</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetRandROutputDisplayEXT</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>Display</type>* <name>dpy</name></param>
- <param><type>RROutput</type> <name>rrOutput</name></param>
- <param><type>VkDisplayKHR</type>* <name>pDisplay</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_DEVICE_LOST,VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkAcquireWinrtDisplayNV</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkDisplayKHR</type> <name>display</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_DEVICE_LOST,VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkGetWinrtDisplayNV</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>uint32_t</type> <name>deviceRelativeId</name></param>
- <param><type>VkDisplayKHR</type>* <name>pDisplay</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkDisplayPowerControlEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkDisplayKHR</type> <name>display</name></param>
- <param>const <type>VkDisplayPowerInfoEXT</type>* <name>pDisplayPowerInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkRegisterDeviceEventEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkDeviceEventInfoEXT</type>* <name>pDeviceEventInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkFence</type>* <name>pFence</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkRegisterDisplayEventEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkDisplayKHR</type> <name>display</name></param>
- <param>const <type>VkDisplayEventInfoEXT</type>* <name>pDisplayEventInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkFence</type>* <name>pFence</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_DEVICE_LOST,VK_ERROR_OUT_OF_DATE_KHR">
- <proto><type>VkResult</type> <name>vkGetSwapchainCounterEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkSwapchainKHR</type> <name>swapchain</name></param>
- <param><type>VkSurfaceCounterFlagBitsEXT</type> <name>counter</name></param>
- <param><type>uint64_t</type>* <name>pCounterValue</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceSurfaceCapabilities2EXT</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkSurfaceKHR</type> <name>surface</name></param>
- <param><type>VkSurfaceCapabilities2EXT</type>* <name>pSurfaceCapabilities</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkEnumeratePhysicalDeviceGroups</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPhysicalDeviceGroupCount</name></param>
- <param optional="true" len="pPhysicalDeviceGroupCount"><type>VkPhysicalDeviceGroupProperties</type>* <name>pPhysicalDeviceGroupProperties</name></param>
- </command>
- <command name="vkEnumeratePhysicalDeviceGroupsKHR" alias="vkEnumeratePhysicalDeviceGroups"/>
- <command>
- <proto><type>void</type> <name>vkGetDeviceGroupPeerMemoryFeatures</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>uint32_t</type> <name>heapIndex</name></param>
- <param><type>uint32_t</type> <name>localDeviceIndex</name></param>
- <param><type>uint32_t</type> <name>remoteDeviceIndex</name></param>
- <param><type>VkPeerMemoryFeatureFlags</type>* <name>pPeerMemoryFeatures</name></param>
- </command>
- <command name="vkGetDeviceGroupPeerMemoryFeaturesKHR" alias="vkGetDeviceGroupPeerMemoryFeatures"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR">
- <proto><type>VkResult</type> <name>vkBindBufferMemory2</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>uint32_t</type> <name>bindInfoCount</name></param>
- <param len="bindInfoCount">const <type>VkBindBufferMemoryInfo</type>* <name>pBindInfos</name></param>
- </command>
- <command name="vkBindBufferMemory2KHR" alias="vkBindBufferMemory2"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkBindImageMemory2</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>uint32_t</type> <name>bindInfoCount</name></param>
- <param len="bindInfoCount">const <type>VkBindImageMemoryInfo</type>* <name>pBindInfos</name></param>
- </command>
- <command name="vkBindImageMemory2KHR" alias="vkBindImageMemory2"/>
- <command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetDeviceMask</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>deviceMask</name></param>
- </command>
- <command name="vkCmdSetDeviceMaskKHR" alias="vkCmdSetDeviceMask"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetDeviceGroupPresentCapabilitiesKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkDeviceGroupPresentCapabilitiesKHR</type>* <name>pDeviceGroupPresentCapabilities</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkGetDeviceGroupSurfacePresentModesKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkSurfaceKHR</type> <name>surface</name></param>
- <param optional="false,true"><type>VkDeviceGroupPresentModeFlagsKHR</type>* <name>pModes</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_TIMEOUT,VK_NOT_READY,VK_SUBOPTIMAL_KHR" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST,VK_ERROR_OUT_OF_DATE_KHR,VK_ERROR_SURFACE_LOST_KHR,VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT">
- <proto><type>VkResult</type> <name>vkAcquireNextImage2KHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkAcquireNextImageInfoKHR</type>* <name>pAcquireInfo</name></param>
- <param><type>uint32_t</type>* <name>pImageIndex</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDispatchBase</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>baseGroupX</name></param>
- <param><type>uint32_t</type> <name>baseGroupY</name></param>
- <param><type>uint32_t</type> <name>baseGroupZ</name></param>
- <param><type>uint32_t</type> <name>groupCountX</name></param>
- <param><type>uint32_t</type> <name>groupCountY</name></param>
- <param><type>uint32_t</type> <name>groupCountZ</name></param>
- </command>
- <command name="vkCmdDispatchBaseKHR" alias="vkCmdDispatchBase"/>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetPhysicalDevicePresentRectanglesKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param externsync="true"><type>VkSurfaceKHR</type> <name>surface</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pRectCount</name></param>
- <param optional="true" len="pRectCount"><type>VkRect2D</type>* <name>pRects</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateDescriptorUpdateTemplate</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkDescriptorUpdateTemplateCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkDescriptorUpdateTemplate</type>* <name>pDescriptorUpdateTemplate</name></param>
- </command>
- <command name="vkCreateDescriptorUpdateTemplateKHR" alias="vkCreateDescriptorUpdateTemplate"/>
- <command>
- <proto><type>void</type> <name>vkDestroyDescriptorUpdateTemplate</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkDescriptorUpdateTemplate</type> <name>descriptorUpdateTemplate</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command name="vkDestroyDescriptorUpdateTemplateKHR" alias="vkDestroyDescriptorUpdateTemplate"/>
- <command>
- <proto><type>void</type> <name>vkUpdateDescriptorSetWithTemplate</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkDescriptorSet</type> <name>descriptorSet</name></param>
- <param><type>VkDescriptorUpdateTemplate</type> <name>descriptorUpdateTemplate</name></param>
- <param noautovalidity="true">const <type>void</type>* <name>pData</name></param>
- </command>
- <command name="vkUpdateDescriptorSetWithTemplateKHR" alias="vkUpdateDescriptorSetWithTemplate"/>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdPushDescriptorSetWithTemplateKHR</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkDescriptorUpdateTemplate</type> <name>descriptorUpdateTemplate</name></param>
- <param><type>VkPipelineLayout</type> <name>layout</name></param>
- <param><type>uint32_t</type> <name>set</name></param>
- <param noautovalidity="true">const <type>void</type>* <name>pData</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkSetHdrMetadataEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>uint32_t</type> <name>swapchainCount</name></param>
- <param len="swapchainCount">const <type>VkSwapchainKHR</type>* <name>pSwapchains</name></param>
- <param len="swapchainCount">const <type>VkHdrMetadataEXT</type>* <name>pMetadata</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_SUBOPTIMAL_KHR" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST,VK_ERROR_OUT_OF_DATE_KHR,VK_ERROR_SURFACE_LOST_KHR,VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT">
- <proto><type>VkResult</type> <name>vkGetSwapchainStatusKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkSwapchainKHR</type> <name>swapchain</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_DEVICE_LOST,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkGetRefreshCycleDurationGOOGLE</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkSwapchainKHR</type> <name>swapchain</name></param>
- <param><type>VkRefreshCycleDurationGOOGLE</type>* <name>pDisplayTimingProperties</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_DEVICE_LOST,VK_ERROR_OUT_OF_DATE_KHR,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkGetPastPresentationTimingGOOGLE</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkSwapchainKHR</type> <name>swapchain</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPresentationTimingCount</name></param>
- <param optional="true" len="pPresentationTimingCount"><type>VkPastPresentationTimingGOOGLE</type>* <name>pPresentationTimings</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_NATIVE_WINDOW_IN_USE_KHR">
- <proto><type>VkResult</type> <name>vkCreateIOSSurfaceMVK</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkIOSSurfaceCreateInfoMVK</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_NATIVE_WINDOW_IN_USE_KHR">
- <proto><type>VkResult</type> <name>vkCreateMacOSSurfaceMVK</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkMacOSSurfaceCreateInfoMVK</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_NATIVE_WINDOW_IN_USE_KHR">
- <proto><type>VkResult</type> <name>vkCreateMetalSurfaceEXT</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkMetalSurfaceCreateInfoEXT</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetViewportWScalingNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>firstViewport</name></param>
- <param><type>uint32_t</type> <name>viewportCount</name></param>
- <param len="viewportCount">const <type>VkViewportWScalingNV</type>* <name>pViewportWScalings</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetDiscardRectangleEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>firstDiscardRectangle</name></param>
- <param><type>uint32_t</type> <name>discardRectangleCount</name></param>
- <param len="discardRectangleCount">const <type>VkRect2D</type>* <name>pDiscardRectangles</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetSampleLocationsEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkSampleLocationsInfoEXT</type>* <name>pSampleLocationsInfo</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceMultisamplePropertiesEXT</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkSampleCountFlagBits</type> <name>samples</name></param>
- <param><type>VkMultisamplePropertiesEXT</type>* <name>pMultisampleProperties</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceSurfaceCapabilities2KHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param>const <type>VkPhysicalDeviceSurfaceInfo2KHR</type>* <name>pSurfaceInfo</name></param>
- <param><type>VkSurfaceCapabilities2KHR</type>* <name>pSurfaceCapabilities</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceSurfaceFormats2KHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param>const <type>VkPhysicalDeviceSurfaceInfo2KHR</type>* <name>pSurfaceInfo</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pSurfaceFormatCount</name></param>
- <param optional="true" len="pSurfaceFormatCount"><type>VkSurfaceFormat2KHR</type>* <name>pSurfaceFormats</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceDisplayProperties2KHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
- <param optional="true" len="pPropertyCount"><type>VkDisplayProperties2KHR</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">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceDisplayPlaneProperties2KHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
- <param optional="true" len="pPropertyCount"><type>VkDisplayPlaneProperties2KHR</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">
- <proto><type>VkResult</type> <name>vkGetDisplayModeProperties2KHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>VkDisplayKHR</type> <name>display</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
- <param optional="true" len="pPropertyCount"><type>VkDisplayModeProperties2KHR</type>* <name>pProperties</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetDisplayPlaneCapabilities2KHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param>const <type>VkDisplayPlaneInfo2KHR</type>* <name>pDisplayPlaneInfo</name></param>
- <param><type>VkDisplayPlaneCapabilities2KHR</type>* <name>pCapabilities</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetBufferMemoryRequirements2</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkBufferMemoryRequirementsInfo2</type>* <name>pInfo</name></param>
- <param><type>VkMemoryRequirements2</type>* <name>pMemoryRequirements</name></param>
- </command>
- <command name="vkGetBufferMemoryRequirements2KHR" alias="vkGetBufferMemoryRequirements2"/>
- <command>
- <proto><type>void</type> <name>vkGetImageMemoryRequirements2</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkImageMemoryRequirementsInfo2</type>* <name>pInfo</name></param>
- <param><type>VkMemoryRequirements2</type>* <name>pMemoryRequirements</name></param>
- </command>
- <command name="vkGetImageMemoryRequirements2KHR" alias="vkGetImageMemoryRequirements2"/>
- <command>
- <proto><type>void</type> <name>vkGetImageSparseMemoryRequirements2</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkImageSparseMemoryRequirementsInfo2</type>* <name>pInfo</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pSparseMemoryRequirementCount</name></param>
- <param optional="true" len="pSparseMemoryRequirementCount"><type>VkSparseImageMemoryRequirements2</type>* <name>pSparseMemoryRequirements</name></param>
- </command>
- <command name="vkGetImageSparseMemoryRequirements2KHR" alias="vkGetImageSparseMemoryRequirements2"/>
- <command>
- <proto><type>void</type> <name>vkGetDeviceBufferMemoryRequirements</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkDeviceBufferMemoryRequirements</type>* <name>pInfo</name></param>
- <param><type>VkMemoryRequirements2</type>* <name>pMemoryRequirements</name></param>
- </command>
- <command name="vkGetDeviceBufferMemoryRequirementsKHR" alias="vkGetDeviceBufferMemoryRequirements"/>
- <command>
- <proto><type>void</type> <name>vkGetDeviceImageMemoryRequirements</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkDeviceImageMemoryRequirements</type>* <name>pInfo</name></param>
- <param><type>VkMemoryRequirements2</type>* <name>pMemoryRequirements</name></param>
- </command>
- <command name="vkGetDeviceImageMemoryRequirementsKHR" alias="vkGetDeviceImageMemoryRequirements"/>
- <command>
- <proto><type>void</type> <name>vkGetDeviceImageSparseMemoryRequirements</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkDeviceImageMemoryRequirements</type>* <name>pInfo</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pSparseMemoryRequirementCount</name></param>
- <param optional="true" len="pSparseMemoryRequirementCount"><type>VkSparseImageMemoryRequirements2</type>* <name>pSparseMemoryRequirements</name></param>
- </command>
- <command name="vkGetDeviceImageSparseMemoryRequirementsKHR" alias="vkGetDeviceImageSparseMemoryRequirements"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateSamplerYcbcrConversion</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkSamplerYcbcrConversionCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSamplerYcbcrConversion</type>* <name>pYcbcrConversion</name></param>
- </command>
- <command name="vkCreateSamplerYcbcrConversionKHR" alias="vkCreateSamplerYcbcrConversion"/>
- <command>
- <proto><type>void</type> <name>vkDestroySamplerYcbcrConversion</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkSamplerYcbcrConversion</type> <name>ycbcrConversion</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command name="vkDestroySamplerYcbcrConversionKHR" alias="vkDestroySamplerYcbcrConversion"/>
- <command>
- <proto><type>void</type> <name>vkGetDeviceQueue2</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkDeviceQueueInfo2</type>* <name>pQueueInfo</name></param>
- <param><type>VkQueue</type>* <name>pQueue</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateValidationCacheEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkValidationCacheCreateInfoEXT</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkValidationCacheEXT</type>* <name>pValidationCache</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyValidationCacheEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkValidationCacheEXT</type> <name>validationCache</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetValidationCacheDataEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkValidationCacheEXT</type> <name>validationCache</name></param>
- <param optional="false,true"><type>size_t</type>* <name>pDataSize</name></param>
- <param optional="true" len="pDataSize"><type>void</type>* <name>pData</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkMergeValidationCachesEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkValidationCacheEXT</type> <name>dstCache</name></param>
- <param><type>uint32_t</type> <name>srcCacheCount</name></param>
- <param len="srcCacheCount">const <type>VkValidationCacheEXT</type>* <name>pSrcCaches</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetDescriptorSetLayoutSupport</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkDescriptorSetLayoutCreateInfo</type>* <name>pCreateInfo</name></param>
- <param><type>VkDescriptorSetLayoutSupport</type>* <name>pSupport</name></param>
- </command>
- <command name="vkGetDescriptorSetLayoutSupportKHR" alias="vkGetDescriptorSetLayoutSupport"/>
- <command>
- <proto><type>VkResult</type> <name>vkGetSwapchainGrallocUsageANDROID</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkFormat</type> <name>format</name></param>
- <param><type>VkImageUsageFlags</type> <name>imageUsage</name></param>
- <param><type>int</type>* <name>grallocUsage</name></param>
- </command>
- <command>
- <proto><type>VkResult</type> <name>vkGetSwapchainGrallocUsage2ANDROID</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkFormat</type> <name>format</name></param>
- <param><type>VkImageUsageFlags</type> <name>imageUsage</name></param>
- <param><type>VkSwapchainImageUsageFlagsANDROID</type> <name>swapchainImageUsage</name></param>
- <param><type>uint64_t</type>* <name>grallocConsumerUsage</name></param>
- <param><type>uint64_t</type>* <name>grallocProducerUsage</name></param>
- </command>
- <command>
- <proto><type>VkResult</type> <name>vkAcquireImageANDROID</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkImage</type> <name>image</name></param>
- <param><type>int</type> <name>nativeFenceFd</name></param>
- <param><type>VkSemaphore</type> <name>semaphore</name></param>
- <param><type>VkFence</type> <name>fence</name></param>
- </command>
- <command>
- <proto><type>VkResult</type> <name>vkQueueSignalReleaseImageANDROID</name></proto>
- <param><type>VkQueue</type> <name>queue</name></param>
- <param><type>uint32_t</type> <name>waitSemaphoreCount</name></param>
- <param len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></param>
- <param><type>VkImage</type> <name>image</name></param>
- <param><type>int</type>* <name>pNativeFenceFd</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_FEATURE_NOT_PRESENT,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetShaderInfoAMD</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkPipeline</type> <name>pipeline</name></param>
- <param><type>VkShaderStageFlagBits</type> <name>shaderStage</name></param>
- <param><type>VkShaderInfoTypeAMD</type> <name>infoType</name></param>
- <param optional="false,true"><type>size_t</type>* <name>pInfoSize</name></param>
- <param optional="true" len="pInfoSize"><type>void</type>* <name>pInfo</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkSetLocalDimmingAMD</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkSwapchainKHR</type> <name>swapChain</name></param>
- <param><type>VkBool32</type> <name>localDimmingEnable</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceCalibrateableTimeDomainsEXT</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pTimeDomainCount</name></param>
- <param optional="true" len="pTimeDomainCount"><type>VkTimeDomainEXT</type>* <name>pTimeDomains</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetCalibratedTimestampsEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>uint32_t</type> <name>timestampCount</name></param>
- <param len="timestampCount">const <type>VkCalibratedTimestampInfoEXT</type>* <name>pTimestampInfos</name></param>
- <param len="timestampCount"><type>uint64_t</type>* <name>pTimestamps</name></param>
- <param><type>uint64_t</type>* <name>pMaxDeviation</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkSetDebugUtilsObjectNameEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="pNameInfo-&gt;objectHandle">const <type>VkDebugUtilsObjectNameInfoEXT</type>* <name>pNameInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkSetDebugUtilsObjectTagEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="pTagInfo-&gt;objectHandle">const <type>VkDebugUtilsObjectTagInfoEXT</type>* <name>pTagInfo</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkQueueBeginDebugUtilsLabelEXT</name></proto>
- <param><type>VkQueue</type> <name>queue</name></param>
- <param>const <type>VkDebugUtilsLabelEXT</type>* <name>pLabelInfo</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkQueueEndDebugUtilsLabelEXT</name></proto>
- <param><type>VkQueue</type> <name>queue</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkQueueInsertDebugUtilsLabelEXT</name></proto>
- <param><type>VkQueue</type> <name>queue</name></param>
- <param>const <type>VkDebugUtilsLabelEXT</type>* <name>pLabelInfo</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBeginDebugUtilsLabelEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkDebugUtilsLabelEXT</type>* <name>pLabelInfo</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdEndDebugUtilsLabelEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdInsertDebugUtilsLabelEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkDebugUtilsLabelEXT</type>* <name>pLabelInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateDebugUtilsMessengerEXT</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkDebugUtilsMessengerCreateInfoEXT</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkDebugUtilsMessengerEXT</type>* <name>pMessenger</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyDebugUtilsMessengerEXT</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param optional="true" externsync="true"><type>VkDebugUtilsMessengerEXT</type> <name>messenger</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkSubmitDebugUtilsMessageEXT</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param><type>VkDebugUtilsMessageSeverityFlagBitsEXT</type> <name>messageSeverity</name></param>
- <param><type>VkDebugUtilsMessageTypeFlagsEXT</type> <name>messageTypes</name></param>
- <param>const <type>VkDebugUtilsMessengerCallbackDataEXT</type>* <name>pCallbackData</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INVALID_EXTERNAL_HANDLE">
- <proto><type>VkResult</type> <name>vkGetMemoryHostPointerPropertiesEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkExternalMemoryHandleTypeFlagBits</type> <name>handleType</name></param>
- <param optional="false">const <type>void</type>* <name>pHostPointer</name></param>
- <param><type>VkMemoryHostPointerPropertiesEXT</type>* <name>pMemoryHostPointerProperties</name></param>
- </command>
- <command queues="transfer,graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdWriteBufferMarkerAMD</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param optional="true"><type>VkPipelineStageFlagBits</type> <name>pipelineStage</name></param>
- <param><type>VkBuffer</type> <name>dstBuffer</name></param>
- <param><type>VkDeviceSize</type> <name>dstOffset</name></param>
- <param><type>uint32_t</type> <name>marker</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateRenderPass2</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkRenderPassCreateInfo2</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkRenderPass</type>* <name>pRenderPass</name></param>
- </command>
- <command name="vkCreateRenderPass2KHR" alias="vkCreateRenderPass2"/>
- <command queues="graphics" renderpass="outside" cmdbufferlevel="primary">
- <proto><type>void</type> <name>vkCmdBeginRenderPass2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkRenderPassBeginInfo</type>* <name>pRenderPassBegin</name></param>
- <param>const <type>VkSubpassBeginInfo</type>* <name>pSubpassBeginInfo</name></param>
- </command>
- <command name="vkCmdBeginRenderPass2KHR" alias="vkCmdBeginRenderPass2"/>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary">
- <proto><type>void</type> <name>vkCmdNextSubpass2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkSubpassBeginInfo</type>* <name>pSubpassBeginInfo</name></param>
- <param>const <type>VkSubpassEndInfo</type>* <name>pSubpassEndInfo</name></param>
- </command>
- <command name="vkCmdNextSubpass2KHR" alias="vkCmdNextSubpass2"/>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary">
- <proto><type>void</type> <name>vkCmdEndRenderPass2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkSubpassEndInfo</type>* <name>pSubpassEndInfo</name></param>
- </command>
- <command name="vkCmdEndRenderPass2KHR" alias="vkCmdEndRenderPass2"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST">
- <proto><type>VkResult</type> <name>vkGetSemaphoreCounterValue</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkSemaphore</type> <name>semaphore</name></param>
- <param><type>uint64_t</type>* <name>pValue</name></param>
- </command>
- <command name="vkGetSemaphoreCounterValueKHR" alias="vkGetSemaphoreCounterValue"/>
- <command successcodes="VK_SUCCESS,VK_TIMEOUT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST">
- <proto><type>VkResult</type> <name>vkWaitSemaphores</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkSemaphoreWaitInfo</type>* <name>pWaitInfo</name></param>
- <param><type>uint64_t</type> <name>timeout</name></param>
- </command>
- <command name="vkWaitSemaphoresKHR" alias="vkWaitSemaphores"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkSignalSemaphore</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkSemaphoreSignalInfo</type>* <name>pSignalInfo</name></param>
- </command>
- <command name="vkSignalSemaphoreKHR" alias="vkSignalSemaphore"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR">
- <proto><type>VkResult</type> <name>vkGetAndroidHardwareBufferPropertiesANDROID</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const struct <type>AHardwareBuffer</type>* <name>buffer</name></param>
- <param><type>VkAndroidHardwareBufferPropertiesANDROID</type>* <name>pProperties</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetMemoryAndroidHardwareBufferANDROID</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkMemoryGetAndroidHardwareBufferInfoANDROID</type>* <name>pInfo</name></param>
- <param>struct <type>AHardwareBuffer</type>** <name>pBuffer</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDrawIndirectCount</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBuffer</type> <name>buffer</name></param>
- <param><type>VkDeviceSize</type> <name>offset</name></param>
- <param><type>VkBuffer</type> <name>countBuffer</name></param>
- <param><type>VkDeviceSize</type> <name>countBufferOffset</name></param>
- <param><type>uint32_t</type> <name>maxDrawCount</name></param>
- <param><type>uint32_t</type> <name>stride</name></param>
- </command>
- <command name="vkCmdDrawIndirectCountKHR" alias="vkCmdDrawIndirectCount"/>
- <command name="vkCmdDrawIndirectCountAMD" alias="vkCmdDrawIndirectCount"/>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDrawIndexedIndirectCount</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBuffer</type> <name>buffer</name></param>
- <param><type>VkDeviceSize</type> <name>offset</name></param>
- <param><type>VkBuffer</type> <name>countBuffer</name></param>
- <param><type>VkDeviceSize</type> <name>countBufferOffset</name></param>
- <param><type>uint32_t</type> <name>maxDrawCount</name></param>
- <param><type>uint32_t</type> <name>stride</name></param>
- </command>
- <command name="vkCmdDrawIndexedIndirectCountKHR" alias="vkCmdDrawIndexedIndirectCount"/>
- <command name="vkCmdDrawIndexedIndirectCountAMD" alias="vkCmdDrawIndexedIndirectCount"/>
- <command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetCheckpointNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param noautovalidity="true">const <type>void</type>* <name>pCheckpointMarker</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetQueueCheckpointDataNV</name></proto>
- <param><type>VkQueue</type> <name>queue</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pCheckpointDataCount</name></param>
- <param optional="true" len="pCheckpointDataCount"><type>VkCheckpointDataNV</type>* <name>pCheckpointData</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBindTransformFeedbackBuffersEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>firstBinding</name></param>
- <param><type>uint32_t</type> <name>bindingCount</name></param>
- <param len="bindingCount">const <type>VkBuffer</type>* <name>pBuffers</name></param>
- <param len="bindingCount">const <type>VkDeviceSize</type>* <name>pOffsets</name></param>
- <param optional="true" len="bindingCount" noautovalidity="true">const <type>VkDeviceSize</type>* <name>pSizes</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBeginTransformFeedbackEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>firstCounterBuffer</name></param>
- <param optional="true"><type>uint32_t</type> <name>counterBufferCount</name></param>
- <param noautovalidity="true" len="counterBufferCount">const <type>VkBuffer</type>* <name>pCounterBuffers</name></param>
- <param optional="true" len="counterBufferCount">const <type>VkDeviceSize</type>* <name>pCounterBufferOffsets</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdEndTransformFeedbackEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>firstCounterBuffer</name></param>
- <param optional="true"><type>uint32_t</type> <name>counterBufferCount</name></param>
- <param noautovalidity="true" len="counterBufferCount">const <type>VkBuffer</type>* <name>pCounterBuffers</name></param>
- <param optional="true" len="counterBufferCount">const <type>VkDeviceSize</type>* <name>pCounterBufferOffsets</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBeginQueryIndexedEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkQueryPool</type> <name>queryPool</name></param>
- <param><type>uint32_t</type> <name>query</name></param>
- <param optional="true"><type>VkQueryControlFlags</type> <name>flags</name></param>
- <param><type>uint32_t</type> <name>index</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdEndQueryIndexedEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkQueryPool</type> <name>queryPool</name></param>
- <param><type>uint32_t</type> <name>query</name></param>
- <param><type>uint32_t</type> <name>index</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDrawIndirectByteCountEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>instanceCount</name></param>
- <param><type>uint32_t</type> <name>firstInstance</name></param>
- <param><type>VkBuffer</type> <name>counterBuffer</name></param>
- <param><type>VkDeviceSize</type> <name>counterBufferOffset</name></param>
- <param><type>uint32_t</type> <name>counterOffset</name></param>
- <param><type>uint32_t</type> <name>vertexStride</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetExclusiveScissorNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>firstExclusiveScissor</name></param>
- <param><type>uint32_t</type> <name>exclusiveScissorCount</name></param>
- <param len="exclusiveScissorCount">const <type>VkRect2D</type>* <name>pExclusiveScissors</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBindShadingRateImageNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param optional="true"><type>VkImageView</type> <name>imageView</name></param>
- <param><type>VkImageLayout</type> <name>imageLayout</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetViewportShadingRatePaletteNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>firstViewport</name></param>
- <param><type>uint32_t</type> <name>viewportCount</name></param>
- <param len="viewportCount">const <type>VkShadingRatePaletteNV</type>* <name>pShadingRatePalettes</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetCoarseSampleOrderNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkCoarseSampleOrderTypeNV</type> <name>sampleOrderType</name></param>
- <param optional="true"><type>uint32_t</type> <name>customSampleOrderCount</name></param>
- <param len="customSampleOrderCount">const <type>VkCoarseSampleOrderCustomNV</type>* <name>pCustomSampleOrders</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDrawMeshTasksNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>taskCount</name></param>
- <param><type>uint32_t</type> <name>firstTask</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDrawMeshTasksIndirectNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBuffer</type> <name>buffer</name></param>
- <param><type>VkDeviceSize</type> <name>offset</name></param>
- <param><type>uint32_t</type> <name>drawCount</name></param>
- <param><type>uint32_t</type> <name>stride</name></param>
- </command>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdDrawMeshTasksIndirectCountNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBuffer</type> <name>buffer</name></param>
- <param><type>VkDeviceSize</type> <name>offset</name></param>
- <param><type>VkBuffer</type> <name>countBuffer</name></param>
- <param><type>VkDeviceSize</type> <name>countBufferOffset</name></param>
- <param><type>uint32_t</type> <name>maxDrawCount</name></param>
- <param><type>uint32_t</type> <name>stride</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCompileDeferredNV</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkPipeline</type> <name>pipeline</name></param>
- <param><type>uint32_t</type> <name>shader</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateAccelerationStructureNV</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkAccelerationStructureCreateInfoNV</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkAccelerationStructureNV</type>* <name>pAccelerationStructure</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBindInvocationMaskHUAWEI</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param optional="true"><type>VkImageView</type> <name>imageView</name></param>
- <param><type>VkImageLayout</type> <name>imageLayout</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyAccelerationStructureKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkAccelerationStructureKHR</type> <name>accelerationStructure</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyAccelerationStructureNV</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkAccelerationStructureNV</type> <name>accelerationStructure</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetAccelerationStructureMemoryRequirementsNV</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkAccelerationStructureMemoryRequirementsInfoNV</type>* <name>pInfo</name></param>
- <param><type>VkMemoryRequirements2KHR</type>* <name>pMemoryRequirements</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkBindAccelerationStructureMemoryNV</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>uint32_t</type> <name>bindInfoCount</name></param>
- <param len="bindInfoCount">const <type>VkBindAccelerationStructureMemoryInfoNV</type>* <name>pBindInfos</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdCopyAccelerationStructureNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkAccelerationStructureNV</type> <name>dst</name></param>
- <param><type>VkAccelerationStructureNV</type> <name>src</name></param>
- <param><type>VkCopyAccelerationStructureModeKHR</type> <name>mode</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdCopyAccelerationStructureKHR</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkCopyAccelerationStructureInfoKHR</type>* <name>pInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_OPERATION_DEFERRED_KHR,VK_OPERATION_NOT_DEFERRED_KHR" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCopyAccelerationStructureKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true"><type>VkDeferredOperationKHR</type> <name>deferredOperation</name></param>
- <param>const <type>VkCopyAccelerationStructureInfoKHR</type>* <name>pInfo</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdCopyAccelerationStructureToMemoryKHR</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkCopyAccelerationStructureToMemoryInfoKHR</type>* <name>pInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_OPERATION_DEFERRED_KHR,VK_OPERATION_NOT_DEFERRED_KHR" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCopyAccelerationStructureToMemoryKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true"><type>VkDeferredOperationKHR</type> <name>deferredOperation</name></param>
- <param>const <type>VkCopyAccelerationStructureToMemoryInfoKHR</type>* <name>pInfo</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdCopyMemoryToAccelerationStructureKHR</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkCopyMemoryToAccelerationStructureInfoKHR</type>* <name>pInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_OPERATION_DEFERRED_KHR,VK_OPERATION_NOT_DEFERRED_KHR" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCopyMemoryToAccelerationStructureKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true"><type>VkDeferredOperationKHR</type> <name>deferredOperation</name></param>
- <param>const <type>VkCopyMemoryToAccelerationStructureInfoKHR</type>* <name>pInfo</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdWriteAccelerationStructuresPropertiesKHR</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>accelerationStructureCount</name></param>
- <param len="accelerationStructureCount">const <type>VkAccelerationStructureKHR</type>* <name>pAccelerationStructures</name></param>
- <param><type>VkQueryType</type> <name>queryType</name></param>
- <param><type>VkQueryPool</type> <name>queryPool</name></param>
- <param><type>uint32_t</type> <name>firstQuery</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdWriteAccelerationStructuresPropertiesNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>accelerationStructureCount</name></param>
- <param len="accelerationStructureCount">const <type>VkAccelerationStructureNV</type>* <name>pAccelerationStructures</name></param>
- <param><type>VkQueryType</type> <name>queryType</name></param>
- <param><type>VkQueryPool</type> <name>queryPool</name></param>
- <param><type>uint32_t</type> <name>firstQuery</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBuildAccelerationStructureNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkAccelerationStructureInfoNV</type>* <name>pInfo</name></param>
- <param optional="true"><type>VkBuffer</type> <name>instanceData</name></param>
- <param><type>VkDeviceSize</type> <name>instanceOffset</name></param>
- <param><type>VkBool32</type> <name>update</name></param>
- <param><type>VkAccelerationStructureNV</type> <name>dst</name></param>
- <param optional="true"><type>VkAccelerationStructureNV</type> <name>src</name></param>
- <param><type>VkBuffer</type> <name>scratch</name></param>
- <param><type>VkDeviceSize</type> <name>scratchOffset</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkWriteAccelerationStructuresPropertiesKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>uint32_t</type> <name>accelerationStructureCount</name></param>
- <param len="accelerationStructureCount">const <type>VkAccelerationStructureKHR</type>* <name>pAccelerationStructures</name></param>
- <param><type>VkQueryType</type> <name>queryType</name></param>
- <param><type>size_t</type> <name>dataSize</name></param>
- <param len="dataSize"><type>void</type>* <name>pData</name></param>
- <param><type>size_t</type> <name>stride</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdTraceRaysKHR</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkStridedDeviceAddressRegionKHR</type>* <name>pRaygenShaderBindingTable</name></param>
- <param>const <type>VkStridedDeviceAddressRegionKHR</type>* <name>pMissShaderBindingTable</name></param>
- <param>const <type>VkStridedDeviceAddressRegionKHR</type>* <name>pHitShaderBindingTable</name></param>
- <param>const <type>VkStridedDeviceAddressRegionKHR</type>* <name>pCallableShaderBindingTable</name></param>
- <param><type>uint32_t</type> <name>width</name></param>
- <param><type>uint32_t</type> <name>height</name></param>
- <param><type>uint32_t</type> <name>depth</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdTraceRaysNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBuffer</type> <name>raygenShaderBindingTableBuffer</name></param>
- <param><type>VkDeviceSize</type> <name>raygenShaderBindingOffset</name></param>
- <param optional="true"><type>VkBuffer</type> <name>missShaderBindingTableBuffer</name></param>
- <param><type>VkDeviceSize</type> <name>missShaderBindingOffset</name></param>
- <param><type>VkDeviceSize</type> <name>missShaderBindingStride</name></param>
- <param optional="true"><type>VkBuffer</type> <name>hitShaderBindingTableBuffer</name></param>
- <param><type>VkDeviceSize</type> <name>hitShaderBindingOffset</name></param>
- <param><type>VkDeviceSize</type> <name>hitShaderBindingStride</name></param>
- <param optional="true"><type>VkBuffer</type> <name>callableShaderBindingTableBuffer</name></param>
- <param><type>VkDeviceSize</type> <name>callableShaderBindingOffset</name></param>
- <param><type>VkDeviceSize</type> <name>callableShaderBindingStride</name></param>
- <param><type>uint32_t</type> <name>width</name></param>
- <param><type>uint32_t</type> <name>height</name></param>
- <param><type>uint32_t</type> <name>depth</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetRayTracingShaderGroupHandlesKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkPipeline</type> <name>pipeline</name></param>
- <param><type>uint32_t</type> <name>firstGroup</name></param>
- <param><type>uint32_t</type> <name>groupCount</name></param>
- <param><type>size_t</type> <name>dataSize</name></param>
- <param len="dataSize"><type>void</type>* <name>pData</name></param>
- </command>
- <command name="vkGetRayTracingShaderGroupHandlesNV" alias="vkGetRayTracingShaderGroupHandlesKHR"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetRayTracingCaptureReplayShaderGroupHandlesKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkPipeline</type> <name>pipeline</name></param>
- <param><type>uint32_t</type> <name>firstGroup</name></param>
- <param><type>uint32_t</type> <name>groupCount</name></param>
- <param><type>size_t</type> <name>dataSize</name></param>
- <param len="dataSize"><type>void</type>* <name>pData</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetAccelerationStructureHandleNV</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkAccelerationStructureNV</type> <name>accelerationStructure</name></param>
- <param><type>size_t</type> <name>dataSize</name></param>
- <param len="dataSize"><type>void</type>* <name>pData</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_SHADER_NV">
- <proto><type>VkResult</type> <name>vkCreateRayTracingPipelinesNV</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true"><type>VkPipelineCache</type> <name>pipelineCache</name></param>
- <param><type>uint32_t</type> <name>createInfoCount</name></param>
- <param len="createInfoCount">const <type>VkRayTracingPipelineCreateInfoNV</type>* <name>pCreateInfos</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param len="createInfoCount"><type>VkPipeline</type>* <name>pPipelines</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_OPERATION_DEFERRED_KHR,VK_OPERATION_NOT_DEFERRED_KHR,VK_PIPELINE_COMPILE_REQUIRED_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS">
- <proto><type>VkResult</type> <name>vkCreateRayTracingPipelinesKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true"><type>VkDeferredOperationKHR</type> <name>deferredOperation</name></param>
- <param optional="true"><type>VkPipelineCache</type> <name>pipelineCache</name></param>
- <param><type>uint32_t</type> <name>createInfoCount</name></param>
- <param len="createInfoCount">const <type>VkRayTracingPipelineCreateInfoKHR</type>* <name>pCreateInfos</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param len="createInfoCount"><type>VkPipeline</type>* <name>pPipelines</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceCooperativeMatrixPropertiesNV</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
- <param optional="true" len="pPropertyCount"><type>VkCooperativeMatrixPropertiesNV</type>* <name>pProperties</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdTraceRaysIndirectKHR</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkStridedDeviceAddressRegionKHR</type>* <name>pRaygenShaderBindingTable</name></param>
- <param>const <type>VkStridedDeviceAddressRegionKHR</type>* <name>pMissShaderBindingTable</name></param>
- <param>const <type>VkStridedDeviceAddressRegionKHR</type>* <name>pHitShaderBindingTable</name></param>
- <param>const <type>VkStridedDeviceAddressRegionKHR</type>* <name>pCallableShaderBindingTable</name></param>
- <param><type>VkDeviceAddress</type> <name>indirectDeviceAddress</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetDeviceAccelerationStructureCompatibilityKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkAccelerationStructureVersionInfoKHR</type>* <name>pVersionInfo</name></param>
- <param><type>VkAccelerationStructureCompatibilityKHR</type>* <name>pCompatibility</name></param>
- </command>
- <command>
- <proto><type>VkDeviceSize</type> <name>vkGetRayTracingShaderGroupStackSizeKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkPipeline</type> <name>pipeline</name></param>
- <param><type>uint32_t</type> <name>group</name></param>
- <param><type>VkShaderGroupShaderKHR</type> <name>groupShader</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetRayTracingPipelineStackSizeKHR</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>pipelineStackSize</name></param>
- </command>
- <command>
- <proto><type>uint32_t</type> <name>vkGetImageViewHandleNVX</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkImageViewHandleInfoNVX</type>* <name>pInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_UNKNOWN">
- <proto><type>VkResult</type> <name>vkGetImageViewAddressNVX</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkImageView</type> <name>imageView</name></param>
- <param><type>VkImageViewAddressPropertiesNVX</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_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceSurfacePresentModes2EXT</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param>const <type>VkPhysicalDeviceSurfaceInfo2KHR</type>* <name>pSurfaceInfo</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pPresentModeCount</name></param>
- <param optional="true" len="pPresentModeCount"><type>VkPresentModeKHR</type>* <name>pPresentModes</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkGetDeviceGroupSurfacePresentModes2EXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkPhysicalDeviceSurfaceInfo2KHR</type>* <name>pSurfaceInfo</name></param>
- <param optional="false,true"><type>VkDeviceGroupPresentModeFlagsKHR</type>* <name>pModes</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkAcquireFullScreenExclusiveModeEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkSwapchainKHR</type> <name>swapchain</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_SURFACE_LOST_KHR">
- <proto><type>VkResult</type> <name>vkReleaseFullScreenExclusiveModeEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkSwapchainKHR</type> <name>swapchain</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>uint32_t</type> <name>queueFamilyIndex</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pCounterCount</name></param>
- <param optional="true" len="pCounterCount"><type>VkPerformanceCounterKHR</type>* <name>pCounters</name></param>
- <param optional="true" len="pCounterCount"><type>VkPerformanceCounterDescriptionKHR</type>* <name>pCounterDescriptions</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param>const <type>VkQueryPoolPerformanceCreateInfoKHR</type>* <name>pPerformanceQueryCreateInfo</name></param>
- <param><type>uint32_t</type>* <name>pNumPasses</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_TIMEOUT">
- <proto><type>VkResult</type> <name>vkAcquireProfilingLockKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkAcquireProfilingLockInfoKHR</type>* <name>pInfo</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkReleaseProfilingLockKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetImageDrmFormatModifierPropertiesEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkImage</type> <name>image</name></param>
- <param><type>VkImageDrmFormatModifierPropertiesEXT</type>* <name>pProperties</name></param>
- </command>
- <command>
- <proto><type>uint64_t</type> <name>vkGetBufferOpaqueCaptureAddress</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkBufferDeviceAddressInfo</type>* <name>pInfo</name></param>
- </command>
- <command name="vkGetBufferOpaqueCaptureAddressKHR" alias="vkGetBufferOpaqueCaptureAddress"/>
- <command>
- <proto><type>VkDeviceAddress</type> <name>vkGetBufferDeviceAddress</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkBufferDeviceAddressInfo</type>* <name>pInfo</name></param>
- </command>
- <command name="vkGetBufferDeviceAddressKHR" alias="vkGetBufferDeviceAddress"/>
- <command name="vkGetBufferDeviceAddressEXT" alias="vkGetBufferDeviceAddress"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateHeadlessSurfaceEXT</name></proto>
- <param><type>VkInstance</type> <name>instance</name></param>
- <param>const <type>VkHeadlessSurfaceCreateInfoEXT</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pCombinationCount</name></param>
- <param optional="true" len="pCombinationCount"><type>VkFramebufferMixedSamplesCombinationNV</type>* <name>pCombinations</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkInitializePerformanceApiINTEL</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkInitializePerformanceApiInfoINTEL</type>* <name>pInitializeInfo</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkUninitializePerformanceApiINTEL</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- </command>
- <command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary" successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkCmdSetPerformanceMarkerINTEL</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkPerformanceMarkerInfoINTEL</type>* <name>pMarkerInfo</name></param>
- </command>
- <command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary" successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkCmdSetPerformanceStreamMarkerINTEL</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkPerformanceStreamMarkerInfoINTEL</type>* <name>pMarkerInfo</name></param>
- </command>
- <command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary" successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkCmdSetPerformanceOverrideINTEL</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkPerformanceOverrideInfoINTEL</type>* <name>pOverrideInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkAcquirePerformanceConfigurationINTEL</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkPerformanceConfigurationAcquireInfoINTEL</type>* <name>pAcquireInfo</name></param>
- <param><type>VkPerformanceConfigurationINTEL</type>* <name>pConfiguration</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkReleasePerformanceConfigurationINTEL</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkPerformanceConfigurationINTEL</type> <name>configuration</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkQueueSetPerformanceConfigurationINTEL</name></proto>
- <param><type>VkQueue</type> <name>queue</name></param>
- <param><type>VkPerformanceConfigurationINTEL</type> <name>configuration</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetPerformanceParameterINTEL</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkPerformanceParameterTypeINTEL</type> <name>parameter</name></param>
- <param><type>VkPerformanceValueINTEL</type>* <name>pValue</name></param>
- </command>
- <command>
- <proto><type>uint64_t</type> <name>vkGetDeviceMemoryOpaqueCaptureAddress</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkDeviceMemoryOpaqueCaptureAddressInfo</type>* <name>pInfo</name></param>
- </command>
- <command name="vkGetDeviceMemoryOpaqueCaptureAddressKHR" alias="vkGetDeviceMemoryOpaqueCaptureAddress"/>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetPipelineExecutablePropertiesKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkPipelineInfoKHR</type>* <name>pPipelineInfo</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pExecutableCount</name></param>
- <param optional="true" len="pExecutableCount"><type>VkPipelineExecutablePropertiesKHR</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">
- <proto><type>VkResult</type> <name>vkGetPipelineExecutableStatisticsKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkPipelineExecutableInfoKHR</type>* <name>pExecutableInfo</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pStatisticCount</name></param>
- <param optional="true" len="pStatisticCount"><type>VkPipelineExecutableStatisticKHR</type>* <name>pStatistics</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkGetPipelineExecutableInternalRepresentationsKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkPipelineExecutableInfoKHR</type>* <name>pExecutableInfo</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pInternalRepresentationCount</name></param>
- <param optional="true" len="pInternalRepresentationCount"><type>VkPipelineExecutableInternalRepresentationKHR</type>* <name>pInternalRepresentations</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetLineStippleEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>lineStippleFactor</name></param>
- <param><type>uint16_t</type> <name>lineStipplePattern</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceToolProperties</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pToolCount</name></param>
- <param optional="true" len="pToolCount"><type>VkPhysicalDeviceToolProperties</type>* <name>pToolProperties</name></param>
- </command>
- <command name="vkGetPhysicalDeviceToolPropertiesEXT" alias="vkGetPhysicalDeviceToolProperties"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR">
- <proto><type>VkResult</type> <name>vkCreateAccelerationStructureKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkAccelerationStructureCreateInfoKHR</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkAccelerationStructureKHR</type>* <name>pAccelerationStructure</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBuildAccelerationStructuresKHR</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>infoCount</name></param>
- <param len="infoCount">const <type>VkAccelerationStructureBuildGeometryInfoKHR</type>* <name>pInfos</name></param>
- <param len="infoCount">const <type>VkAccelerationStructureBuildRangeInfoKHR</type>* const* <name>ppBuildRangeInfos</name></param>
- </command>
- <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBuildAccelerationStructuresIndirectKHR</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>infoCount</name></param>
- <param len="infoCount">const <type>VkAccelerationStructureBuildGeometryInfoKHR</type>* <name>pInfos</name></param>
- <param len="infoCount">const <type>VkDeviceAddress</type>* <name>pIndirectDeviceAddresses</name></param>
- <param len="infoCount">const <type>uint32_t</type>* <name>pIndirectStrides</name></param>
- <param len="infoCount">const <type>uint32_t</type>* const* <name>ppMaxPrimitiveCounts</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_OPERATION_DEFERRED_KHR,VK_OPERATION_NOT_DEFERRED_KHR" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkBuildAccelerationStructuresKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true"><type>VkDeferredOperationKHR</type> <name>deferredOperation</name></param>
- <param><type>uint32_t</type> <name>infoCount</name></param>
- <param len="infoCount">const <type>VkAccelerationStructureBuildGeometryInfoKHR</type>* <name>pInfos</name></param>
- <param len="infoCount">const <type>VkAccelerationStructureBuildRangeInfoKHR</type>* const* <name>ppBuildRangeInfos</name></param>
- </command>
- <command>
- <proto><type>VkDeviceAddress</type> <name>vkGetAccelerationStructureDeviceAddressKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkAccelerationStructureDeviceAddressInfoKHR</type>* <name>pInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkCreateDeferredOperationKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkDeferredOperationKHR</type>* <name>pDeferredOperation</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyDeferredOperationKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkDeferredOperationKHR</type> <name>operation</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command>
- <proto><type>uint32_t</type> <name>vkGetDeferredOperationMaxConcurrencyKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkDeferredOperationKHR</type> <name>operation</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_NOT_READY">
- <proto><type>VkResult</type> <name>vkGetDeferredOperationResultKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkDeferredOperationKHR</type> <name>operation</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_THREAD_DONE_KHR,VK_THREAD_IDLE_KHR" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkDeferredOperationJoinKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkDeferredOperationKHR</type> <name>operation</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetCullMode</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param optional="true"><type>VkCullModeFlags</type> <name>cullMode</name></param>
- </command>
- <command name="vkCmdSetCullModeEXT" alias="vkCmdSetCullMode"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetFrontFace</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkFrontFace</type> <name>frontFace</name></param>
- </command>
- <command name="vkCmdSetFrontFaceEXT" alias="vkCmdSetFrontFace"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetPrimitiveTopology</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkPrimitiveTopology</type> <name>primitiveTopology</name></param>
- </command>
- <command name="vkCmdSetPrimitiveTopologyEXT" alias="vkCmdSetPrimitiveTopology"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetViewportWithCount</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>viewportCount</name></param>
- <param len="viewportCount">const <type>VkViewport</type>* <name>pViewports</name></param>
- </command>
- <command name="vkCmdSetViewportWithCountEXT" alias="vkCmdSetViewportWithCount"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetScissorWithCount</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>scissorCount</name></param>
- <param len="scissorCount">const <type>VkRect2D</type>* <name>pScissors</name></param>
- </command>
- <command name="vkCmdSetScissorWithCountEXT" alias="vkCmdSetScissorWithCount"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBindVertexBuffers2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>firstBinding</name></param>
- <param><type>uint32_t</type> <name>bindingCount</name></param>
- <param len="bindingCount" optional="false,true">const <type>VkBuffer</type>* <name>pBuffers</name></param>
- <param len="bindingCount">const <type>VkDeviceSize</type>* <name>pOffsets</name></param>
- <param optional="true" len="bindingCount">const <type>VkDeviceSize</type>* <name>pSizes</name></param>
- <param optional="true" len="bindingCount">const <type>VkDeviceSize</type>* <name>pStrides</name></param>
- </command>
- <command name="vkCmdBindVertexBuffers2EXT" alias="vkCmdBindVertexBuffers2"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetDepthTestEnable</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBool32</type> <name>depthTestEnable</name></param>
- </command>
- <command name="vkCmdSetDepthTestEnableEXT" alias="vkCmdSetDepthTestEnable"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetDepthWriteEnable</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBool32</type> <name>depthWriteEnable</name></param>
- </command>
- <command name="vkCmdSetDepthWriteEnableEXT" alias="vkCmdSetDepthWriteEnable"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetDepthCompareOp</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkCompareOp</type> <name>depthCompareOp</name></param>
- </command>
- <command name="vkCmdSetDepthCompareOpEXT" alias="vkCmdSetDepthCompareOp"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetDepthBoundsTestEnable</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBool32</type> <name>depthBoundsTestEnable</name></param>
- </command>
- <command name="vkCmdSetDepthBoundsTestEnableEXT" alias="vkCmdSetDepthBoundsTestEnable"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetStencilTestEnable</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBool32</type> <name>stencilTestEnable</name></param>
- </command>
- <command name="vkCmdSetStencilTestEnableEXT" alias="vkCmdSetStencilTestEnable"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetStencilOp</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkStencilFaceFlags</type> <name>faceMask</name></param>
- <param><type>VkStencilOp</type> <name>failOp</name></param>
- <param><type>VkStencilOp</type> <name>passOp</name></param>
- <param><type>VkStencilOp</type> <name>depthFailOp</name></param>
- <param><type>VkCompareOp</type> <name>compareOp</name></param>
- </command>
- <command name="vkCmdSetStencilOpEXT" alias="vkCmdSetStencilOp"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetPatchControlPointsEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>patchControlPoints</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetRasterizerDiscardEnable</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBool32</type> <name>rasterizerDiscardEnable</name></param>
- </command>
- <command name="vkCmdSetRasterizerDiscardEnableEXT" alias="vkCmdSetRasterizerDiscardEnable"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetDepthBiasEnable</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBool32</type> <name>depthBiasEnable</name></param>
- </command>
- <command name="vkCmdSetDepthBiasEnableEXT" alias="vkCmdSetDepthBiasEnable"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetLogicOpEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkLogicOp</type> <name>logicOp</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetPrimitiveRestartEnable</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkBool32</type> <name>primitiveRestartEnable</name></param>
- </command>
- <command name="vkCmdSetPrimitiveRestartEnableEXT" alias="vkCmdSetPrimitiveRestartEnable"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkCreatePrivateDataSlot</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkPrivateDataSlotCreateInfo</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkPrivateDataSlot</type>* <name>pPrivateDataSlot</name></param>
- </command>
- <command name="vkCreatePrivateDataSlotEXT" alias="vkCreatePrivateDataSlot"/>
- <command>
- <proto><type>void</type> <name>vkDestroyPrivateDataSlot</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param optional="true" externsync="true"><type>VkPrivateDataSlot</type> <name>privateDataSlot</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command name="vkDestroyPrivateDataSlotEXT" alias="vkDestroyPrivateDataSlot"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkSetPrivateData</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkObjectType</type> <name>objectType</name></param>
- <param objecttype="objectType"><type>uint64_t</type> <name>objectHandle</name></param>
- <param><type>VkPrivateDataSlot</type> <name>privateDataSlot</name></param>
- <param><type>uint64_t</type> <name>data</name></param>
- </command>
- <command name="vkSetPrivateDataEXT" alias="vkSetPrivateData"/>
- <command>
- <proto><type>void</type> <name>vkGetPrivateData</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkObjectType</type> <name>objectType</name></param>
- <param objecttype="objectType"><type>uint64_t</type> <name>objectHandle</name></param>
- <param><type>VkPrivateDataSlot</type> <name>privateDataSlot</name></param>
- <param><type>uint64_t</type>* <name>pData</name></param>
- </command>
- <command name="vkGetPrivateDataEXT" alias="vkGetPrivateData"/>
- <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdCopyBuffer2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkCopyBufferInfo2</type>* <name>pCopyBufferInfo</name></param>
- </command>
- <command name="vkCmdCopyBuffer2KHR" alias="vkCmdCopyBuffer2"/>
- <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdCopyImage2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkCopyImageInfo2</type>* <name>pCopyImageInfo</name></param>
- </command>
- <command name="vkCmdCopyImage2KHR" alias="vkCmdCopyImage2"/>
- <command queues="graphics" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBlitImage2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkBlitImageInfo2</type>* <name>pBlitImageInfo</name></param>
- </command>
- <command name="vkCmdBlitImage2KHR" alias="vkCmdBlitImage2"/>
- <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdCopyBufferToImage2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkCopyBufferToImageInfo2</type>* <name>pCopyBufferToImageInfo</name></param>
- </command>
- <command name="vkCmdCopyBufferToImage2KHR" alias="vkCmdCopyBufferToImage2"/>
- <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdCopyImageToBuffer2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkCopyImageToBufferInfo2</type>* <name>pCopyImageToBufferInfo</name></param>
- </command>
- <command name="vkCmdCopyImageToBuffer2KHR" alias="vkCmdCopyImageToBuffer2"/>
- <command queues="graphics" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdResolveImage2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkResolveImageInfo2</type>* <name>pResolveImageInfo</name></param>
- </command>
- <command name="vkCmdResolveImage2KHR" alias="vkCmdResolveImage2"/>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetFragmentShadingRateKHR</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkExtent2D</type>* <name>pFragmentSize</name></param>
- <param>const <type>VkFragmentShadingRateCombinerOpKHR</type> <name>combinerOps</name>[2]</param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceFragmentShadingRatesKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pFragmentShadingRateCount</name></param>
- <param optional="true" len="pFragmentShadingRateCount"><type>VkPhysicalDeviceFragmentShadingRateKHR</type>* <name>pFragmentShadingRates</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetFragmentShadingRateEnumNV</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkFragmentShadingRateNV</type> <name>shadingRate</name></param>
- <param>const <type>VkFragmentShadingRateCombinerOpKHR</type> <name>combinerOps</name>[2]</param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetAccelerationStructureBuildSizesKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkAccelerationStructureBuildTypeKHR</type> <name>buildType</name></param>
- <param>const <type>VkAccelerationStructureBuildGeometryInfoKHR</type>* <name>pBuildInfo</name></param>
- <param optional="true" len="pBuildInfo-&gt;geometryCount">const <type>uint32_t</type>* <name>pMaxPrimitiveCounts</name></param>
- <param><type>VkAccelerationStructureBuildSizesInfoKHR</type>* <name>pSizeInfo</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetVertexInputEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param optional="true"><type>uint32_t</type> <name>vertexBindingDescriptionCount</name></param>
- <param len="vertexBindingDescriptionCount">const <type>VkVertexInputBindingDescription2EXT</type>* <name>pVertexBindingDescriptions</name></param>
- <param optional="true"><type>uint32_t</type> <name>vertexAttributeDescriptionCount</name></param>
- <param len="vertexAttributeDescriptionCount">const <type>VkVertexInputAttributeDescription2EXT</type>* <name>pVertexAttributeDescriptions</name></param>
- </command>
- <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetColorWriteEnableEXT</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>attachmentCount</name></param>
- <param len="attachmentCount">const <type>VkBool32</type>* <name>pColorWriteEnables</name></param>
- </command>
- <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdSetEvent2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkEvent</type> <name>event</name></param>
- <param>const <type>VkDependencyInfo</type>* <name>pDependencyInfo</name></param>
- </command>
- <command name="vkCmdSetEvent2KHR" alias="vkCmdSetEvent2"/>
- <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdResetEvent2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>VkEvent</type> <name>event</name></param>
- <param optional="true"><type>VkPipelineStageFlags2</type> <name>stageMask</name></param>
- </command>
- <command name="vkCmdResetEvent2KHR" alias="vkCmdResetEvent2"/>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdWaitEvents2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param><type>uint32_t</type> <name>eventCount</name></param>
- <param len="eventCount">const <type>VkEvent</type>* <name>pEvents</name></param>
- <param len="eventCount">const <type>VkDependencyInfo</type>* <name>pDependencyInfos</name></param>
- </command>
- <command name="vkCmdWaitEvents2KHR" alias="vkCmdWaitEvents2"/>
- <command queues="transfer,graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdPipelineBarrier2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkDependencyInfo</type>* <name>pDependencyInfo</name></param>
- </command>
- <command name="vkCmdPipelineBarrier2KHR" alias="vkCmdPipelineBarrier2"/>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST">
- <proto><type>VkResult</type> <name>vkQueueSubmit2</name></proto>
- <param externsync="true"><type>VkQueue</type> <name>queue</name></param>
- <param optional="true"><type>uint32_t</type> <name>submitCount</name></param>
- <param len="submitCount">const <type>VkSubmitInfo2</type>* <name>pSubmits</name></param>
- <param optional="true" externsync="true"><type>VkFence</type> <name>fence</name></param>
- </command>
- <command name="vkQueueSubmit2KHR" alias="vkQueueSubmit2"/>
- <command queues="transfer,graphics,compute,decode,encode" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdWriteTimestamp2</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param optional="true"><type>VkPipelineStageFlags2</type> <name>stage</name></param>
- <param><type>VkQueryPool</type> <name>queryPool</name></param>
- <param><type>uint32_t</type> <name>query</name></param>
- </command>
- <command name="vkCmdWriteTimestamp2KHR" alias="vkCmdWriteTimestamp2"/>
- <command queues="transfer,graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdWriteBufferMarker2AMD</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param optional="true"><type>VkPipelineStageFlags2</type> <name>stage</name></param>
- <param><type>VkBuffer</type> <name>dstBuffer</name></param>
- <param><type>VkDeviceSize</type> <name>dstOffset</name></param>
- <param><type>uint32_t</type> <name>marker</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkGetQueueCheckpointData2NV</name></proto>
- <param><type>VkQueue</type> <name>queue</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pCheckpointDataCount</name></param>
- <param optional="true" len="pCheckpointDataCount"><type>VkCheckpointData2NV</type>* <name>pCheckpointData</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_FEATURE_NOT_PRESENT,VK_ERROR_FORMAT_NOT_SUPPORTED">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceVideoCapabilitiesKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param>const <type>VkVideoProfileKHR</type>* <name>pVideoProfile</name></param>
- <param><type>VkVideoCapabilitiesKHR</type>* <name>pCapabilities</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_FORMAT_NOT_SUPPORTED">
- <proto><type>VkResult</type> <name>vkGetPhysicalDeviceVideoFormatPropertiesKHR</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param>const <type>VkPhysicalDeviceVideoFormatInfoKHR</type>* <name>pVideoFormatInfo</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pVideoFormatPropertyCount</name></param>
- <param optional="true" len="pVideoFormatPropertyCount"><type>VkVideoFormatPropertiesKHR</type>* <name>pVideoFormatProperties</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_INCOMPATIBLE_DRIVER,VK_ERROR_FEATURE_NOT_PRESENT">
- <proto><type>VkResult</type> <name>vkCreateVideoSessionKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkVideoSessionCreateInfoKHR</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkVideoSessionKHR</type>* <name>pVideoSession</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyVideoSessionKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkVideoSessionKHR</type> <name>videoSession</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_TOO_MANY_OBJECTS">
- <proto><type>VkResult</type> <name>vkCreateVideoSessionParametersKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkVideoSessionParametersCreateInfoKHR</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkVideoSessionParametersKHR</type>* <name>pVideoSessionParameters</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_TOO_MANY_OBJECTS">
- <proto><type>VkResult</type> <name>vkUpdateVideoSessionParametersKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkVideoSessionParametersKHR</type> <name>videoSessionParameters</name></param>
- <param>const <type>VkVideoSessionParametersUpdateInfoKHR</type>* <name>pUpdateInfo</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyVideoSessionParametersKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkVideoSessionParametersKHR</type> <name>videoSessionParameters</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkGetVideoSessionMemoryRequirementsKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkVideoSessionKHR</type> <name>videoSession</name></param>
- <param optional="false,true"><type>uint32_t</type>* <name>pVideoSessionMemoryRequirementsCount</name></param>
- <param optional="true" len="pVideoSessionMemoryRequirementsCount"><type>VkVideoGetMemoryPropertiesKHR</type>* <name>pVideoSessionMemoryRequirements</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkBindVideoSessionMemoryKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkVideoSessionKHR</type> <name>videoSession</name></param>
- <param><type>uint32_t</type> <name>videoSessionBindMemoryCount</name></param>
- <param len="videoSessionBindMemoryCount">const <type>VkVideoBindMemoryKHR</type>* <name>pVideoSessionBindMemories</name></param>
- </command>
- <command queues="decode" renderpass="outside" cmdbufferlevel="primary">
- <proto><type>void</type> <name>vkCmdDecodeVideoKHR</name></proto>
- <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkVideoDecodeInfoKHR</type>* <name>pFrameInfo</name></param>
- </command>
- <command queues="decode,encode" renderpass="outside" cmdbufferlevel="primary">
- <proto><type>void</type> <name>vkCmdBeginVideoCodingKHR</name></proto>
- <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkVideoBeginCodingInfoKHR</type>* <name>pBeginInfo</name></param>
- </command>
- <command queues="decode,encode" renderpass="outside" cmdbufferlevel="primary">
- <proto><type>void</type> <name>vkCmdControlVideoCodingKHR</name></proto>
- <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkVideoCodingControlInfoKHR</type>* <name>pCodingControlInfo</name></param>
- </command>
- <command queues="decode,encode" renderpass="outside" cmdbufferlevel="primary">
- <proto><type>void</type> <name>vkCmdEndVideoCodingKHR</name></proto>
- <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkVideoEndCodingInfoKHR</type>* <name>pEndCodingInfo</name></param>
- </command>
- <command queues="encode" renderpass="outside" cmdbufferlevel="primary">
- <proto><type>void</type> <name>vkCmdEncodeVideoKHR</name></proto>
- <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkVideoEncodeInfoKHR</type>* <name>pEncodeInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkCreateCuModuleNVX</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkCuModuleCreateInfoNVX</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkCuModuleNVX</type>* <name>pModule</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkCreateCuFunctionNVX</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkCuFunctionCreateInfoNVX</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkCuFunctionNVX</type>* <name>pFunction</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyCuModuleNVX</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkCuModuleNVX</type> <name>module</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyCuFunctionNVX</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkCuFunctionNVX</type> <name>function</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdCuLaunchKernelNVX</name></proto>
- <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkCuLaunchInfoNVX</type>* <name>pLaunchInfo</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkSetDeviceMemoryPriorityEXT</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkDeviceMemory</type> <name>memory</name></param>
- <param><type>float</type> <name>priority</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkAcquireDrmDisplayEXT</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>int32_t</type> <name>drmFd</name></param>
- <param><type>VkDisplayKHR</type> <name>display</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY">
- <proto><type>VkResult</type> <name>vkGetDrmDisplayEXT</name></proto>
- <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
- <param><type>int32_t</type> <name>drmFd</name></param>
- <param><type>uint32_t</type> <name>connectorId</name></param>
- <param><type>VkDisplayKHR</type>* <name>display</name></param>
- </command>
- <command successcodes="VK_SUCCESS,VK_TIMEOUT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_DEVICE_LOST">
- <proto><type>VkResult</type> <name>vkWaitForPresentKHR</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param externsync="true"><type>VkSwapchainKHR</type> <name>swapchain</name></param>
- <param><type>uint64_t</type> <name>presentId</name></param>
- <param><type>uint64_t</type> <name>timeout</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INVALID_EXTERNAL_HANDLE,VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkCreateBufferCollectionFUCHSIA</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param>const <type>VkBufferCollectionCreateInfoFUCHSIA</type>* <name>pCreateInfo</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- <param><type>VkBufferCollectionFUCHSIA</type>* <name>pCollection</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_FORMAT_NOT_SUPPORTED">
- <proto><type>VkResult</type> <name>vkSetBufferCollectionBufferConstraintsFUCHSIA</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkBufferCollectionFUCHSIA</type> <name>collection</name></param>
- <param>const <type>VkBufferConstraintsInfoFUCHSIA</type>* <name>pBufferConstraintsInfo</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_FORMAT_NOT_SUPPORTED">
- <proto><type>VkResult</type> <name>vkSetBufferCollectionImageConstraintsFUCHSIA</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkBufferCollectionFUCHSIA</type> <name>collection</name></param>
- <param>const <type>VkImageConstraintsInfoFUCHSIA</type>* <name>pImageConstraintsInfo</name></param>
- </command>
- <command>
- <proto><type>void</type> <name>vkDestroyBufferCollectionFUCHSIA</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkBufferCollectionFUCHSIA</type> <name>collection</name></param>
- <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INITIALIZATION_FAILED">
- <proto><type>VkResult</type> <name>vkGetBufferCollectionPropertiesFUCHSIA</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkBufferCollectionFUCHSIA</type> <name>collection</name></param>
- <param><type>VkBufferCollectionPropertiesFUCHSIA</type>* <name>pProperties</name></param>
- </command>
- <command queues="graphics" renderpass="outside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdBeginRendering</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- <param>const <type>VkRenderingInfo</type>* <name>pRenderingInfo</name></param>
- </command>
- <command name="vkCmdBeginRenderingKHR" alias="vkCmdBeginRendering"/>
- <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
- <proto><type>void</type> <name>vkCmdEndRendering</name></proto>
- <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
- </command>
- <command name="vkCmdEndRenderingKHR" alias="vkCmdEndRendering"/>
- </commands>
-
- <feature api="vulkan" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions">
- <require comment="Header boilerplate">
- <type name="vk_platform"/>
- <type name="VK_DEFINE_HANDLE"/>
- <type name="VK_USE_64_BIT_PTR_DEFINES"/>
- <type name="VK_DEFINE_NON_DISPATCHABLE_HANDLE"/>
- <type name="VK_NULL_HANDLE"/>
- </require>
- <require comment="Fundamental types used by many commands and structures">
- <type name="VkBool32"/>
- <type name="VkDeviceAddress"/>
- <type name="VkDeviceSize"/>
- <type name="VkExtent2D"/>
- <type name="VkExtent3D"/>
- <type name="VkFlags"/>
- <type name="VkOffset2D"/>
- <type name="VkOffset3D"/>
- <type name="VkRect2D"/>
- <type name="VkResult"/>
- <type name="VkStructureType"/>
- </require>
- <require comment="These types are part of the API, though not directly used in API commands or data structures">
- <type name="VkBaseInStructure"/>
- <type name="VkBaseOutStructure"/>
- <type name="VkBufferMemoryBarrier"/>
- <type name="VkDispatchIndirectCommand"/>
- <type name="VkDrawIndexedIndirectCommand"/>
- <type name="VkDrawIndirectCommand"/>
- <type name="VkImageMemoryBarrier"/>
- <type name="VkMemoryBarrier"/>
- <type name="VkObjectType"/>
- <type name="VkPipelineCacheHeaderVersionOne"/>
- <type name="VkVendorId"/>
- </require>
- <require comment="API version macros">
- <type name="VK_API_VERSION"/>
- <type name="VK_API_VERSION_1_0"/>
- <type name="VK_HEADER_VERSION"/>
- <type name="VK_HEADER_VERSION_COMPLETE"/>
- <type name="VK_MAKE_VERSION"/>
- <type name="VK_VERSION_MAJOR"/>
- <type name="VK_VERSION_MINOR"/>
- <type name="VK_VERSION_PATCH"/>
- <type name="VK_MAKE_API_VERSION"/>
- <type name="VK_API_VERSION_VARIANT"/>
- <type name="VK_API_VERSION_MAJOR"/>
- <type name="VK_API_VERSION_MINOR"/>
- <type name="VK_API_VERSION_PATCH"/>
- </require>
- <require comment="API constants">
- <enum name="VK_ATTACHMENT_UNUSED"/>
- <enum name="VK_FALSE"/>
- <enum name="VK_LOD_CLAMP_NONE"/>
- <enum name="VK_QUEUE_FAMILY_IGNORED"/>
- <enum name="VK_REMAINING_ARRAY_LAYERS"/>
- <enum name="VK_REMAINING_MIP_LEVELS"/>
- <enum name="VK_SUBPASS_EXTERNAL"/>
- <enum name="VK_TRUE"/>
- <enum name="VK_WHOLE_SIZE"/>
- <type name="VkPipelineCacheHeaderVersion"/>
- </require>
- <require comment="Device initialization">
- <type name="PFN_vkAllocationFunction"/>
- <type name="PFN_vkFreeFunction"/>
- <type name="PFN_vkInternalAllocationNotification"/>
- <type name="PFN_vkInternalFreeNotification"/>
- <type name="PFN_vkReallocationFunction"/>
- <type name="PFN_vkVoidFunction"/>
- <type name="VkAllocationCallbacks"/>
- <type name="VkApplicationInfo"/>
- <type name="VkFormat"/>
- <type name="VkFormatFeatureFlagBits"/>
- <type name="VkFormatFeatureFlags"/>
- <type name="VkFormatProperties"/>
- <type name="VkImageCreateFlagBits"/>
- <type name="VkImageCreateFlags"/>
- <type name="VkImageFormatProperties"/>
- <type name="VkImageTiling"/>
- <type name="VkImageType"/>
- <type name="VkImageUsageFlagBits"/>
- <type name="VkImageUsageFlags"/>
- <type name="VkInstance"/>
- <type name="VkInstanceCreateFlags" comment="Will add VkInstanceCreateFlagBits when bits are defined in the future"/>
- <type name="VkInstanceCreateInfo"/>
- <type name="VkInternalAllocationType"/>
- <type name="VkMemoryHeap"/>
- <type name="VkMemoryHeapFlagBits"/>
- <type name="VkMemoryHeapFlags"/>
- <type name="VkMemoryPropertyFlagBits"/>
- <type name="VkMemoryPropertyFlags"/>
- <type name="VkMemoryType"/>
- <type name="VkPhysicalDevice"/>
- <type name="VkPhysicalDeviceFeatures"/>
- <type name="VkPhysicalDeviceLimits"/>
- <type name="VkPhysicalDeviceMemoryProperties"/>
- <type name="VkPhysicalDeviceProperties"/>
- <type name="VkPhysicalDeviceSparseProperties"/>
- <type name="VkPhysicalDeviceType"/>
- <type name="VkQueueFamilyProperties"/>
- <type name="VkQueueFlagBits"/>
- <type name="VkQueueFlags"/>
- <type name="VkSampleCountFlagBits"/>
- <type name="VkSampleCountFlags"/>
- <type name="VkSystemAllocationScope"/>
- <command name="vkCreateInstance"/>
- <command name="vkDestroyInstance"/>
- <command name="vkEnumeratePhysicalDevices"/>
- <command name="vkGetPhysicalDeviceFeatures"/>
- <command name="vkGetPhysicalDeviceFormatProperties"/>
- <command name="vkGetPhysicalDeviceImageFormatProperties"/>
- <command name="vkGetPhysicalDeviceProperties"/>
- <command name="vkGetPhysicalDeviceQueueFamilyProperties"/>
- <command name="vkGetPhysicalDeviceMemoryProperties"/>
- <command name="vkGetInstanceProcAddr"/>
- <command name="vkGetDeviceProcAddr"/>
- </require>
- <require comment="Device commands">
- <type name="VkDevice"/>
- <type name="VkDeviceCreateFlags" comment="Will add VkDeviceCreateFlagBits when bits are defined in the future"/>
- <type name="VkDeviceCreateInfo"/>
- <type name="VkDeviceQueueCreateFlags" comment="VkDeviceQueueCreateFlagBits was added later"/>
- <type name="VkDeviceQueueCreateInfo"/>
- <command name="vkCreateDevice"/>
- <command name="vkDestroyDevice"/>
- </require>
- <require comment="Extension discovery commands">
- <type name="VkExtensionProperties"/>
- <command name="vkEnumerateInstanceExtensionProperties"/>
- <command name="vkEnumerateDeviceExtensionProperties"/>
- </require>
- <require comment="Layer discovery commands">
- <type name="VkLayerProperties"/>
- <command name="vkEnumerateInstanceLayerProperties"/>
- <command name="vkEnumerateDeviceLayerProperties"/>
- </require>
- <require comment="Queue commands">
- <type name="VkPipelineStageFlagBits"/>
- <type name="VkPipelineStageFlags"/>
- <type name="VkQueue"/>
- <type name="VkSubmitInfo"/>
- <command name="vkGetDeviceQueue"/>
- <command name="vkQueueSubmit"/>
- <command name="vkQueueWaitIdle"/>
- <command name="vkDeviceWaitIdle"/>
- </require>
- <require comment="Memory commands">
- <type name="VkMappedMemoryRange"/>
- <type name="VkMemoryAllocateInfo"/>
- <type name="VkMemoryMapFlags"/>
- <command name="vkAllocateMemory"/>
- <command name="vkFreeMemory"/>
- <command name="vkMapMemory"/>
- <command name="vkUnmapMemory"/>
- <command name="vkFlushMappedMemoryRanges"/>
- <command name="vkInvalidateMappedMemoryRanges"/>
- <command name="vkGetDeviceMemoryCommitment"/>
- </require>
- <require comment="Memory management API commands">
- <type name="VkDeviceMemory"/>
- <type name="VkMemoryRequirements"/>
- <command name="vkBindBufferMemory"/>
- <command name="vkBindImageMemory"/>
- <command name="vkGetBufferMemoryRequirements"/>
- <command name="vkGetImageMemoryRequirements"/>
- </require>
- <require comment="Sparse resource memory management API commands">
- <type name="VkBindSparseInfo"/>
- <type name="VkImageAspectFlagBits"/>
- <type name="VkImageAspectFlags"/>
- <type name="VkImageSubresource"/>
- <type name="VkSparseBufferMemoryBindInfo"/>
- <type name="VkSparseImageFormatFlagBits"/>
- <type name="VkSparseImageFormatFlags"/>
- <type name="VkSparseImageFormatProperties"/>
- <type name="VkSparseImageMemoryBind"/>
- <type name="VkSparseImageMemoryBindInfo"/>
- <type name="VkSparseImageMemoryRequirements"/>
- <type name="VkSparseImageOpaqueMemoryBindInfo"/>
- <type name="VkSparseMemoryBind"/>
- <type name="VkSparseMemoryBindFlagBits"/>
- <type name="VkSparseMemoryBindFlags"/>
- <command name="vkGetImageSparseMemoryRequirements"/>
- <command name="vkGetPhysicalDeviceSparseImageFormatProperties"/>
- <command name="vkQueueBindSparse"/>
- </require>
- <require comment="Fence commands">
- <type name="VkFence"/>
- <type name="VkFenceCreateFlagBits"/>
- <type name="VkFenceCreateFlags"/>
- <type name="VkFenceCreateInfo"/>
- <command name="vkCreateFence"/>
- <command name="vkDestroyFence"/>
- <command name="vkResetFences"/>
- <command name="vkGetFenceStatus"/>
- <command name="vkWaitForFences"/>
- </require>
- <require comment="Queue semaphore commands">
- <type name="VkSemaphore"/>
- <type name="VkSemaphoreCreateFlags" comment="Will add VkSemaphoreCreateFlagBits when bits are defined in the future"/>
- <type name="VkSemaphoreCreateInfo"/>
- <command name="vkCreateSemaphore"/>
- <command name="vkDestroySemaphore"/>
- </require>
- <require comment="Event commands">
- <type name="VkEvent"/>
- <type name="VkEventCreateFlags"/>
- <type name="VkEventCreateFlagBits"/>
- <type name="VkEventCreateInfo"/>
- <command name="vkCreateEvent"/>
- <command name="vkDestroyEvent"/>
- <command name="vkGetEventStatus"/>
- <command name="vkSetEvent"/>
- <command name="vkResetEvent"/>
- </require>
- <require comment="Query commands">
- <type name="VkQueryPipelineStatisticFlagBits"/>
- <type name="VkQueryPipelineStatisticFlags"/>
- <type name="VkQueryPool"/>
- <type name="VkQueryPoolCreateFlags" comment="Will add VkQueryPoolCreateFlagBits when bits are defined in the future"/>
- <type name="VkQueryPoolCreateInfo"/>
- <type name="VkQueryResultFlagBits"/>
- <type name="VkQueryResultFlags"/>
- <type name="VkQueryType"/>
- <command name="vkCreateQueryPool"/>
- <command name="vkDestroyQueryPool"/>
- <command name="vkGetQueryPoolResults"/>
- </require>
- <require comment="Buffer commands">
- <type name="VkBuffer"/>
- <type name="VkBufferCreateFlagBits"/>
- <type name="VkBufferCreateFlags"/>
- <type name="VkBufferCreateInfo"/>
- <type name="VkBufferUsageFlagBits"/>
- <type name="VkBufferUsageFlags"/>
- <type name="VkSharingMode"/>
- <command name="vkCreateBuffer"/>
- <command name="vkDestroyBuffer"/>
- </require>
- <require comment="Buffer view commands">
- <type name="VkBufferView"/>
- <type name="VkBufferViewCreateFlags" comment="Will add VkBufferViewFlagBits when bits are defined in the future"/>
- <type name="VkBufferViewCreateInfo"/>
- <command name="vkCreateBufferView"/>
- <command name="vkDestroyBufferView"/>
- </require>
- <require comment="Image commands">
- <type name="VkImage"/>
- <type name="VkImageCreateInfo"/>
- <type name="VkImageLayout"/>
- <type name="VkSubresourceLayout"/>
- <command name="vkCreateImage"/>
- <command name="vkDestroyImage"/>
- <command name="vkGetImageSubresourceLayout"/>
- </require>
- <require comment="Image view commands">
- <type name="VkComponentMapping"/>
- <type name="VkComponentSwizzle"/>
- <type name="VkImageSubresourceRange"/>
- <type name="VkImageView"/>
- <type name="VkImageViewCreateFlagBits"/>
- <type name="VkImageViewCreateFlags"/>
- <type name="VkImageViewCreateInfo"/>
- <type name="VkImageViewType"/>
- <command name="vkCreateImageView"/>
- <command name="vkDestroyImageView"/>
- </require>
- <require comment="Shader commands">
- <type name="VkShaderModule"/>
- <type name="VkShaderModuleCreateFlags"/>
- <type name="VkShaderModuleCreateInfo"/>
- <command name="vkCreateShaderModule"/>
- <command name="vkDestroyShaderModule"/>
- </require>
- <require comment="Pipeline Cache commands">
- <type name="VkPipelineCache"/>
- <type name="VkPipelineCacheCreateFlags" comment="VkPipelineCacheCreateFlagBits was added later"/>
- <type name="VkPipelineCacheCreateInfo"/>
- <command name="vkCreatePipelineCache"/>
- <command name="vkDestroyPipelineCache"/>
- <command name="vkGetPipelineCacheData"/>
- <command name="vkMergePipelineCaches"/>
- </require>
- <require comment="Pipeline commands">
- <type name="VkBlendFactor"/>
- <type name="VkBlendOp"/>
- <type name="VkColorComponentFlagBits"/>
- <type name="VkColorComponentFlags"/>
- <type name="VkCompareOp"/>
- <type name="VkComputePipelineCreateInfo"/>
- <type name="VkCullModeFlagBits"/>
- <type name="VkCullModeFlags"/>
- <type name="VkDynamicState"/>
- <type name="VkFrontFace"/>
- <type name="VkGraphicsPipelineCreateInfo"/>
- <type name="VkLogicOp"/>
- <type name="VkPipeline"/>
- <type name="VkPipelineColorBlendAttachmentState"/>
- <type name="VkPipelineColorBlendStateCreateFlags" comment="Will add VkPipeline*StateFlagBits when bits are defined in the future"/>
- <type name="VkPipelineColorBlendStateCreateInfo"/>
- <type name="VkPipelineCreateFlagBits"/>
- <type name="VkPipelineCreateFlags"/>
- <type name="VkPipelineDepthStencilStateCreateFlags" comment="Will add VkPipeline*StateFlagBits when bits are defined in the future"/>
- <type name="VkPipelineDepthStencilStateCreateInfo"/>
- <type name="VkPipelineDynamicStateCreateFlags" comment="Will add VkPipeline*StateFlagBits when bits are defined in the future"/>
- <type name="VkPipelineDynamicStateCreateInfo"/>
- <type name="VkPipelineInputAssemblyStateCreateFlags" comment="Will add VkPipeline*StateFlagBits when bits are defined in the future"/>
- <type name="VkPipelineInputAssemblyStateCreateInfo"/>
- <type name="VkPipelineLayoutCreateFlags" comment="Will add VkPipelineLayoutCreateFlagBits when bits are defined in the future"/>
- <type name="VkPipelineMultisampleStateCreateFlags" comment="Will add VkPipelineMultisampleStateCreateFlagBits when bits are defined in the future"/>
- <type name="VkPipelineMultisampleStateCreateInfo"/>
- <type name="VkPipelineRasterizationStateCreateFlags" comment="Will add VkPipelineRasterizationStateCreateFlagBits when bits are defined in the future"/>
- <type name="VkPipelineRasterizationStateCreateInfo"/>
- <type name="VkPipelineShaderStageCreateFlagBits"/>
- <type name="VkPipelineShaderStageCreateFlags"/>
- <type name="VkPipelineShaderStageCreateInfo"/>
- <type name="VkPipelineTessellationStateCreateFlags" comment="Will add VkPipelineTessellationStateCreateFlagBits when bits are defined in the future"/>
- <type name="VkPipelineTessellationStateCreateInfo"/>
- <type name="VkPipelineVertexInputStateCreateFlags" comment="Will add VkPipelineVertexInputStateCreateFlagBits when bits are defined in the future"/>
- <type name="VkPipelineVertexInputStateCreateInfo"/>
- <type name="VkPipelineViewportStateCreateFlags" comment="Will add VkPipelineViewportStateCreateFlagBits when bits are defined in the future"/>
- <type name="VkPipelineViewportStateCreateInfo"/>
- <type name="VkPolygonMode"/>
- <type name="VkPrimitiveTopology"/>
- <type name="VkSampleMask"/>
- <type name="VkShaderStageFlagBits"/>
- <type name="VkShaderStageFlags"/>
- <type name="VkSpecializationInfo"/>
- <type name="VkSpecializationMapEntry"/>
- <type name="VkStencilOp"/>
- <type name="VkStencilOpState"/>
- <type name="VkVertexInputAttributeDescription"/>
- <type name="VkVertexInputBindingDescription"/>
- <type name="VkVertexInputRate"/>
- <type name="VkViewport"/>
- <command name="vkCreateGraphicsPipelines"/>
- <command name="vkCreateComputePipelines"/>
- <command name="vkDestroyPipeline"/>
- </require>
- <require comment="Pipeline layout commands">
- <type name="VkPipelineLayout"/>
- <type name="VkPipelineLayoutCreateInfo"/>
- <type name="VkPushConstantRange"/>
- <command name="vkCreatePipelineLayout"/>
- <command name="vkDestroyPipelineLayout"/>
- </require>
- <require comment="Sampler commands">
- <type name="VkBorderColor"/>
- <type name="VkFilter"/>
- <type name="VkSampler"/>
- <type name="VkSamplerAddressMode"/>
- <type name="VkSamplerCreateFlagBits"/>
- <type name="VkSamplerCreateFlags"/>
- <type name="VkSamplerCreateInfo"/>
- <type name="VkSamplerMipmapMode"/>
- <command name="vkCreateSampler"/>
- <command name="vkDestroySampler"/>
- </require>
- <require comment="Descriptor set commands">
- <type name="VkCopyDescriptorSet"/>
- <type name="VkDescriptorBufferInfo"/>
- <type name="VkDescriptorImageInfo"/>
- <type name="VkDescriptorPool"/>
- <type name="VkDescriptorPoolCreateFlagBits"/>
- <type name="VkDescriptorPoolCreateFlags"/>
- <type name="VkDescriptorPoolCreateInfo"/>
- <type name="VkDescriptorPoolResetFlags"/>
- <type name="VkDescriptorPoolSize"/>
- <type name="VkDescriptorSet"/>
- <type name="VkDescriptorSetAllocateInfo"/>
- <type name="VkDescriptorSetLayout"/>
- <type name="VkDescriptorSetLayoutBinding"/>
- <type name="VkDescriptorSetLayoutCreateFlagBits"/>
- <type name="VkDescriptorSetLayoutCreateFlags"/>
- <type name="VkDescriptorSetLayoutCreateInfo"/>
- <type name="VkDescriptorType"/>
- <type name="VkWriteDescriptorSet"/>
- <command name="vkCreateDescriptorSetLayout"/>
- <command name="vkDestroyDescriptorSetLayout"/>
- <command name="vkCreateDescriptorPool"/>
- <command name="vkDestroyDescriptorPool"/>
- <command name="vkResetDescriptorPool"/>
- <command name="vkAllocateDescriptorSets"/>
- <command name="vkFreeDescriptorSets"/>
- <command name="vkUpdateDescriptorSets"/>
- </require>
- <require comment="Pass commands">
- <type name="VkAccessFlagBits"/>
- <type name="VkAccessFlags"/>
- <type name="VkAttachmentDescription"/>
- <type name="VkAttachmentDescriptionFlagBits"/>
- <type name="VkAttachmentDescriptionFlags"/>
- <type name="VkAttachmentLoadOp"/>
- <type name="VkAttachmentReference"/>
- <type name="VkAttachmentStoreOp"/>
- <type name="VkDependencyFlagBits"/>
- <type name="VkDependencyFlags"/>
- <type name="VkFramebuffer"/>
- <type name="VkFramebufferCreateFlagBits"/>
- <type name="VkFramebufferCreateFlags"/>
- <type name="VkFramebufferCreateInfo"/>
- <type name="VkPipelineBindPoint"/>
- <type name="VkRenderPass"/>
- <type name="VkRenderPassCreateFlagBits"/>
- <type name="VkRenderPassCreateFlags"/>
- <type name="VkRenderPassCreateInfo"/>
- <type name="VkSubpassDependency"/>
- <type name="VkSubpassDescription"/>
- <type name="VkSubpassDescriptionFlagBits"/>
- <type name="VkSubpassDescriptionFlags"/>
- <command name="vkCreateFramebuffer"/>
- <command name="vkDestroyFramebuffer"/>
- <command name="vkCreateRenderPass"/>
- <command name="vkDestroyRenderPass"/>
- <command name="vkGetRenderAreaGranularity"/>
- </require>
- <require comment="Command pool commands">
- <type name="VkCommandPool"/>
- <type name="VkCommandPoolCreateFlagBits"/>
- <type name="VkCommandPoolCreateFlags"/>
- <type name="VkCommandPoolCreateInfo"/>
- <type name="VkCommandPoolResetFlagBits"/>
- <type name="VkCommandPoolResetFlags"/>
- <command name="vkCreateCommandPool"/>
- <command name="vkDestroyCommandPool"/>
- <command name="vkResetCommandPool"/>
- </require>
- <require comment="Command buffer commands">
- <type name="VkCommandBuffer"/>
- <type name="VkCommandBufferAllocateInfo"/>
- <type name="VkCommandBufferBeginInfo"/>
- <type name="VkCommandBufferInheritanceInfo"/>
- <type name="VkCommandBufferLevel"/>
- <type name="VkCommandBufferResetFlagBits"/>
- <type name="VkCommandBufferResetFlags"/>
- <type name="VkCommandBufferUsageFlagBits"/>
- <type name="VkCommandBufferUsageFlags"/>
- <type name="VkQueryControlFlagBits"/>
- <type name="VkQueryControlFlags"/>
- <command name="vkAllocateCommandBuffers"/>
- <command name="vkFreeCommandBuffers"/>
- <command name="vkBeginCommandBuffer"/>
- <command name="vkEndCommandBuffer"/>
- <command name="vkResetCommandBuffer"/>
- </require>
- <require comment="Command buffer building commands">
- <type name="VkBufferCopy"/>
- <type name="VkBufferImageCopy"/>
- <type name="VkClearAttachment"/>
- <type name="VkClearColorValue"/>
- <type name="VkClearDepthStencilValue"/>
- <type name="VkClearRect"/>
- <type name="VkClearValue"/>
- <type name="VkImageBlit"/>
- <type name="VkImageCopy"/>
- <type name="VkImageResolve"/>
- <type name="VkImageSubresourceLayers"/>
- <type name="VkIndexType"/>
- <type name="VkRenderPassBeginInfo"/>
- <type name="VkStencilFaceFlagBits"/>
- <type name="VkStencilFaceFlags"/>
- <type name="VkSubpassContents"/>
- <command name="vkCmdBindPipeline"/>
- <command name="vkCmdSetViewport"/>
- <command name="vkCmdSetScissor"/>
- <command name="vkCmdSetLineWidth"/>
- <command name="vkCmdSetDepthBias"/>
- <command name="vkCmdSetBlendConstants"/>
- <command name="vkCmdSetDepthBounds"/>
- <command name="vkCmdSetStencilCompareMask"/>
- <command name="vkCmdSetStencilWriteMask"/>
- <command name="vkCmdSetStencilReference"/>
- <command name="vkCmdBindDescriptorSets"/>
- <command name="vkCmdBindIndexBuffer"/>
- <command name="vkCmdBindVertexBuffers"/>
- <command name="vkCmdDraw"/>
- <command name="vkCmdDrawIndexed"/>
- <command name="vkCmdDrawIndirect"/>
- <command name="vkCmdDrawIndexedIndirect"/>
- <command name="vkCmdDispatch"/>
- <command name="vkCmdDispatchIndirect"/>
- <command name="vkCmdCopyBuffer"/>
- <command name="vkCmdCopyImage"/>
- <command name="vkCmdBlitImage"/>
- <command name="vkCmdCopyBufferToImage"/>
- <command name="vkCmdCopyImageToBuffer"/>
- <command name="vkCmdUpdateBuffer"/>
- <command name="vkCmdFillBuffer"/>
- <command name="vkCmdClearColorImage"/>
- <command name="vkCmdClearDepthStencilImage"/>
- <command name="vkCmdClearAttachments"/>
- <command name="vkCmdResolveImage"/>
- <command name="vkCmdSetEvent"/>
- <command name="vkCmdResetEvent"/>
- <command name="vkCmdWaitEvents"/>
- <command name="vkCmdPipelineBarrier"/>
- <command name="vkCmdBeginQuery"/>
- <command name="vkCmdEndQuery"/>
- <command name="vkCmdResetQueryPool"/>
- <command name="vkCmdWriteTimestamp"/>
- <command name="vkCmdCopyQueryPoolResults"/>
- <command name="vkCmdPushConstants"/>
- <command name="vkCmdBeginRenderPass"/>
- <command name="vkCmdNextSubpass"/>
- <command name="vkCmdEndRenderPass"/>
- <command name="vkCmdExecuteCommands"/>
- </require>
- </feature>
- <feature api="vulkan" name="VK_VERSION_1_1" number="1.1" comment="Vulkan 1.1 core API interface definitions.">
- <require>
- <type name="VK_API_VERSION_1_1"/>
- </require>
- <require comment="Device Initialization">
- <command name="vkEnumerateInstanceVersion"/>
- </require>
- <require comment="Promoted from VK_KHR_relaxed_block_layout, which has no API"/>
- <require comment="Promoted from VK_KHR_storage_buffer_storage_class, which has no API"/>
- <require comment="Originally based on VK_KHR_subgroup (extension 94), but the actual enum block used was, incorrectly, that of extension 95">
- <enum extends="VkStructureType" extnumber="95" offset="0" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES"/>
- <type name="VkPhysicalDeviceSubgroupProperties"/>
- <type name="VkSubgroupFeatureFlags"/>
- <type name="VkSubgroupFeatureFlagBits"/>
- </require>
- <require comment="Promoted from VK_KHR_bind_memory2">
- <command name="vkBindBufferMemory2"/>
- <command name="vkBindImageMemory2"/>
- <enum extends="VkStructureType" extnumber="158" offset="0" name="VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO"/>
- <enum extends="VkStructureType" extnumber="158" offset="1" name="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO"/>
- <enum bitpos="10" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_ALIAS_BIT"/>
- <type name="VkBindBufferMemoryInfo"/>
- <type name="VkBindImageMemoryInfo"/>
- </require>
- <require comment="Promoted from VK_KHR_16bit_storage">
- <enum extends="VkStructureType" extnumber="84" offset="0" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES"/>
- <type name="VkPhysicalDevice16BitStorageFeatures"/>
- </require>
- <require comment="Promoted from VK_KHR_dedicated_allocation">
- <enum extends="VkStructureType" extnumber="128" offset="0" name="VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS"/>
- <enum extends="VkStructureType" extnumber="128" offset="1" name="VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO"/>
- <type name="VkMemoryDedicatedRequirements"/>
- <type name="VkMemoryDedicatedAllocateInfo"/>
- </require>
- <require comment="Promoted from VK_KHR_device_group">
- <enum extends="VkStructureType" extnumber="61" offset="0" name="VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO"/>
- <comment>offset 1 reserved for the old VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHX enum</comment>
- <comment>offset 2 reserved for the old VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX enum</comment>
- <enum extends="VkStructureType" extnumber="61" offset="3" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO"/>
- <enum extends="VkStructureType" extnumber="61" offset="4" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO"/>
- <enum extends="VkStructureType" extnumber="61" offset="5" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO"/>
- <enum extends="VkStructureType" extnumber="61" offset="6" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO"/>
- <type name="VkPeerMemoryFeatureFlags"/>
- <type name="VkPeerMemoryFeatureFlagBits"/>
- <type name="VkMemoryAllocateFlags"/>
- <type name="VkMemoryAllocateFlagBits"/>
- <type name="VkMemoryAllocateFlagsInfo"/>
- <type name="VkDeviceGroupRenderPassBeginInfo"/>
- <type name="VkDeviceGroupCommandBufferBeginInfo"/>
- <type name="VkDeviceGroupSubmitInfo"/>
- <type name="VkDeviceGroupBindSparseInfo"/>
- <command name="vkGetDeviceGroupPeerMemoryFeatures"/>
- <command name="vkCmdSetDeviceMask"/>
- <command name="vkCmdDispatchBase"/>
- <enum bitpos="3" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"/>
- <enum bitpos="4" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"/>
- <enum extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_DISPATCH_BASE" alias="VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"/>
- <enum bitpos="2" extends="VkDependencyFlagBits" name="VK_DEPENDENCY_DEVICE_GROUP_BIT" comment="Dependency is across devices"/>
- </require>
- <require comment="Promoted from VK_KHR_device_group + VK_KHR_bind_memory2">
- <enum extends="VkStructureType" extnumber="61" offset="13" name="VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO"/>
- <enum extends="VkStructureType" extnumber="61" offset="14" name="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO"/>
- <type name="VkBindBufferMemoryDeviceGroupInfo"/>
- <type name="VkBindImageMemoryDeviceGroupInfo"/>
- <enum bitpos="6" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT" comment="Allows using VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions when binding memory to the image"/>
- </require>
- <require comment="Promoted from VK_KHR_device_group_creation">
- <enum extends="VkStructureType" extnumber="71" offset="0" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES"/>
- <enum extends="VkStructureType" extnumber="71" offset="1" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO"/>
- <enum name="VK_MAX_DEVICE_GROUP_SIZE"/>
- <type name="VkPhysicalDeviceGroupProperties"/>
- <type name="VkDeviceGroupDeviceCreateInfo"/>
- <command name="vkEnumeratePhysicalDeviceGroups"/>
- <enum bitpos="1" extends="VkMemoryHeapFlagBits" name="VK_MEMORY_HEAP_MULTI_INSTANCE_BIT" comment="If set, heap allocations allocate multiple instances by default"/>
- </require>
- <require comment="Promoted from VK_KHR_get_memory_requirements2">
- <enum extends="VkStructureType" extnumber="147" offset="0" name="VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2"/>
- <enum extends="VkStructureType" extnumber="147" offset="1" name="VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2"/>
- <enum extends="VkStructureType" extnumber="147" offset="2" name="VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2"/>
- <enum extends="VkStructureType" extnumber="147" offset="3" name="VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2"/>
- <enum extends="VkStructureType" extnumber="147" offset="4" name="VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"/>
- <type name="VkBufferMemoryRequirementsInfo2"/>
- <type name="VkImageMemoryRequirementsInfo2"/>
- <type name="VkImageSparseMemoryRequirementsInfo2"/>
- <type name="VkMemoryRequirements2"/>
- <type name="VkSparseImageMemoryRequirements2"/>
- <command name="vkGetImageMemoryRequirements2"/>
- <command name="vkGetBufferMemoryRequirements2"/>
- <command name="vkGetImageSparseMemoryRequirements2"/>
- </require>
- <require comment="Promoted from VK_KHR_get_physical_device_properties2">
- <enum extends="VkStructureType" extnumber="60" offset="0" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2"/>
- <enum extends="VkStructureType" extnumber="60" offset="1" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2"/>
- <enum extends="VkStructureType" extnumber="60" offset="2" name="VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2"/>
- <enum extends="VkStructureType" extnumber="60" offset="3" name="VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2"/>
- <enum extends="VkStructureType" extnumber="60" offset="4" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2"/>
- <enum extends="VkStructureType" extnumber="60" offset="5" name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2"/>
- <enum extends="VkStructureType" extnumber="60" offset="6" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2"/>
- <enum extends="VkStructureType" extnumber="60" offset="7" name="VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2"/>
- <enum extends="VkStructureType" extnumber="60" offset="8" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2"/>
- <type name="VkPhysicalDeviceFeatures2"/>
- <type name="VkPhysicalDeviceProperties2"/>
- <type name="VkFormatProperties2"/>
- <type name="VkImageFormatProperties2"/>
- <type name="VkPhysicalDeviceImageFormatInfo2"/>
- <type name="VkQueueFamilyProperties2"/>
- <type name="VkPhysicalDeviceMemoryProperties2"/>
- <type name="VkSparseImageFormatProperties2"/>
- <type name="VkPhysicalDeviceSparseImageFormatInfo2"/>
- <command name="vkGetPhysicalDeviceFeatures2"/>
- <command name="vkGetPhysicalDeviceProperties2"/>
- <command name="vkGetPhysicalDeviceFormatProperties2"/>
- <command name="vkGetPhysicalDeviceImageFormatProperties2"/>
- <command name="vkGetPhysicalDeviceQueueFamilyProperties2"/>
- <command name="vkGetPhysicalDeviceMemoryProperties2"/>
- <command name="vkGetPhysicalDeviceSparseImageFormatProperties2"/>
- </require>
- <require comment="Promoted from VK_KHR_maintenance1">
- <enum extends="VkResult" extnumber="70" offset="0" dir="-" name="VK_ERROR_OUT_OF_POOL_MEMORY"/>
- <enum bitpos="14" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_TRANSFER_SRC_BIT" comment="Format can be used as the source image of image transfer commands"/>
- <enum bitpos="15" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_TRANSFER_DST_BIT" comment="Format can be used as the destination image of image transfer commands"/>
- <enum bitpos="5" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT" comment="The 3D image can be viewed as a 2D or 2D array image"/>
- <command name="vkTrimCommandPool"/>
- <comment>Additional dependent types / tokens extending enumerants, not explicitly mentioned</comment>
- <type name="VkCommandPoolTrimFlags"/>
- </require>
- <require comment="Promoted from VK_KHR_maintenance2">
- <enum bitpos="7" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"/>
- <enum bitpos="8" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"/>
- <enum extends="VkStructureType" extnumber="118" offset="0" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES"/>
- <enum extends="VkStructureType" extnumber="118" offset="1" name="VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO"/>
- <enum extends="VkStructureType" extnumber="118" offset="2" name="VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO"/>
- <enum extends="VkStructureType" extnumber="118" offset="3" name="VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO"/>
- <enum extends="VkImageLayout" extnumber="118" offset="0" name="VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL"/>
- <enum extends="VkImageLayout" extnumber="118" offset="1" name="VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL"/>
- <type name="VkPhysicalDevicePointClippingProperties"/>
- <type name="VkPointClippingBehavior"/>
- <type name="VkRenderPassInputAttachmentAspectCreateInfo"/>
- <type name="VkInputAttachmentAspectReference"/>
- <type name="VkImageViewUsageCreateInfo"/>
- <type name="VkTessellationDomainOrigin"/>
- <type name="VkPipelineTessellationDomainOriginStateCreateInfo"/>
- </require>
- <require comment="Promoted from VK_KHR_multiview">
- <enum extends="VkStructureType" extnumber="54" offset="0" name="VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO"/>
- <enum extends="VkStructureType" extnumber="54" offset="1" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES"/>
- <enum extends="VkStructureType" extnumber="54" offset="2" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES"/>
- <enum bitpos="1" extends="VkDependencyFlagBits" name="VK_DEPENDENCY_VIEW_LOCAL_BIT"/>
- <type name="VkRenderPassMultiviewCreateInfo"/>
- <type name="VkPhysicalDeviceMultiviewFeatures"/>
- <type name="VkPhysicalDeviceMultiviewProperties"/>
- </require>
- <require comment="Promoted from VK_KHR_variable_pointers">
- <enum extends="VkStructureType" extnumber="121" offset="0" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"/>
- <type name="VkPhysicalDeviceVariablePointerFeatures"/>
- <type name="VkPhysicalDeviceVariablePointersFeatures"/>
- </require>
- <require comment="Originally based on VK_KHR_protected_memory (extension 146), which was never published; thus the mystifying large value= numbers below. These are not aliased since they were not actually promoted from an extension.">
- <enum extends="VkStructureType" extnumber="146" offset="0" name="VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO"/>
- <enum extends="VkStructureType" extnumber="146" offset="1" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES"/>
- <enum extends="VkStructureType" extnumber="146" offset="2" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES"/>
- <enum extends="VkStructureType" extnumber="146" offset="3" name="VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2"/>
- <enum bitpos="4" extends="VkQueueFlagBits" name="VK_QUEUE_PROTECTED_BIT" comment="Queues may support protected operations"/>
- <enum bitpos="0" extends="VkDeviceQueueCreateFlagBits" name="VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT" comment="Queue is a protected-capable device queue"/>
- <type name="VkDeviceQueueCreateFlagBits" comment="This is a temporary workaround for processors not recognizing that VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT above also requires this type"/>
- <enum bitpos="5" extends="VkMemoryPropertyFlagBits" name="VK_MEMORY_PROPERTY_PROTECTED_BIT" comment="Memory is protected"/>
- <enum bitpos="3" extends="VkBufferCreateFlagBits" name="VK_BUFFER_CREATE_PROTECTED_BIT" comment="Buffer requires protected memory"/>
- <enum bitpos="11" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_PROTECTED_BIT" comment="Image requires protected memory"/>
- <enum bitpos="2" extends="VkCommandPoolCreateFlagBits" name="VK_COMMAND_POOL_CREATE_PROTECTED_BIT" comment="Command buffers allocated from pool are protected command buffers"/>
- <type name="VkPhysicalDeviceProtectedMemoryFeatures"/>
- <type name="VkPhysicalDeviceProtectedMemoryProperties"/>
- <type name="VkDeviceQueueInfo2"/>
- <type name="VkProtectedSubmitInfo"/>
- <command name="vkGetDeviceQueue2"/>
- </require>
- <require comment="Promoted from VK_KHR_sampler_ycbcr_conversion">
- <enum extends="VkStructureType" extnumber="157" offset="0" name="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO"/>
- <enum extends="VkStructureType" extnumber="157" offset="1" name="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO"/>
- <enum extends="VkStructureType" extnumber="157" offset="2" name="VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO"/>
- <enum extends="VkStructureType" extnumber="157" offset="3" name="VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO"/>
- <enum extends="VkStructureType" extnumber="157" offset="4" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"/>
- <enum extends="VkStructureType" extnumber="157" offset="5" name="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES"/>
- <enum extends="VkObjectType" extnumber="157" offset="0" name="VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION"/>
- <enum extends="VkFormat" extnumber="157" offset="0" name="VK_FORMAT_G8B8G8R8_422_UNORM"/>
- <enum extends="VkFormat" extnumber="157" offset="1" name="VK_FORMAT_B8G8R8G8_422_UNORM"/>
- <enum extends="VkFormat" extnumber="157" offset="2" name="VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM"/>
- <enum extends="VkFormat" extnumber="157" offset="3" name="VK_FORMAT_G8_B8R8_2PLANE_420_UNORM"/>
- <enum extends="VkFormat" extnumber="157" offset="4" name="VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM"/>
- <enum extends="VkFormat" extnumber="157" offset="5" name="VK_FORMAT_G8_B8R8_2PLANE_422_UNORM"/>
- <enum extends="VkFormat" extnumber="157" offset="6" name="VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM"/>
- <enum extends="VkFormat" extnumber="157" offset="7" name="VK_FORMAT_R10X6_UNORM_PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="8" name="VK_FORMAT_R10X6G10X6_UNORM_2PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="9" name="VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="10" name="VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="11" name="VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="12" name="VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="13" name="VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="14" name="VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="15" name="VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="16" name="VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="17" name="VK_FORMAT_R12X4_UNORM_PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="18" name="VK_FORMAT_R12X4G12X4_UNORM_2PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="19" name="VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="20" name="VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="21" name="VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="22" name="VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="23" name="VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="24" name="VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="25" name="VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="26" name="VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16"/>
- <enum extends="VkFormat" extnumber="157" offset="27" name="VK_FORMAT_G16B16G16R16_422_UNORM"/>
- <enum extends="VkFormat" extnumber="157" offset="28" name="VK_FORMAT_B16G16R16G16_422_UNORM"/>
- <enum extends="VkFormat" extnumber="157" offset="29" name="VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM"/>
- <enum extends="VkFormat" extnumber="157" offset="30" name="VK_FORMAT_G16_B16R16_2PLANE_420_UNORM"/>
- <enum extends="VkFormat" extnumber="157" offset="31" name="VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM"/>
- <enum extends="VkFormat" extnumber="157" offset="32" name="VK_FORMAT_G16_B16R16_2PLANE_422_UNORM"/>
- <enum extends="VkFormat" extnumber="157" offset="33" name="VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM"/>
- <enum bitpos="4" extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_PLANE_0_BIT"/>
- <enum bitpos="5" extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_PLANE_1_BIT"/>
- <enum bitpos="6" extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_PLANE_2_BIT"/>
- <enum bitpos="9" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_DISJOINT_BIT"/>
- <enum bitpos="17" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT" comment="Format can have midpoint rather than cosited chroma samples"/>
- <enum bitpos="18" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT" comment="Format can be used with linear filtering whilst color conversion is enabled"/>
- <enum bitpos="19" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT" comment="Format can have different chroma, min and mag filters"/>
- <enum bitpos="20" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"/>
- <enum bitpos="21" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"/>
- <enum bitpos="22" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_DISJOINT_BIT" comment="Format supports disjoint planes"/>
- <enum bitpos="23" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT" comment="Format can have cosited rather than midpoint chroma samples"/>
- <type name="VkSamplerYcbcrConversionCreateInfo"/>
- <type name="VkSamplerYcbcrConversionInfo"/>
- <type name="VkBindImagePlaneMemoryInfo"/>
- <type name="VkImagePlaneMemoryRequirementsInfo"/>
- <type name="VkPhysicalDeviceSamplerYcbcrConversionFeatures"/>
- <type name="VkSamplerYcbcrConversionImageFormatProperties"/>
- <command name="vkCreateSamplerYcbcrConversion"/>
- <command name="vkDestroySamplerYcbcrConversion"/>
- <comment>Additional dependent types / tokens extending enumerants, not explicitly mentioned</comment>
- <type name="VkSamplerYcbcrConversion"/>
- <type name="VkSamplerYcbcrModelConversion"/>
- <type name="VkSamplerYcbcrRange"/>
- <type name="VkChromaLocation"/>
- </require>
- <require comment="Promoted from VK_KHR_descriptor_update_template">
- <enum extends="VkStructureType" extnumber="86" offset="0" name="VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO"/>
- <enum extends="VkObjectType" extnumber="86" offset="0" name="VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE"/>
- <command name="vkCreateDescriptorUpdateTemplate"/>
- <command name="vkDestroyDescriptorUpdateTemplate"/>
- <command name="vkUpdateDescriptorSetWithTemplate"/>
- <type name="VkDescriptorUpdateTemplate"/>
- <type name="VkDescriptorUpdateTemplateCreateFlags"/>
- <type name="VkDescriptorUpdateTemplateType"/>
- <type name="VkDescriptorUpdateTemplateEntry"/>
- <type name="VkDescriptorUpdateTemplateCreateInfo"/>
- </require>
- <require comment="Promoted from VK_KHR_external_memory_capabilities">
- <enum extends="VkStructureType" extnumber="72" offset="0" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO"/>
- <enum extends="VkStructureType" extnumber="72" offset="1" name="VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES"/>
- <enum extends="VkStructureType" extnumber="72" offset="2" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO"/>
- <enum extends="VkStructureType" extnumber="72" offset="3" name="VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES"/>
- <enum extends="VkStructureType" extnumber="72" offset="4" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES"/>
- <enum name="VK_LUID_SIZE"/>
- <type name="VkExternalMemoryHandleTypeFlags"/>
- <type name="VkExternalMemoryHandleTypeFlagBits"/>
- <type name="VkExternalMemoryFeatureFlags"/>
- <type name="VkExternalMemoryFeatureFlagBits"/>
- <type name="VkExternalMemoryProperties"/>
- <type name="VkPhysicalDeviceExternalImageFormatInfo"/>
- <type name="VkExternalImageFormatProperties"/>
- <type name="VkPhysicalDeviceExternalBufferInfo"/>
- <type name="VkExternalBufferProperties"/>
- <type name="VkPhysicalDeviceIDProperties"/>
- <command name="vkGetPhysicalDeviceExternalBufferProperties"/>
- </require>
- <require comment="Promoted from VK_KHR_external_memory">
- <enum extends="VkStructureType" extnumber="73" offset="0" name="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO"/>
- <enum extends="VkStructureType" extnumber="73" offset="1" name="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO"/>
- <enum extends="VkStructureType" extnumber="73" offset="2" name="VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO"/>
- <enum extends="VkResult" extnumber="73" offset="3" dir="-" name="VK_ERROR_INVALID_EXTERNAL_HANDLE"/>
- <enum name="VK_QUEUE_FAMILY_EXTERNAL"/>
- <type name="VkExternalMemoryImageCreateInfo"/>
- <type name="VkExternalMemoryBufferCreateInfo"/>
- <type name="VkExportMemoryAllocateInfo"/>
- </require>
- <require comment="Promoted from VK_KHR_external_fence_capabilities">
- <enum extends="VkStructureType" extnumber="113" offset="0" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO"/>
- <enum extends="VkStructureType" extnumber="113" offset="1" name="VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES"/>
- <type name="VkExternalFenceHandleTypeFlags"/>
- <type name="VkExternalFenceHandleTypeFlagBits"/>
- <type name="VkExternalFenceFeatureFlags"/>
- <type name="VkExternalFenceFeatureFlagBits"/>
- <type name="VkPhysicalDeviceExternalFenceInfo"/>
- <type name="VkExternalFenceProperties"/>
- <command name="vkGetPhysicalDeviceExternalFenceProperties"/>
- </require>
- <require comment="Promoted from VK_KHR_external_fence">
- <enum extends="VkStructureType" extnumber="114" offset="0" name="VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO"/>
- <type name="VkFenceImportFlags"/>
- <type name="VkFenceImportFlagBits"/>
- <type name="VkExportFenceCreateInfo"/>
- </require>
- <require comment="Promoted from VK_KHR_external_semaphore">
- <enum extends="VkStructureType" extnumber="78" offset="0" name="VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO"/>
- <type name="VkSemaphoreImportFlags"/>
- <type name="VkSemaphoreImportFlagBits"/>
- <type name="VkExportSemaphoreCreateInfo"/>
- </require>
- <require comment="Promoted from VK_KHR_external_semaphore_capabilities">
- <enum extends="VkStructureType" extnumber="77" offset="0" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO"/>
- <enum extends="VkStructureType" extnumber="77" offset="1" name="VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES"/>
- <type name="VkExternalSemaphoreHandleTypeFlags"/>
- <type name="VkExternalSemaphoreHandleTypeFlagBits"/>
- <type name="VkExternalSemaphoreFeatureFlags"/>
- <type name="VkExternalSemaphoreFeatureFlagBits"/>
- <type name="VkPhysicalDeviceExternalSemaphoreInfo"/>
- <type name="VkExternalSemaphoreProperties"/>
- <command name="vkGetPhysicalDeviceExternalSemaphoreProperties"/>
- </require>
- <require comment="Promoted from VK_KHR_maintenance3">
- <enum extends="VkStructureType" extnumber="169" offset="0" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES"/>
- <enum extends="VkStructureType" extnumber="169" offset="1" name="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT"/>
- <type name="VkPhysicalDeviceMaintenance3Properties"/>
- <type name="VkDescriptorSetLayoutSupport"/>
- <command name="vkGetDescriptorSetLayoutSupport"/>
- </require>
- <require comment="Promoted from VK_KHR_shader_draw_parameters, with a feature support query added">
- <enum extends="VkStructureType" extnumber="64" offset="0" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES"/>
- <type name="VkPhysicalDeviceShaderDrawParameterFeatures"/>
- <type name="VkPhysicalDeviceShaderDrawParametersFeatures"/>
- </require>
- </feature>
- <feature api="vulkan" name="VK_VERSION_1_2" number="1.2" comment="Vulkan 1.2 core API interface definitions.">
- <require>
- <type name="VK_API_VERSION_1_2"/>
- </require>
- <require>
- <enum extends="VkStructureType" value="49" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES"/>
- <enum extends="VkStructureType" value="50" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES"/>
- <enum extends="VkStructureType" value="51" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES"/>
- <enum extends="VkStructureType" value="52" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES"/>
- <type name="VkPhysicalDeviceVulkan11Features"/>
- <type name="VkPhysicalDeviceVulkan11Properties"/>
- <type name="VkPhysicalDeviceVulkan12Features"/>
- <type name="VkPhysicalDeviceVulkan12Properties"/>
- </require>
- <require comment="Promoted from VK_KHR_image_format_list (extension 148)">
- <enum offset="0" extends="VkStructureType" extnumber="148" name="VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO"/>
- <type name="VkImageFormatListCreateInfo"/>
- </require>
- <require comment="Promoted from VK_KHR_sampler_mirror_clamp_to_edge (extension 15)">
- <enum value="4" extends="VkSamplerAddressMode" name="VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE" comment="No need to add an extnumber attribute, since this uses a core enum value"/>
- </require>
- <require comment="Promoted from VK_KHR_draw_indirect_count (extension 170)">
- <command name="vkCmdDrawIndirectCount"/>
- <command name="vkCmdDrawIndexedIndirectCount"/>
- </require>
- <require comment="Promoted from VK_KHR_create_renderpass2 (extension 110)">
- <enum offset="0" extends="VkStructureType" extnumber="110" name="VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2"/>
- <enum offset="1" extends="VkStructureType" extnumber="110" name="VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2"/>
- <enum offset="2" extends="VkStructureType" extnumber="110" name="VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2"/>
- <enum offset="3" extends="VkStructureType" extnumber="110" name="VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2"/>
- <enum offset="4" extends="VkStructureType" extnumber="110" name="VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2"/>
- <enum offset="5" extends="VkStructureType" extnumber="110" name="VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO"/>
- <enum offset="6" extends="VkStructureType" extnumber="110" name="VK_STRUCTURE_TYPE_SUBPASS_END_INFO"/>
- <command name="vkCreateRenderPass2"/>
- <command name="vkCmdBeginRenderPass2"/>
- <command name="vkCmdNextSubpass2"/>
- <command name="vkCmdEndRenderPass2"/>
- <type name="VkRenderPassCreateInfo2"/>
- <type name="VkAttachmentDescription2"/>
- <type name="VkAttachmentReference2"/>
- <type name="VkSubpassDescription2"/>
- <type name="VkSubpassDependency2"/>
- <type name="VkSubpassBeginInfo"/>
- <type name="VkSubpassEndInfo"/>
- </require>
- <require comment="Promoted from VK_KHR_8bit_storage (extension 178)">
- <enum offset="0" extends="VkStructureType" extnumber="178" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES"/>
- <type name="VkPhysicalDevice8BitStorageFeatures"/>
- </require>
- <require comment="Promoted from VK_KHR_driver_properties (extension 197)">
- <enum offset="0" extends="VkStructureType" extnumber="197" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES"/>
- <enum name="VK_MAX_DRIVER_NAME_SIZE"/>
- <enum name="VK_MAX_DRIVER_INFO_SIZE"/>
- <type name="VkDriverId"/>
- <type name="VkConformanceVersion"/>
- <type name="VkPhysicalDeviceDriverProperties"/>
- </require>
- <require comment="Promoted from VK_KHR_shader_atomic_int64 (extension 181)">
- <enum offset="0" extends="VkStructureType" extnumber="181" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES"/>
- <type name="VkPhysicalDeviceShaderAtomicInt64Features"/>
- </require>
- <require comment="Promoted from VK_KHR_shader_float16_int8 (extension 83)">
- <enum offset="0" extends="VkStructureType" extnumber="83" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES"/>
- <type name="VkPhysicalDeviceShaderFloat16Int8Features"/>
- </require>
- <require comment="Promoted from VK_KHR_shader_float_controls (extension 198)">
- <enum offset="0" extends="VkStructureType" extnumber="198" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES"/>
- <type name="VkPhysicalDeviceFloatControlsProperties"/>
- <type name="VkShaderFloatControlsIndependence"/>
- </require>
- <require comment="Promoted from VK_EXT_descriptor_indexing (extension 162)">
- <enum offset="0" extends="VkStructureType" extnumber="162" name="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO"/>
- <enum offset="1" extends="VkStructureType" extnumber="162" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES"/>
- <enum offset="2" extends="VkStructureType" extnumber="162" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES"/>
- <enum offset="3" extends="VkStructureType" extnumber="162" name="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO"/>
- <enum offset="4" extends="VkStructureType" extnumber="162" name="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT"/>
- <enum bitpos="1" extends="VkDescriptorPoolCreateFlagBits" name="VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"/>
- <enum bitpos="1" extends="VkDescriptorSetLayoutCreateFlagBits" name="VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"/>
- <enum offset="0" dir="-" extends="VkResult" extnumber="162" name="VK_ERROR_FRAGMENTATION"/>
- <type name="VkDescriptorSetLayoutBindingFlagsCreateInfo"/>
- <type name="VkPhysicalDeviceDescriptorIndexingFeatures"/>
- <type name="VkPhysicalDeviceDescriptorIndexingProperties"/>
- <type name="VkDescriptorSetVariableDescriptorCountAllocateInfo"/>
- <type name="VkDescriptorSetVariableDescriptorCountLayoutSupport"/>
- <type name="VkDescriptorBindingFlagBits"/>
- <type name="VkDescriptorBindingFlags"/>
- </require>
- <require comment="Promoted from VK_KHR_depth_stencil_resolve (extension 200)">
- <enum offset="0" extends="VkStructureType" extnumber="200" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES"/>
- <enum offset="1" extends="VkStructureType" extnumber="200" name="VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE"/>
- <type name="VkSubpassDescriptionDepthStencilResolve"/>
- <type name="VkPhysicalDeviceDepthStencilResolveProperties"/>
- <type name="VkResolveModeFlagBits"/>
- <type name="VkResolveModeFlags"/>
- </require>
- <require comment="Promoted from VK_EXT_scalar_block_layout (extension 222))">
- <type name="VkPhysicalDeviceScalarBlockLayoutFeatures"/>
- <enum offset="0" extends="VkStructureType" extnumber="222" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES"/>
- </require>
- <require comment="Promoted from VK_EXT_shader_viewport_index_layer, which has no API (extension 163)"/>
- <require comment="Promoted from VK_EXT_separate_stencil_usage (extension 247)">
- <enum offset="0" extends="VkStructureType" extnumber="247" name="VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO"/>
- <type name="VkImageStencilUsageCreateInfo"/>
- </require>
- <require comment="Promoted from VK_EXT_sampler_filter_minmax (extension 131)">
- <enum offset="0" extends="VkStructureType" extnumber="131" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES"/>
- <enum offset="1" extends="VkStructureType" extnumber="131" name="VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO"/>
- <enum bitpos="16" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT" comment="Format can be used with min/max reduction filtering"/>
- <type name="VkSamplerReductionMode"/>
- <type name="VkSamplerReductionModeCreateInfo"/>
- <type name="VkPhysicalDeviceSamplerFilterMinmaxProperties"/>
- </require>
- <require comment="Promoted from VK_KHR_vulkan_memory_model (extension 212)">
- <enum offset="0" extends="VkStructureType" extnumber="212" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES"/>
- <type name="VkPhysicalDeviceVulkanMemoryModelFeatures"/>
- </require>
- <require comment="Promoted from VK_KHR_imageless_framebuffer (extension 109)">
- <type name="VkPhysicalDeviceImagelessFramebufferFeatures"/>
- <type name="VkFramebufferAttachmentsCreateInfo"/>
- <type name="VkFramebufferAttachmentImageInfo"/>
- <type name="VkRenderPassAttachmentBeginInfo"/>
- <enum offset="0" extends="VkStructureType" extnumber="109" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES"/>
- <enum offset="1" extends="VkStructureType" extnumber="109" name="VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO"/>
- <enum offset="2" extends="VkStructureType" extnumber="109" name="VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO"/>
- <enum offset="3" extends="VkStructureType" extnumber="109" name="VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO"/>
- <enum bitpos="0" extends="VkFramebufferCreateFlagBits" name="VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"/>
- </require>
- <require comment="Promoted from VK_KHR_uniform_buffer_standard_layout (extension 254)">
- <type name="VkPhysicalDeviceUniformBufferStandardLayoutFeatures"/>
- <enum offset="0" extends="VkStructureType" extnumber="254" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES"/>
- </require>
- <require comment="Promoted from VK_KHR_shader_subgroup_extended_types (extension 176)">
- <enum offset="0" extends="VkStructureType" extnumber="176" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES"/>
- <type name="VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures"/>
- </require>
- <require comment="Promoted from VK_KHR_spirv_1_4 (extension 237)">
- </require>
- <require comment="Promoted from VK_KHR_separate_depth_stencil_layouts (extension 242)">
- <enum offset="0" extends="VkStructureType" extnumber="242" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES"/>
- <enum offset="1" extends="VkStructureType" extnumber="242" name="VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT"/>
- <enum offset="2" extends="VkStructureType" extnumber="242" name="VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT"/>
- <enum offset="0" extends="VkImageLayout" extnumber="242" name="VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL"/>
- <enum offset="1" extends="VkImageLayout" extnumber="242" name="VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL"/>
- <enum offset="2" extends="VkImageLayout" extnumber="242" name="VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL"/>
- <enum offset="3" extends="VkImageLayout" extnumber="242" name="VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL"/>
- <type name="VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures"/>
- <type name="VkAttachmentReferenceStencilLayout"/>
- <type name="VkAttachmentDescriptionStencilLayout"/>
- </require>
- <require comment="Promoted from VK_EXT_host_query_reset (extension 262)">
- <enum offset="0" extends="VkStructureType" extnumber="262" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES"/>
- <type name="VkPhysicalDeviceHostQueryResetFeatures"/>
- <command name="vkResetQueryPool"/>
- </require>
- <require comment="Promoted from VK_KHR_timeline_semaphore (extension 208)">
- <enum offset="0" extends="VkStructureType" extnumber="208" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES"/>
- <enum offset="1" extends="VkStructureType" extnumber="208" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES"/>
- <enum offset="2" extends="VkStructureType" extnumber="208" name="VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO"/>
- <enum offset="3" extends="VkStructureType" extnumber="208" name="VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO"/>
- <enum offset="4" extends="VkStructureType" extnumber="208" name="VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO"/>
- <enum offset="5" extends="VkStructureType" extnumber="208" name="VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO"/>
- <type name="VkSemaphoreType"/>
- <type name="VkPhysicalDeviceTimelineSemaphoreFeatures"/>
- <type name="VkPhysicalDeviceTimelineSemaphoreProperties"/>
- <type name="VkSemaphoreTypeCreateInfo"/>
- <type name="VkTimelineSemaphoreSubmitInfo"/>
- <type name="VkSemaphoreWaitFlagBits"/>
- <type name="VkSemaphoreWaitFlags"/>
- <type name="VkSemaphoreWaitInfo"/>
- <type name="VkSemaphoreSignalInfo"/>
- <command name="vkGetSemaphoreCounterValue"/>
- <command name="vkWaitSemaphores"/>
- <command name="vkSignalSemaphore"/>
- </require>
- <require comment="Promoted from VK_KHR_buffer_device_address (extension 258)">
- <enum offset="0" extends="VkStructureType" extnumber="258" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES"/>
- <enum offset="1" extends="VkStructureType" extnumber="245" name="VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO"/>
- <enum offset="2" extends="VkStructureType" extnumber="258" name="VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO"/>
- <enum offset="3" extends="VkStructureType" extnumber="258" name="VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO"/>
- <enum offset="4" extends="VkStructureType" extnumber="258" name="VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO"/>
- <enum bitpos="17" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"/>
- <enum bitpos="4" extends="VkBufferCreateFlagBits" name="VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"/>
- <enum bitpos="1" extends="VkMemoryAllocateFlagBits" name="VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"/>
- <enum bitpos="2" extends="VkMemoryAllocateFlagBits" name="VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"/>
- <enum offset="0" dir="-" extends="VkResult" extnumber="258" name="VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS"/>
- <type name="VkPhysicalDeviceBufferDeviceAddressFeatures"/>
- <type name="VkBufferDeviceAddressInfo"/>
- <type name="VkBufferOpaqueCaptureAddressCreateInfo"/>
- <type name="VkMemoryOpaqueCaptureAddressAllocateInfo"/>
- <type name="VkDeviceMemoryOpaqueCaptureAddressInfo"/>
- <command name="vkGetBufferDeviceAddress"/>
- <command name="vkGetBufferOpaqueCaptureAddress"/>
- <command name="vkGetDeviceMemoryOpaqueCaptureAddress"/>
- </require>
- </feature>
- <feature api="vulkan" name="VK_VERSION_1_3" number="1.3" comment="Vulkan 1.3 core API interface definitions.">
- <require>
- <type name="VK_API_VERSION_1_3"/>
- </require>
- <require>
- <enum extends="VkStructureType" value="53" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES"/>
- <enum extends="VkStructureType" value="54" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES"/>
- <type name="VkPhysicalDeviceVulkan13Features"/>
- <type name="VkPhysicalDeviceVulkan13Properties"/>
- </require>
- <require comment="Promoted from VK_EXT_pipeline_creation_feedback (extension 193)">
- <enum offset="0" extends="VkStructureType" extnumber="193" name="VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO"/>
- <type name="VkPipelineCreationFeedbackFlagBits"/>
- <type name="VkPipelineCreationFeedbackFlags"/>
- <type name="VkPipelineCreationFeedbackCreateInfo"/>
- <type name="VkPipelineCreationFeedback"/>
- </require>
- <require comment="Promoted from VK_KHR_shader_terminate_invocation (extension 216)">
- <enum offset="0" extends="VkStructureType" extnumber="216" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES"/>
- <type name="VkPhysicalDeviceShaderTerminateInvocationFeatures"/>
- </require>
- <require comment="Promoted from VK_EXT_tooling_info (extension 246)">
- <enum offset="0" extends="VkStructureType" extnumber="246" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES"/>
- <type name="VkToolPurposeFlagBits"/>
- <type name="VkToolPurposeFlags"/>
- <type name="VkPhysicalDeviceToolProperties"/>
- <command name="vkGetPhysicalDeviceToolProperties"/>
- </require>
- <require comment="Promoted from VK_EXT_shader_demote_to_helper_invocation (extension 277)">
- <enum offset="0" extends="VkStructureType" extnumber="277" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES"/>
- <type name="VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures"/>
- </require>
- <require comment="Promoted from VK_KHR_shader_non_semantic_info (extension 294)">
- </require>
- <require comment="Promoted from VK_EXT_private_data (extension 296)">
- <enum offset="0" extends="VkStructureType" extnumber="296" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES"/>
- <enum offset="1" extends="VkStructureType" extnumber="296" name="VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO"/>
- <enum offset="2" extends="VkStructureType" extnumber="296" name="VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO"/>
- <enum offset="0" extends="VkObjectType" extnumber="296" name="VK_OBJECT_TYPE_PRIVATE_DATA_SLOT"/>
- <type name="VkPhysicalDevicePrivateDataFeatures"/>
- <type name="VkDevicePrivateDataCreateInfo"/>
- <type name="VkPrivateDataSlotCreateInfo"/>
- <type name="VkPrivateDataSlot"/>
- <type name="VkPrivateDataSlotCreateFlags" comment="Will add VkPrivateDataSlotCreateFlagBits when bits are defined in the future"/>
- <command name="vkCreatePrivateDataSlot"/>
- <command name="vkDestroyPrivateDataSlot"/>
- <command name="vkSetPrivateData"/>
- <command name="vkGetPrivateData"/>
- </require>
- <require comment="Promoted from VK_EXT_pipeline_creation_cache_control (extension 298)">
- <enum offset="0" extends="VkStructureType" extnumber="298" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES"/>
- <type name="VkPhysicalDevicePipelineCreationCacheControlFeatures"/>
- <enum bitpos="8" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"/>
- <enum bitpos="9" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"/>
- <enum offset="0" extends="VkResult" extnumber="298" name="VK_PIPELINE_COMPILE_REQUIRED"/>
- <enum bitpos="0" extends="VkPipelineCacheCreateFlagBits" name="VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT"/>
- </require>
- <require comment="Promoted from VK_KHR_synchronization2 (extension 315)">
- <enum offset="0" extends="VkStructureType" extnumber="315" name="VK_STRUCTURE_TYPE_MEMORY_BARRIER_2"/>
- <enum offset="1" extends="VkStructureType" extnumber="315" name="VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2"/>
- <enum offset="2" extends="VkStructureType" extnumber="315" name="VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2"/>
- <enum offset="3" extends="VkStructureType" extnumber="315" name="VK_STRUCTURE_TYPE_DEPENDENCY_INFO"/>
- <enum offset="4" extends="VkStructureType" extnumber="315" name="VK_STRUCTURE_TYPE_SUBMIT_INFO_2"/>
- <enum offset="5" extends="VkStructureType" extnumber="315" name="VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO"/>
- <enum offset="6" extends="VkStructureType" extnumber="315" name="VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO"/>
- <enum offset="7" extends="VkStructureType" extnumber="315" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES"/>
- <enum bitpos="0" extends="VkEventCreateFlagBits" name="VK_EVENT_CREATE_DEVICE_ONLY_BIT"/>
- <enum offset="0" extends="VkImageLayout" extnumber="315" name="VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL"/>
- <enum offset="1" extends="VkImageLayout" extnumber="315" name="VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL"/>
- <enum value="0" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_NONE"/>
- <enum value="0" extends="VkAccessFlagBits" name="VK_ACCESS_NONE"/>
- <type name="VkPipelineStageFlags2"/>
- <type name="VkPipelineStageFlagBits2"/>
- <type name="VkAccessFlags2"/>
- <type name="VkAccessFlagBits2"/>
- <type name="VkMemoryBarrier2"/>
- <type name="VkBufferMemoryBarrier2"/>
- <type name="VkImageMemoryBarrier2"/>
- <type name="VkDependencyInfo"/>
- <type name="VkSubmitInfo2"/>
- <type name="VkSemaphoreSubmitInfo"/>
- <type name="VkCommandBufferSubmitInfo"/>
- <type name="VkSubmitFlagBits"/>
- <type name="VkSubmitFlags"/>
- <type name="VkPhysicalDeviceSynchronization2Features"/>
- <command name="vkCmdSetEvent2"/>
- <command name="vkCmdResetEvent2"/>
- <command name="vkCmdWaitEvents2"/>
- <command name="vkCmdPipelineBarrier2"/>
- <command name="vkCmdWriteTimestamp2"/>
- <command name="vkQueueSubmit2"/>
- </require>
- <require comment="Promoted from VK_KHR_zero_initialize_workgroup_memory (extension 326)">
- <enum offset="0" extends="VkStructureType" extnumber="326" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES"/>
- <type name="VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures"/>
- </require>
- <require comment="Promoted from VK_EXT_image_robustness (extension 336)">
- <enum offset="0" extends="VkStructureType" extnumber="336" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES"/>
- <type name="VkPhysicalDeviceImageRobustnessFeatures"/>
- </require>
- <require comment="Promoted from VK_KHR_copy_commands2 (extension 338)">
- <enum offset="0" extends="VkStructureType" extnumber="338" name="VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2"/>
- <enum offset="1" extends="VkStructureType" extnumber="338" name="VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2"/>
- <enum offset="2" extends="VkStructureType" extnumber="338" name="VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2"/>
- <enum offset="3" extends="VkStructureType" extnumber="338" name="VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2"/>
- <enum offset="4" extends="VkStructureType" extnumber="338" name="VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2"/>
- <enum offset="5" extends="VkStructureType" extnumber="338" name="VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2"/>
- <enum offset="6" extends="VkStructureType" extnumber="338" name="VK_STRUCTURE_TYPE_BUFFER_COPY_2"/>
- <enum offset="7" extends="VkStructureType" extnumber="338" name="VK_STRUCTURE_TYPE_IMAGE_COPY_2"/>
- <enum offset="8" extends="VkStructureType" extnumber="338" name="VK_STRUCTURE_TYPE_IMAGE_BLIT_2"/>
- <enum offset="9" extends="VkStructureType" extnumber="338" name="VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2"/>
- <enum offset="10" extends="VkStructureType" extnumber="338" name="VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2"/>
- <type name="VkCopyBufferInfo2"/>
- <type name="VkCopyImageInfo2"/>
- <type name="VkCopyBufferToImageInfo2"/>
- <type name="VkCopyImageToBufferInfo2"/>
- <type name="VkBlitImageInfo2"/>
- <type name="VkResolveImageInfo2"/>
- <type name="VkBufferCopy2"/>
- <type name="VkImageCopy2"/>
- <type name="VkImageBlit2"/>
- <type name="VkBufferImageCopy2"/>
- <type name="VkImageResolve2"/>
- <command name="vkCmdCopyBuffer2"/>
- <command name="vkCmdCopyImage2"/>
- <command name="vkCmdCopyBufferToImage2"/>
- <command name="vkCmdCopyImageToBuffer2"/>
- <command name="vkCmdBlitImage2"/>
- <command name="vkCmdResolveImage2"/>
- </require>
- <require comment="Promoted from VK_EXT_subgroup_size_control (STDPROMOTE/PROPLIMCHANGE) (extension 226)">
- <type name="VkPhysicalDeviceSubgroupSizeControlFeatures"/>
- <type name="VkPhysicalDeviceSubgroupSizeControlProperties"/>
- <type name="VkPipelineShaderStageRequiredSubgroupSizeCreateInfo"/>
- <enum offset="0" extends="VkStructureType" extnumber="226" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES"/>
- <enum offset="1" extends="VkStructureType" extnumber="226" name="VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO"/>
- <enum offset="2" extends="VkStructureType" extnumber="226" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES"/>
- <enum bitpos="0" extends="VkPipelineShaderStageCreateFlagBits" name="VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT"/>
- <enum bitpos="1" extends="VkPipelineShaderStageCreateFlagBits" name="VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT"/>
- </require>
- <require comment="Promoted from VK_EXT_inline_uniform_block (STDPROMOTE/PROPLIMCHANGE) (extension 139)">
- <enum offset="0" extends="VkDescriptorType" extnumber="139" name="VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK"/>
- <enum offset="0" extends="VkStructureType" extnumber="139" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES"/>
- <enum offset="1" extends="VkStructureType" extnumber="139" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES"/>
- <enum offset="2" extends="VkStructureType" extnumber="139" name="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK"/>
- <enum offset="3" extends="VkStructureType" extnumber="139" name="VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO"/>
- <type name="VkPhysicalDeviceInlineUniformBlockFeatures"/>
- <type name="VkPhysicalDeviceInlineUniformBlockProperties"/>
- <type name="VkWriteDescriptorSetInlineUniformBlock"/>
- <type name="VkDescriptorPoolInlineUniformBlockCreateInfo"/>
- </require>
- <require comment="Promoted from VK_EXT_ycbcr_2plane_444_formats (does not promote the Feature struct, just the formats) (extension 331)">
- <enum offset="0" extends="VkFormat" extnumber="331" name="VK_FORMAT_G8_B8R8_2PLANE_444_UNORM"/>
- <enum offset="1" extends="VkFormat" extnumber="331" name="VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16"/>
- <enum offset="2" extends="VkFormat" extnumber="331" name="VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16"/>
- <enum offset="3" extends="VkFormat" extnumber="331" name="VK_FORMAT_G16_B16R16_2PLANE_444_UNORM"/>
- </require>
- <require comment="Promoted from VK_EXT_4444_formats (does not promote the Feature struct, just the formats) (extension 341)">
- <enum offset="0" extends="VkFormat" extnumber="341" name="VK_FORMAT_A4R4G4B4_UNORM_PACK16"/>
- <enum offset="1" extends="VkFormat" extnumber="341" name="VK_FORMAT_A4B4G4R4_UNORM_PACK16"/>
- </require>
- <require comment="Promoted from VK_EXT_texture_compression_astc_hdr (Feature struct is promoted, but becomes optional) (extension 67)">
- <enum offset="0" extends="VkStructureType" extnumber="67" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES"/>
- <type name="VkPhysicalDeviceTextureCompressionASTCHDRFeatures"/>
- <enum offset="0" extends="VkFormat" extnumber="67" name="VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK"/>
- <enum offset="1" extends="VkFormat" extnumber="67" name="VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK"/>
- <enum offset="2" extends="VkFormat" extnumber="67" name="VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK"/>
- <enum offset="3" extends="VkFormat" extnumber="67" name="VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK"/>
- <enum offset="4" extends="VkFormat" extnumber="67" name="VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK"/>
- <enum offset="5" extends="VkFormat" extnumber="67" name="VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK"/>
- <enum offset="6" extends="VkFormat" extnumber="67" name="VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK"/>
- <enum offset="7" extends="VkFormat" extnumber="67" name="VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK"/>
- <enum offset="8" extends="VkFormat" extnumber="67" name="VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK"/>
- <enum offset="9" extends="VkFormat" extnumber="67" name="VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK"/>
- <enum offset="10" extends="VkFormat" extnumber="67" name="VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK"/>
- <enum offset="11" extends="VkFormat" extnumber="67" name="VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK"/>
- <enum offset="12" extends="VkFormat" extnumber="67" name="VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK"/>
- <enum offset="13" extends="VkFormat" extnumber="67" name="VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK"/>
- </require>
- <!-- Beginning of phase II extensions -->
- <require comment="Promoted from VK_KHR_dynamic_rendering (extension 45)">
- <command name="vkCmdBeginRendering"/>
- <command name="vkCmdEndRendering"/>
- <enum offset="0" extends="VkStructureType" extnumber="45" name="VK_STRUCTURE_TYPE_RENDERING_INFO"/>
- <enum offset="1" extends="VkStructureType" extnumber="45" name="VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO"/>
- <enum offset="2" extends="VkStructureType" extnumber="45" name="VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO"/>
- <enum offset="3" extends="VkStructureType" extnumber="45" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES"/>
- <enum offset="4" extends="VkStructureType" extnumber="45" name="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO"/>
- <enum offset="0" extends="VkAttachmentStoreOp" extnumber="302" name="VK_ATTACHMENT_STORE_OP_NONE"/>
- <type name="VkRenderingInfo"/>
- <type name="VkRenderingAttachmentInfo"/>
- <type name="VkPipelineRenderingCreateInfo"/>
- <type name="VkPhysicalDeviceDynamicRenderingFeatures"/>
- <type name="VkCommandBufferInheritanceRenderingInfo"/>
- <type name="VkRenderingFlags"/>
- <type name="VkRenderingFlagBits"/>
- </require>
- <require comment="Promoted from VK_EXT_extended_dynamic_state (Feature struct is not promoted) (extension 268)">
- <enum offset="0" extends="VkDynamicState" extnumber="268" name="VK_DYNAMIC_STATE_CULL_MODE"/>
- <enum offset="1" extends="VkDynamicState" extnumber="268" name="VK_DYNAMIC_STATE_FRONT_FACE"/>
- <enum offset="2" extends="VkDynamicState" extnumber="268" name="VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY"/>
- <enum offset="3" extends="VkDynamicState" extnumber="268" name="VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT"/>
- <enum offset="4" extends="VkDynamicState" extnumber="268" name="VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT"/>
- <enum offset="5" extends="VkDynamicState" extnumber="268" name="VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE"/>
- <enum offset="6" extends="VkDynamicState" extnumber="268" name="VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE"/>
- <enum offset="7" extends="VkDynamicState" extnumber="268" name="VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE"/>
- <enum offset="8" extends="VkDynamicState" extnumber="268" name="VK_DYNAMIC_STATE_DEPTH_COMPARE_OP"/>
- <enum offset="9" extends="VkDynamicState" extnumber="268" name="VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE"/>
- <enum offset="10" extends="VkDynamicState" extnumber="268" name="VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE"/>
- <enum offset="11" extends="VkDynamicState" extnumber="268" name="VK_DYNAMIC_STATE_STENCIL_OP"/>
- <command name="vkCmdSetCullMode"/>
- <command name="vkCmdSetFrontFace"/>
- <command name="vkCmdSetPrimitiveTopology"/>
- <command name="vkCmdSetViewportWithCount"/>
- <command name="vkCmdSetScissorWithCount"/>
- <command name="vkCmdBindVertexBuffers2"/>
- <command name="vkCmdSetDepthTestEnable"/>
- <command name="vkCmdSetDepthWriteEnable"/>
- <command name="vkCmdSetDepthCompareOp"/>
- <command name="vkCmdSetDepthBoundsTestEnable"/>
- <command name="vkCmdSetStencilTestEnable"/>
- <command name="vkCmdSetStencilOp"/>
- </require>
- <require comment="Promoted from VK_KHR_shader_integer_dot_product (extension 281)">
- <enum offset="0" extends="VkStructureType" extnumber="281" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES"/>
- <enum offset="1" extends="VkStructureType" extnumber="281" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES"/>
- <type name="VkPhysicalDeviceShaderIntegerDotProductFeatures"/>
- <type name="VkPhysicalDeviceShaderIntegerDotProductProperties"/>
- </require>
- <require comment="Promoted from VK_EXT_texel_buffer_alignment (extension 282)">
- <enum offset="1" extends="VkStructureType" extnumber="282" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES"/>
- <type name="VkPhysicalDeviceTexelBufferAlignmentProperties"/>
- </require>
- <require comment="Promoted from VK_KHR_format_feature_flags2 (extension 361)">
- <enum offset="0" extends="VkStructureType" extnumber="361" name="VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3"/>
- <type name="VkFormatFeatureFlags2"/>
- <type name="VkFormatFeatureFlagBits2"/>
- <type name="VkFormatProperties3"/>
- </require>
- <require comment="Promoted from VK_EXT_extended_dynamic_state2 (Feature struct and optional state are not promoted) (extension 378)">
- <enum offset="1" extends="VkDynamicState" extnumber="378" name="VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE"/>
- <enum offset="2" extends="VkDynamicState" extnumber="378" name="VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE"/>
- <enum offset="4" extends="VkDynamicState" extnumber="378" name="VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE"/>
- <command name="vkCmdSetRasterizerDiscardEnable"/>
- <command name="vkCmdSetDepthBiasEnable"/>
- <command name="vkCmdSetPrimitiveRestartEnable"/>
- </require>
- <require comment="Promoted from VK_KHR_maintenance4 (extension 414)">
- <enum offset="0" extends="VkStructureType" extnumber="414" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES"/>
- <enum offset="1" extends="VkStructureType" extnumber="414" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES"/>
- <enum offset="2" extends="VkStructureType" extnumber="414" name="VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS"/>
- <enum offset="3" extends="VkStructureType" extnumber="414" name="VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS"/>
- <enum value="0" extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_NONE"/>
- <type name="VkPhysicalDeviceMaintenance4Features"/>
- <type name="VkPhysicalDeviceMaintenance4Properties"/>
- <type name="VkDeviceBufferMemoryRequirements"/>
- <type name="VkDeviceImageMemoryRequirements"/>
- <command name="vkGetDeviceBufferMemoryRequirements"/>
- <command name="vkGetDeviceImageMemoryRequirements"/>
- <command name="vkGetDeviceImageSparseMemoryRequirements"/>
- </require>
- </feature>
-
- <extensions comment="Vulkan extension interface definitions">
- <extension name="VK_KHR_surface" number="1" type="instance" author="KHR" contact="James Jones @cubanismo,Ian Elliott @ianelliottus" supported="vulkan">
- <require>
- <enum value="25" name="VK_KHR_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_surface&quot;" name="VK_KHR_SURFACE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkResult" dir="-" name="VK_ERROR_SURFACE_LOST_KHR"/>
- <enum offset="1" extends="VkResult" dir="-" name="VK_ERROR_NATIVE_WINDOW_IN_USE_KHR"/>
- <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_SURFACE_KHR"/>
- <type name="VkSurfaceKHR"/>
- <type name="VkSurfaceTransformFlagBitsKHR"/>
- <type name="VkPresentModeKHR"/>
- <type name="VkColorSpaceKHR"/>
- <type name="VkCompositeAlphaFlagBitsKHR"/>
- <type name="VkCompositeAlphaFlagsKHR"/>
- <type name="VkSurfaceCapabilitiesKHR"/>
- <type name="VkSurfaceFormatKHR"/>
- <command name="vkDestroySurfaceKHR"/>
- <command name="vkGetPhysicalDeviceSurfaceSupportKHR"/>
- <command name="vkGetPhysicalDeviceSurfaceCapabilitiesKHR"/>
- <command name="vkGetPhysicalDeviceSurfaceFormatsKHR"/>
- <command name="vkGetPhysicalDeviceSurfacePresentModesKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_swapchain" number="2" type="device" requires="VK_KHR_surface" author="KHR" contact="James Jones @cubanismo,Ian Elliott @ianelliottus" supported="vulkan">
- <require>
- <enum value="70" name="VK_KHR_SWAPCHAIN_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_swapchain&quot;" name="VK_KHR_SWAPCHAIN_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"/>
- <enum offset="2" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_PRESENT_SRC_KHR"/>
- <enum offset="3" extends="VkResult" name="VK_SUBOPTIMAL_KHR"/>
- <enum offset="4" extends="VkResult" dir="-" name="VK_ERROR_OUT_OF_DATE_KHR"/>
- <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_SWAPCHAIN_KHR"/>
- <type name="VkSwapchainCreateFlagBitsKHR"/>
- <type name="VkSwapchainCreateFlagsKHR"/>
- <type name="VkSwapchainCreateInfoKHR"/>
- <type name="VkSwapchainKHR"/>
- <type name="VkPresentInfoKHR"/>
- <command name="vkCreateSwapchainKHR"/>
- <command name="vkDestroySwapchainKHR"/>
- <command name="vkGetSwapchainImagesKHR"/>
- <command name="vkAcquireNextImageKHR"/>
- <command name="vkQueuePresentKHR"/>
- </require>
- <require feature="VK_VERSION_1_1">
- <comment>This duplicates definitions in VK_KHR_device_group below</comment>
- <enum extends="VkStructureType" extnumber="61" offset="7" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"/>
- <enum extends="VkStructureType" extnumber="61" offset="8" name="VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR"/>
- <enum extends="VkStructureType" extnumber="61" offset="9" name="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR"/>
- <enum extends="VkStructureType" extnumber="61" offset="10" name="VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR"/>
- <enum extends="VkStructureType" extnumber="61" offset="11" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR"/>
- <enum extends="VkStructureType" extnumber="61" offset="12" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR"/>
- <enum bitpos="0" extends="VkSwapchainCreateFlagBitsKHR" name="VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR" comment="Allow images with VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"/>
- <type name="VkImageSwapchainCreateInfoKHR"/>
- <type name="VkBindImageMemorySwapchainInfoKHR"/>
- <type name="VkAcquireNextImageInfoKHR"/>
- <type name="VkDeviceGroupPresentModeFlagBitsKHR"/>
- <type name="VkDeviceGroupPresentModeFlagsKHR"/>
- <type name="VkDeviceGroupPresentCapabilitiesKHR"/>
- <type name="VkDeviceGroupPresentInfoKHR"/>
- <type name="VkDeviceGroupSwapchainCreateInfoKHR"/>
- <command name="vkGetDeviceGroupPresentCapabilitiesKHR"/>
- <command name="vkGetDeviceGroupSurfacePresentModesKHR"/>
- <command name="vkGetPhysicalDevicePresentRectanglesKHR"/>
- <command name="vkAcquireNextImage2KHR"/>
- <enum bitpos="1" extends="VkSwapchainCreateFlagBitsKHR" name="VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR" comment="Swapchain is protected"/>
- </require>
- </extension>
- <extension name="VK_KHR_display" number="3" type="instance" requires="VK_KHR_surface" author="KHR" contact="James Jones @cubanismo,Norbert Nopper @FslNopper" supported="vulkan">
- <require>
- <enum value="23" name="VK_KHR_DISPLAY_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_display&quot;" name="VK_KHR_DISPLAY_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR"/>
- <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_DISPLAY_KHR"/>
- <enum offset="1" extends="VkObjectType" name="VK_OBJECT_TYPE_DISPLAY_MODE_KHR"/>
- <type name="VkDisplayKHR"/>
- <type name="VkDisplayModeCreateFlagsKHR"/>
- <type name="VkDisplayModeCreateInfoKHR"/>
- <type name="VkDisplayModeKHR"/>
- <type name="VkDisplayModeParametersKHR"/>
- <type name="VkDisplayModePropertiesKHR"/>
- <type name="VkDisplayPlaneAlphaFlagBitsKHR"/>
- <type name="VkDisplayPlaneAlphaFlagsKHR"/>
- <type name="VkDisplayPlaneCapabilitiesKHR"/>
- <type name="VkDisplayPlanePropertiesKHR"/>
- <type name="VkDisplayPropertiesKHR"/>
- <type name="VkDisplaySurfaceCreateFlagsKHR"/>
- <type name="VkDisplaySurfaceCreateInfoKHR"/>
- <type name="VkSurfaceTransformFlagsKHR"/>
- <command name="vkGetPhysicalDeviceDisplayPropertiesKHR"/>
- <command name="vkGetPhysicalDeviceDisplayPlanePropertiesKHR"/>
- <command name="vkGetDisplayPlaneSupportedDisplaysKHR"/>
- <command name="vkGetDisplayModePropertiesKHR"/>
- <command name="vkCreateDisplayModeKHR"/>
- <command name="vkGetDisplayPlaneCapabilitiesKHR"/>
- <command name="vkCreateDisplayPlaneSurfaceKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_display_swapchain" number="4" type="device" requires="VK_KHR_swapchain,VK_KHR_display" author="KHR" contact="James Jones @cubanismo" supported="vulkan">
- <require>
- <enum value="10" name="VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_display_swapchain&quot;" name="VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR"/>
- <enum offset="1" extends="VkResult" dir="-" name="VK_ERROR_INCOMPATIBLE_DISPLAY_KHR"/>
- <type name="VkDisplayPresentInfoKHR"/>
- <command name="vkCreateSharedSwapchainsKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_xlib_surface" number="5" type="instance" requires="VK_KHR_surface" platform="xlib" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" supported="vulkan">
- <require>
- <enum value="6" name="VK_KHR_XLIB_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_xlib_surface&quot;" name="VK_KHR_XLIB_SURFACE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR"/>
- <type name="VkXlibSurfaceCreateFlagsKHR"/>
- <type name="VkXlibSurfaceCreateInfoKHR"/>
- <command name="vkCreateXlibSurfaceKHR"/>
- <command name="vkGetPhysicalDeviceXlibPresentationSupportKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_xcb_surface" number="6" type="instance" requires="VK_KHR_surface" platform="xcb" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" supported="vulkan">
- <require>
- <enum value="6" name="VK_KHR_XCB_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_xcb_surface&quot;" name="VK_KHR_XCB_SURFACE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR"/>
- <type name="VkXcbSurfaceCreateFlagsKHR"/>
- <type name="VkXcbSurfaceCreateInfoKHR"/>
- <command name="vkCreateXcbSurfaceKHR"/>
- <command name="vkGetPhysicalDeviceXcbPresentationSupportKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_wayland_surface" number="7" type="instance" requires="VK_KHR_surface" platform="wayland" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" supported="vulkan">
- <require>
- <enum value="6" name="VK_KHR_WAYLAND_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_wayland_surface&quot;" name="VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR"/>
- <type name="VkWaylandSurfaceCreateFlagsKHR"/>
- <type name="VkWaylandSurfaceCreateInfoKHR"/>
- <command name="vkCreateWaylandSurfaceKHR"/>
- <command name="vkGetPhysicalDeviceWaylandPresentationSupportKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_mir_surface" number="8" type="instance" requires="VK_KHR_surface" author="KHR" supported="disabled" comment="Extension permanently disabled. Extension number should not be reused">
- <require>
- <enum value="4" name="VK_KHR_MIR_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_mir_surface&quot;" name="VK_KHR_MIR_SURFACE_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_android_surface" number="9" type="instance" requires="VK_KHR_surface" platform="android" author="KHR" contact="Jesse Hall @critsec" supported="vulkan">
- <require>
- <enum value="6" name="VK_KHR_ANDROID_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_android_surface&quot;" name="VK_KHR_ANDROID_SURFACE_EXTENSION_NAME"/>
- <type name="ANativeWindow"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR"/>
- <type name="VkAndroidSurfaceCreateFlagsKHR"/>
- <type name="VkAndroidSurfaceCreateInfoKHR"/>
- <command name="vkCreateAndroidSurfaceKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_win32_surface" number="10" type="instance" requires="VK_KHR_surface" platform="win32" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" supported="vulkan">
- <require>
- <enum value="6" name="VK_KHR_WIN32_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_win32_surface&quot;" name="VK_KHR_WIN32_SURFACE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR"/>
- <type name="VkWin32SurfaceCreateFlagsKHR"/>
- <type name="VkWin32SurfaceCreateInfoKHR"/>
- <command name="vkCreateWin32SurfaceKHR"/>
- <command name="vkGetPhysicalDeviceWin32PresentationSupportKHR"/>
- </require>
- </extension>
- <extension name="VK_ANDROID_native_buffer" number="11" type="device" author="ANDROID" platform="android" contact="Jesse Hall @critsec" supported="disabled">
- <require>
- <comment>VK_ANDROID_native_buffer is used between the Android Vulkan loader and drivers to implement the WSI extensions. It is not exposed to applications and uses types that are not part of Android's stable public API, so it is left disabled to keep it out of the standard Vulkan headers.</comment>
- <enum value="8" name="VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION"/>
- <enum value="11" name="VK_ANDROID_NATIVE_BUFFER_NUMBER"/>
- <enum value="&quot;VK_ANDROID_native_buffer&quot;" name="VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME"/>
- <enum name="VK_ANDROID_NATIVE_BUFFER_NAME" alias="VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID"/>
- <type name="VkNativeBufferANDROID"/>
- <type name="VkSwapchainImageCreateInfoANDROID"/>
- <type name="VkPhysicalDevicePresentationPropertiesANDROID"/>
- <type name="VkNativeBufferUsage2ANDROID"/>
- <type name="VkSwapchainImageUsageFlagBitsANDROID"/>
- <type name="VkSwapchainImageUsageFlagsANDROID"/>
- <command name="vkGetSwapchainGrallocUsageANDROID"/>
- <command name="vkAcquireImageANDROID"/>
- <command name="vkQueueSignalReleaseImageANDROID"/>
- <command name="vkGetSwapchainGrallocUsage2ANDROID"/>
- </require>
- </extension>
- <extension name="VK_EXT_debug_report" number="12" type="instance" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" specialuse="debugging" supported="vulkan" deprecatedby="VK_EXT_debug_utils">
- <require>
- <enum value="10" name="VK_EXT_DEBUG_REPORT_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_debug_report&quot;" name="VK_EXT_DEBUG_REPORT_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"/>
- <enum alias="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT" comment="Backwards-compatible alias containing a typo"/>
- <enum offset="1" extends="VkResult" dir="-" name="VK_ERROR_VALIDATION_FAILED_EXT"/>
- <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT"/>
- <type name="VkDebugReportCallbackEXT"/>
- <type name="PFN_vkDebugReportCallbackEXT"/>
- <type name="VkDebugReportFlagBitsEXT"/>
- <type name="VkDebugReportFlagsEXT"/>
- <type name="VkDebugReportObjectTypeEXT"/>
- <type name="VkDebugReportCallbackCreateInfoEXT"/>
- <command name="vkCreateDebugReportCallbackEXT"/>
- <command name="vkDestroyDebugReportCallbackEXT"/>
- <command name="vkDebugReportMessageEXT"/>
- </require>
- <require feature="VK_VERSION_1_1">
- <comment>This duplicates definitions in other extensions, below</comment>
- <enum extends="VkDebugReportObjectTypeEXT" extnumber="157" offset="0" name="VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT"/>
- <enum extends="VkDebugReportObjectTypeEXT" extnumber="86" offset="0" name="VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT"/>
- </require>
- </extension>
- <extension name="VK_NV_glsl_shader" number="13" type="device" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan" deprecatedby="">
- <require>
- <enum value="1" name="VK_NV_GLSL_SHADER_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_glsl_shader&quot;" name="VK_NV_GLSL_SHADER_EXTENSION_NAME"/>
- <enum offset="0" extends="VkResult" dir="-" name="VK_ERROR_INVALID_SHADER_NV"/>
- </require>
- </extension>
- <extension name="VK_EXT_depth_range_unrestricted" type="device" number="14" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_depth_range_unrestricted&quot;" name="VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_sampler_mirror_clamp_to_edge" type="device" number="15" author="KHR" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="3" name="VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_sampler_mirror_clamp_to_edge&quot;" name="VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME"/>
- <enum value="4" extends="VkSamplerAddressMode" name="VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE" comment="Note that this defines what was previously a core enum, and so uses the 'value' attribute rather than 'offset', and does not have a suffix. This is a special case, and should not be repeated"/>
- <enum extends="VkSamplerAddressMode" name="VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR" alias="VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE" comment="Alias introduced for consistency with extension suffixing rules"/>
- </require>
- </extension>
- <extension name="VK_IMG_filter_cubic" number="16" type="device" author="IMG" contact="Tobias Hector @tobski" supported="vulkan">
- <require>
- <enum value="1" name="VK_IMG_FILTER_CUBIC_SPEC_VERSION"/>
- <enum value="&quot;VK_IMG_filter_cubic&quot;" name="VK_IMG_FILTER_CUBIC_EXTENSION_NAME"/>
- <enum offset="0" extends="VkFilter" name="VK_FILTER_CUBIC_IMG"/>
- <enum bitpos="13" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG" comment="Format can be filtered with VK_FILTER_CUBIC_IMG when being sampled"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_17" number="17" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_17_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_17&quot;" name="VK_AMD_EXTENSION_17_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_18" number="18" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_18_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_18&quot;" name="VK_AMD_EXTENSION_18_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_rasterization_order" number="19" type="device" author="AMD" contact="Daniel Rakos @drakos-amd" supported="vulkan">
- <require>
- <enum value="1" name="VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_rasterization_order&quot;" name="VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD"/>
- <type name="VkRasterizationOrderAMD"/>
- <type name="VkPipelineRasterizationStateRasterizationOrderAMD"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_20" number="20" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_20_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_20&quot;" name="VK_AMD_EXTENSION_20_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_shader_trinary_minmax" number="21" type="device" author="AMD" contact="Qun Lin @linqun" supported="vulkan">
- <require>
- <enum value="1" name="VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_shader_trinary_minmax&quot;" name="VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_shader_explicit_vertex_parameter" number="22" type="device" author="AMD" contact="Qun Lin @linqun" supported="vulkan">
- <require>
- <enum value="1" name="VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_shader_explicit_vertex_parameter&quot;" name="VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_debug_marker" number="23" type="device" requires="VK_EXT_debug_report" author="Baldur Karlsson" contact="Baldur Karlsson @baldurk" specialuse="debugging" supported="vulkan" promotedto="VK_EXT_debug_utils">
- <require>
- <enum value="4" name="VK_EXT_DEBUG_MARKER_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_debug_marker&quot;" name="VK_EXT_DEBUG_MARKER_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT"/>
- <type name="VkDebugReportObjectTypeEXT"/>
- <type name="VkDebugMarkerObjectNameInfoEXT"/>
- <type name="VkDebugMarkerObjectTagInfoEXT"/>
- <type name="VkDebugMarkerMarkerInfoEXT"/>
- <command name="vkDebugMarkerSetObjectTagEXT"/>
- <command name="vkDebugMarkerSetObjectNameEXT"/>
- <command name="vkCmdDebugMarkerBeginEXT"/>
- <command name="vkCmdDebugMarkerEndEXT"/>
- <command name="vkCmdDebugMarkerInsertEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_video_queue" number="24" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_sampler_ycbcr_conversion" author="KHR" contact="Tony Zlatinski @tzlatinski" provisional="true" platform="provisional" supported="vulkan">
- <require>
- <enum value="2" name="VK_KHR_VIDEO_QUEUE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_video_queue&quot;" name="VK_KHR_VIDEO_QUEUE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="10" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="11" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="12" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="13" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="14" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="15" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="16" extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-
- <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_VIDEO_SESSION_KHR" comment="VkVideoSessionKHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="1" extends="VkObjectType" name="VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR" comment="VkVideoSessionParametersKHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-
- <enum offset="0" extends="VkQueryType" name="VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="4" extends="VkQueryResultFlagBits" name="VK_QUERY_RESULT_WITH_STATUS_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-
- <type name="VkVideoSessionKHR"/>
- <type name="VkVideoSessionParametersKHR"/>
-
- <type name="VkVideoCodecOperationFlagBitsKHR"/>
- <type name="VkVideoCodecOperationFlagsKHR"/>
- <type name="VkVideoChromaSubsamplingFlagBitsKHR"/>
- <type name="VkVideoChromaSubsamplingFlagsKHR"/>
- <type name="VkVideoComponentBitDepthFlagBitsKHR"/>
- <type name="VkVideoComponentBitDepthFlagsKHR"/>
- <type name="VkVideoCapabilityFlagBitsKHR"/>
- <type name="VkVideoCapabilityFlagsKHR"/>
- <type name="VkVideoSessionCreateFlagBitsKHR"/>
- <type name="VkVideoSessionCreateFlagsKHR"/>
- <type name="VkVideoBeginCodingFlagsKHR"/>
- <type name="VkVideoEndCodingFlagsKHR"/>
- <type name="VkVideoCodingControlFlagBitsKHR"/>
- <type name="VkVideoCodingControlFlagsKHR"/>
- <type name="VkVideoCodingQualityPresetFlagBitsKHR"/>
- <type name="VkVideoCodingQualityPresetFlagsKHR"/>
-
- <type name="VkQueueFamilyQueryResultStatusProperties2KHR"/>
- <type name="VkQueryResultStatusKHR"/>
-
- <type name="VkVideoQueueFamilyProperties2KHR"/>
- <type name="VkVideoProfileKHR"/>
- <type name="VkVideoProfilesKHR"/>
- <type name="VkVideoCapabilitiesKHR"/>
- <type name="VkPhysicalDeviceVideoFormatInfoKHR"/>
- <type name="VkVideoFormatPropertiesKHR"/>
- <type name="VkVideoPictureResourceKHR"/>
- <type name="VkVideoReferenceSlotKHR"/>
- <type name="VkVideoGetMemoryPropertiesKHR"/>
- <type name="VkVideoBindMemoryKHR"/>
- <type name="VkVideoSessionCreateInfoKHR"/>
- <type name="VkVideoSessionParametersCreateInfoKHR"/>
- <type name="VkVideoSessionParametersUpdateInfoKHR"/>
- <type name="VkVideoBeginCodingInfoKHR"/>
- <type name="VkVideoEndCodingInfoKHR"/>
- <type name="VkVideoCodingControlInfoKHR"/>
-
- <command name="vkGetPhysicalDeviceVideoCapabilitiesKHR"/>
- <command name="vkGetPhysicalDeviceVideoFormatPropertiesKHR"/>
-
- <command name="vkCreateVideoSessionKHR"/>
- <command name="vkDestroyVideoSessionKHR"/>
- <command name="vkGetVideoSessionMemoryRequirementsKHR"/>
- <command name="vkBindVideoSessionMemoryKHR"/>
- <command name="vkCreateVideoSessionParametersKHR"/>
- <command name="vkUpdateVideoSessionParametersKHR"/>
- <command name="vkDestroyVideoSessionParametersKHR"/>
- <command name="vkCmdBeginVideoCodingKHR"/>
- <command name="vkCmdEndVideoCodingKHR"/>
- <command name="vkCmdControlVideoCodingKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_video_decode_queue" number="25" type="device" requires="VK_KHR_video_queue,VK_KHR_synchronization2" author="KHR" contact="[email protected]" provisional="true" platform="provisional" supported="vulkan">
- <require>
- <enum value="2" name="VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_video_decode_queue&quot;" name="VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="5" extends="VkQueueFlagBits" name="VK_QUEUE_VIDEO_DECODE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="26" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="35" extends="VkAccessFlagBits2" name="VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS" />
- <enum bitpos="36" extends="VkAccessFlagBits2" name="VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="13" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="14" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="10" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="11" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="12" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="25" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="26" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="0" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="1" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="2" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-
- <type name="VkVideoDecodeFlagBitsKHR"/>
- <type name="VkVideoDecodeFlagsKHR"/>
-
- <type name="VkVideoDecodeInfoKHR"/>
- <command name="vkCmdDecodeVideoKHR"/>
- </require>
- <require extension="VK_KHR_format_feature_flags2">
- <enum bitpos="25" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="26" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- </require>
- </extension>
- <extension name="VK_AMD_gcn_shader" number="26" type="device" author="AMD" contact="Dominik Witczak @dominikwitczakamd" supported="vulkan">
- <require>
- <enum value="1" name="VK_AMD_GCN_SHADER_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_gcn_shader&quot;" name="VK_AMD_GCN_SHADER_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_dedicated_allocation" number="27" type="device" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan" deprecatedby="VK_KHR_dedicated_allocation">
- <require>
- <enum value="1" name="VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_dedicated_allocation&quot;" name="VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV"/>
- <type name="VkDedicatedAllocationImageCreateInfoNV"/>
- <type name="VkDedicatedAllocationBufferCreateInfoNV"/>
- <type name="VkDedicatedAllocationMemoryAllocateInfoNV"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_28" number="28" author="NV" contact="Piers Daniell @pdaniell-nv" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_28_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_28&quot;" name="VK_EXT_EXTENSION_28_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_transform_feedback" number="29" type="device" author="NV" contact="Piers Daniell @pdaniell-nv" specialuse="glemulation,d3demulation,devtools" supported="vulkan" requires="VK_KHR_get_physical_device_properties2">
- <require>
- <enum value="1" name="VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_transform_feedback&quot;" name="VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME"/>
- <command name="vkCmdBindTransformFeedbackBuffersEXT"/>
- <command name="vkCmdBeginTransformFeedbackEXT"/>
- <command name="vkCmdEndTransformFeedbackEXT"/>
- <command name="vkCmdBeginQueryIndexedEXT"/>
- <command name="vkCmdEndQueryIndexedEXT"/>
- <command name="vkCmdDrawIndirectByteCountEXT"/>
-
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT"/>
-
- <enum offset="4" extends="VkQueryType" name="VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT"/>
-
- <enum bitpos="11" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"/>
- <enum bitpos="12" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"/>
-
- <enum bitpos="25" extends="VkAccessFlagBits" name="VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"/>
- <enum bitpos="26" extends="VkAccessFlagBits" name="VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"/>
- <enum bitpos="27" extends="VkAccessFlagBits" name="VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"/>
-
- <enum bitpos="24" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"/>
-
- <type name="VkPhysicalDeviceTransformFeedbackFeaturesEXT"/>
- <type name="VkPhysicalDeviceTransformFeedbackPropertiesEXT"/>
- <type name="VkPipelineRasterizationStateStreamCreateInfoEXT"/>
-
- <type name="VkPipelineRasterizationStateStreamCreateFlagsEXT"/>
- </require>
- </extension>
- <extension name="VK_NVX_binary_import" number="30" type="device" author="NVX" contact="Eric Werness @ewerness-nv,Liam Middlebrook @liam-middlebrook" supported="vulkan">
- <require>
- <enum value="1" name="VK_NVX_BINARY_IMPORT_SPEC_VERSION"/>
- <enum value="&quot;VK_NVX_binary_import&quot;" name="VK_NVX_BINARY_IMPORT_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX"/>
- <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_CU_MODULE_NVX"/>
- <enum offset="1" extends="VkObjectType" name="VK_OBJECT_TYPE_CU_FUNCTION_NVX"/>
- <enum offset="0" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT"/>
- <enum offset="1" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT"/>
- <type name="VkCuModuleNVX"/>
- <type name="VkCuFunctionNVX"/>
- <type name="VkCuModuleCreateInfoNVX"/>
- <type name="VkCuFunctionCreateInfoNVX"/>
- <type name="VkCuLaunchInfoNVX"/>
- <command name="vkCreateCuModuleNVX"/>
- <command name="vkCreateCuFunctionNVX"/>
- <command name="vkDestroyCuModuleNVX"/>
- <command name="vkDestroyCuFunctionNVX"/>
- <command name="vkCmdCuLaunchKernelNVX"/>
- </require>
- </extension>
- <extension name="VK_NVX_image_view_handle" number="31" type="device" author="NVX" contact="Eric Werness @ewerness-nv" supported="vulkan">
- <require>
- <enum value="2" name="VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION"/>
- <enum value="&quot;VK_NVX_image_view_handle&quot;" name="VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX"/>
- <type name="VkImageViewHandleInfoNVX"/>
- <type name="VkImageViewAddressPropertiesNVX"/>
- <command name="vkGetImageViewHandleNVX"/>
- <command name="vkGetImageViewAddressNVX"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_32" number="32" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_32_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_32&quot;" name="VK_AMD_EXTENSION_32_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_33" number="33" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_33_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_33&quot;" name="VK_AMD_EXTENSION_33_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_draw_indirect_count" number="34" type="device" author="AMD" contact="Daniel Rakos @drakos-amd" supported="vulkan" promotedto="VK_KHR_draw_indirect_count">
- <require>
- <enum value="2" name="VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_draw_indirect_count&quot;" name="VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME"/>
- <command name="vkCmdDrawIndirectCountAMD"/>
- <command name="vkCmdDrawIndexedIndirectCountAMD"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_35" number="35" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_35_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_35&quot;" name="VK_AMD_EXTENSION_35_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_negative_viewport_height" number="36" type="device" author="AMD" contact="Matthaeus G. Chajdas @anteru" supported="vulkan" obsoletedby="VK_KHR_maintenance1">
- <require>
- <enum value="1" name="VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_negative_viewport_height&quot;" name="VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_gpu_shader_half_float" number="37" type="device" author="AMD" contact="Dominik Witczak @dominikwitczakamd" supported="vulkan" deprecatedby="VK_KHR_shader_float16_int8">
- <require>
- <enum value="2" name="VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_gpu_shader_half_float&quot;" name="VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_shader_ballot" number="38" type="device" author="AMD" contact="Dominik Witczak @dominikwitczakamd" supported="vulkan">
- <require>
- <enum value="1" name="VK_AMD_SHADER_BALLOT_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_shader_ballot&quot;" name="VK_AMD_SHADER_BALLOT_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_video_encode_h264" number="39" type="device" requires="VK_KHR_video_encode_queue" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" provisional="true" platform="provisional" supported="vulkan">
- <require>
- <enum value="5" name="VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_video_encode_h264&quot;" name="VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="10" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="11" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="16" extends="VkVideoCodecOperationFlagBitsKHR" name="VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-
- <type name="VkVideoEncodeH264CapabilityFlagBitsEXT"/>
- <type name="VkVideoEncodeH264CapabilityFlagsEXT"/>
- <type name="VkVideoEncodeH264InputModeFlagBitsEXT"/>
- <type name="VkVideoEncodeH264InputModeFlagsEXT"/>
- <type name="VkVideoEncodeH264OutputModeFlagBitsEXT"/>
- <type name="VkVideoEncodeH264OutputModeFlagsEXT"/>
- <type name="VkVideoEncodeH264CreateFlagBitsEXT"/>
- <type name="VkVideoEncodeH264CreateFlagsEXT"/>
- <type name="VkVideoEncodeH264CapabilitiesEXT"/>
- <type name="VkVideoEncodeH264SessionCreateInfoEXT"/>
- <type name="VkVideoEncodeH264SessionParametersCreateInfoEXT"/>
- <type name="VkVideoEncodeH264SessionParametersAddInfoEXT"/>
- <type name="VkVideoEncodeH264VclFrameInfoEXT"/>
- <type name="VkVideoEncodeH264ReferenceListsEXT"/>
- <type name="VkVideoEncodeH264EmitPictureParametersEXT"/>
- <type name="VkVideoEncodeH264DpbSlotInfoEXT"/>
- <type name="VkVideoEncodeH264NaluSliceEXT"/>
- <type name="VkVideoEncodeH264ProfileEXT"/>
- <type name="VkVideoEncodeH264RateControlInfoEXT"/>
- <type name="VkVideoEncodeH264RateControlStructureFlagBitsEXT"/>
- <type name="VkVideoEncodeH264RateControlStructureFlagsEXT"/>
- <type name="VkVideoEncodeH264RateControlLayerInfoEXT"/>
- <type name="VkVideoEncodeH264QpEXT"/>
- <type name="VkVideoEncodeH264FrameSizeEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_video_encode_h265" number="40" type="device" requires="VK_KHR_video_encode_queue" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" provisional="true" platform="provisional" supported="vulkan">
- <require>
- <enum value="5" name="VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_video_encode_h265&quot;" name="VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="10" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="11" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="17" extends="VkVideoCodecOperationFlagBitsKHR" name="VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-
- <type name="VkVideoEncodeH265CapabilityFlagBitsEXT"/>
- <type name="VkVideoEncodeH265CapabilityFlagsEXT"/>
- <type name="VkVideoEncodeH265InputModeFlagBitsEXT"/>
- <type name="VkVideoEncodeH265InputModeFlagsEXT"/>
- <type name="VkVideoEncodeH265OutputModeFlagBitsEXT"/>
- <type name="VkVideoEncodeH265OutputModeFlagsEXT"/>
- <type name="VkVideoEncodeH265CreateFlagsEXT" comment="Will add VkVideoEncodeH265CreateFlagBitsEXT when bits are defined in the future"/>
-
- <type name="VkVideoEncodeH265CtbSizeFlagBitsEXT"/>
- <type name="VkVideoEncodeH265CtbSizeFlagsEXT"/>
- <type name="VkVideoEncodeH265TransformBlockSizeFlagBitsEXT"/>
- <type name="VkVideoEncodeH265TransformBlockSizeFlagsEXT"/>
- <type name="VkVideoEncodeH265CapabilitiesEXT"/>
- <type name="VkVideoEncodeH265SessionCreateInfoEXT"/>
- <type name="VkVideoEncodeH265SessionParametersCreateInfoEXT"/>
- <type name="VkVideoEncodeH265SessionParametersAddInfoEXT"/>
- <type name="VkVideoEncodeH265VclFrameInfoEXT"/>
- <type name="VkVideoEncodeH265EmitPictureParametersEXT"/>
- <type name="VkVideoEncodeH265DpbSlotInfoEXT"/>
- <type name="VkVideoEncodeH265NaluSliceSegmentEXT"/>
- <type name="VkVideoEncodeH265ProfileEXT"/>
- <type name="VkVideoEncodeH265ReferenceListsEXT"/>
- <type name="VkVideoEncodeH265RateControlInfoEXT"/>
- <type name="VkVideoEncodeH265RateControlStructureFlagBitsEXT"/>
- <type name="VkVideoEncodeH265RateControlStructureFlagsEXT"/>
- <type name="VkVideoEncodeH265RateControlLayerInfoEXT"/>
- <type name="VkVideoEncodeH265QpEXT"/>
- <type name="VkVideoEncodeH265FrameSizeEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_video_decode_h264" number="41" type="device" requires="VK_KHR_video_decode_queue" author="KHR" contact="[email protected]" provisional="true" platform="provisional" supported="vulkan">
- <require>
- <enum value="3" name="VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_video_decode_h264&quot;" name="VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="0" extends="VkVideoCodecOperationFlagBitsKHR" name="VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <type name="VkVideoDecodeH264PictureLayoutFlagBitsEXT"/>
- <type name="VkVideoDecodeH264PictureLayoutFlagsEXT"/>
- <type name="VkVideoDecodeH264CreateFlagsEXT"/>
- <type name="VkVideoDecodeH264ProfileEXT"/>
- <type name="VkVideoDecodeH264CapabilitiesEXT"/>
- <type name="VkVideoDecodeH264SessionCreateInfoEXT"/>
- <type name="VkVideoDecodeH264SessionParametersCreateInfoEXT"/>
- <type name="VkVideoDecodeH264SessionParametersAddInfoEXT"/>
- <type name="VkVideoDecodeH264PictureInfoEXT"/>
- <type name="VkVideoDecodeH264MvcEXT"/>
- <type name="VkVideoDecodeH264DpbSlotInfoEXT"/>
- </require>
- </extension>
- <extension name="VK_AMD_texture_gather_bias_lod" number="42" author="AMD" contact="Rex Xu @amdrexu" supported="vulkan" type="device" requires="VK_KHR_get_physical_device_properties2">
- <require>
- <enum value="1" name="VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_texture_gather_bias_lod&quot;" name="VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD"/>
- <type name="VkTextureLODGatherFormatPropertiesAMD"/>
- </require>
- </extension>
- <extension name="VK_AMD_shader_info" number="43" author="AMD" contact="Jaakko Konttinen @jaakkoamd" supported="vulkan" specialuse="devtools" type="device">
- <require>
- <enum value="1" name="VK_AMD_SHADER_INFO_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_shader_info&quot;" name="VK_AMD_SHADER_INFO_EXTENSION_NAME"/>
- <type name="VkShaderInfoTypeAMD"/>
- <type name="VkShaderResourceUsageAMD"/>
- <type name="VkShaderStatisticsInfoAMD"/>
- <command name="vkGetShaderInfoAMD"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_44" number="44" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_44_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_44&quot;" name="VK_AMD_EXTENSION_44_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_dynamic_rendering" number="45" author="KHR" type="device" requires="VK_KHR_get_physical_device_properties2" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_dynamic_rendering&quot;" name="VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME"/>
- <command name="vkCmdBeginRenderingKHR"/>
- <command name="vkCmdEndRenderingKHR"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDERING_INFO_KHR" alias="VK_STRUCTURE_TYPE_RENDERING_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR" alias="VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR" alias="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO"/>
- <enum extends="VkAttachmentStoreOp" name="VK_ATTACHMENT_STORE_OP_NONE_KHR" alias="VK_ATTACHMENT_STORE_OP_NONE"/>
- <type name="VkRenderingInfoKHR"/>
- <type name="VkRenderingAttachmentInfoKHR"/>
- <type name="VkPipelineRenderingCreateInfoKHR"/>
- <type name="VkPhysicalDeviceDynamicRenderingFeaturesKHR"/>
- <type name="VkCommandBufferInheritanceRenderingInfoKHR"/>
- <type name="VkRenderingFlagsKHR"/>
- <type name="VkRenderingFlagBitsKHR"/>
- </require>
- <require extension="VK_KHR_fragment_shading_rate">
- <enum bitpos="21" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
- <enum alias="VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" comment="Backwards-compatible alias containing a typo"/>
- <enum offset="6" extends="VkStructureType" extnumber="45" name="VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"/>
- <type name="VkRenderingFragmentShadingRateAttachmentInfoKHR"/>
- </require>
- <require extension="VK_EXT_fragment_density_map">
- <enum bitpos="22" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"/>
- <enum alias="VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" comment="Backwards-compatible alias containing a typo"/>
- <enum offset="7" extends="VkStructureType" extnumber="45" name="VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT"/>
- <type name="VkRenderingFragmentDensityMapAttachmentInfoEXT"/>
- </require>
- <require extension="VK_AMD_mixed_attachment_samples">
- <enum offset="8" extends="VkStructureType" extnumber="45" name="VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD"/>
- <type name="VkAttachmentSampleCountInfoAMD"/>
- </require>
- <require extension="VK_NV_framebuffer_mixed_samples">
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV" alias="VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD"/>
- <type name="VkAttachmentSampleCountInfoNV"/>
- </require>
- <require extension="VK_NVX_multiview_per_view_attributes">
- <enum offset="9" extends="VkStructureType" extnumber="45" name="VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX"/>
- <type name="VkMultiviewPerViewAttributesInfoNVX"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_46" number="46" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_46_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_46&quot;" name="VK_AMD_EXTENSION_46_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_shader_image_load_store_lod" number="47" author="AMD" contact="Dominik Witczak @dominikwitczakamd" supported="vulkan" type="device">
- <require>
- <enum value="1" name="VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_shader_image_load_store_lod&quot;" name="VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NVX_extension_48" number="48" author="NVX" contact="James Jones @cubanismo" supported="disabled">
- <require>
- <enum value="0" name="VK_NVX_EXTENSION_48_SPEC_VERSION"/>
- <enum value="&quot;VK_NVX_extension_48&quot;" name="VK_NVX_EXTENSION_48_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_GOOGLE_extension_49" number="49" author="GOOGLE" contact="Jean-Francois Roy @jfroy" supported="disabled">
- <require>
- <enum value="0" name="VK_GOOGLE_EXTENSION_49_SPEC_VERSION"/>
- <enum value="&quot;VK_GOOGLE_extension_49&quot;" name="VK_GOOGLE_EXTENSION_49_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_GGP_stream_descriptor_surface" number="50" type="instance" requires="VK_KHR_surface" platform="ggp" author="GGP" contact="Jean-Francois Roy @jfroy" supported="vulkan">
- <require>
- <enum value="1" name="VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_GGP_stream_descriptor_surface&quot;" name="VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP"/>
- <type name="VkStreamDescriptorSurfaceCreateFlagsGGP"/>
- <type name="VkStreamDescriptorSurfaceCreateInfoGGP"/>
- <command name="vkCreateStreamDescriptorSurfaceGGP"/>
- </require>
- </extension>
- <extension name="VK_NV_corner_sampled_image" number="51" author="NV" type="device" requires="VK_KHR_get_physical_device_properties2" contact="Daniel Koch @dgkoch" supported="vulkan">
- <require>
- <enum value="2" name="VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_corner_sampled_image&quot;" name="VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME"/>
- <enum bitpos="13" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV"/>
- <type name="VkPhysicalDeviceCornerSampledImageFeaturesNV"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_52" number="52" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_52_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_52&quot;" name="VK_NV_EXTENSION_52_EXTENSION_NAME"/>
- <enum bitpos="0" extends="VkShaderModuleCreateFlagBits" name="VK_SHADER_MODULE_CREATE_RESERVED_0_BIT_NV"/>
- <enum bitpos="2" extends="VkPipelineShaderStageCreateFlagBits" name="VK_PIPELINE_SHADER_STAGE_CREATE_RESERVED_2_BIT_NV"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_53" number="53" author="NV" contact="Jeff Bolz @jeffbolznv" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_53_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_53&quot;" name="VK_NV_EXTENSION_53_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_multiview" number="54" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_MULTIVIEW_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_multiview&quot;" name="VK_KHR_MULTIVIEW_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES"/>
- <enum extends="VkDependencyFlagBits" name="VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR" alias="VK_DEPENDENCY_VIEW_LOCAL_BIT"/>
- <type name="VkRenderPassMultiviewCreateInfoKHR"/>
- <type name="VkPhysicalDeviceMultiviewFeaturesKHR"/>
- <type name="VkPhysicalDeviceMultiviewPropertiesKHR"/>
- </require>
- </extension>
- <extension name="VK_IMG_format_pvrtc" number="55" type="device" author="IMG" contact="Stuart Smith" supported="vulkan">
- <require>
- <enum value="1" name="VK_IMG_FORMAT_PVRTC_SPEC_VERSION"/>
- <enum value="&quot;VK_IMG_format_pvrtc&quot;" name="VK_IMG_FORMAT_PVRTC_EXTENSION_NAME"/>
- <enum offset="0" extends="VkFormat" name="VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG"/>
- <enum offset="1" extends="VkFormat" name="VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG"/>
- <enum offset="2" extends="VkFormat" name="VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG"/>
- <enum offset="3" extends="VkFormat" name="VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG"/>
- <enum offset="4" extends="VkFormat" name="VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG"/>
- <enum offset="5" extends="VkFormat" name="VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG"/>
- <enum offset="6" extends="VkFormat" name="VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG"/>
- <enum offset="7" extends="VkFormat" name="VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG"/>
- </require>
- </extension>
- <extension name="VK_NV_external_memory_capabilities" number="56" type="instance" author="NV" contact="James Jones @cubanismo" supported="vulkan" deprecatedby="VK_KHR_external_memory_capabilities">
- <require>
- <enum value="1" name="VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_external_memory_capabilities&quot;" name="VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME"/>
- <type name="VkExternalMemoryHandleTypeFlagsNV"/>
- <type name="VkExternalMemoryHandleTypeFlagBitsNV"/>
- <type name="VkExternalMemoryFeatureFlagsNV"/>
- <type name="VkExternalMemoryFeatureFlagBitsNV"/>
- <type name="VkExternalImageFormatPropertiesNV"/>
- <command name="vkGetPhysicalDeviceExternalImageFormatPropertiesNV"/>
- </require>
- </extension>
- <extension name="VK_NV_external_memory" number="57" type="device" requires="VK_NV_external_memory_capabilities" author="NV" contact="James Jones @cubanismo" supported="vulkan" deprecatedby="VK_KHR_external_memory">
- <require>
- <enum value="1" name="VK_NV_EXTERNAL_MEMORY_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_external_memory&quot;" name="VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV"/>
- <type name="VkExternalMemoryImageCreateInfoNV"/>
- <type name="VkExportMemoryAllocateInfoNV"/>
- </require>
- </extension>
- <extension name="VK_NV_external_memory_win32" number="58" type="device" requires="VK_NV_external_memory" author="NV" contact="James Jones @cubanismo" platform="win32" supported="vulkan" deprecatedby="VK_KHR_external_memory_win32">
- <require>
- <enum value="1" name="VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_external_memory_win32&quot;" name="VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"/>
- <type name="VkImportMemoryWin32HandleInfoNV"/>
- <type name="VkExportMemoryWin32HandleInfoNV"/>
- <command name="vkGetMemoryWin32HandleNV"/>
- </require>
- </extension>
- <extension name="VK_NV_win32_keyed_mutex" number="59" type="device" requires="VK_NV_external_memory_win32" author="NV" contact="Carsten Rohde @crohde" platform="win32" supported="vulkan" promotedto="VK_KHR_win32_keyed_mutex">
- <require>
- <enum value="2" name="VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_win32_keyed_mutex&quot;" name="VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"/>
- <type name="VkWin32KeyedMutexAcquireReleaseInfoNV"/>
- </require>
- </extension>
- <extension name="VK_KHR_get_physical_device_properties2" number="60" type="instance" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="2" name="VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_get_physical_device_properties2&quot;" name="VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR" alias="VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR" alias="VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR" alias="VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR" alias="VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2"/>
- <type name="VkPhysicalDeviceFeatures2KHR"/>
- <type name="VkPhysicalDeviceProperties2KHR"/>
- <type name="VkFormatProperties2KHR"/>
- <type name="VkImageFormatProperties2KHR"/>
- <type name="VkPhysicalDeviceImageFormatInfo2KHR"/>
- <type name="VkQueueFamilyProperties2KHR"/>
- <type name="VkPhysicalDeviceMemoryProperties2KHR"/>
- <type name="VkSparseImageFormatProperties2KHR"/>
- <type name="VkPhysicalDeviceSparseImageFormatInfo2KHR"/>
- <command name="vkGetPhysicalDeviceFeatures2KHR"/>
- <command name="vkGetPhysicalDeviceProperties2KHR"/>
- <command name="vkGetPhysicalDeviceFormatProperties2KHR"/>
- <command name="vkGetPhysicalDeviceImageFormatProperties2KHR"/>
- <command name="vkGetPhysicalDeviceQueueFamilyProperties2KHR"/>
- <command name="vkGetPhysicalDeviceMemoryProperties2KHR"/>
- <command name="vkGetPhysicalDeviceSparseImageFormatProperties2KHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_device_group" number="61" type="device" author="KHR" requires="VK_KHR_device_group_creation" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="4" name="VK_KHR_DEVICE_GROUP_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_device_group&quot;" name="VK_KHR_DEVICE_GROUP_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR" alias="VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR" alias="VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR" alias="VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR" alias="VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR" alias="VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO"/>
- <type name="VkPeerMemoryFeatureFlagsKHR"/>
- <type name="VkPeerMemoryFeatureFlagBitsKHR"/>
- <enum extends="VkPeerMemoryFeatureFlagBits" name="VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR" alias="VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"/>
- <enum extends="VkPeerMemoryFeatureFlagBits" name="VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR" alias="VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"/>
- <enum extends="VkPeerMemoryFeatureFlagBits" name="VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR" alias="VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"/>
- <enum extends="VkPeerMemoryFeatureFlagBits" name="VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR" alias="VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"/>
- <type name="VkMemoryAllocateFlagsKHR"/>
- <type name="VkMemoryAllocateFlagBitsKHR"/>
- <enum extends="VkMemoryAllocateFlagBits" name="VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR" alias="VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"/>
- <type name="VkMemoryAllocateFlagsInfoKHR"/>
- <type name="VkDeviceGroupRenderPassBeginInfoKHR"/>
- <type name="VkDeviceGroupCommandBufferBeginInfoKHR"/>
- <type name="VkDeviceGroupSubmitInfoKHR"/>
- <type name="VkDeviceGroupBindSparseInfoKHR"/>
- <command name="vkGetDeviceGroupPeerMemoryFeaturesKHR"/>
- <command name="vkCmdSetDeviceMaskKHR"/>
- <command name="vkCmdDispatchBaseKHR"/>
- <enum extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR" alias="VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"/>
- <enum extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_DISPATCH_BASE_KHR" alias="VK_PIPELINE_CREATE_DISPATCH_BASE"/>
- <enum extends="VkDependencyFlagBits" name="VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR" alias="VK_DEPENDENCY_DEVICE_GROUP_BIT"/>
- </require>
- <require extension="VK_KHR_bind_memory2">
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR" alias="VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR" alias="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO"/>
- <type name="VkBindBufferMemoryDeviceGroupInfoKHR"/>
- <type name="VkBindImageMemoryDeviceGroupInfoKHR"/>
- <enum extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR" alias="VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"/>
- </require>
- <require extension="VK_KHR_surface">
- <enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"/>
- <type name="VkDeviceGroupPresentModeFlagBitsKHR"/>
- <type name="VkDeviceGroupPresentModeFlagsKHR"/>
- <type name="VkDeviceGroupPresentCapabilitiesKHR"/>
- <command name="vkGetDeviceGroupPresentCapabilitiesKHR"/>
- <command name="vkGetDeviceGroupSurfacePresentModesKHR"/>
- <command name="vkGetPhysicalDevicePresentRectanglesKHR"/>
- </require>
- <require extension="VK_KHR_swapchain">
- <enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR"/>
- <enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR"/>
- <enum offset="10" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR"/>
- <enum offset="11" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR"/>
- <enum offset="12" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR"/>
- <enum bitpos="0" extends="VkSwapchainCreateFlagBitsKHR" name="VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR" comment="Allow images with VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"/>
- <type name="VkImageSwapchainCreateInfoKHR"/>
- <type name="VkBindImageMemorySwapchainInfoKHR"/>
- <type name="VkAcquireNextImageInfoKHR"/>
- <type name="VkDeviceGroupPresentInfoKHR"/>
- <type name="VkDeviceGroupSwapchainCreateInfoKHR"/>
- <command name="vkAcquireNextImage2KHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_validation_flags" number="62" type="instance" author="GOOGLE" contact="Tobin Ehlis @tobine" specialuse="debugging" supported="vulkan" deprecatedby="VK_EXT_validation_features">
- <require>
- <enum value="2" name="VK_EXT_VALIDATION_FLAGS_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_validation_flags&quot;" name="VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT"/>
- <type name="VkValidationFlagsEXT"/>
- <type name="VkValidationCheckEXT"/>
- </require>
- </extension>
- <extension name="VK_NN_vi_surface" number="63" type="instance" author="NN" contact="Mathias Heyer gitlab:@mheyer" requires="VK_KHR_surface" platform="vi" supported="vulkan">
- <require>
- <enum value="1" name="VK_NN_VI_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_NN_vi_surface&quot;" name="VK_NN_VI_SURFACE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN"/>
- <type name="VkViSurfaceCreateFlagsNN"/>
- <type name="VkViSurfaceCreateInfoNN"/>
- <command name="vkCreateViSurfaceNN"/>
- </require>
- </extension>
- <extension name="VK_KHR_shader_draw_parameters" number="64" type="device" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_shader_draw_parameters&quot;" name="VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_shader_subgroup_ballot" number="65" type="device" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan" deprecatedby="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_shader_subgroup_ballot&quot;" name="VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_shader_subgroup_vote" number="66" type="device" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan" deprecatedby="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_shader_subgroup_vote&quot;" name="VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_texture_compression_astc_hdr" number="67" type="device" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" requires="VK_KHR_get_physical_device_properties2" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_texture_compression_astc_hdr&quot;" name="VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES"/>
- <type name="VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT"/>
- <enum extends="VkFormat" name="VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK"/>
- <enum extends="VkFormat" name="VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK"/>
- <enum extends="VkFormat" name="VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK"/>
- <enum extends="VkFormat" name="VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK"/>
- <enum extends="VkFormat" name="VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK"/>
- <enum extends="VkFormat" name="VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK"/>
- <enum extends="VkFormat" name="VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK"/>
- <enum extends="VkFormat" name="VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK"/>
- <enum extends="VkFormat" name="VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK"/>
- <enum extends="VkFormat" name="VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK"/>
- <enum extends="VkFormat" name="VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK"/>
- <enum extends="VkFormat" name="VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK"/>
- <enum extends="VkFormat" name="VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK"/>
- <enum extends="VkFormat" name="VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT" alias="VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK"/>
- </require>
- </extension>
- <extension name="VK_EXT_astc_decode_mode" number="68" type="device" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" requires="VK_KHR_get_physical_device_properties2" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_astc_decode_mode&quot;" name="VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT"/>
- <type name="VkImageViewASTCDecodeModeEXT"/>
- <type name="VkPhysicalDeviceASTCDecodeFeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_IMG_extension_69" number="69" type="device" author="IMG" contact="Tobias Hector @tobski" supported="disabled">
- <require>
- <enum value="0" name="VK_IMG_EXTENSION_69_SPEC_VERSION"/>
- <enum value="&quot;VK_IMG_extension_69&quot;" name="VK_IMG_EXTENSION_69_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_maintenance1" number="70" type="device" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="2" name="VK_KHR_MAINTENANCE_1_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_maintenance1&quot;" name="VK_KHR_MAINTENANCE_1_EXTENSION_NAME"/>
- <enum alias="VK_KHR_MAINTENANCE_1_SPEC_VERSION" name="VK_KHR_MAINTENANCE1_SPEC_VERSION" comment="Backwards-compatible alias containing a typo"/>
- <enum alias="VK_KHR_MAINTENANCE_1_EXTENSION_NAME" name="VK_KHR_MAINTENANCE1_EXTENSION_NAME" comment="Backwards-compatible alias containing a typo"/>
- <enum extends="VkResult" name="VK_ERROR_OUT_OF_POOL_MEMORY_KHR" alias="VK_ERROR_OUT_OF_POOL_MEMORY"/>
- <enum extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR" alias="VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"/>
- <enum extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" alias="VK_FORMAT_FEATURE_TRANSFER_DST_BIT"/>
- <enum extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR" alias="VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"/>
- <type name="VkCommandPoolTrimFlagsKHR"/>
- <command name="vkTrimCommandPoolKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_device_group_creation" number="71" type="instance" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_device_group_creation&quot;" name="VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO"/>
- <enum name="VK_MAX_DEVICE_GROUP_SIZE_KHR"/>
- <type name="VkPhysicalDeviceGroupPropertiesKHR"/>
- <type name="VkDeviceGroupDeviceCreateInfoKHR"/>
- <command name="vkEnumeratePhysicalDeviceGroupsKHR"/>
- <enum extends="VkMemoryHeapFlagBits" name="VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR" alias="VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"/>
- </require>
- </extension>
- <extension name="VK_KHR_external_memory_capabilities" number="72" type="instance" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_external_memory_capabilities&quot;" name="VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES"/>
- <enum name="VK_LUID_SIZE_KHR"/>
- <type name="VkExternalMemoryHandleTypeFlagsKHR"/>
- <type name="VkExternalMemoryHandleTypeFlagBitsKHR"/>
- <enum extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR" alias="VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"/>
- <enum extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR" alias="VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"/>
- <enum extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR" alias="VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"/>
- <enum extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR" alias="VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"/>
- <enum extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR" alias="VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"/>
- <enum extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR" alias="VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"/>
- <enum extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR" alias="VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"/>
- <type name="VkExternalMemoryFeatureFlagsKHR"/>
- <type name="VkExternalMemoryFeatureFlagBitsKHR"/>
- <enum extends="VkExternalMemoryFeatureFlagBits" name="VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR" alias="VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"/>
- <enum extends="VkExternalMemoryFeatureFlagBits" name="VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR" alias="VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"/>
- <enum extends="VkExternalMemoryFeatureFlagBits" name="VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR" alias="VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"/>
- <type name="VkExternalMemoryPropertiesKHR"/>
- <type name="VkPhysicalDeviceExternalImageFormatInfoKHR"/>
- <type name="VkExternalImageFormatPropertiesKHR"/>
- <type name="VkPhysicalDeviceExternalBufferInfoKHR"/>
- <type name="VkExternalBufferPropertiesKHR"/>
- <type name="VkPhysicalDeviceIDPropertiesKHR"/>
- <command name="vkGetPhysicalDeviceExternalBufferPropertiesKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_external_memory" number="73" type="device" requires="VK_KHR_external_memory_capabilities" author="KHR" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_external_memory&quot;" name="VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO"/>
- <enum extends="VkResult" name="VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR" alias="VK_ERROR_INVALID_EXTERNAL_HANDLE"/>
- <enum name="VK_QUEUE_FAMILY_EXTERNAL_KHR"/>
- <type name="VkExternalMemoryImageCreateInfoKHR"/>
- <type name="VkExternalMemoryBufferCreateInfoKHR"/>
- <type name="VkExportMemoryAllocateInfoKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_external_memory_win32" number="74" type="device" requires="VK_KHR_external_memory" author="KHR" contact="James Jones @cubanismo" platform="win32" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_external_memory_win32&quot;" name="VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR"/>
- <type name="VkImportMemoryWin32HandleInfoKHR"/>
- <type name="VkExportMemoryWin32HandleInfoKHR"/>
- <type name="VkMemoryWin32HandlePropertiesKHR"/>
- <type name="VkMemoryGetWin32HandleInfoKHR"/>
- <command name="vkGetMemoryWin32HandleKHR"/>
- <command name="vkGetMemoryWin32HandlePropertiesKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_external_memory_fd" number="75" type="device" requires="VK_KHR_external_memory" author="KHR" contact="James Jones @cubanismo" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_external_memory_fd&quot;" name="VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR"/>
- <type name="VkImportMemoryFdInfoKHR"/>
- <type name="VkMemoryFdPropertiesKHR"/>
- <type name="VkMemoryGetFdInfoKHR"/>
- <command name="vkGetMemoryFdKHR"/>
- <command name="vkGetMemoryFdPropertiesKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_win32_keyed_mutex" number="76" type="device" requires="VK_KHR_external_memory_win32" author="KHR" contact="Carsten Rohde @crohde" platform="win32" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_win32_keyed_mutex&quot;" name="VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR"/>
- <type name="VkWin32KeyedMutexAcquireReleaseInfoKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_external_semaphore_capabilities" number="77" type="instance" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_external_semaphore_capabilities&quot;" name="VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES"/>
- <enum name="VK_LUID_SIZE_KHR"/>
- <type name="VkExternalSemaphoreHandleTypeFlagsKHR"/>
- <type name="VkExternalSemaphoreHandleTypeFlagBitsKHR"/>
- <enum extends="VkExternalSemaphoreHandleTypeFlagBits" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR" alias="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"/>
- <enum extends="VkExternalSemaphoreHandleTypeFlagBits" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR" alias="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"/>
- <enum extends="VkExternalSemaphoreHandleTypeFlagBits" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR" alias="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"/>
- <enum extends="VkExternalSemaphoreHandleTypeFlagBits" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR" alias="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"/>
- <enum extends="VkExternalSemaphoreHandleTypeFlagBits" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR" alias="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"/>
- <type name="VkExternalSemaphoreFeatureFlagsKHR"/>
- <type name="VkExternalSemaphoreFeatureFlagBitsKHR"/>
- <enum extends="VkExternalSemaphoreFeatureFlagBits" name="VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR" alias="VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"/>
- <enum extends="VkExternalSemaphoreFeatureFlagBits" name="VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR" alias="VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"/>
- <type name="VkPhysicalDeviceExternalSemaphoreInfoKHR"/>
- <type name="VkExternalSemaphorePropertiesKHR"/>
- <type name="VkPhysicalDeviceIDPropertiesKHR"/>
- <command name="vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_external_semaphore" number="78" type="device" requires="VK_KHR_external_semaphore_capabilities" author="KHR" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_external_semaphore&quot;" name="VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO"/>
- <type name="VkSemaphoreImportFlagsKHR"/>
- <type name="VkSemaphoreImportFlagBitsKHR"/>
- <enum extends="VkSemaphoreImportFlagBits" name="VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR" alias="VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"/>
- <type name="VkExportSemaphoreCreateInfoKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_external_semaphore_win32" number="79" type="device" requires="VK_KHR_external_semaphore" author="KHR" contact="James Jones @cubanismo" platform="win32" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_external_semaphore_win32&quot;" name="VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR"/>
- <type name="VkImportSemaphoreWin32HandleInfoKHR"/>
- <type name="VkExportSemaphoreWin32HandleInfoKHR"/>
- <type name="VkD3D12FenceSubmitInfoKHR"/>
- <type name="VkSemaphoreGetWin32HandleInfoKHR"/>
- <command name="vkImportSemaphoreWin32HandleKHR"/>
- <command name="vkGetSemaphoreWin32HandleKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_external_semaphore_fd" number="80" type="device" requires="VK_KHR_external_semaphore" author="KHR" contact="James Jones @cubanismo" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_external_semaphore_fd&quot;" name="VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR"/>
- <type name="VkImportSemaphoreFdInfoKHR"/>
- <type name="VkSemaphoreGetFdInfoKHR"/>
- <command name="vkImportSemaphoreFdKHR"/>
- <command name="vkGetSemaphoreFdKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_push_descriptor" number="81" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
- <require>
- <enum value="2" name="VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_push_descriptor&quot;" name="VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR"/>
- <enum bitpos="0" extends="VkDescriptorSetLayoutCreateFlagBits" name="VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR" comment="Descriptors are pushed via flink:vkCmdPushDescriptorSetKHR"/>
- <command name="vkCmdPushDescriptorSetKHR"/>
- <type name="VkPhysicalDevicePushDescriptorPropertiesKHR"/>
- </require>
- <require feature="VK_VERSION_1_1">
- <command name="vkCmdPushDescriptorSetWithTemplateKHR"/>
- <enum value="1" extends="VkDescriptorUpdateTemplateType" name="VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR" comment="Create descriptor update template for pushed descriptor updates"/>
- </require>
- <require extension="VK_KHR_descriptor_update_template">
- <command name="vkCmdPushDescriptorSetWithTemplateKHR"/>
- <enum value="1" extends="VkDescriptorUpdateTemplateType" name="VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR" comment="Create descriptor update template for pushed descriptor updates"/>
- </require>
- </extension>
- <extension name="VK_EXT_conditional_rendering" number="82" type="device" author="NV" contact="Vikram Kushwaha @vkushwaha" supported="vulkan">
- <require>
- <enum value="2" name="VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_conditional_rendering&quot;" name="VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT"/>
- <type name="VkConditionalRenderingFlagsEXT"/>
- <type name="VkConditionalRenderingFlagBitsEXT"/>
- <enum bitpos="20" extends="VkAccessFlagBits" name="VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT" comment="read access flag for reading conditional rendering predicate"/>
- <enum bitpos="9" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT" comment="Specifies the buffer can be used as predicate in conditional rendering"/>
- <enum bitpos="18" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" comment="A pipeline stage for conditional rendering predicate fetch"/>
- <command name="vkCmdBeginConditionalRenderingEXT"/>
- <command name="vkCmdEndConditionalRenderingEXT"/>
- <type name="VkConditionalRenderingBeginInfoEXT"/>
- <type name="VkPhysicalDeviceConditionalRenderingFeaturesEXT"/>
- <type name="VkCommandBufferInheritanceConditionalRenderingInfoEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_shader_float16_int8" number="83" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_shader_float16_int8&quot;" name="VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES"/>
- <type name="VkPhysicalDeviceShaderFloat16Int8FeaturesKHR"/>
- <type name="VkPhysicalDeviceFloat16Int8FeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_16bit_storage" number="84" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_storage_buffer_storage_class" author="KHR" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_16BIT_STORAGE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_16bit_storage&quot;" name="VK_KHR_16BIT_STORAGE_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES"/>
- <type name="VkPhysicalDevice16BitStorageFeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_incremental_present" number="85" type="device" author="KHR" requires="VK_KHR_swapchain" contact="Ian Elliott @ianelliottus" supported="vulkan">
- <require>
- <enum value="2" name="VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_incremental_present&quot;" name="VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR"/>
- <type name="VkPresentRegionsKHR"/>
- <type name="VkPresentRegionKHR"/>
- <type name="VkRectLayerKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_descriptor_update_template" number="86" type="device" author="KHR" contact="Markus Tavenrath @mtavenrath" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_descriptor_update_template&quot;" name="VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO"/>
- <enum extends="VkObjectType" name="VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR" alias="VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE"/>
- <command name="vkCreateDescriptorUpdateTemplateKHR"/>
- <command name="vkDestroyDescriptorUpdateTemplateKHR"/>
- <command name="vkUpdateDescriptorSetWithTemplateKHR"/>
- <type name="VkDescriptorUpdateTemplateKHR"/>
- <type name="VkDescriptorUpdateTemplateCreateFlagsKHR"/>
- <type name="VkDescriptorUpdateTemplateTypeKHR"/>
- <type name="VkDescriptorUpdateTemplateEntryKHR"/>
- <type name="VkDescriptorUpdateTemplateCreateInfoKHR"/>
- <enum extends="VkDescriptorUpdateTemplateType" name="VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR" alias="VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET"/>
- </require>
- <require extension="VK_KHR_push_descriptor">
- <command name="vkCmdPushDescriptorSetWithTemplateKHR"/>
- <enum value="1" extends="VkDescriptorUpdateTemplateType" name="VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR" comment="Create descriptor update template for pushed descriptor updates"/>
- </require>
- <require extension="VK_EXT_debug_report">
- <enum extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT" alias="VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT"/>
- </require>
- </extension>
- <extension name="VK_NVX_device_generated_commands" number="87" type="device" author="NVX" contact="Christoph Kubisch @pixeljetstream" supported="disabled">
- <require>
- <enum value="3" name="VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION"/>
- <enum value="&quot;VK_NVX_device_generated_commands&quot;" name="VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_clip_space_w_scaling" number="88" type="device" author="NV" contact="Eric Werness @ewerness-nv" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_clip_space_w_scaling&quot;" name="VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV"/>
- <enum offset="0" extends="VkDynamicState" name="VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV"/>
- <type name="VkViewportWScalingNV"/>
- <type name="VkPipelineViewportWScalingStateCreateInfoNV"/>
- <command name="vkCmdSetViewportWScalingNV"/>
- </require>
- </extension>
- <extension name="VK_EXT_direct_mode_display" number="89" type="instance" requires="VK_KHR_display" author="NV" contact="James Jones @cubanismo" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_direct_mode_display&quot;" name="VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME"/>
- <command name="vkReleaseDisplayEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_acquire_xlib_display" number="90" type="instance" requires="VK_EXT_direct_mode_display" author="NV" contact="James Jones @cubanismo" platform="xlib_xrandr" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_acquire_xlib_display&quot;" name="VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME"/>
- <command name="vkAcquireXlibDisplayEXT"/>
- <command name="vkGetRandROutputDisplayEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_display_surface_counter" number="91" type="instance" requires="VK_KHR_display" author="NV" contact="James Jones @cubanismo" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_display_surface_counter&quot;" name="VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT"/>
- <enum alias="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT" comment="Backwards-compatible alias containing a typo"/>
- <type name="VkSurfaceCounterFlagsEXT"/>
- <type name="VkSurfaceCounterFlagBitsEXT"/>
- <type name="VkSurfaceCapabilities2EXT"/>
- <command name="vkGetPhysicalDeviceSurfaceCapabilities2EXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_display_control" number="92" type="device" requires="VK_EXT_display_surface_counter,VK_KHR_swapchain" author="NV" contact="James Jones @cubanismo" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_DISPLAY_CONTROL_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_display_control&quot;" name="VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT"/>
- <type name="VkDisplayPowerStateEXT"/>
- <type name="VkDeviceEventTypeEXT"/>
- <type name="VkDisplayEventTypeEXT"/>
- <type name="VkDisplayPowerInfoEXT"/>
- <type name="VkDeviceEventInfoEXT"/>
- <type name="VkDisplayEventInfoEXT"/>
- <type name="VkSwapchainCounterCreateInfoEXT"/>
- <command name="vkDisplayPowerControlEXT"/>
- <command name="vkRegisterDeviceEventEXT"/>
- <command name="vkRegisterDisplayEventEXT"/>
- <command name="vkGetSwapchainCounterEXT"/>
- </require>
- </extension>
- <extension name="VK_GOOGLE_display_timing" number="93" type="device" author="GOOGLE" requires="VK_KHR_swapchain" contact="Ian Elliott @ianelliottus" supported="vulkan">
- <require>
- <enum value="1" name="VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION"/>
- <enum value="&quot;VK_GOOGLE_display_timing&quot;" name="VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE"/>
- <type name="VkRefreshCycleDurationGOOGLE"/>
- <type name="VkPastPresentationTimingGOOGLE"/>
- <type name="VkPresentTimesInfoGOOGLE"/>
- <type name="VkPresentTimeGOOGLE"/>
- <command name="vkGetRefreshCycleDurationGOOGLE"/>
- <command name="vkGetPastPresentationTimingGOOGLE"/>
- </require>
- </extension>
- <extension name="VK_RESERVED_do_not_use_94" number="94" supported="disabled" comment="Used for functionality subsumed into Vulkan 1.1 and not published as an extension">
- <require>
- <enum value="1" name="VK_RESERVED_DO_NOT_USE_94_SPEC_VERSION"/>
- <enum value="&quot;VK_RESERVED_do_not_use_94&quot;" name="VK_RESERVED_DO_NOT_USE_94_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_sample_mask_override_coverage" number="95" type="device" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_sample_mask_override_coverage&quot;" name="VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME"/>
- <comment>
- enum offset=0 was mistakenly used for the 1.1 core enum
- VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
- (value=1000094000). Fortunately, no conflict resulted.
- </comment>
- </require>
- </extension>
- <extension name="VK_NV_geometry_shader_passthrough" number="96" type="device" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_geometry_shader_passthrough&quot;" name="VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_viewport_array2" number="97" type="device" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_viewport_array2&quot;" name="VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME"/>
- <enum alias="VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION" name="VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION" comment="Backwards-compatible alias containing a typo"/>
- <enum alias="VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME" name="VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME" comment="Backwards-compatible alias containing a typo"/>
- </require>
- </extension>
- <extension name="VK_NVX_multiview_per_view_attributes" number="98" type="device" requires="VK_KHR_multiview" author="NVX" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
- <require>
- <enum value="1" name="VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION"/>
- <enum value="&quot;VK_NVX_multiview_per_view_attributes&quot;" name="VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"/>
- <enum bitpos="0" extends="VkSubpassDescriptionFlagBits" name="VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"/>
- <enum bitpos="1" extends="VkSubpassDescriptionFlagBits" name="VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"/>
- <type name="VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX"/>
- </require>
- </extension>
- <extension name="VK_NV_viewport_swizzle" number="99" type="device" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_viewport_swizzle&quot;" name="VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV"/>
- <type name="VkViewportSwizzleNV"/>
- <type name="VkViewportCoordinateSwizzleNV"/>
- <type name="VkPipelineViewportSwizzleStateCreateInfoNV"/>
- <type name="VkPipelineViewportSwizzleStateCreateFlagsNV"/>
- </require>
- </extension>
- <extension name="VK_EXT_discard_rectangles" number="100" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_discard_rectangles&quot;" name="VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"/>
- <enum offset="0" extends="VkDynamicState" name="VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT"/>
- <type name="VkPhysicalDeviceDiscardRectanglePropertiesEXT"/>
- <type name="VkPipelineDiscardRectangleStateCreateInfoEXT"/>
- <type name="VkPipelineDiscardRectangleStateCreateFlagsEXT"/>
- <type name="VkDiscardRectangleModeEXT"/>
- <command name="vkCmdSetDiscardRectangleEXT"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_101" number="101" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_101_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_101&quot;" name="VK_NV_EXTENSION_101_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_conservative_rasterization" number="102" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_conservative_rasterization&quot;" name="VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT"/>
- <type name="VkPhysicalDeviceConservativeRasterizationPropertiesEXT"/>
- <type name="VkPipelineRasterizationConservativeStateCreateInfoEXT"/>
- <type name="VkPipelineRasterizationConservativeStateCreateFlagsEXT"/>
- <type name="VkConservativeRasterizationModeEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_depth_clip_enable" number="103" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" specialuse="d3demulation" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_depth_clip_enable&quot;" name="VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT"/>
- <type name="VkPhysicalDeviceDepthClipEnableFeaturesEXT"/>
- <type name="VkPipelineRasterizationDepthClipStateCreateInfoEXT"/>
- <type name="VkPipelineRasterizationDepthClipStateCreateFlagsEXT"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_104" number="104" author="NV" contact="Mathias Schott gitlab:@mschott" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_104_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_104&quot;" name="VK_NV_EXTENSION_104_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_swapchain_colorspace" number="105" type="instance" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" requires="VK_KHR_surface" supported="vulkan">
- <require>
- <enum value="4" name="VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_swapchain_colorspace&quot;" name="VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME"/>
- <enum offset="1" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT"/>
- <enum offset="2" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT"/>
- <enum offset="3" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT"/>
- <enum offset="4" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT"/>
- <enum offset="5" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_BT709_LINEAR_EXT"/>
- <enum offset="6" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_BT709_NONLINEAR_EXT"/>
- <enum offset="7" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_BT2020_LINEAR_EXT"/>
- <enum offset="8" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_HDR10_ST2084_EXT"/>
- <enum offset="9" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_DOLBYVISION_EXT"/>
- <enum offset="10" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_HDR10_HLG_EXT"/>
- <enum offset="11" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT"/>
- <enum offset="12" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT"/>
- <enum offset="13" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_PASS_THROUGH_EXT"/>
- <enum offset="14" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT"/>
- <enum extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_DCI_P3_LINEAR_EXT" alias="VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT" comment="Backwards-compatible alias containing a typo"/>
- </require>
- </extension>
- <extension name="VK_EXT_hdr_metadata" number="106" type="device" requires="VK_KHR_swapchain" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" supported="vulkan">
- <require>
- <enum value="2" name="VK_EXT_HDR_METADATA_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_hdr_metadata&quot;" name="VK_EXT_HDR_METADATA_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_HDR_METADATA_EXT"/>
- <type name="VkHdrMetadataEXT"/>
- <type name="VkXYColorEXT"/>
- <command name="vkSetHdrMetadataEXT"/>
- </require>
- </extension>
- <extension name="VK_IMG_extension_107" number="107" author="IMG" contact="Michael Worcester @michaelworcester" supported="disabled">
- <require>
- <enum value="0" name="VK_IMG_EXTENSION_107_SPEC_VERSION"/>
- <enum value="&quot;VK_IMG_extension_107&quot;" name="VK_IMG_EXTENSION_107_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_IMG_extension_108" number="108" author="IMG" contact="Michael Worcester @michaelworcester" supported="disabled">
- <require>
- <enum value="0" name="VK_IMG_EXTENSION_108_SPEC_VERSION"/>
- <enum value="&quot;VK_IMG_extension_108&quot;" name="VK_IMG_EXTENSION_108_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_imageless_framebuffer" requires="VK_KHR_maintenance2,VK_KHR_image_format_list" number="109" author="KHR" contact="Tobias Hector @tobias" type="device" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_imageless_framebuffer&quot;" name="VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME"/>
- <type name="VkPhysicalDeviceImagelessFramebufferFeaturesKHR"/>
- <type name="VkFramebufferAttachmentsCreateInfoKHR"/>
- <type name="VkFramebufferAttachmentImageInfoKHR"/>
- <type name="VkRenderPassAttachmentBeginInfoKHR"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR" alias="VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR" alias="VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO"/>
- <enum extends="VkFramebufferCreateFlagBits" name="VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR" alias="VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"/>
- </require>
- </extension>
- <extension name="VK_KHR_create_renderpass2" requires="VK_KHR_multiview,VK_KHR_maintenance2" number="110" contact="Tobias Hector @tobias" type="device" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_create_renderpass2&quot;" name="VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR" alias="VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR" alias="VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR" alias="VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR" alias="VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR" alias="VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR" alias="VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR" alias="VK_STRUCTURE_TYPE_SUBPASS_END_INFO"/>
- <command name="vkCreateRenderPass2KHR"/>
- <command name="vkCmdBeginRenderPass2KHR"/>
- <command name="vkCmdNextSubpass2KHR"/>
- <command name="vkCmdEndRenderPass2KHR"/>
- <type name="VkRenderPassCreateInfo2KHR"/>
- <type name="VkAttachmentDescription2KHR"/>
- <type name="VkAttachmentReference2KHR"/>
- <type name="VkSubpassDescription2KHR"/>
- <type name="VkSubpassDependency2KHR"/>
- <type name="VkSubpassBeginInfoKHR"/>
- <type name="VkSubpassEndInfoKHR"/>
- </require>
- </extension>
- <extension name="VK_IMG_extension_111" number="111" author="IMG" contact="Michael Worcester @michaelworcester" supported="disabled">
- <require>
- <enum value="0" name="VK_IMG_EXTENSION_111_SPEC_VERSION"/>
- <enum value="&quot;VK_IMG_extension_111&quot;" name="VK_IMG_EXTENSION_111_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_shared_presentable_image" number="112" type="device" requires="VK_KHR_swapchain,VK_KHR_get_physical_device_properties2,VK_KHR_get_surface_capabilities2" author="KHR" contact="Alon Or-bach @alonorbach" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_shared_presentable_image&quot;" name="VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR"/>
- <enum offset="0" extends="VkPresentModeKHR" name="VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR"/>
- <enum offset="1" extends="VkPresentModeKHR" name="VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR"/>
- <enum offset="0" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR"/>
- <type name="VkSharedPresentSurfaceCapabilitiesKHR"/>
- <command name="vkGetSwapchainStatusKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_external_fence_capabilities" number="113" type="instance" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Jesse Hall @critsec" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_external_fence_capabilities&quot;" name="VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES"/>
- <enum name="VK_LUID_SIZE_KHR"/>
- <type name="VkExternalFenceHandleTypeFlagsKHR"/>
- <type name="VkExternalFenceHandleTypeFlagBitsKHR"/>
- <enum extends="VkExternalFenceHandleTypeFlagBits" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR" alias="VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"/>
- <enum extends="VkExternalFenceHandleTypeFlagBits" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR" alias="VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"/>
- <enum extends="VkExternalFenceHandleTypeFlagBits" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR" alias="VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"/>
- <enum extends="VkExternalFenceHandleTypeFlagBits" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR" alias="VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"/>
- <type name="VkExternalFenceFeatureFlagsKHR"/>
- <type name="VkExternalFenceFeatureFlagBitsKHR"/>
- <enum extends="VkExternalFenceFeatureFlagBits" name="VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR" alias="VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"/>
- <enum extends="VkExternalFenceFeatureFlagBits" name="VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR" alias="VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"/>
- <type name="VkPhysicalDeviceExternalFenceInfoKHR"/>
- <type name="VkExternalFencePropertiesKHR"/>
- <type name="VkPhysicalDeviceIDPropertiesKHR"/>
- <command name="vkGetPhysicalDeviceExternalFencePropertiesKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_external_fence" number="114" type="device" requires="VK_KHR_external_fence_capabilities" author="KHR" contact="Jesse Hall @critsec" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_EXTERNAL_FENCE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_external_fence&quot;" name="VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO"/>
- <type name="VkFenceImportFlagsKHR"/>
- <type name="VkFenceImportFlagBitsKHR"/>
- <enum extends="VkFenceImportFlagBits" name="VK_FENCE_IMPORT_TEMPORARY_BIT_KHR" alias="VK_FENCE_IMPORT_TEMPORARY_BIT"/>
- <type name="VkExportFenceCreateInfoKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_external_fence_win32" number="115" type="device" requires="VK_KHR_external_fence" author="KHR" contact="Jesse Hall @critsec" platform="win32" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_external_fence_win32&quot;" name="VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR"/>
- <type name="VkImportFenceWin32HandleInfoKHR"/>
- <type name="VkExportFenceWin32HandleInfoKHR"/>
- <type name="VkFenceGetWin32HandleInfoKHR"/>
- <command name="vkImportFenceWin32HandleKHR"/>
- <command name="vkGetFenceWin32HandleKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_external_fence_fd" number="116" type="device" requires="VK_KHR_external_fence" author="KHR" contact="Jesse Hall @critsec" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_external_fence_fd&quot;" name="VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR"/>
- <type name="VkImportFenceFdInfoKHR"/>
- <type name="VkFenceGetFdInfoKHR"/>
- <command name="vkImportFenceFdKHR"/>
- <command name="vkGetFenceFdKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_performance_query" number="117" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Alon Or-bach @alonorbach" specialuse="devtools" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_performance_query&quot;" name="VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME"/>
- <enum offset="0" extends="VkQueryType" name="VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR"/>
- <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR"/>
- <type name="VkPhysicalDevicePerformanceQueryFeaturesKHR"/>
- <type name="VkPhysicalDevicePerformanceQueryPropertiesKHR"/>
- <type name="VkPerformanceCounterKHR"/>
- <type name="VkPerformanceCounterDescriptionKHR"/>
- <type name="VkPerformanceCounterDescriptionFlagsKHR"/>
- <type name="VkPerformanceCounterDescriptionFlagBitsKHR"/>
- <type name="VkQueryPoolPerformanceCreateInfoKHR"/>
- <type name="VkPerformanceCounterScopeKHR"/>
- <type name="VkPerformanceCounterStorageKHR"/>
- <type name="VkPerformanceCounterUnitKHR"/>
- <type name="VkPerformanceCounterResultKHR"/>
- <type name="VkAcquireProfilingLockInfoKHR"/>
- <type name="VkAcquireProfilingLockFlagsKHR"/>
- <type name="VkAcquireProfilingLockFlagBitsKHR"/>
- <type name="VkPerformanceQuerySubmitInfoKHR"/>
- <command name="vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"/>
- <command name="vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"/>
- <command name="vkAcquireProfilingLockKHR"/>
- <command name="vkReleaseProfilingLockKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_maintenance2" number="118" type="device" author="KHR" contact="Michael Worcester @michaelworcester" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_MAINTENANCE_2_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_maintenance2&quot;" name="VK_KHR_MAINTENANCE_2_EXTENSION_NAME"/>
- <enum alias="VK_KHR_MAINTENANCE_2_SPEC_VERSION" name="VK_KHR_MAINTENANCE2_SPEC_VERSION" comment="Backwards-compatible alias containing a typo"/>
- <enum alias="VK_KHR_MAINTENANCE_2_EXTENSION_NAME" name="VK_KHR_MAINTENANCE2_EXTENSION_NAME" comment="Backwards-compatible alias containing a typo"/>
- <enum extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR" alias="VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"/>
- <enum extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR" alias="VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO"/>
- <enum extends="VkImageLayout" name="VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR" alias="VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL"/>
- <enum extends="VkImageLayout" name="VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR" alias="VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL"/>
- <type name="VkPhysicalDevicePointClippingPropertiesKHR"/>
- <type name="VkPointClippingBehaviorKHR"/>
- <enum extends="VkPointClippingBehavior" name="VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR" alias="VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES"/>
- <enum extends="VkPointClippingBehavior" name="VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR" alias="VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY"/>
- <type name="VkRenderPassInputAttachmentAspectCreateInfoKHR"/>
- <type name="VkInputAttachmentAspectReferenceKHR"/>
- <type name="VkImageViewUsageCreateInfoKHR"/>
- <type name="VkTessellationDomainOriginKHR"/>
- <enum extends="VkTessellationDomainOrigin" name="VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR" alias="VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT"/>
- <enum extends="VkTessellationDomainOrigin" name="VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR" alias="VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT"/>
- <type name="VkPipelineTessellationDomainOriginStateCreateInfoKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_119" number="119" author="KHR" contact="Michael Worcester @michaelworcester" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_119_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_119&quot;" name="VK_KHR_EXTENSION_119_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_get_surface_capabilities2" number="120" type="instance" requires="VK_KHR_surface" author="KHR" contact="James Jones @cubanismo" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_get_surface_capabilities2&quot;" name="VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR"/>
- <type name="VkPhysicalDeviceSurfaceInfo2KHR"/>
- <type name="VkSurfaceCapabilities2KHR"/>
- <type name="VkSurfaceFormat2KHR"/>
- <command name="vkGetPhysicalDeviceSurfaceCapabilities2KHR"/>
- <command name="vkGetPhysicalDeviceSurfaceFormats2KHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_variable_pointers" number="121" type="device" author="KHR" contact="Jesse Hall @critsec" requires="VK_KHR_get_physical_device_properties2,VK_KHR_storage_buffer_storage_class" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_VARIABLE_POINTERS_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_variable_pointers&quot;" name="VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR"/>
- <type name="VkPhysicalDeviceVariablePointerFeaturesKHR"/>
- <type name="VkPhysicalDeviceVariablePointersFeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_get_display_properties2" number="122" type="instance" requires="VK_KHR_display" author="KHR" contact="James Jones @cubanismo" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_get_display_properties2&quot;" name="VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR"/>
- <type name="VkDisplayProperties2KHR"/>
- <type name="VkDisplayPlaneProperties2KHR"/>
- <type name="VkDisplayModeProperties2KHR"/>
- <type name="VkDisplayPlaneInfo2KHR"/>
- <type name="VkDisplayPlaneCapabilities2KHR"/>
- <command name="vkGetPhysicalDeviceDisplayProperties2KHR"/>
- <command name="vkGetPhysicalDeviceDisplayPlaneProperties2KHR"/>
- <command name="vkGetDisplayModeProperties2KHR"/>
- <command name="vkGetDisplayPlaneCapabilities2KHR"/>
- </require>
- </extension>
- <extension name="VK_MVK_ios_surface" number="123" type="instance" requires="VK_KHR_surface" platform="ios" supported="vulkan" author="MVK" contact="Bill Hollings @billhollings" deprecatedby="VK_EXT_metal_surface">
- <require>
- <enum value="3" name="VK_MVK_IOS_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_MVK_ios_surface&quot;" name="VK_MVK_IOS_SURFACE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK"/>
- <type name="VkIOSSurfaceCreateFlagsMVK"/>
- <type name="VkIOSSurfaceCreateInfoMVK"/>
- <command name="vkCreateIOSSurfaceMVK"/>
- </require>
- </extension>
- <extension name="VK_MVK_macos_surface" number="124" type="instance" requires="VK_KHR_surface" platform="macos" supported="vulkan" author="MVK" contact="Bill Hollings @billhollings" deprecatedby="VK_EXT_metal_surface">
- <require>
- <enum value="3" name="VK_MVK_MACOS_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_MVK_macos_surface&quot;" name="VK_MVK_MACOS_SURFACE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK"/>
- <type name="VkMacOSSurfaceCreateFlagsMVK"/>
- <type name="VkMacOSSurfaceCreateInfoMVK"/>
- <command name="vkCreateMacOSSurfaceMVK"/>
- </require>
- </extension>
- <extension name="VK_MVK_moltenvk" number="125" type="instance" author="MVK" contact="Bill Hollings @billhollings" supported="disabled">
- <require>
- <enum value="0" name="VK_MVK_MOLTENVK_SPEC_VERSION"/>
- <enum value="&quot;VK_MVK_moltenvk&quot;" name="VK_MVK_MOLTENVK_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_external_memory_dma_buf" number="126" type="device" requires="VK_KHR_external_memory_fd" author="EXT" contact="Chad Versace @chadversary" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_external_memory_dma_buf&quot;" name="VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME"/>
- <enum bitpos="9" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_queue_family_foreign" number="127" type="device" author="EXT" requires="VK_KHR_external_memory" contact="Chad Versace @chadversary" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_queue_family_foreign&quot;" name="VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME"/>
- <enum name="VK_QUEUE_FAMILY_FOREIGN_EXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_dedicated_allocation" number="128" type="device" author="KHR" requires="VK_KHR_get_memory_requirements2" contact="James Jones @cubanismo" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="3" name="VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_dedicated_allocation&quot;" name="VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR" alias="VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO"/>
- <type name="VkMemoryDedicatedRequirementsKHR"/>
- <type name="VkMemoryDedicatedAllocateInfoKHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_debug_utils" number="129" type="instance" author="EXT" contact="Mark Young @marky-lunarg" specialuse="debugging" supported="vulkan">
- <require>
- <enum value="2" name="VK_EXT_DEBUG_UTILS_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_debug_utils&quot;" name="VK_EXT_DEBUG_UTILS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"/>
- <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT"/>
- <type name="PFN_vkDebugUtilsMessengerCallbackEXT"/>
- <type name="VkDebugUtilsLabelEXT"/>
- <type name="VkDebugUtilsMessageSeverityFlagBitsEXT"/>
- <type name="VkDebugUtilsMessageSeverityFlagsEXT"/>
- <type name="VkDebugUtilsMessageTypeFlagBitsEXT"/>
- <type name="VkDebugUtilsMessageTypeFlagsEXT"/>
- <type name="VkDebugUtilsMessengerCallbackDataEXT"/>
- <type name="VkDebugUtilsMessengerCallbackDataFlagsEXT"/>
- <type name="VkDebugUtilsMessengerCreateFlagsEXT"/>
- <type name="VkDebugUtilsMessengerCreateInfoEXT"/>
- <type name="VkDebugUtilsMessengerEXT"/>
- <type name="VkDebugUtilsObjectNameInfoEXT"/>
- <type name="VkDebugUtilsObjectTagInfoEXT"/>
- <command name="vkSetDebugUtilsObjectNameEXT"/>
- <command name="vkSetDebugUtilsObjectTagEXT"/>
- <command name="vkQueueBeginDebugUtilsLabelEXT"/>
- <command name="vkQueueEndDebugUtilsLabelEXT"/>
- <command name="vkQueueInsertDebugUtilsLabelEXT"/>
- <command name="vkCmdBeginDebugUtilsLabelEXT"/>
- <command name="vkCmdEndDebugUtilsLabelEXT"/>
- <command name="vkCmdInsertDebugUtilsLabelEXT"/>
- <command name="vkCreateDebugUtilsMessengerEXT"/>
- <command name="vkDestroyDebugUtilsMessengerEXT"/>
- <command name="vkSubmitDebugUtilsMessageEXT"/>
- </require>
- </extension>
- <extension name="VK_ANDROID_external_memory_android_hardware_buffer" number="130" type="device" author="ANDROID" requires="VK_KHR_sampler_ycbcr_conversion,VK_KHR_external_memory,VK_EXT_queue_family_foreign,VK_KHR_dedicated_allocation" platform="android" contact="Jesse Hall @critsec" supported="vulkan">
- <require>
- <enum value="4" name="VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION"/>
- <enum value="&quot;VK_ANDROID_external_memory_android_hardware_buffer&quot;" name="VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME"/>
- <enum bitpos="10" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID"/>
- <type name="VkAndroidHardwareBufferUsageANDROID"/>
- <type name="VkAndroidHardwareBufferPropertiesANDROID"/>
- <type name="VkAndroidHardwareBufferFormatPropertiesANDROID"/>
- <type name="VkImportAndroidHardwareBufferInfoANDROID"/>
- <type name="VkMemoryGetAndroidHardwareBufferInfoANDROID"/>
- <type name="VkExternalFormatANDROID"/>
- <command name="vkGetAndroidHardwareBufferPropertiesANDROID"/>
- <command name="vkGetMemoryAndroidHardwareBufferANDROID"/>
- <type name="AHardwareBuffer"/>
- </require>
- <require extension="VK_KHR_format_feature_flags2">
- <type name="VkAndroidHardwareBufferFormatProperties2ANDROID"/>
- <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID"/>
- </require>
- </extension>
- <extension name="VK_EXT_sampler_filter_minmax" number="131" type="device" author="NV" requires="VK_KHR_get_physical_device_properties2" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="2" name="VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_sampler_filter_minmax&quot;" name="VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT" alias="VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO"/>
- <enum extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT" alias="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"/>
- <enum extends="VkSamplerReductionMode" name="VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT" alias="VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE"/>
- <enum extends="VkSamplerReductionMode" name="VK_SAMPLER_REDUCTION_MODE_MIN_EXT" alias="VK_SAMPLER_REDUCTION_MODE_MIN"/>
- <enum extends="VkSamplerReductionMode" name="VK_SAMPLER_REDUCTION_MODE_MAX_EXT" alias="VK_SAMPLER_REDUCTION_MODE_MAX"/>
- <type name="VkSamplerReductionModeEXT"/>
- <type name="VkSamplerReductionModeCreateInfoEXT"/>
- <type name="VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_storage_buffer_storage_class" number="132" type="device" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_storage_buffer_storage_class&quot;" name="VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_gpu_shader_int16" number="133" type="device" author="AMD" contact="Qun Lin @linqun" supported="vulkan" deprecatedby="VK_KHR_shader_float16_int8">
- <require>
- <enum value="2" name="VK_AMD_GPU_SHADER_INT16_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_gpu_shader_int16&quot;" name="VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_134" number="134" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_134_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_134&quot;" name="VK_AMD_EXTENSION_134_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_135" number="135" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_135_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_135&quot;" name="VK_AMD_EXTENSION_135_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_136" number="136" author="AMD" contact="Mais Alnasser @malnasse" 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"/>
- </require>
- </extension>
- <extension name="VK_AMD_mixed_attachment_samples" number="137" type="device" author="AMD" contact="Matthaeus G. Chajdas @anteru" supported="vulkan">
- <require>
- <enum value="1" name="VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_mixed_attachment_samples&quot;" name="VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_shader_fragment_mask" number="138" author="AMD" contact="Aaron Hagan @AaronHaganAMD" supported="vulkan" type="device">
- <require>
- <enum value="1" name="VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_shader_fragment_mask&quot;" name="VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_inline_uniform_block" number="139" type="device" author="EXT" requires="VK_KHR_get_physical_device_properties2,VK_KHR_maintenance1" contact="Daniel Rakos @aqnuep" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_inline_uniform_block&quot;" name="VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME"/>
- <enum extends="VkDescriptorType" name="VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT" alias="VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT" alias="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT" alias="VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO"/>
- <type name="VkPhysicalDeviceInlineUniformBlockFeaturesEXT"/>
- <type name="VkPhysicalDeviceInlineUniformBlockPropertiesEXT"/>
- <type name="VkWriteDescriptorSetInlineUniformBlockEXT"/>
- <type name="VkDescriptorPoolInlineUniformBlockCreateInfoEXT"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_140" number="140" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_140_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_140&quot;" name="VK_AMD_EXTENSION_140_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_shader_stencil_export" number="141" type="device" author="EXT" contact="Dominik Witczak @dominikwitczakamd" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_shader_stencil_export&quot;" name="VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_142" number="142" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_142_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_142&quot;" name="VK_AMD_EXTENSION_142_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_143" number="143" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_143_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_143&quot;" name="VK_AMD_EXTENSION_143_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_sample_locations" number="144" type="device" author="AMD" contact="Daniel Rakos @drakos-amd" supported="vulkan" requires="VK_KHR_get_physical_device_properties2">
- <require>
- <enum value="1" name="VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_sample_locations&quot;" name="VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME"/>
- <enum bitpos="12" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT"/>
- <enum offset="0" extends="VkDynamicState" name="VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT"/>
- <type name="VkSampleLocationEXT"/>
- <type name="VkSampleLocationsInfoEXT"/>
- <type name="VkAttachmentSampleLocationsEXT"/>
- <type name="VkSubpassSampleLocationsEXT"/>
- <type name="VkRenderPassSampleLocationsBeginInfoEXT"/>
- <type name="VkPipelineSampleLocationsStateCreateInfoEXT"/>
- <type name="VkPhysicalDeviceSampleLocationsPropertiesEXT"/>
- <type name="VkMultisamplePropertiesEXT"/>
- <command name="vkCmdSetSampleLocationsEXT"/>
- <command name="vkGetPhysicalDeviceMultisamplePropertiesEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_relaxed_block_layout" number="145" type="device" author="KHR" contact="John Kessenich @johnkslang" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_relaxed_block_layout&quot;" name="VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_RESERVED_do_not_use_146" number="146" supported="disabled" comment="Used for functionality subsumed into Vulkan 1.1 and not published as an extension">
- <require>
- <enum value="1" name="VK_RESERVED_DO_NOT_USE_146_SPEC_VERSION"/>
- <enum value="&quot;VK_RESERVED_do_not_use_146&quot;" name="VK_RESERVED_DO_NOT_USE_146_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_get_memory_requirements2" number="147" type="device" author="KHR" contact="Jason Ekstrand @jekstrand" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_get_memory_requirements2&quot;" name="VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR" alias="VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR" alias="VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR" alias="VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR" alias="VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR" alias="VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"/>
- <type name="VkBufferMemoryRequirementsInfo2KHR"/>
- <type name="VkImageMemoryRequirementsInfo2KHR"/>
- <type name="VkImageSparseMemoryRequirementsInfo2KHR"/>
- <type name="VkMemoryRequirements2KHR"/>
- <type name="VkSparseImageMemoryRequirements2KHR"/>
- <command name="vkGetImageMemoryRequirements2KHR"/>
- <command name="vkGetBufferMemoryRequirements2KHR"/>
- <command name="vkGetImageSparseMemoryRequirements2KHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_image_format_list" number="148" type="device" author="KHR" contact="Jason Ekstrand @jekstrand" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_image_format_list&quot;" name="VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO"/>
- <type name="VkImageFormatListCreateInfoKHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_blend_operation_advanced" number="149" type="device" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
- <require>
- <enum value="2" name="VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_blend_operation_advanced&quot;" name="VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT"/>
- <type name="VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT"/>
- <type name="VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT"/>
- <type name="VkPipelineColorBlendAdvancedStateCreateInfoEXT"/>
- <type name="VkBlendOverlapEXT"/>
- <enum offset="0" extends="VkBlendOp" name="VK_BLEND_OP_ZERO_EXT"/>
- <enum offset="1" extends="VkBlendOp" name="VK_BLEND_OP_SRC_EXT"/>
- <enum offset="2" extends="VkBlendOp" name="VK_BLEND_OP_DST_EXT"/>
- <enum offset="3" extends="VkBlendOp" name="VK_BLEND_OP_SRC_OVER_EXT"/>
- <enum offset="4" extends="VkBlendOp" name="VK_BLEND_OP_DST_OVER_EXT"/>
- <enum offset="5" extends="VkBlendOp" name="VK_BLEND_OP_SRC_IN_EXT"/>
- <enum offset="6" extends="VkBlendOp" name="VK_BLEND_OP_DST_IN_EXT"/>
- <enum offset="7" extends="VkBlendOp" name="VK_BLEND_OP_SRC_OUT_EXT"/>
- <enum offset="8" extends="VkBlendOp" name="VK_BLEND_OP_DST_OUT_EXT"/>
- <enum offset="9" extends="VkBlendOp" name="VK_BLEND_OP_SRC_ATOP_EXT"/>
- <enum offset="10" extends="VkBlendOp" name="VK_BLEND_OP_DST_ATOP_EXT"/>
- <enum offset="11" extends="VkBlendOp" name="VK_BLEND_OP_XOR_EXT"/>
- <enum offset="12" extends="VkBlendOp" name="VK_BLEND_OP_MULTIPLY_EXT"/>
- <enum offset="13" extends="VkBlendOp" name="VK_BLEND_OP_SCREEN_EXT"/>
- <enum offset="14" extends="VkBlendOp" name="VK_BLEND_OP_OVERLAY_EXT"/>
- <enum offset="15" extends="VkBlendOp" name="VK_BLEND_OP_DARKEN_EXT"/>
- <enum offset="16" extends="VkBlendOp" name="VK_BLEND_OP_LIGHTEN_EXT"/>
- <enum offset="17" extends="VkBlendOp" name="VK_BLEND_OP_COLORDODGE_EXT"/>
- <enum offset="18" extends="VkBlendOp" name="VK_BLEND_OP_COLORBURN_EXT"/>
- <enum offset="19" extends="VkBlendOp" name="VK_BLEND_OP_HARDLIGHT_EXT"/>
- <enum offset="20" extends="VkBlendOp" name="VK_BLEND_OP_SOFTLIGHT_EXT"/>
- <enum offset="21" extends="VkBlendOp" name="VK_BLEND_OP_DIFFERENCE_EXT"/>
- <enum offset="22" extends="VkBlendOp" name="VK_BLEND_OP_EXCLUSION_EXT"/>
- <enum offset="23" extends="VkBlendOp" name="VK_BLEND_OP_INVERT_EXT"/>
- <enum offset="24" extends="VkBlendOp" name="VK_BLEND_OP_INVERT_RGB_EXT"/>
- <enum offset="25" extends="VkBlendOp" name="VK_BLEND_OP_LINEARDODGE_EXT"/>
- <enum offset="26" extends="VkBlendOp" name="VK_BLEND_OP_LINEARBURN_EXT"/>
- <enum offset="27" extends="VkBlendOp" name="VK_BLEND_OP_VIVIDLIGHT_EXT"/>
- <enum offset="28" extends="VkBlendOp" name="VK_BLEND_OP_LINEARLIGHT_EXT"/>
- <enum offset="29" extends="VkBlendOp" name="VK_BLEND_OP_PINLIGHT_EXT"/>
- <enum offset="30" extends="VkBlendOp" name="VK_BLEND_OP_HARDMIX_EXT"/>
- <enum offset="31" extends="VkBlendOp" name="VK_BLEND_OP_HSL_HUE_EXT"/>
- <enum offset="32" extends="VkBlendOp" name="VK_BLEND_OP_HSL_SATURATION_EXT"/>
- <enum offset="33" extends="VkBlendOp" name="VK_BLEND_OP_HSL_COLOR_EXT"/>
- <enum offset="34" extends="VkBlendOp" name="VK_BLEND_OP_HSL_LUMINOSITY_EXT"/>
- <enum offset="35" extends="VkBlendOp" name="VK_BLEND_OP_PLUS_EXT"/>
- <enum offset="36" extends="VkBlendOp" name="VK_BLEND_OP_PLUS_CLAMPED_EXT"/>
- <enum offset="37" extends="VkBlendOp" name="VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT"/>
- <enum offset="38" extends="VkBlendOp" name="VK_BLEND_OP_PLUS_DARKER_EXT"/>
- <enum offset="39" extends="VkBlendOp" name="VK_BLEND_OP_MINUS_EXT"/>
- <enum offset="40" extends="VkBlendOp" name="VK_BLEND_OP_MINUS_CLAMPED_EXT"/>
- <enum offset="41" extends="VkBlendOp" name="VK_BLEND_OP_CONTRAST_EXT"/>
- <enum offset="42" extends="VkBlendOp" name="VK_BLEND_OP_INVERT_OVG_EXT"/>
- <enum offset="43" extends="VkBlendOp" name="VK_BLEND_OP_RED_EXT"/>
- <enum offset="44" extends="VkBlendOp" name="VK_BLEND_OP_GREEN_EXT"/>
- <enum offset="45" extends="VkBlendOp" name="VK_BLEND_OP_BLUE_EXT"/>
- <enum bitpos="19" extends="VkAccessFlagBits" name="VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"/>
- </require>
- </extension>
- <extension name="VK_NV_fragment_coverage_to_color" number="150" type="device" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_fragment_coverage_to_color&quot;" name="VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV"/>
- <type name="VkPipelineCoverageToColorStateCreateFlagsNV"/>
- <type name="VkPipelineCoverageToColorStateCreateInfoNV"/>
- </require>
- </extension>
- <extension name="VK_KHR_acceleration_structure" number="151" type="device" requiresCore="1.1" requires="VK_EXT_descriptor_indexing,VK_KHR_buffer_device_address,VK_KHR_deferred_host_operations" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan" sortorder="1">
- <require>
- <enum value="13" name="VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_acceleration_structure&quot;" name="VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME"/>
- <enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR"/>
- <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR"/>
- <enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR"/>
- <enum offset="10" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR"/>
- <enum offset="11" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR"/>
- <enum offset="12" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR"/>
- <enum offset="13" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR"/>
- <enum offset="14" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR"/>
- <enum offset="17" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR"/>
- <enum offset="20" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR"/>
- <enum bitpos="25" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"/>
- <enum offset="0" extends="VkDescriptorType" name="VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR"/>
- <enum bitpos="21" extends="VkAccessFlagBits" name="VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"/>
- <enum bitpos="22" extends="VkAccessFlagBits" name="VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"/>
- <enum offset="0" extends="VkQueryType" name="VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR"/>
- <enum offset="1" extends="VkQueryType" name="VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR"/>
- <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR"/>
- <enum offset="0" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT"/>
- <enum offset="0" extends="VkIndexType" extnumber="166" name="VK_INDEX_TYPE_NONE_KHR"/>
- <enum bitpos="29" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"/>
- <enum bitpos="19" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"/>
- <enum bitpos="20" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"/>
- <type name="VkAccelerationStructureTypeKHR"/>
- <type name="VkDeviceOrHostAddressKHR"/>
- <type name="VkDeviceOrHostAddressConstKHR"/>
- <type name="VkAccelerationStructureBuildRangeInfoKHR"/>
- <type name="VkAabbPositionsKHR"/>
- <type name="VkAccelerationStructureGeometryTrianglesDataKHR"/>
- <type name="VkTransformMatrixKHR"/>
- <type name="VkAccelerationStructureBuildGeometryInfoKHR"/>
- <type name="VkAccelerationStructureBuildTypeKHR"/>
- <type name="VkAccelerationStructureGeometryAabbsDataKHR"/>
- <type name="VkAccelerationStructureInstanceKHR"/>
- <type name="VkAccelerationStructureGeometryInstancesDataKHR"/>
- <type name="VkAccelerationStructureGeometryDataKHR"/>
- <type name="VkAccelerationStructureGeometryKHR"/>
- <type name="VkGeometryFlagsKHR"/>
- <type name="VkGeometryInstanceFlagsKHR"/>
- <type name="VkGeometryFlagBitsKHR"/>
- <type name="VkGeometryInstanceFlagBitsKHR"/>
- <type name="VkAccelerationStructureCreateInfoKHR"/>
- <type name="VkAccelerationStructureKHR"/>
- <type name="VkBuildAccelerationStructureFlagBitsKHR"/>
- <type name="VkBuildAccelerationStructureFlagsKHR"/>
- <type name="VkCopyAccelerationStructureModeKHR"/>
- <type name="VkGeometryTypeKHR"/>
- <type name="VkWriteDescriptorSetAccelerationStructureKHR"/>
- <type name="VkPhysicalDeviceAccelerationStructureFeaturesKHR"/>
- <type name="VkPhysicalDeviceAccelerationStructurePropertiesKHR"/>
- <type name="VkAccelerationStructureDeviceAddressInfoKHR"/>
- <type name="VkAccelerationStructureVersionInfoKHR"/>
- <type name="VkCopyAccelerationStructureToMemoryInfoKHR"/>
- <type name="VkCopyMemoryToAccelerationStructureInfoKHR"/>
- <type name="VkCopyAccelerationStructureInfoKHR"/>
- <type name="VkAccelerationStructureCompatibilityKHR"/>
- <type name="VkAccelerationStructureCreateFlagBitsKHR"/>
- <type name="VkAccelerationStructureCreateFlagsKHR"/>
- <type name="VkBuildAccelerationStructureModeKHR"/>
- <type name="VkAccelerationStructureBuildSizesInfoKHR"/>
- <command name="vkCreateAccelerationStructureKHR"/>
- <command name="vkDestroyAccelerationStructureKHR"/>
- <command name="vkCmdBuildAccelerationStructuresKHR"/>
- <command name="vkCmdBuildAccelerationStructuresIndirectKHR"/>
- <command name="vkBuildAccelerationStructuresKHR"/>
- <command name="vkCopyAccelerationStructureKHR"/>
- <command name="vkCopyAccelerationStructureToMemoryKHR"/>
- <command name="vkCopyMemoryToAccelerationStructureKHR"/>
- <command name="vkWriteAccelerationStructuresPropertiesKHR"/>
- <command name="vkCmdCopyAccelerationStructureKHR"/>
- <command name="vkCmdCopyAccelerationStructureToMemoryKHR"/>
- <command name="vkCmdCopyMemoryToAccelerationStructureKHR"/>
- <command name="vkGetAccelerationStructureDeviceAddressKHR"/>
- <command name="vkCmdWriteAccelerationStructuresPropertiesKHR"/>
- <command name="vkGetDeviceAccelerationStructureCompatibilityKHR"/>
- <command name="vkGetAccelerationStructureBuildSizesKHR"/>
- </require>
- <require extension="VK_KHR_format_feature_flags2">
- <enum bitpos="29" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_ray_tracing_pipeline" number="348" type="device" requiresCore="1.1" requires="VK_KHR_spirv_1_4,VK_KHR_acceleration_structure" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan" sortorder="1">
- <require>
- <enum value="1" name="VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_ray_tracing_pipeline&quot;" name="VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME"/>
- <enum name="VK_SHADER_UNUSED_KHR"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR"/>
- <enum offset="15" extends="VkStructureType" extnumber="151" name="VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR"/>
- <enum offset="16" extends="VkStructureType" extnumber="151" name="VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR"/>
- <enum offset="18" extends="VkStructureType" extnumber="151" name="VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR"/>
- <enum bitpos="8" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_RAYGEN_BIT_KHR"/>
- <enum bitpos="9" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_ANY_HIT_BIT_KHR"/>
- <enum bitpos="10" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"/>
- <enum bitpos="11" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_MISS_BIT_KHR"/>
- <enum bitpos="12" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_INTERSECTION_BIT_KHR"/>
- <enum bitpos="13" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_CALLABLE_BIT_KHR"/>
- <enum bitpos="21" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"/>
- <enum bitpos="10" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"/>
- <enum offset="0" extends="VkPipelineBindPoint" extnumber="166" name="VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR"/>
- <enum bitpos="14" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"/>
- <enum bitpos="15" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR"/>
- <enum bitpos="16" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR"/>
- <enum bitpos="17" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR"/>
- <enum bitpos="12" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"/>
- <enum bitpos="13" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"/>
- <enum bitpos="19" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR"/>
- <enum offset="0" extends="VkDynamicState" name="VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR"/>
- <type name="VkRayTracingShaderGroupCreateInfoKHR"/>
- <type name="VkRayTracingShaderGroupTypeKHR"/>
- <type name="VkRayTracingPipelineCreateInfoKHR"/>
- <type name="VkPhysicalDeviceRayTracingPipelineFeaturesKHR"/>
- <type name="VkPhysicalDeviceRayTracingPipelinePropertiesKHR"/>
- <type name="VkStridedDeviceAddressRegionKHR"/>
- <type name="VkTraceRaysIndirectCommandKHR"/>
- <type name="VkRayTracingPipelineInterfaceCreateInfoKHR"/>
- <type name="VkShaderGroupShaderKHR"/>
- <command name="vkCmdTraceRaysKHR"/>
- <command name="vkCreateRayTracingPipelinesKHR"/>
- <command name="vkGetRayTracingShaderGroupHandlesKHR"/>
- <command name="vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"/>
- <command name="vkCmdTraceRaysIndirectKHR"/>
- <command name="vkGetRayTracingShaderGroupStackSizeKHR"/>
- <command name="vkCmdSetRayTracingPipelineStackSizeKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_ray_query" number="349" type="device" requiresCore="1.1" requires="VK_KHR_spirv_1_4,VK_KHR_acceleration_structure" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan" sortorder="1">
- <require>
- <enum value="1" name="VK_KHR_RAY_QUERY_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_ray_query&quot;" name="VK_KHR_RAY_QUERY_EXTENSION_NAME"/>
- <enum offset="13" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR"/>
- <type name="VkPhysicalDeviceRayQueryFeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_152" number="152" author="NV" contact="Jeff Bolz @jeffbolznv" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_152_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_152&quot;" name="VK_NV_EXTENSION_152_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_framebuffer_mixed_samples" number="153" type="device" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_framebuffer_mixed_samples&quot;" name="VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"/>
- <type name="VkPipelineCoverageModulationStateCreateInfoNV"/>
- <type name="VkPipelineCoverageModulationStateCreateFlagsNV"/>
- <type name="VkCoverageModulationModeNV"/>
- </require>
- </extension>
- <extension name="VK_NV_fill_rectangle" number="154" type="device" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_FILL_RECTANGLE_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_fill_rectangle&quot;" name="VK_NV_FILL_RECTANGLE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkPolygonMode" name="VK_POLYGON_MODE_FILL_RECTANGLE_NV"/>
- </require>
- </extension>
- <extension name="VK_NV_shader_sm_builtins" number="155" type="device" requiresCore="1.1" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_shader_sm_builtins&quot;" name="VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV"/>
- <type name="VkPhysicalDeviceShaderSMBuiltinsPropertiesNV"/>
- <type name="VkPhysicalDeviceShaderSMBuiltinsFeaturesNV"/>
- </require>
- </extension>
- <extension name="VK_EXT_post_depth_coverage" number="156" type="device" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_post_depth_coverage&quot;" name="VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_sampler_ycbcr_conversion" number="157" type="device" requires="VK_KHR_maintenance1,VK_KHR_bind_memory2,VK_KHR_get_memory_requirements2,VK_KHR_get_physical_device_properties2" author="KHR" contact="Andrew Garrard @fluppeteer" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="14" name="VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_sampler_ycbcr_conversion&quot;" name="VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR" alias="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR" alias="VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR" alias="VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES"/>
- <enum extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT" alias="VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT"/>
- <enum extends="VkObjectType" name="VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR" alias="VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION"/>
- <enum extends="VkFormat" name="VK_FORMAT_G8B8G8R8_422_UNORM_KHR" alias="VK_FORMAT_G8B8G8R8_422_UNORM"/>
- <enum extends="VkFormat" name="VK_FORMAT_B8G8R8G8_422_UNORM_KHR" alias="VK_FORMAT_B8G8R8G8_422_UNORM"/>
- <enum extends="VkFormat" name="VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR" alias="VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM"/>
- <enum extends="VkFormat" name="VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR" alias="VK_FORMAT_G8_B8R8_2PLANE_420_UNORM"/>
- <enum extends="VkFormat" name="VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR" alias="VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM"/>
- <enum extends="VkFormat" name="VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR" alias="VK_FORMAT_G8_B8R8_2PLANE_422_UNORM"/>
- <enum extends="VkFormat" name="VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR" alias="VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM"/>
- <enum extends="VkFormat" name="VK_FORMAT_R10X6_UNORM_PACK16_KHR" alias="VK_FORMAT_R10X6_UNORM_PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR" alias="VK_FORMAT_R10X6G10X6_UNORM_2PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR" alias="VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR" alias="VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR" alias="VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR" alias="VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR" alias="VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR" alias="VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR" alias="VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR" alias="VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_R12X4_UNORM_PACK16_KHR" alias="VK_FORMAT_R12X4_UNORM_PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR" alias="VK_FORMAT_R12X4G12X4_UNORM_2PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR" alias="VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR" alias="VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR" alias="VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR" alias="VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR" alias="VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR" alias="VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR" alias="VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR" alias="VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G16B16G16R16_422_UNORM_KHR" alias="VK_FORMAT_G16B16G16R16_422_UNORM"/>
- <enum extends="VkFormat" name="VK_FORMAT_B16G16R16G16_422_UNORM_KHR" alias="VK_FORMAT_B16G16R16G16_422_UNORM"/>
- <enum extends="VkFormat" name="VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR" alias="VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM"/>
- <enum extends="VkFormat" name="VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR" alias="VK_FORMAT_G16_B16R16_2PLANE_420_UNORM"/>
- <enum extends="VkFormat" name="VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR" alias="VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM"/>
- <enum extends="VkFormat" name="VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR" alias="VK_FORMAT_G16_B16R16_2PLANE_422_UNORM"/>
- <enum extends="VkFormat" name="VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR" alias="VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM"/>
- <enum extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_PLANE_0_BIT_KHR" alias="VK_IMAGE_ASPECT_PLANE_0_BIT"/>
- <enum extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_PLANE_1_BIT_KHR" alias="VK_IMAGE_ASPECT_PLANE_1_BIT"/>
- <enum extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_PLANE_2_BIT_KHR" alias="VK_IMAGE_ASPECT_PLANE_2_BIT"/>
- <enum extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_DISJOINT_BIT_KHR" alias="VK_IMAGE_CREATE_DISJOINT_BIT"/>
- <enum extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR" alias="VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"/>
- <enum extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR" alias="VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"/>
- <enum extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR" alias="VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"/>
- <enum extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR" alias="VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"/>
- <enum extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR" alias="VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"/>
- <enum extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_DISJOINT_BIT_KHR" alias="VK_FORMAT_FEATURE_DISJOINT_BIT"/>
- <enum extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR" alias="VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"/>
- <type name="VkSamplerYcbcrConversionCreateInfoKHR"/>
- <type name="VkSamplerYcbcrConversionInfoKHR"/>
- <type name="VkBindImagePlaneMemoryInfoKHR"/>
- <type name="VkImagePlaneMemoryRequirementsInfoKHR"/>
- <type name="VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR"/>
- <type name="VkSamplerYcbcrConversionImageFormatPropertiesKHR"/>
- <command name="vkCreateSamplerYcbcrConversionKHR"/>
- <command name="vkDestroySamplerYcbcrConversionKHR"/>
- <type name="VkSamplerYcbcrConversionKHR"/>
- <type name="VkSamplerYcbcrModelConversionKHR"/>
- <enum extends="VkSamplerYcbcrModelConversion" name="VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR" alias="VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY"/>
- <enum extends="VkSamplerYcbcrModelConversion" name="VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR" alias="VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY"/>
- <enum extends="VkSamplerYcbcrModelConversion" name="VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR" alias="VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709"/>
- <enum extends="VkSamplerYcbcrModelConversion" name="VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR" alias="VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601"/>
- <enum extends="VkSamplerYcbcrModelConversion" name="VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR" alias="VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020"/>
- <type name="VkSamplerYcbcrRangeKHR"/>
- <enum extends="VkSamplerYcbcrRange" name="VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR" alias="VK_SAMPLER_YCBCR_RANGE_ITU_FULL"/>
- <enum extends="VkSamplerYcbcrRange" name="VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR" alias="VK_SAMPLER_YCBCR_RANGE_ITU_NARROW"/>
- <type name="VkChromaLocationKHR"/>
- <enum extends="VkChromaLocation" name="VK_CHROMA_LOCATION_COSITED_EVEN_KHR" alias="VK_CHROMA_LOCATION_COSITED_EVEN"/>
- <enum extends="VkChromaLocation" name="VK_CHROMA_LOCATION_MIDPOINT_KHR" alias="VK_CHROMA_LOCATION_MIDPOINT"/>
- </require>
- <require extension="VK_EXT_debug_report">
- <enum extends="VkDebugReportObjectTypeEXT" offset="0" name="VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_bind_memory2" number="158" type="device" author="KHR" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_BIND_MEMORY_2_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_bind_memory2&quot;" name="VK_KHR_BIND_MEMORY_2_EXTENSION_NAME"/>
- <command name="vkBindBufferMemory2KHR"/>
- <command name="vkBindImageMemory2KHR"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR" alias="VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR" alias="VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO"/>
- <enum extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_ALIAS_BIT_KHR" alias="VK_IMAGE_CREATE_ALIAS_BIT"/>
- <type name="VkBindBufferMemoryInfoKHR"/>
- <type name="VkBindImageMemoryInfoKHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_image_drm_format_modifier" number="159" type="device" requires="VK_KHR_bind_memory2,VK_KHR_get_physical_device_properties2,VK_KHR_image_format_list,VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Chad Versace @chadversary" supported="vulkan">
- <require>
- <enum value="2" name="VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_image_drm_format_modifier&quot;" name="VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME"/>
- <enum offset="0" dir="-" extends="VkResult" name="VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"/>
- <enum offset="0" extends="VkImageTiling" name="VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT"/>
- <enum bitpos="7" extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"/>
- <enum bitpos="8" extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"/>
- <enum bitpos="9" extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"/>
- <enum bitpos="10" extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"/>
- <type name="VkDrmFormatModifierPropertiesListEXT"/>
- <type name="VkDrmFormatModifierPropertiesEXT"/>
- <type name="VkPhysicalDeviceImageDrmFormatModifierInfoEXT"/>
- <type name="VkImageDrmFormatModifierListCreateInfoEXT"/>
- <type name="VkImageDrmFormatModifierExplicitCreateInfoEXT"/>
- <type name="VkImageDrmFormatModifierPropertiesEXT"/>
- <command name="vkGetImageDrmFormatModifierPropertiesEXT"/>
- </require>
- <require extension="VK_KHR_format_feature_flags2">
- <type name="VkDrmFormatModifierPropertiesList2EXT"/>
- <type name="VkDrmFormatModifierProperties2EXT"/>
- <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_160" number="160" author="EXT" contact="Mark Young @marky-lunarg" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_160_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_160&quot;" name="VK_EXT_EXTENSION_160_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_validation_cache" number="161" type="device" author="GOOGLE" contact="Cort Stratton @cdwfs" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_VALIDATION_CACHE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_validation_cache&quot;" name="VK_EXT_VALIDATION_CACHE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"/>
- <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_VALIDATION_CACHE_EXT"/>
- <type name="VkValidationCacheEXT"/>
- <type name="VkValidationCacheCreateInfoEXT"/>
- <type name="VkShaderModuleValidationCacheCreateInfoEXT"/>
- <type name="VkValidationCacheHeaderVersionEXT"/>
- <type name="VkValidationCacheCreateFlagsEXT"/>
- <command name="vkCreateValidationCacheEXT"/>
- <command name="vkDestroyValidationCacheEXT"/>
- <command name="vkMergeValidationCachesEXT"/>
- <command name="vkGetValidationCacheDataEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_descriptor_indexing" number="162" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_maintenance3" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="2" name="VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_descriptor_indexing&quot;" name="VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT" alias="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT" alias="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT" alias="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT"/>
- <enum extends="VkDescriptorBindingFlagBits" name="VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT" alias="VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"/>
- <enum extends="VkDescriptorBindingFlagBits" name="VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT" alias="VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"/>
- <enum extends="VkDescriptorBindingFlagBits" name="VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT" alias="VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"/>
- <enum extends="VkDescriptorBindingFlagBits" name="VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT" alias="VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"/>
- <enum extends="VkDescriptorPoolCreateFlagBits" name="VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT" alias="VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"/>
- <enum extends="VkDescriptorSetLayoutCreateFlagBits" name="VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT" alias="VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"/>
- <enum extends="VkResult" name="VK_ERROR_FRAGMENTATION_EXT" alias="VK_ERROR_FRAGMENTATION"/>
- <type name="VkDescriptorSetLayoutBindingFlagsCreateInfoEXT"/>
- <type name="VkPhysicalDeviceDescriptorIndexingFeaturesEXT"/>
- <type name="VkPhysicalDeviceDescriptorIndexingPropertiesEXT"/>
- <type name="VkDescriptorSetVariableDescriptorCountAllocateInfoEXT"/>
- <type name="VkDescriptorSetVariableDescriptorCountLayoutSupportEXT"/>
- <type name="VkDescriptorBindingFlagBitsEXT"/>
- <type name="VkDescriptorBindingFlagsEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_shader_viewport_index_layer" number="163" type="device" author="NV" contact="Daniel Koch @dgkoch" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_shader_viewport_index_layer&quot;" name="VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_portability_subset" number="164" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Bill Hollings @billhollings" platform="provisional" supported="vulkan" provisional="true">
- <require>
- <enum value="1" name="VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_portability_subset&quot;" name="VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <type name="VkPhysicalDevicePortabilitySubsetFeaturesKHR"/>
- <type name="VkPhysicalDevicePortabilitySubsetPropertiesKHR"/>
- </require>
- </extension>
- <extension name="VK_NV_shading_rate_image" number="165" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
- <require>
- <enum value="3" name="VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_shading_rate_image&quot;" name="VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV"/>
- <enum extends="VkImageLayout" name="VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV" alias="VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR"/>
- <enum offset="4" extends="VkDynamicState" name="VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV"/>
- <enum extends="VkAccessFlagBits" name="VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV" alias="VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"/>
- <enum extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV" alias="VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
- <enum extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" alias="VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV"/>
- <enum offset="6" extends="VkDynamicState" name="VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV"/>
- <type name="VkShadingRatePaletteEntryNV"/>
- <type name="VkShadingRatePaletteNV"/>
- <type name="VkPipelineViewportShadingRateImageStateCreateInfoNV"/>
- <type name="VkPhysicalDeviceShadingRateImageFeaturesNV"/>
- <type name="VkPhysicalDeviceShadingRateImagePropertiesNV"/>
- <type name="VkCoarseSampleLocationNV"/>
- <type name="VkCoarseSampleOrderCustomNV"/>
- <type name="VkPipelineViewportCoarseSampleOrderStateCreateInfoNV"/>
- <type name="VkCoarseSampleOrderTypeNV"/>
- <command name="vkCmdBindShadingRateImageNV"/>
- <command name="vkCmdSetViewportShadingRatePaletteNV"/>
- <command name="vkCmdSetCoarseSampleOrderNV"/>
- </require>
- </extension>
- <extension name="VK_NV_ray_tracing" number="166" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_get_memory_requirements2" author="NV" contact="Eric Werness @ewerness-nv" supported="vulkan">
- <require>
- <enum value="3" name="VK_NV_RAY_TRACING_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_ray_tracing&quot;" name="VK_NV_RAY_TRACING_EXTENSION_NAME"/>
- <enum name="VK_SHADER_UNUSED_NV"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GEOMETRY_NV"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV"/>
- <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV"/>
- <enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV"/>
- <enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV"/>
- <enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV"/>
- <enum offset="11" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV"/>
- <enum offset="12" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV"/>
- <enum extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_RAYGEN_BIT_NV" alias="VK_SHADER_STAGE_RAYGEN_BIT_KHR"/>
- <enum extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_ANY_HIT_BIT_NV" alias="VK_SHADER_STAGE_ANY_HIT_BIT_KHR"/>
- <enum extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV" alias="VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"/>
- <enum extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_MISS_BIT_NV" alias="VK_SHADER_STAGE_MISS_BIT_KHR"/>
- <enum extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_INTERSECTION_BIT_NV" alias="VK_SHADER_STAGE_INTERSECTION_BIT_KHR"/>
- <enum extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_CALLABLE_BIT_NV" alias="VK_SHADER_STAGE_CALLABLE_BIT_KHR"/>
- <enum extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV" alias="VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"/>
- <enum extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV" alias="VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"/>
- <enum extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_RAY_TRACING_BIT_NV" alias="VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"/>
- <enum extends="VkPipelineBindPoint" name="VK_PIPELINE_BIND_POINT_RAY_TRACING_NV" alias="VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR"/>
- <enum offset="0" extends="VkDescriptorType" name="VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV"/>
- <enum extends="VkAccessFlagBits" name="VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV" alias="VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"/>
- <enum extends="VkAccessFlagBits" name="VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV" alias="VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"/>
- <enum offset="0" extends="VkQueryType" name="VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV"/>
- <enum bitpos="5" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"/>
- <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV"/>
- <enum offset="0" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT"/>
- <enum extends="VkIndexType" name="VK_INDEX_TYPE_NONE_NV" alias="VK_INDEX_TYPE_NONE_KHR"/>
- <type name="VkRayTracingShaderGroupCreateInfoNV"/>
- <type name="VkRayTracingShaderGroupTypeNV"/>
- <enum extends="VkRayTracingShaderGroupTypeKHR" name="VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV" alias="VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR"/>
- <enum extends="VkRayTracingShaderGroupTypeKHR" name="VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV" alias="VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR"/>
- <enum extends="VkRayTracingShaderGroupTypeKHR" name="VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV" alias="VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR"/>
- <type name="VkRayTracingPipelineCreateInfoNV"/>
- <type name="VkGeometryTypeNV"/>
- <enum extends="VkGeometryTypeKHR" name="VK_GEOMETRY_TYPE_TRIANGLES_NV" alias="VK_GEOMETRY_TYPE_TRIANGLES_KHR"/>
- <enum extends="VkGeometryTypeKHR" name="VK_GEOMETRY_TYPE_AABBS_NV" alias="VK_GEOMETRY_TYPE_AABBS_KHR"/>
- <type name="VkAccelerationStructureTypeNV"/>
- <enum extends="VkAccelerationStructureTypeKHR" name="VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV" alias="VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR"/>
- <enum extends="VkAccelerationStructureTypeKHR" name="VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV" alias="VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR"/>
- <type name="VkGeometryTrianglesNV"/>
- <type name="VkGeometryAABBNV"/>
- <type name="VkGeometryDataNV"/>
- <type name="VkGeometryNV"/>
- <type name="VkGeometryFlagsNV"/>
- <type name="VkGeometryFlagBitsNV"/>
- <enum extends="VkGeometryFlagBitsKHR" name="VK_GEOMETRY_OPAQUE_BIT_NV" alias="VK_GEOMETRY_OPAQUE_BIT_KHR"/>
- <enum extends="VkGeometryFlagBitsKHR" name="VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV" alias="VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"/>
- <type name="VkGeometryInstanceFlagsNV"/>
- <type name="VkGeometryInstanceFlagBitsNV"/>
- <enum extends="VkGeometryInstanceFlagBitsKHR" name="VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV" alias="VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"/>
- <enum extends="VkGeometryInstanceFlagBitsKHR" name="VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV" alias="VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR"/>
- <enum extends="VkGeometryInstanceFlagBitsKHR" name="VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV" alias="VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"/>
- <enum extends="VkGeometryInstanceFlagBitsKHR" name="VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV" alias="VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"/>
- <type name="VkAccelerationStructureInfoNV"/>
- <type name="VkAccelerationStructureCreateInfoNV"/>
- <type name="VkAccelerationStructureNV"/>
- <type name="VkBuildAccelerationStructureFlagBitsNV"/>
- <enum extends="VkBuildAccelerationStructureFlagBitsKHR" name="VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV" alias="VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"/>
- <enum extends="VkBuildAccelerationStructureFlagBitsKHR" name="VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV" alias="VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"/>
- <enum extends="VkBuildAccelerationStructureFlagBitsKHR" name="VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV" alias="VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"/>
- <enum extends="VkBuildAccelerationStructureFlagBitsKHR" name="VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV" alias="VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"/>
- <enum extends="VkBuildAccelerationStructureFlagBitsKHR" name="VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV" alias="VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"/>
- <type name="VkBuildAccelerationStructureFlagsNV"/>
- <type name="VkCopyAccelerationStructureModeNV"/>
- <enum extends="VkCopyAccelerationStructureModeKHR" name="VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV" alias="VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR"/>
- <enum extends="VkCopyAccelerationStructureModeKHR" name="VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV" alias="VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR"/>
- <type name="VkBindAccelerationStructureMemoryInfoNV"/>
- <type name="VkWriteDescriptorSetAccelerationStructureNV"/>
- <type name="VkAccelerationStructureMemoryRequirementsInfoNV"/>
- <type name="VkPhysicalDeviceRayTracingPropertiesNV"/>
- <type name="VkMemoryRequirements2KHR"/>
- <type name="VkAccelerationStructureMemoryRequirementsTypeNV"/>
- <type name="VkTransformMatrixNV"/>
- <type name="VkAabbPositionsNV"/>
- <type name="VkAccelerationStructureInstanceNV"/>
- <command name="vkCreateAccelerationStructureNV"/>
- <command name="vkDestroyAccelerationStructureNV"/>
- <command name="vkGetAccelerationStructureMemoryRequirementsNV"/>
- <command name="vkBindAccelerationStructureMemoryNV"/>
- <command name="vkCmdBuildAccelerationStructureNV"/>
- <command name="vkCmdCopyAccelerationStructureNV"/>
- <command name="vkCmdTraceRaysNV"/>
- <command name="vkCreateRayTracingPipelinesNV"/>
- <command name="vkGetRayTracingShaderGroupHandlesNV"/>
- <command name="vkGetAccelerationStructureHandleNV"/>
- <command name="vkCmdWriteAccelerationStructuresPropertiesNV"/>
- <command name="vkCompileDeferredNV"/>
- </require>
- </extension>
- <extension name="VK_NV_representative_fragment_test" number="167" type="device" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="vulkan">
- <require>
- <enum value="2" name="VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_representative_fragment_test&quot;" name="VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV"/>
- <type name="VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV"/>
- <type name="VkPipelineRepresentativeFragmentTestStateCreateInfoNV"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_168" number="168" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_168_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_168&quot;" name="VK_NV_EXTENSION_168_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_maintenance3" number="169" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1">
- <require>
- <enum value="1" name="VK_KHR_MAINTENANCE_3_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_maintenance3&quot;" name="VK_KHR_MAINTENANCE_3_EXTENSION_NAME"/>
- <enum alias="VK_KHR_MAINTENANCE_3_SPEC_VERSION" name="VK_KHR_MAINTENANCE3_SPEC_VERSION" comment="Backwards-compatible alias containing a typo"/>
- <enum alias="VK_KHR_MAINTENANCE_3_EXTENSION_NAME" name="VK_KHR_MAINTENANCE3_EXTENSION_NAME" comment="Backwards-compatible alias containing a typo"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR" alias="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT"/>
- <type name="VkPhysicalDeviceMaintenance3PropertiesKHR"/>
- <type name="VkDescriptorSetLayoutSupportKHR"/>
- <command name="vkGetDescriptorSetLayoutSupportKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_draw_indirect_count" number="170" type="device" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_draw_indirect_count&quot;" name="VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME"/>
- <command name="vkCmdDrawIndirectCountKHR"/>
- <command name="vkCmdDrawIndexedIndirectCountKHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_filter_cubic" number="171" type="device" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="vulkan">
- <require>
- <enum value="3" name="VK_EXT_FILTER_CUBIC_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_filter_cubic&quot;" name="VK_EXT_FILTER_CUBIC_EXTENSION_NAME"/>
- <enum extends="VkFilter" name="VK_FILTER_CUBIC_EXT" alias="VK_FILTER_CUBIC_IMG"/>
- <enum extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" alias="VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT"/>
- <type name="VkPhysicalDeviceImageViewImageFormatInfoEXT"/>
- <type name="VkFilterCubicImageViewImageFormatPropertiesEXT"/>
- </require>
- </extension>
- <extension name="VK_QCOM_render_pass_shader_resolve" number="172" type="device" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="vulkan">
- <require>
- <enum value="4" name="VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_render_pass_shader_resolve&quot;" name="VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME"/>
- <enum bitpos="2" extends="VkSubpassDescriptionFlagBits" name="VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"/>
- <enum bitpos="3" extends="VkSubpassDescriptionFlagBits" name="VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"/>
- </require>
- </extension>
- <extension name="VK_QCOM_extension_173" number="173" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
- <require>
- <enum value="0" name="VK_QCOM_EXTENSION_173_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_extension_173&quot;" name="VK_QCOM_EXTENSION_173_EXTENSION_NAME"/>
- <enum bitpos="18" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_RESERVED_18_BIT_QCOM"/>
- <enum bitpos="16" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_RESERVED_16_BIT_QCOM"/>
- <enum bitpos="17" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_RESERVED_17_BIT_QCOM"/>
- </require>
- </extension>
- <extension name="VK_QCOM_extension_174" number="174" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
- <require>
- <enum value="0" name="VK_QCOM_EXTENSION_174_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_extension_174&quot;" name="VK_QCOM_EXTENSION_174_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_global_priority" number="175" type="device" author="EXT" contact="Andres Rodriguez @lostgoat" supported="vulkan" promotedto="VK_KHR_global_priority">
- <require>
- <enum value="2" name="VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_global_priority&quot;" name="VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME"/>
- <enum extends="VkStructureType" alias="VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR" name="VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT"/>
- <enum extends="VkResult" alias="VK_ERROR_NOT_PERMITTED_KHR" name="VK_ERROR_NOT_PERMITTED_EXT"/>
- <type name="VkDeviceQueueGlobalPriorityCreateInfoEXT"/>
- <type name="VkQueueGlobalPriorityEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_shader_subgroup_extended_types" number="176" type="device" requiresCore="1.1" author="KHR" contact="Neil Henning @sheredom" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_shader_subgroup_extended_types&quot;" name="VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES"/>
- <type name="VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_177" number="177" author="EXT" contact="Neil Henning @sheredom" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_177_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_177&quot;" name="VK_EXT_EXTENSION_177_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_8bit_storage" number="178" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_storage_buffer_storage_class" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_KHR_8BIT_STORAGE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_8bit_storage&quot;" name="VK_KHR_8BIT_STORAGE_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES"/>
- <type name="VkPhysicalDevice8BitStorageFeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_external_memory_host" number="179" type="device" author="EXT" requires="VK_KHR_external_memory" contact="Daniel Rakos @drakos-amd" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_external_memory_host&quot;" name="VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT"/>
- <enum bitpos="7" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"/>
- <enum bitpos="8" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT"/>
- <type name="VkImportMemoryHostPointerInfoEXT"/>
- <type name="VkMemoryHostPointerPropertiesEXT"/>
- <type name="VkPhysicalDeviceExternalMemoryHostPropertiesEXT"/>
- <command name="vkGetMemoryHostPointerPropertiesEXT"/>
- </require>
- </extension>
- <extension name="VK_AMD_buffer_marker" number="180" type="device" author="AMD" contact="Daniel Rakos @drakos-amd" specialuse="devtools" supported="vulkan">
- <require>
- <enum value="1" name="VK_AMD_BUFFER_MARKER_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_buffer_marker&quot;" name="VK_AMD_BUFFER_MARKER_EXTENSION_NAME"/>
- <command name="vkCmdWriteBufferMarkerAMD"/>
- </require>
- </extension>
- <extension name="VK_KHR_shader_atomic_int64" number="181" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Aaron Hagan @ahagan" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_shader_atomic_int64&quot;" name="VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES"/>
- <type name="VkPhysicalDeviceShaderAtomicInt64FeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_shader_clock" number="182" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Aaron Hagan @ahagan" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_SHADER_CLOCK_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_shader_clock&quot;" name="VK_KHR_SHADER_CLOCK_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR"/>
- <type name="VkPhysicalDeviceShaderClockFeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_183" number="183" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_183_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_183&quot;" name="VK_AMD_EXTENSION_183_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_pipeline_compiler_control" number="184" type="device" author="AMD" contact="Matthaeus G. Chajdas @anteru" supported="vulkan">
- <require>
- <enum value="1" name="VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_pipeline_compiler_control&quot;" name="VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD"/>
- <type name="VkPipelineCompilerControlFlagBitsAMD"/>
- <type name="VkPipelineCompilerControlFlagsAMD"/>
- <type name="VkPipelineCompilerControlCreateInfoAMD"/>
- </require>
- </extension>
- <extension name="VK_EXT_calibrated_timestamps" number="185" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Daniel Rakos @drakos-amd" supported="vulkan">
- <require>
- <enum value="2" name="VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_calibrated_timestamps&quot;" name="VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT"/>
- <type name="VkTimeDomainEXT"/>
- <type name="VkCalibratedTimestampInfoEXT"/>
- <command name="vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"/>
- <command name="vkGetCalibratedTimestampsEXT"/>
- </require>
- </extension>
- <extension name="VK_AMD_shader_core_properties" number="186" type="device" author="AMD" requires="VK_KHR_get_physical_device_properties2" contact="Martin Dinkov @mdinkov" supported="vulkan">
- <require>
- <enum value="2" name="VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_shader_core_properties&quot;" name="VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD"/>
- <type name="VkPhysicalDeviceShaderCorePropertiesAMD"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_187" number="187" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_187_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_187&quot;" name="VK_AMD_EXTENSION_187_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_video_decode_h265" number="188" type="device" requires="VK_KHR_video_decode_queue" author="KHR" contact="[email protected]" provisional="true" platform="provisional" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_VIDEO_DECODE_H265_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_video_decode_h265&quot;" name="VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="1" extends="VkVideoCodecOperationFlagBitsKHR" name="VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-
- <type name="VkVideoDecodeH265CreateFlagsEXT"/>
- <type name="VkVideoDecodeH265ProfileEXT"/>
- <type name="VkVideoDecodeH265CapabilitiesEXT"/>
- <type name="VkVideoDecodeH265SessionCreateInfoEXT"/>
-
- <type name="VkVideoDecodeH265SessionParametersCreateInfoEXT"/>
- <type name="VkVideoDecodeH265SessionParametersAddInfoEXT"/>
- <type name="VkVideoDecodeH265PictureInfoEXT"/>
- <type name="VkVideoDecodeH265DpbSlotInfoEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_global_priority" number="189" type="device" author="KHR" contact="Tobias Hector @tobski" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_global_priority&quot;" name="VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" extnumber="175" name="VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR"/>
- <enum offset="0" extends="VkStructureType" extnumber="389" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR"/>
- <enum offset="1" extends="VkStructureType" extnumber="389" name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR"/>
- <enum extends="VkResult" extnumber="175" offset="1" dir="-" name="VK_ERROR_NOT_PERMITTED_KHR"/>
- <enum name="VK_MAX_GLOBAL_PRIORITY_SIZE_KHR"/>
- <type name="VkDeviceQueueGlobalPriorityCreateInfoKHR"/>
- <type name="VkQueueGlobalPriorityKHR"/>
- <type name="VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR"/>
- <type name="VkQueueFamilyGlobalPriorityPropertiesKHR"/>
- </require>
- </extension>
- <extension name="VK_AMD_memory_overallocation_behavior" number="190" type="device" author="AMD" contact="Martin Dinkov @mdinkov" supported="vulkan">
- <require>
- <enum value="1" name="VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_memory_overallocation_behavior&quot;" name="VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD"/>
- <type name="VkMemoryOverallocationBehaviorAMD"/>
- <type name="VkDeviceMemoryOverallocationCreateInfoAMD"/>
- </require>
- </extension>
- <extension name="VK_EXT_vertex_attribute_divisor" number="191" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Vikram Kushwaha @vkushwaha" supported="vulkan">
- <require>
- <enum value="3" name="VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_vertex_attribute_divisor&quot;" name="VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT"/>
- <type name="VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT"/>
- <type name="VkVertexInputBindingDivisorDescriptionEXT"/>
- <type name="VkPipelineVertexInputDivisorStateCreateInfoEXT"/>
- <type name="VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_GGP_frame_token" number="192" type="device" requires="VK_KHR_swapchain,VK_GGP_stream_descriptor_surface" platform="ggp" author="GGP" contact="Jean-Francois Roy @jfroy" supported="vulkan">
- <require>
- <enum value="1" name="VK_GGP_FRAME_TOKEN_SPEC_VERSION"/>
- <enum value="&quot;VK_GGP_frame_token&quot;" name="VK_GGP_FRAME_TOKEN_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP"/>
- <type name="VkPresentFrameTokenGGP"/>
- </require>
- </extension>
- <extension name="VK_EXT_pipeline_creation_feedback" number="193" type="device" author="GOOGLE" contact="Jean-Francois Roy @jfroy" specialuse="devtools" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_pipeline_creation_feedback&quot;" name="VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT" alias="VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO"/>
- <type name="VkPipelineCreationFeedbackFlagBitsEXT"/>
- <type name="VkPipelineCreationFeedbackFlagsEXT"/>
- <type name="VkPipelineCreationFeedbackCreateInfoEXT"/>
- <type name="VkPipelineCreationFeedbackEXT"/>
- </require>
- </extension>
- <extension name="VK_GOOGLE_extension_194" number="194" author="GOOGLE" contact="Jean-Francois Roy @jfroy" supported="disabled">
- <require>
- <enum value="0" name="VK_GOOGLE_EXTENSION_194_SPEC_VERSION"/>
- <enum value="&quot;VK_GOOGLE_extension_194&quot;" name="VK_GOOGLE_EXTENSION_194_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_GOOGLE_extension_195" number="195" author="GOOGLE" contact="Jean-Francois Roy @jfroy" supported="disabled">
- <require>
- <enum value="0" name="VK_GOOGLE_EXTENSION_195_SPEC_VERSION"/>
- <enum value="&quot;VK_GOOGLE_extension_195&quot;" name="VK_GOOGLE_EXTENSION_195_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_GOOGLE_extension_196" number="196" author="GOOGLE" contact="Jean-Francois Roy @jfroy" supported="disabled">
- <require>
- <enum value="0" name="VK_GOOGLE_EXTENSION_196_SPEC_VERSION"/>
- <enum value="&quot;VK_GOOGLE_extension_196&quot;" name="VK_GOOGLE_EXTENSION_196_EXTENSION_NAME"/>
- <enum bitpos="1" extends="VkPipelineCacheCreateFlagBits"
- name="VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_driver_properties" number="197" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Daniel Rakos @drakos-amd" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_driver_properties&quot;" name="VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES"/>
- <enum name="VK_MAX_DRIVER_NAME_SIZE_KHR"/>
- <enum name="VK_MAX_DRIVER_INFO_SIZE_KHR"/>
- <type name="VkDriverIdKHR"/>
- <enum extends="VkDriverId" name="VK_DRIVER_ID_AMD_PROPRIETARY_KHR" alias="VK_DRIVER_ID_AMD_PROPRIETARY"/>
- <enum extends="VkDriverId" name="VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR" alias="VK_DRIVER_ID_AMD_OPEN_SOURCE"/>
- <enum extends="VkDriverId" name="VK_DRIVER_ID_MESA_RADV_KHR" alias="VK_DRIVER_ID_MESA_RADV"/>
- <enum extends="VkDriverId" name="VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR" alias="VK_DRIVER_ID_NVIDIA_PROPRIETARY"/>
- <enum extends="VkDriverId" name="VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR" alias="VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS"/>
- <enum extends="VkDriverId" name="VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR" alias="VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA"/>
- <enum extends="VkDriverId" name="VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR" alias="VK_DRIVER_ID_IMAGINATION_PROPRIETARY"/>
- <enum extends="VkDriverId" name="VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR" alias="VK_DRIVER_ID_QUALCOMM_PROPRIETARY"/>
- <enum extends="VkDriverId" name="VK_DRIVER_ID_ARM_PROPRIETARY_KHR" alias="VK_DRIVER_ID_ARM_PROPRIETARY"/>
- <enum extends="VkDriverId" name="VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR" alias="VK_DRIVER_ID_GOOGLE_SWIFTSHADER"/>
- <enum extends="VkDriverId" name="VK_DRIVER_ID_GGP_PROPRIETARY_KHR" alias="VK_DRIVER_ID_GGP_PROPRIETARY"/>
- <enum extends="VkDriverId" name="VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR" alias="VK_DRIVER_ID_BROADCOM_PROPRIETARY"/>
- <type name="VkConformanceVersionKHR"/>
- <type name="VkPhysicalDeviceDriverPropertiesKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_shader_float_controls" number="198" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Alexander Galazin @alegal-arm" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="4" name="VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_shader_float_controls&quot;" name="VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES"/>
- <type name="VkPhysicalDeviceFloatControlsPropertiesKHR"/>
- <type name="VkShaderFloatControlsIndependenceKHR"/>
- <enum extends="VkShaderFloatControlsIndependence" name="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR" alias="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY"/>
- <enum extends="VkShaderFloatControlsIndependence" name="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR" alias="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL"/>
- <enum extends="VkShaderFloatControlsIndependence" name="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR" alias="VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE"/>
- </require>
- </extension>
- <extension name="VK_NV_shader_subgroup_partitioned" number="199" type="device" requiresCore="1.1" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_shader_subgroup_partitioned&quot;" name="VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME"/>
- <enum bitpos="8" extends="VkSubgroupFeatureFlagBits" name="VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"/>
- </require>
- </extension>
- <extension name="VK_KHR_depth_stencil_resolve" number="200" type="device" requires="VK_KHR_create_renderpass2" author="KHR" contact="Jan-Harald Fredriksen @janharald" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_depth_stencil_resolve&quot;" name="VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR" alias="VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE"/>
- <type name="VkSubpassDescriptionDepthStencilResolveKHR"/>
- <type name="VkPhysicalDeviceDepthStencilResolvePropertiesKHR"/>
- <type name="VkResolveModeFlagBitsKHR"/>
- <type name="VkResolveModeFlagsKHR"/>
- <enum extends="VkResolveModeFlagBits" name="VK_RESOLVE_MODE_NONE_KHR" alias="VK_RESOLVE_MODE_NONE"/>
- <enum extends="VkResolveModeFlagBits" name="VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR" alias="VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"/>
- <enum extends="VkResolveModeFlagBits" name="VK_RESOLVE_MODE_AVERAGE_BIT_KHR" alias="VK_RESOLVE_MODE_AVERAGE_BIT"/>
- <enum extends="VkResolveModeFlagBits" name="VK_RESOLVE_MODE_MIN_BIT_KHR" alias="VK_RESOLVE_MODE_MIN_BIT"/>
- <enum extends="VkResolveModeFlagBits" name="VK_RESOLVE_MODE_MAX_BIT_KHR" alias="VK_RESOLVE_MODE_MAX_BIT"/>
- </require>
- </extension>
- <extension name="VK_KHR_swapchain_mutable_format" number="201" type="device" author="KHR" requires="VK_KHR_swapchain,VK_KHR_maintenance2,VK_KHR_image_format_list" contact="Daniel Rakos @drakos-arm" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_swapchain_mutable_format&quot;" name="VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME"/>
- <enum bitpos="2" extends="VkSwapchainCreateFlagBitsKHR" name="VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"/>
- </require>
- </extension>
- <extension name="VK_NV_compute_shader_derivatives" number="202" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_compute_shader_derivatives&quot;" name="VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV"/>
- <type name="VkPhysicalDeviceComputeShaderDerivativesFeaturesNV"/>
- </require>
- </extension>
- <extension name="VK_NV_mesh_shader" number="203" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Christoph Kubisch @pixeljetstream" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_MESH_SHADER_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_mesh_shader&quot;" name="VK_NV_MESH_SHADER_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV"/>
- <enum bitpos="6" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_TASK_BIT_NV"/>
- <enum bitpos="7" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_MESH_BIT_NV"/>
- <enum bitpos="19" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"/>
- <enum bitpos="20" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"/>
- <command name="vkCmdDrawMeshTasksNV"/>
- <command name="vkCmdDrawMeshTasksIndirectNV"/>
- <command name="vkCmdDrawMeshTasksIndirectCountNV"/>
- <type name="VkPhysicalDeviceMeshShaderFeaturesNV"/>
- <type name="VkPhysicalDeviceMeshShaderPropertiesNV"/>
- <type name="VkDrawMeshTasksIndirectCommandNV"/>
- </require>
- </extension>
- <extension name="VK_NV_fragment_shader_barycentric" number="204" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_fragment_shader_barycentric&quot;" name="VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV"/>
- <type name="VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV"/>
- </require>
- </extension>
- <extension name="VK_NV_shader_image_footprint" number="205" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
- <require>
- <enum value="2" name="VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_shader_image_footprint&quot;" name="VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV"/>
- <type name="VkPhysicalDeviceShaderImageFootprintFeaturesNV"/>
- </require>
- </extension>
- <extension name="VK_NV_scissor_exclusive" number="206" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_scissor_exclusive&quot;" name="VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"/>
- <enum offset="1" extends="VkDynamicState" name="VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV"/>
- <type name="VkPipelineViewportExclusiveScissorStateCreateInfoNV"/>
- <type name="VkPhysicalDeviceExclusiveScissorFeaturesNV"/>
- <command name="vkCmdSetExclusiveScissorNV"/>
- </require>
- </extension>
- <extension name="VK_NV_device_diagnostic_checkpoints" type="device" number="207" requires="VK_KHR_get_physical_device_properties2" author="NVIDIA" contact="Nuno Subtil @nsubtil" supported="vulkan">
- <require>
- <enum value="2" name="VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_device_diagnostic_checkpoints&quot;" name="VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"/>
- <type name="VkQueueFamilyCheckpointPropertiesNV"/>
- <type name="VkCheckpointDataNV"/>
- <command name="vkCmdSetCheckpointNV"/>
- <command name="vkGetQueueCheckpointDataNV"/>
- </require>
- </extension>
- <extension name="VK_KHR_timeline_semaphore" number="208" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Jason Ekstrand @jekstrand" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="2" name="VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_timeline_semaphore&quot;" name="VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR" alias="VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR" alias="VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR" alias="VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO"/>
- <enum extends="VkSemaphoreType" name="VK_SEMAPHORE_TYPE_BINARY_KHR" alias="VK_SEMAPHORE_TYPE_BINARY"/>
- <enum extends="VkSemaphoreType" name="VK_SEMAPHORE_TYPE_TIMELINE_KHR" alias="VK_SEMAPHORE_TYPE_TIMELINE"/>
- <enum extends="VkSemaphoreWaitFlagBits" name="VK_SEMAPHORE_WAIT_ANY_BIT_KHR" alias="VK_SEMAPHORE_WAIT_ANY_BIT"/>
- <type name="VkSemaphoreTypeKHR"/>
- <type name="VkPhysicalDeviceTimelineSemaphoreFeaturesKHR"/>
- <type name="VkPhysicalDeviceTimelineSemaphorePropertiesKHR"/>
- <type name="VkSemaphoreTypeCreateInfoKHR"/>
- <type name="VkTimelineSemaphoreSubmitInfoKHR"/>
- <type name="VkSemaphoreWaitFlagBitsKHR"/>
- <type name="VkSemaphoreWaitFlagsKHR"/>
- <type name="VkSemaphoreWaitInfoKHR"/>
- <type name="VkSemaphoreSignalInfoKHR"/>
- <command name="vkGetSemaphoreCounterValueKHR"/>
- <command name="vkWaitSemaphoresKHR"/>
- <command name="vkSignalSemaphoreKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_209" number="209" type="device" author="KHR" contact="Ian Elliott @ianelliott" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_209_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_209&quot;" name="VK_KHR_EXTENSION_209_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_INTEL_shader_integer_functions2" number="210" type="device" requires="VK_KHR_get_physical_device_properties2" author="INTEL" contact="Ian Romanick @ianromanick" supported="vulkan">
- <require>
- <enum value="1" name="VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION"/>
- <enum value="&quot;VK_INTEL_shader_integer_functions2&quot;" name="VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL"/>
- <type name="VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL"/>
- </require>
- </extension>
- <extension name="VK_INTEL_performance_query" number="211" type="device" author="INTEL" contact="Lionel Landwerlin @llandwerlin" specialuse="devtools" supported="vulkan">
- <require>
- <enum value="2" name="VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION"/>
- <enum value="&quot;VK_INTEL_performance_query&quot;" name="VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL" alias="VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL" comment="Backwards-compatible alias containing a typo"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL"/>
- <enum offset="0" extends="VkQueryType" name="VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL"/>
- <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL"/>
- <type name="VkPerformanceConfigurationTypeINTEL"/>
- <type name="VkQueryPoolSamplingModeINTEL"/>
- <type name="VkPerformanceOverrideTypeINTEL"/>
- <type name="VkPerformanceParameterTypeINTEL"/>
- <type name="VkPerformanceValueTypeINTEL"/>
- <type name="VkPerformanceValueDataINTEL"/>
- <type name="VkPerformanceValueINTEL"/>
- <type name="VkInitializePerformanceApiInfoINTEL"/>
- <type name="VkQueryPoolCreateInfoINTEL"/>
- <type name="VkQueryPoolPerformanceQueryCreateInfoINTEL"/>
- <type name="VkPerformanceMarkerInfoINTEL"/>
- <type name="VkPerformanceStreamMarkerInfoINTEL"/>
- <type name="VkPerformanceOverrideInfoINTEL"/>
- <type name="VkPerformanceConfigurationAcquireInfoINTEL"/>
- <type name="VkPerformanceConfigurationINTEL"/>
- <command name="vkInitializePerformanceApiINTEL"/>
- <command name="vkUninitializePerformanceApiINTEL"/>
- <command name="vkCmdSetPerformanceMarkerINTEL"/>
- <command name="vkCmdSetPerformanceStreamMarkerINTEL"/>
- <command name="vkCmdSetPerformanceOverrideINTEL"/>
- <command name="vkAcquirePerformanceConfigurationINTEL"/>
- <command name="vkReleasePerformanceConfigurationINTEL"/>
- <command name="vkQueueSetPerformanceConfigurationINTEL"/>
- <command name="vkGetPerformanceParameterINTEL"/>
- </require>
- </extension>
- <extension name="VK_KHR_vulkan_memory_model" number="212" type="device" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="3" name="VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_vulkan_memory_model&quot;" name="VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES"/>
- <type name="VkPhysicalDeviceVulkanMemoryModelFeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_pci_bus_info" number="213" type="device" author="EXT" requires="VK_KHR_get_physical_device_properties2" contact="Matthaeus G. Chajdas @anteru" supported="vulkan">
- <require>
- <enum value="2" name="VK_EXT_PCI_BUS_INFO_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_pci_bus_info&quot;" name="VK_EXT_PCI_BUS_INFO_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT"/>
- <type name="VkPhysicalDevicePCIBusInfoPropertiesEXT"/>
- </require>
- </extension>
- <extension name="VK_AMD_display_native_hdr" number="214" type="device" author="AMD" requires="VK_KHR_get_physical_device_properties2,VK_KHR_get_surface_capabilities2,VK_KHR_swapchain" contact="Matthaeus G. Chajdas @anteru" supported="vulkan">
- <require>
- <enum value="1" name="VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_display_native_hdr&quot;" name="VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD"/>
- <enum offset="0" extends="VkColorSpaceKHR" name="VK_COLOR_SPACE_DISPLAY_NATIVE_AMD"/>
- <type name="VkDisplayNativeHdrSurfaceCapabilitiesAMD"/>
- <type name="VkSwapchainDisplayNativeHdrCreateInfoAMD"/>
- <command name="vkSetLocalDimmingAMD"/>
- </require>
- </extension>
- <extension name="VK_FUCHSIA_imagepipe_surface" number="215" type="instance" author="FUCHSIA" requires="VK_KHR_surface" platform="fuchsia" contact="Craig Stout @cdotstout" supported="vulkan">
- <require>
- <enum value="1" name="VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_FUCHSIA_imagepipe_surface&quot;" name="VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA"/>
- <type name="VkImagePipeSurfaceCreateFlagsFUCHSIA"/>
- <type name="VkImagePipeSurfaceCreateInfoFUCHSIA"/>
- <command name="vkCreateImagePipeSurfaceFUCHSIA"/>
- </require>
- </extension>
- <extension name="VK_KHR_shader_terminate_invocation" number="216" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Jesse Hall @critsec" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_shader_terminate_invocation&quot;" name="VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES"/>
- <type name="VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_GOOGLE_extension_217" number="217" author="GOOGLE" contact="Jesse Hall @critsec" supported="disabled">
- <require>
- <enum value="0" name="VK_GOOGLE_EXTENSION_217_SPEC_VERSION"/>
- <enum value="&quot;VK_GOOGLE_extension_217&quot;" name="VK_GOOGLE_EXTENSION_217_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_metal_surface" number="218" type="instance" requires="VK_KHR_surface" platform="metal" supported="vulkan" author="EXT" contact="Dzmitry Malyshau @kvark">
- <require>
- <enum value="1" name="VK_EXT_METAL_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_metal_surface&quot;" name="VK_EXT_METAL_SURFACE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT"/>
- <type name="VkMetalSurfaceCreateFlagsEXT"/>
- <type name="VkMetalSurfaceCreateInfoEXT"/>
- <command name="vkCreateMetalSurfaceEXT"/>
- <type name="CAMetalLayer"/>
- </require>
- </extension>
- <extension name="VK_EXT_fragment_density_map" number="219" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Matthew Netsch @mnetsch" supported="vulkan">
- <require>
- <enum value="2" name="VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_fragment_density_map&quot;" name="VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT"/>
- <enum bitpos="14" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT"/>
- <enum offset="0" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT"/>
- <enum bitpos="24" extends="VkAccessFlagBits" name="VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"/>
- <enum bitpos="24" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"/>
- <enum bitpos="9" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"/>
- <enum bitpos="0" extends="VkImageViewCreateFlagBits" name="VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"/>
- <enum bitpos="23" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"/>
- <enum bitpos="0" extends="VkSamplerCreateFlagBits" name="VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT"/>
- <enum bitpos="1" extends="VkSamplerCreateFlagBits" name="VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"/>
- <type name="VkPhysicalDeviceFragmentDensityMapFeaturesEXT"/>
- <type name="VkPhysicalDeviceFragmentDensityMapPropertiesEXT"/>
- <type name="VkRenderPassFragmentDensityMapCreateInfoEXT"/>
- </require>
- <require extension="VK_KHR_format_feature_flags2">
- <enum bitpos="24" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_220" number="220" author="EXT" contact="Dzmitry Malyshau @kvark" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_220_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_220&quot;" name="VK_EXT_EXTENSION_220_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_221" number="221" author="KHR" contact="Tobias Hector @tobski" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_221_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_221&quot;" name="VK_KHR_EXTENSION_221_EXTENSION_NAME"/>
- <enum bitpos="0" extends="VkRenderPassCreateFlagBits" name="VK_RENDER_PASS_CREATE_RESERVED_0_BIT_KHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_scalar_block_layout" number="222" requires="VK_KHR_get_physical_device_properties2" type="device" author="EXT" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_scalar_block_layout&quot;" name="VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME"/>
- <type name="VkPhysicalDeviceScalarBlockLayoutFeaturesEXT"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_223" number="223" author="EXT" contact="Tobias Hector @tobski" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_223_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_223&quot;" name="VK_EXT_EXTENSION_223_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_GOOGLE_hlsl_functionality1" number="224" type="device" author="GOOGLE" contact="Hai Nguyen @chaoticbob" supported="vulkan">
- <require>
- <enum value="1" name="VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION"/>
- <enum value="&quot;VK_GOOGLE_hlsl_functionality1&quot;" name="VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME"/>
- <enum alias="VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION" name="VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION" comment="Backwards-compatible alias containing a typo"/>
- <enum alias="VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME" name="VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME" comment="Backwards-compatible alias containing a typo"/>
- </require>
- </extension>
- <extension name="VK_GOOGLE_decorate_string" number="225" type="device" author="GOOGLE" contact="Hai Nguyen @chaoticbob" supported="vulkan">
- <require>
- <enum value="1" name="VK_GOOGLE_DECORATE_STRING_SPEC_VERSION"/>
- <enum value="&quot;VK_GOOGLE_decorate_string&quot;" name="VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_subgroup_size_control" number="226" type="device" requiresCore="1.1" author="EXT" contact="Neil Henning @sheredom" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="2" name="VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_subgroup_size_control&quot;" name="VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME"/>
- <type name="VkPhysicalDeviceSubgroupSizeControlFeaturesEXT"/>
- <type name="VkPhysicalDeviceSubgroupSizeControlPropertiesEXT"/>
- <type name="VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT" alias="VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES"/>
- <enum extends="VkPipelineShaderStageCreateFlagBits" name="VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT" alias="VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT"/>
- <enum extends="VkPipelineShaderStageCreateFlagBits" name="VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT" alias="VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT"/>
- </require>
- </extension>
- <extension name="VK_KHR_fragment_shading_rate" number="227" type="device" requires="VK_KHR_create_renderpass2,VK_KHR_get_physical_device_properties2" author="KHR" contact="Tobias Hector @tobski" supported="vulkan">
- <require>
- <enum value="2" name="VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_fragment_shading_rate&quot;" name="VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME"/>
- <type name="VkFragmentShadingRateCombinerOpKHR"/>
- <type name="VkFragmentShadingRateAttachmentInfoKHR"/>
- <type name="VkPipelineFragmentShadingRateStateCreateInfoKHR"/>
- <type name="VkPhysicalDeviceFragmentShadingRateFeaturesKHR"/>
- <type name="VkPhysicalDeviceFragmentShadingRatePropertiesKHR"/>
- <type name="VkPhysicalDeviceFragmentShadingRateKHR"/>
- <command name="vkGetPhysicalDeviceFragmentShadingRatesKHR"/>
- <command name="vkCmdSetFragmentShadingRateKHR"/>
- <enum offset="3" extends="VkImageLayout" extnumber="165" name="VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR"/>
- <enum offset="0" extends="VkDynamicState" name="VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR"/>
- <enum bitpos="23" extends="VkAccessFlagBits" name="VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"/>
- <enum bitpos="8" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
- <enum bitpos="22" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
- <enum bitpos="30" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
- </require>
- <require extension="VK_KHR_format_feature_flags2">
- <enum bitpos="30" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
- </require>
- </extension>
- <extension name="VK_AMD_shader_core_properties2" number="228" type="device" author="AMD" contact="Matthaeus G. Chajdas @anteru" supported="vulkan" requires="VK_AMD_shader_core_properties">
- <require>
- <enum value="1" name="VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_shader_core_properties2&quot;" name="VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD"/>
- <type name="VkPhysicalDeviceShaderCoreProperties2AMD"/>
- <type name="VkShaderCorePropertiesFlagBitsAMD"/>
- <type name="VkShaderCorePropertiesFlagsAMD"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_229" number="229" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_229_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_229&quot;" name="VK_AMD_EXTENSION_229_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_device_coherent_memory" number="230" type="device" author="AMD" contact="Tobias Hector @tobski" supported="vulkan">
- <require>
- <enum value="1" name="VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_device_coherent_memory&quot;" name="VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME"/>
- <enum bitpos="6" extends="VkMemoryPropertyFlagBits" name="VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"/>
- <enum bitpos="7" extends="VkMemoryPropertyFlagBits" name="VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD"/>
- <type name="VkPhysicalDeviceCoherentMemoryFeaturesAMD"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_231" number="231" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_231_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_231&quot;" name="VK_AMD_EXTENSION_231_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_232" number="232" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_232_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_232&quot;" name="VK_AMD_EXTENSION_232_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_233" number="233" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_233_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_233&quot;" name="VK_AMD_EXTENSION_233_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_234" number="234" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_234_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_234&quot;" name="VK_AMD_EXTENSION_234_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_shader_image_atomic_int64" number="235" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Tobias Hector @tobski" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_shader_image_atomic_int64&quot;" name="VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT"/>
- <type name="VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_236" number="236" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_236_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_236&quot;" name="VK_AMD_EXTENSION_236_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_spirv_1_4" number="237" type="device" requiresCore="1.1" requires="VK_KHR_shader_float_controls" author="KHR" contact="Jesse Hall @critsec" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_KHR_SPIRV_1_4_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_spirv_1_4&quot;" name="VK_KHR_SPIRV_1_4_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_memory_budget" number="238" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_MEMORY_BUDGET_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_memory_budget&quot;" name="VK_EXT_MEMORY_BUDGET_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT"/>
- <type name="VkPhysicalDeviceMemoryBudgetPropertiesEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_memory_priority" number="239" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_MEMORY_PRIORITY_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_memory_priority&quot;" name="VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT"/>
- <type name="VkPhysicalDeviceMemoryPriorityFeaturesEXT"/>
- <type name="VkMemoryPriorityAllocateInfoEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_surface_protected_capabilities" number="240" type="instance" requiresCore="1.1" requires="VK_KHR_get_surface_capabilities2" author="KHR" contact="Sandeep Shinde @sashinde" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_surface_protected_capabilities&quot;" name="VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR"/>
- <type name="VkSurfaceProtectedCapabilitiesKHR"/>
- </require>
- </extension>
- <extension name="VK_NV_dedicated_allocation_image_aliasing" number="241" type="device" requires="VK_KHR_dedicated_allocation" author="NVIDIA" contact="Nuno Subtil @nsubtil" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_dedicated_allocation_image_aliasing&quot;" name="VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV"/>
- <type name="VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV"/>
- </require>
- </extension>
- <extension name="VK_KHR_separate_depth_stencil_layouts" number="242" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_create_renderpass2" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_separate_depth_stencil_layouts&quot;" name="VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR" alias="VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR" alias="VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT"/>
- <enum extends="VkImageLayout" name="VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR" alias="VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL"/>
- <enum extends="VkImageLayout" name="VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR" alias="VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL"/>
- <enum extends="VkImageLayout" name="VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR" alias="VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL"/>
- <enum extends="VkImageLayout" name="VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR" alias="VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL"/>
- <type name="VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR"/>
- <type name="VkAttachmentReferenceStencilLayoutKHR"/>
- <type name="VkAttachmentDescriptionStencilLayoutKHR"/>
- </require>
- </extension>
- <extension name="VK_INTEL_extension_243" number="243" author="INTEL" contact="Slawek Grajewski @sgrajewski" supported="disabled">
- <require>
- <enum value="0" name="VK_INTEL_EXTENSION_243_SPEC_VERSION"/>
- <enum value="&quot;VK_INTEL_extension_243&quot;" name="VK_INTEL_EXTENSION_243_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_MESA_extension_244" number="244" author="MESA" contact="Andres Rodriguez @lostgoat" supported="disabled">
- <require>
- <enum value="0" name="VK_MESA_EXTENSION_244_SPEC_VERSION"/>
- <enum value="&quot;VK_MESA_extension_244&quot;" name="VK_MESA_EXTENSION_244_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_buffer_device_address" number="245" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Jeff Bolz @jeffbolznv" deprecatedby="VK_KHR_buffer_device_address" supported="vulkan">
- <require>
- <enum value="2" name="VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_buffer_device_address&quot;" name="VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT" alias="VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT"/>
- <enum extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT" alias="VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"/>
- <enum extends="VkBufferCreateFlagBits" name="VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT" alias="VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"/>
- <enum extends="VkResult" name="VK_ERROR_INVALID_DEVICE_ADDRESS_EXT" alias="VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS"/>
- <type name="VkPhysicalDeviceBufferAddressFeaturesEXT"/>
- <type name="VkPhysicalDeviceBufferDeviceAddressFeaturesEXT"/>
- <type name="VkBufferDeviceAddressInfoEXT"/>
- <type name="VkBufferDeviceAddressCreateInfoEXT"/>
- <command name="vkGetBufferDeviceAddressEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_tooling_info" number="246" type="device" author="EXT" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_EXT_TOOLING_INFO_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_tooling_info&quot;" name="VK_EXT_TOOLING_INFO_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES"/>
- <type name="VkToolPurposeFlagBitsEXT"/>
- <type name="VkToolPurposeFlagsEXT"/>
- <type name="VkPhysicalDeviceToolPropertiesEXT"/>
- <command name="vkGetPhysicalDeviceToolPropertiesEXT"/>
- </require>
- <require extension="VK_EXT_debug_report">
- <enum bitpos="5" extends="VkToolPurposeFlagBits" name="VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"/>
- </require>
- <require extension="VK_EXT_debug_marker">
- <enum bitpos="6" extends="VkToolPurposeFlagBits" name="VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"/>
- </require>
- <require extension="VK_EXT_debug_utils">
- <enum bitpos="5" extends="VkToolPurposeFlagBits" name="VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"/>
- <enum bitpos="6" extends="VkToolPurposeFlagBits" name="VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_separate_stencil_usage" number="247" type="device" author="EXT" contact="Daniel Rakos @drakos-amd" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_separate_stencil_usage&quot;" name="VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT" alias="VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO"/>
- <type name="VkImageStencilUsageCreateInfoEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_validation_features" number="248" type="instance" author="LUNARG" contact="Karl Schultz @karl-lunarg" specialuse="debugging" supported="vulkan">
- <require>
- <enum value="5" name="VK_EXT_VALIDATION_FEATURES_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_validation_features&quot;" name="VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT"/>
- <type name="VkValidationFeaturesEXT"/>
- <type name="VkValidationFeatureEnableEXT"/>
- <type name="VkValidationFeatureDisableEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_present_wait" number="249" type="device" requires="VK_KHR_swapchain,VK_KHR_present_id" author="KHR" contact="Keith Packard @keithp" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_PRESENT_WAIT_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_present_wait&quot;" name="VK_KHR_PRESENT_WAIT_EXTENSION_NAME"/>
- <command name="vkWaitForPresentKHR"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR"/>
- <type name="VkPhysicalDevicePresentWaitFeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_NV_cooperative_matrix" number="250" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_cooperative_matrix&quot;" name="VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV"/>
- <type name="VkCooperativeMatrixPropertiesNV"/>
- <type name="VkScopeNV"/>
- <type name="VkComponentTypeNV"/>
- <type name="VkPhysicalDeviceCooperativeMatrixFeaturesNV"/>
- <type name="VkPhysicalDeviceCooperativeMatrixPropertiesNV"/>
- <command name="vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"/>
- </require>
- </extension>
- <extension name="VK_NV_coverage_reduction_mode" number="251" requires="VK_NV_framebuffer_mixed_samples" type="device" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_coverage_reduction_mode&quot;" name="VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV"/>
- <type name="VkPhysicalDeviceCoverageReductionModeFeaturesNV"/>
- <type name="VkPipelineCoverageReductionStateCreateInfoNV"/>
- <type name="VkPipelineCoverageReductionStateCreateFlagsNV"/>
- <type name="VkCoverageReductionModeNV"/>
- <type name="VkFramebufferMixedSamplesCombinationNV"/>
- <command name="vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"/>
- </require>
- </extension>
- <extension name="VK_EXT_fragment_shader_interlock" number="252" author="EXT" type="device" requires="VK_KHR_get_physical_device_properties2" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_fragment_shader_interlock&quot;" name="VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"/>
- <type name="VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_ycbcr_image_arrays" number="253" type="device" requires="VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_ycbcr_image_arrays&quot;" name="VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT"/>
- <type name="VkPhysicalDeviceYcbcrImageArraysFeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_uniform_buffer_standard_layout" number="254" requires="VK_KHR_get_physical_device_properties2" type="device" author="KHR" contact="Graeme Leese @gnl21" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_uniform_buffer_standard_layout&quot;" name="VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME"/>
- <type name="VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES"/>
- </require>
- </extension>
- <extension name="VK_EXT_provoking_vertex" number="255" type="device" author="EXT" requires="VK_KHR_get_physical_device_properties2" contact="Jesse Hall @jessehall" specialuse="glemulation" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_PROVOKING_VERTEX_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_provoking_vertex&quot;" name="VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT"/>
- <type name="VkPhysicalDeviceProvokingVertexFeaturesEXT"/>
- <type name="VkPhysicalDeviceProvokingVertexPropertiesEXT"/>
- <type name="VkPipelineRasterizationProvokingVertexStateCreateInfoEXT"/>
- <type name="VkProvokingVertexModeEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_full_screen_exclusive" number="256" type="device" author="EXT" requires="VK_KHR_get_physical_device_properties2,VK_KHR_surface,VK_KHR_get_surface_capabilities2,VK_KHR_swapchain" platform="win32" contact="James Jones @cubanismo" supported="vulkan">
- <require>
- <enum value="4" name="VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_full_screen_exclusive&quot;" name="VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT"/>
- <enum offset="0" extends="VkResult" dir="-" name="VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT"/>
- <type name="VkFullScreenExclusiveEXT"/>
- <type name="VkSurfaceFullScreenExclusiveInfoEXT"/>
- <type name="VkSurfaceCapabilitiesFullScreenExclusiveEXT"/>
- <command name="vkGetPhysicalDeviceSurfacePresentModes2EXT"/>
- <command name="vkAcquireFullScreenExclusiveModeEXT"/>
- <command name="vkReleaseFullScreenExclusiveModeEXT"/>
- </require>
- <require extension="VK_KHR_win32_surface">
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT"/>
- <type name="VkSurfaceFullScreenExclusiveWin32InfoEXT"/>
- </require>
- <require extension="VK_KHR_device_group">
- <command name="vkGetDeviceGroupSurfacePresentModes2EXT"/>
- </require>
- <require feature="VK_VERSION_1_1">
- <command name="vkGetDeviceGroupSurfacePresentModes2EXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_headless_surface" number="257" type="instance" requires="VK_KHR_surface" author="EXT" contact="Lisa Wu @chengtianww" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_HEADLESS_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_headless_surface&quot;" name="VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT"/>
- <type name="VkHeadlessSurfaceCreateFlagsEXT"/>
- <type name="VkHeadlessSurfaceCreateInfoEXT"/>
- <command name="vkCreateHeadlessSurfaceEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_buffer_device_address" number="258" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_buffer_device_address&quot;" name="VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR" alias="VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR" alias="VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR" alias="VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO"/>
- <enum extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR" alias="VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"/>
- <enum extends="VkBufferCreateFlagBits" name="VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR" alias="VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"/>
- <enum extends="VkMemoryAllocateFlagBits" name="VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR" alias="VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"/>
- <enum extends="VkMemoryAllocateFlagBits" name="VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR" alias="VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"/>
- <enum extends="VkResult" name="VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR" alias="VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS"/>
- <type name="VkPhysicalDeviceBufferDeviceAddressFeaturesKHR"/>
- <type name="VkBufferDeviceAddressInfoKHR"/>
- <type name="VkBufferOpaqueCaptureAddressCreateInfoKHR"/>
- <type name="VkMemoryOpaqueCaptureAddressAllocateInfoKHR"/>
- <type name="VkDeviceMemoryOpaqueCaptureAddressInfoKHR"/>
- <command name="vkGetBufferDeviceAddressKHR"/>
- <command name="vkGetBufferOpaqueCaptureAddressKHR"/>
- <command name="vkGetDeviceMemoryOpaqueCaptureAddressKHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_259" number="259" author="EXT" contact="Jeff Leger @jackohound" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_259_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_259&quot;" name="VK_EXT_EXTENSION_259_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_line_rasterization" number="260" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Jeff Bolz @jeffbolznv" specialuse="cadsupport" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_LINE_RASTERIZATION_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_line_rasterization&quot;" name="VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT"/>
- <enum offset="0" extends="VkDynamicState" name="VK_DYNAMIC_STATE_LINE_STIPPLE_EXT"/>
- <type name="VkPhysicalDeviceLineRasterizationFeaturesEXT"/>
- <type name="VkPhysicalDeviceLineRasterizationPropertiesEXT"/>
- <type name="VkPipelineRasterizationLineStateCreateInfoEXT"/>
- <type name="VkLineRasterizationModeEXT"/>
- <command name="vkCmdSetLineStippleEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_shader_atomic_float" number="261" type="device" author="NV" requires="VK_KHR_get_physical_device_properties2" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_shader_atomic_float&quot;" name="VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT"/>
- <type name="VkPhysicalDeviceShaderAtomicFloatFeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_host_query_reset" number="262" author="EXT" contact="Bas Nieuwenhuizen @BNieuwenhuizen" supported="vulkan" type="device" requires="VK_KHR_get_physical_device_properties2" promotedto="VK_VERSION_1_2">
- <require>
- <enum value="1" name="VK_EXT_HOST_QUERY_RESET_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_host_query_reset&quot;" name="VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES"/>
- <type name="VkPhysicalDeviceHostQueryResetFeaturesEXT"/>
- <command name="vkResetQueryPoolEXT"/>
- </require>
- </extension>
- <extension name="VK_GGP_extension_263" number="263" author="GGP" contact="Jean-Francois Roy @jfroy" supported="disabled">
- <require>
- <enum value="0" name="VK_GGP_EXTENSION_263_SPEC_VERSION"/>
- <enum value="&quot;VK_GGP_extension_263&quot;" name="VK_GGP_EXTENSION_263_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_BRCM_extension_264" number="264" author="BRCM" contact="Graeme Leese @gnl21" supported="disabled">
- <require>
- <enum value="0" name="VK_BRCM_EXTENSION_264_SPEC_VERSION"/>
- <enum value="&quot;VK_BRCM_extension_264&quot;" name="VK_BRCM_EXTENSION_264_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_BRCM_extension_265" number="265" author="BRCM" contact="Graeme Leese @gnl21" supported="disabled">
- <require>
- <enum value="0" name="VK_BRCM_EXTENSION_265_SPEC_VERSION"/>
- <enum value="&quot;VK_BRCM_extension_265&quot;" name="VK_BRCM_EXTENSION_265_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_index_type_uint8" number="266" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_index_type_uint8&quot;" name="VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT"/>
- <enum offset="0" extends="VkIndexType" name="VK_INDEX_TYPE_UINT8_EXT"/>
- <type name="VkPhysicalDeviceIndexTypeUint8FeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_267" number="267" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_267_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_267&quot;" name="VK_EXT_EXTENSION_267_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extended_dynamic_state" number="268" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extended_dynamic_state&quot;" name="VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT" comment="Not promoted to 1.3"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_CULL_MODE_EXT" alias="VK_DYNAMIC_STATE_CULL_MODE"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_FRONT_FACE_EXT" alias="VK_DYNAMIC_STATE_FRONT_FACE"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT" alias="VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT" alias="VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT" alias="VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT" alias="VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT" alias="VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT" alias="VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT" alias="VK_DYNAMIC_STATE_DEPTH_COMPARE_OP"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT" alias="VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT" alias="VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_STENCIL_OP_EXT" alias="VK_DYNAMIC_STATE_STENCIL_OP"/>
- <type name="VkPhysicalDeviceExtendedDynamicStateFeaturesEXT" comment="Not promoted to 1.3"/>
- <command name="vkCmdSetCullModeEXT"/>
- <command name="vkCmdSetFrontFaceEXT"/>
- <command name="vkCmdSetPrimitiveTopologyEXT"/>
- <command name="vkCmdSetViewportWithCountEXT"/>
- <command name="vkCmdSetScissorWithCountEXT"/>
- <command name="vkCmdBindVertexBuffers2EXT"/>
- <command name="vkCmdSetDepthTestEnableEXT"/>
- <command name="vkCmdSetDepthWriteEnableEXT"/>
- <command name="vkCmdSetDepthCompareOpEXT"/>
- <command name="vkCmdSetDepthBoundsTestEnableEXT"/>
- <command name="vkCmdSetStencilTestEnableEXT"/>
- <command name="vkCmdSetStencilOpEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_deferred_host_operations" number="269" type="device" author="KHR" contact="Josh Barczak @jbarczak" supported="vulkan">
- <require>
- <enum value="4" name="VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_deferred_host_operations&quot;" name="VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR"/>
- <type name="VkDeferredOperationKHR"/>
- <command name="vkCreateDeferredOperationKHR"/>
- <command name="vkDestroyDeferredOperationKHR"/>
- <command name="vkGetDeferredOperationMaxConcurrencyKHR"/>
- <command name="vkGetDeferredOperationResultKHR"/>
- <command name="vkDeferredOperationJoinKHR" />
- <enum extends="VkResult" offset="0" name="VK_THREAD_IDLE_KHR" />
- <enum extends="VkResult" offset="1" name="VK_THREAD_DONE_KHR" />
- <enum extends="VkResult" offset="2" name="VK_OPERATION_DEFERRED_KHR" />
- <enum extends="VkResult" offset="3" name="VK_OPERATION_NOT_DEFERRED_KHR" />
- </require>
- </extension>
- <extension name="VK_KHR_pipeline_executable_properties" number="270" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Jason Ekstrand @jekstrand" specialuse="devtools" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_pipeline_executable_properties&quot;" name="VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR"/>
- <enum bitpos="6" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"/>
- <enum bitpos="7" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"/>
- <type name="VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR"/>
- <type name="VkPipelineInfoKHR"/>
- <type name="VkPipelineExecutablePropertiesKHR"/>
- <type name="VkPipelineExecutableInfoKHR"/>
- <type name="VkPipelineExecutableStatisticFormatKHR"/>
- <type name="VkPipelineExecutableStatisticValueKHR"/>
- <type name="VkPipelineExecutableStatisticKHR"/>
- <type name="VkPipelineExecutableInternalRepresentationKHR"/>
- <command name="vkGetPipelineExecutablePropertiesKHR"/>
- <command name="vkGetPipelineExecutableStatisticsKHR"/>
- <command name="vkGetPipelineExecutableInternalRepresentationsKHR"/>
- </require>
- </extension>
- <extension name="VK_INTEL_extension_271" number="271" type="device" author="INTEL" contact="Jason Ekstrand @jekstrand" supported="disabled">
- <require>
- <enum value="0" name="VK_INTEL_EXTENSION_271_SPEC_VERSION"/>
- <enum value="&quot;VK_INTEL_extension_271&quot;" name="VK_INTEL_EXTENSION_271_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_INTEL_extension_272" number="272" type="device" author="INTEL" contact="Jason Ekstrand @jekstrand" supported="disabled">
- <require>
- <enum value="0" name="VK_INTEL_EXTENSION_272_SPEC_VERSION"/>
- <enum value="&quot;VK_INTEL_extension_272&quot;" name="VK_INTEL_EXTENSION_272_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_INTEL_extension_273" number="273" type="device" author="INTEL" contact="Jason Ekstrand @jekstrand" supported="disabled">
- <require>
- <enum value="0" name="VK_INTEL_EXTENSION_273_SPEC_VERSION"/>
- <enum value="&quot;VK_INTEL_extension_273&quot;" name="VK_INTEL_EXTENSION_273_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_shader_atomic_float2" number="274" type="device" requires="VK_EXT_shader_atomic_float" author="EXT" contact="Jason Ekstrand @jekstrand" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_shader_atomic_float2&quot;" name="VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT"/>
- <type name="VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_275" number="275" type="instance" author="KHR" contact="Lionel Landwerlin @llandwerlin" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_275_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_275&quot;" name="VK_KHR_EXTENSION_275_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_276" number="276" type="device" author="KHR" contact="James Jones @cubanismo" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_276_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_276&quot;" name="VK_KHR_EXTENSION_276_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_shader_demote_to_helper_invocation" number="277" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_shader_demote_to_helper_invocation&quot;" name="VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES"/>
- <type name="VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_NV_device_generated_commands" number="278" type="device" requiresCore="1.1" requires="VK_KHR_buffer_device_address" author="NV" contact="Christoph Kubisch @pixeljetstream" supported="vulkan">
- <require>
- <comment>
- This extension requires buffer_device_address functionality.
- VK_EXT_buffer_device_address is also acceptable, but since it is deprecated the KHR version is preferred.
- </comment>
- <enum value="3" name="VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_device_generated_commands&quot;" name="VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV"/>
- <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"/>
- <enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV"/>
- <enum bitpos="18" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"/>
- <enum bitpos="17" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"/>
- <enum bitpos="17" extends="VkAccessFlagBits" name="VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"/>
- <enum bitpos="18" extends="VkAccessFlagBits" name="VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"/>
- <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV"/>
- <type name="VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV"/>
- <type name="VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV"/>
- <type name="VkGraphicsShaderGroupCreateInfoNV"/>
- <type name="VkGraphicsPipelineShaderGroupsCreateInfoNV"/>
- <type name="VkBindShaderGroupIndirectCommandNV"/>
- <type name="VkBindIndexBufferIndirectCommandNV"/>
- <type name="VkBindVertexBufferIndirectCommandNV"/>
- <type name="VkSetStateFlagsIndirectCommandNV"/>
- <type name="VkIndirectStateFlagBitsNV"/>
- <type name="VkIndirectStateFlagsNV"/>
- <type name="VkIndirectCommandsLayoutNV"/>
- <type name="VkIndirectCommandsTokenTypeNV"/>
- <type name="VkIndirectCommandsLayoutUsageFlagBitsNV"/>
- <type name="VkIndirectCommandsLayoutUsageFlagsNV"/>
- <type name="VkIndirectCommandsStreamNV"/>
- <type name="VkIndirectCommandsLayoutTokenNV"/>
- <type name="VkIndirectCommandsLayoutCreateInfoNV"/>
- <type name="VkGeneratedCommandsInfoNV"/>
- <type name="VkGeneratedCommandsMemoryRequirementsInfoNV"/>
- <command name="vkGetGeneratedCommandsMemoryRequirementsNV"/>
- <command name="vkCmdPreprocessGeneratedCommandsNV"/>
- <command name="vkCmdExecuteGeneratedCommandsNV"/>
- <command name="vkCmdBindPipelineShaderGroupNV"/>
- <command name="vkCreateIndirectCommandsLayoutNV"/>
- <command name="vkDestroyIndirectCommandsLayoutNV"/>
- </require>
- </extension>
- <extension name="VK_NV_inherited_viewport_scissor" number="279" type="device" author="NV" contact="David Zhao Akeley @akeley98" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_inherited_viewport_scissor&quot;" name="VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"/>
- <type name="VkPhysicalDeviceInheritedViewportScissorFeaturesNV"/>
- <type name="VkCommandBufferInheritanceViewportScissorInfoNV"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_280" number="280" type="device" author="KHR" contact="Kevin Petit @kevinpetit" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_280_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_280&quot;" name="VK_KHR_EXTENSION_280_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_shader_integer_dot_product" number="281" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Kevin Petit @kevinpetit" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_shader_integer_dot_product&quot;" name="VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES"/>
- <type name="VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR"/>
- <type name="VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_texel_buffer_alignment" number="282" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_texel_buffer_alignment&quot;" name="VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT" comment="Not promoted to 1.3"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES"/>
- <type name="VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT" comment="Not promoted to 1.3"/>
- <type name="VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT"/>
- </require>
- </extension>
- <extension name="VK_QCOM_render_pass_transform" number="283" type="device" requires="VK_KHR_swapchain,VK_KHR_surface" author="QCOM" contact="Jeff Leger @jackohound" supported="vulkan">
- <require>
- <enum value="2" name="VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_render_pass_transform&quot;" name="VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM"/>
- <enum bitpos="1" extends="VkRenderPassCreateFlagBits" name="VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"/>
- <type name="VkRenderPassTransformBeginInfoQCOM"/>
- <type name="VkCommandBufferInheritanceRenderPassTransformInfoQCOM"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_284" number="284" type="device" author="EXT" contact="Samuel Pitoiset @hakzsam" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_284_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_284&quot;" name="VK_EXT_EXTENSION_284_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_device_memory_report" number="285" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Yiwei Zhang @zhangyiwei" specialuse="devtools" supported="vulkan">
- <require>
- <enum value="2" name="VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_device_memory_report&quot;" name="VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT"/>
- <type name="VkPhysicalDeviceDeviceMemoryReportFeaturesEXT"/>
- <type name="VkDeviceDeviceMemoryReportCreateInfoEXT"/>
- <type name="VkDeviceMemoryReportCallbackDataEXT"/>
- <type name="VkDeviceMemoryReportFlagsEXT"/>
- <type name="VkDeviceMemoryReportEventTypeEXT"/>
- <type name="PFN_vkDeviceMemoryReportCallbackEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_acquire_drm_display" number="286" type="instance" requires="VK_EXT_direct_mode_display" author="EXT" contact="Drew DeVault [email protected]" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_acquire_drm_display&quot;" name="VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME"/>
- <command name="vkAcquireDrmDisplayEXT"/>
- <command name="vkGetDrmDisplayEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_robustness2" number="287" type="device" author="EXT" contact="Liam Middlebrook @liam-middlebrook" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_ROBUSTNESS_2_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_robustness2&quot;" name="VK_EXT_ROBUSTNESS_2_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT"/>
- <type name="VkPhysicalDeviceRobustness2FeaturesEXT"/>
- <type name="VkPhysicalDeviceRobustness2PropertiesEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_custom_border_color" number="288" type="device" author="EXT" contact="Liam Middlebrook @liam-middlebrook" specialuse="glemulation,d3demulation" supported="vulkan">
- <require>
- <enum value="12" name="VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_custom_border_color&quot;" name="VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"/>
- <enum offset="3" extends="VkBorderColor" name="VK_BORDER_COLOR_FLOAT_CUSTOM_EXT"/>
- <enum offset="4" extends="VkBorderColor" name="VK_BORDER_COLOR_INT_CUSTOM_EXT"/>
- <type name="VkSamplerCustomBorderColorCreateInfoEXT"/>
- <type name="VkPhysicalDeviceCustomBorderColorPropertiesEXT"/>
- <type name="VkPhysicalDeviceCustomBorderColorFeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_289" number="289" author="EXT" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled">
- <require>
- <comment>
- These enums are present only to inform downstream
- consumers like KTX2. There is no actual Vulkan extension
- corresponding to the enums.
- </comment>
- <enum value="0" name="VK_EXT_EXTENSION_289_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_289&quot;" name="VK_EXT_EXTENSION_289_EXTENSION_NAME"/>
- <enum extends="VkFormat" extnumber="289" offset="0" name="VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="1" name="VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="2" name="VK_FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="3" name="VK_FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="4" name="VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="5" name="VK_FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="6" name="VK_FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="7" name="VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="8" name="VK_FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="9" name="VK_FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="10" name="VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="11" name="VK_FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="12" name="VK_FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="13" name="VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="14" name="VK_FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="15" name="VK_FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="16" name="VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="17" name="VK_FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="18" name="VK_FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="19" name="VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="20" name="VK_FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="21" name="VK_FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="22" name="VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="23" name="VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="24" name="VK_FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="25" name="VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="26" name="VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="27" name="VK_FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="28" name="VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT"/>
- <enum extends="VkFormat" extnumber="289" offset="29" name="VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT"/>
- </require>
- </extension>
- <extension name="VK_GOOGLE_user_type" number="290" type="device" author="GOOGLE" contact="Kaye Mason @chaleur" supported="vulkan">
- <require>
- <enum value="1" name="VK_GOOGLE_USER_TYPE_SPEC_VERSION"/>
- <enum value="&quot;VK_GOOGLE_user_type&quot;" name="VK_GOOGLE_USER_TYPE_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_pipeline_library" number="291" type="device" author="KHR" contact="Christoph Kubisch @pixeljetstream" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_pipeline_library&quot;" name="VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME"/>
- <enum bitpos="11" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR"/>
- <type name="VkPipelineLibraryCreateInfoKHR"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_292" number="292" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_292_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_292&quot;" name="VK_NV_EXTENSION_292_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_293" number="293" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_293_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_293&quot;" name="VK_NV_EXTENSION_293_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_shader_non_semantic_info" number="294" type="device" author="KHR" contact="Baldur Karlsson @baldurk" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_shader_non_semantic_info&quot;" name="VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_present_id" number="295" type="device" requires="VK_KHR_swapchain" author="KHR" contact="Keith Packard @keithp" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_PRESENT_ID_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_present_id&quot;" name="VK_KHR_PRESENT_ID_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PRESENT_ID_KHR"/>
- <type name="VkPresentIdKHR"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR"/>
- <type name="VkPhysicalDevicePresentIdFeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_private_data" number="296" type="device" author="NV" contact="Matthew Rusch @mattruschnv" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_EXT_PRIVATE_DATA_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_private_data&quot;" name="VK_EXT_PRIVATE_DATA_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT" alias="VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT" alias="VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO"/>
- <enum extends="VkObjectType" name="VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT" alias="VK_OBJECT_TYPE_PRIVATE_DATA_SLOT"/>
- <type name="VkPhysicalDevicePrivateDataFeaturesEXT"/>
- <type name="VkDevicePrivateDataCreateInfoEXT"/>
- <type name="VkPrivateDataSlotCreateInfoEXT"/>
- <type name="VkPrivateDataSlotEXT"/>
- <type name="VkPrivateDataSlotCreateFlagsEXT" comment="Will add VkPrivateDataSlotCreateFlagBits when bits are defined in the future"/>
- <command name="vkCreatePrivateDataSlotEXT"/>
- <command name="vkDestroyPrivateDataSlotEXT"/>
- <command name="vkSetPrivateDataEXT"/>
- <command name="vkGetPrivateDataEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_297" number="297" author="KHR" contact="Corentin Wallez @Kangz" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_297_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_297&quot;" name="VK_KHR_EXTENSION_297_EXTENSION_NAME"/>
- <enum bitpos="3" extends="VkPipelineShaderStageCreateFlagBits" name="VK_PIPELINE_SHADER_STAGE_CREATE_RESERVED_3_BIT_KHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_pipeline_creation_cache_control" number="298" type="device" author="AMD" contact="Gregory Grebe @grgrebe_amd" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="3" name="VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_pipeline_creation_cache_control&quot;" name="VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES"/>
- <type name="VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT"/>
- <enum extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT" alias="VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"/>
- <enum extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT" alias="VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"/>
- <enum extends="VkResult" name="VK_PIPELINE_COMPILE_REQUIRED_EXT" alias="VK_PIPELINE_COMPILE_REQUIRED"/>
- <enum extends="VkResult" name="VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT" alias="VK_PIPELINE_COMPILE_REQUIRED"/>
- <enum extends="VkPipelineCacheCreateFlagBits" name="VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT" alias="VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT"/>
- <type name="VkPipelineCacheCreateFlagBits" comment="This is a temporary workaround for processors not recognizing that VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT above also requires this type"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_299" number="299" author="KHR" contact="Mark Bellamy @mark.bellamy_arm" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_299_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_299&quot;" name="VK_KHR_EXTENSION_299_EXTENSION_NAME"/>
- <enum bitpos="2" extends="VkMemoryHeapFlagBits" name="VK_MEMORY_HEAP_RESERVED_2_BIT_KHR"/>
- <enum extends="VkPipelineCacheCreateFlagBits" name="VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_KHR" alias="VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT"/>
- <enum bitpos="2" extends="VkPipelineCacheCreateFlagBits" name="VK_PIPELINE_CACHE_CREATE_RESERVED_2_BIT_KHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_video_encode_queue" number="300" type="device" requires="VK_KHR_video_queue,VK_KHR_synchronization2" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" provisional="true" platform="provisional" supported="vulkan">
- <require>
- <enum value="4" name="VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_video_encode_queue&quot;" name="VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME"/>
- <enum bitpos="27" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS" />
- <enum bitpos="37" extends="VkAccessFlagBits2" name="VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS" />
- <enum bitpos="38" extends="VkAccessFlagBits2" name="VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="6" extends="VkQueueFlagBits" name="VK_QUEUE_VIDEO_ENCODE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="15" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="16" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="13" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="14" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="15" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="27" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="28" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="0" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="1" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="2" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum offset="0" extends="VkQueryType" name="VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
-
- <type name="VkVideoEncodeFlagBitsKHR"/>
- <type name="VkVideoEncodeFlagsKHR"/>
- <type name="VkVideoEncodeInfoKHR"/>
-
- <type name="VkVideoEncodeCapabilityFlagBitsKHR"/>
- <type name="VkVideoEncodeCapabilityFlagsKHR"/>
- <type name="VkVideoEncodeCapabilitiesKHR"/>
-
- <type name="VkVideoEncodeRateControlFlagBitsKHR"/>
- <type name="VkVideoEncodeRateControlFlagsKHR"/>
- <type name="VkVideoEncodeRateControlModeFlagBitsKHR"/>
- <type name="VkVideoEncodeRateControlModeFlagsKHR"/>
- <type name="VkVideoEncodeRateControlInfoKHR"/>
- <type name="VkVideoEncodeRateControlLayerInfoKHR"/>
-
- <command name="vkCmdEncodeVideoKHR"/>
- </require>
- <require extension="VK_KHR_format_feature_flags2">
- <enum bitpos="27" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- <enum bitpos="28" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
- </require>
- </extension>
- <extension name="VK_NV_device_diagnostics_config" number="301" type="device" requires="VK_KHR_get_physical_device_properties2" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_device_diagnostics_config&quot;" name="VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV"/>
- <type name="VkPhysicalDeviceDiagnosticsConfigFeaturesNV"/>
- <type name="VkDeviceDiagnosticsConfigCreateInfoNV"/>
- <type name="VkDeviceDiagnosticsConfigFlagsNV"/>
- <type name="VkDeviceDiagnosticsConfigFlagBitsNV"/>
- </require>
- </extension>
- <extension name="VK_QCOM_render_pass_store_ops" number="302" type="device" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="vulkan">
- <require>
- <enum value="2" name="VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_render_pass_store_ops&quot;" name="VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME"/>
- <enum extends="VkAttachmentStoreOp" name="VK_ATTACHMENT_STORE_OP_NONE_QCOM" alias="VK_ATTACHMENT_STORE_OP_NONE"/>
- </require>
- </extension>
- <extension name="VK_QCOM_extension_303" number="303" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
- <require>
- <enum value="0" name="VK_QCOM_EXTENSION_303_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_extension_303&quot;" name="VK_QCOM_EXTENSION_303_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_QCOM_extension_304" number="304" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
- <require>
- <enum value="0" name="VK_QCOM_EXTENSION_304_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_extension_304&quot;" name="VK_QCOM_EXTENSION_304_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_QCOM_extension_305" number="305" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
- <require>
- <enum value="0" name="VK_QCOM_EXTENSION_305_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_extension_305&quot;" name="VK_QCOM_EXTENSION_305_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_QCOM_extension_306" number="306" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
- <require>
- <enum value="0" name="VK_QCOM_EXTENSION_306_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_extension_306&quot;" name="VK_QCOM_EXTENSION_306_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_QCOM_extension_307" number="307" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
- <require>
- <enum value="0" name="VK_QCOM_EXTENSION_307_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_extension_307&quot;" name="VK_QCOM_EXTENSION_307_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_308" number="308" type="device" author="NV" contact="Tristan Lorach @tlorach" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_308_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_308&quot;" name="VK_NV_EXTENSION_308_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_309" number="309" author="KHR" contact="Aidan Fabius @afabius" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_309_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_309&quot;" name="VK_KHR_EXTENSION_309_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_QCOM_extension_310" number="310" author="QCOM" contact="Jeff Leger @jackohound" supported="disabled">
- <require>
- <enum value="0" name="VK_QCOM_EXTENSION_310_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_extension_310&quot;" name="VK_QCOM_EXTENSION_310_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RESERVED_QCOM"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_311" number="311" author="NV" contact="Charles Hansen @cshansen" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_311_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_311&quot;" name="VK_NV_EXTENSION_311_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_312" number="312" author="MVK" contact="Bill Hollings @billhollings" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_312_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_312&quot;" name="VK_EXT_EXTENSION_312_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_313" number="313" author="MVK" contact="Bill Hollings @billhollings" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_313_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_313&quot;" name="VK_EXT_EXTENSION_313_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_314" number="314" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_314_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_314&quot;" name="VK_AMD_EXTENSION_314_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_synchronization2" number="315" type="device" author="KHR" requires="VK_KHR_get_physical_device_properties2" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_synchronization2&quot;" name="VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR" alias="VK_STRUCTURE_TYPE_MEMORY_BARRIER_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR" alias="VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR" alias="VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR" alias="VK_STRUCTURE_TYPE_DEPENDENCY_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR" alias="VK_STRUCTURE_TYPE_SUBMIT_INFO_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR" alias="VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR" alias="VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES"/>
- <enum extends="VkEventCreateFlagBits" name="VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR" alias="VK_EVENT_CREATE_DEVICE_ONLY_BIT"/>
- <enum extends="VkImageLayout" name="VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR" alias="VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL"/>
- <enum extends="VkImageLayout" name="VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR" alias="VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL"/>
- <enum extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_NONE_KHR" alias="VK_PIPELINE_STAGE_NONE"/>
- <enum extends="VkAccessFlagBits" name="VK_ACCESS_NONE_KHR" alias="VK_ACCESS_NONE"/>
- <type name="VkFlags64"/>
- <type name="VkPipelineStageFlags2KHR"/>
- <type name="VkPipelineStageFlagBits2KHR"/>
- <type name="VkAccessFlags2KHR"/>
- <type name="VkAccessFlagBits2KHR"/>
- <type name="VkMemoryBarrier2KHR"/>
- <type name="VkBufferMemoryBarrier2KHR"/>
- <type name="VkImageMemoryBarrier2KHR"/>
- <type name="VkDependencyInfoKHR"/>
- <type name="VkSubmitInfo2KHR"/>
- <type name="VkSemaphoreSubmitInfoKHR"/>
- <type name="VkCommandBufferSubmitInfoKHR"/>
- <type name="VkSubmitFlagBitsKHR"/>
- <type name="VkSubmitFlagsKHR"/>
- <type name="VkPhysicalDeviceSynchronization2FeaturesKHR"/>
- <command name="vkCmdSetEvent2KHR"/>
- <command name="vkCmdResetEvent2KHR"/>
- <command name="vkCmdWaitEvents2KHR"/>
- <command name="vkCmdPipelineBarrier2KHR"/>
- <command name="vkCmdWriteTimestamp2KHR"/>
- <command name="vkQueueSubmit2KHR"/>
- </require>
- <require extension="VK_EXT_transform_feedback">
- <enum bitpos="24" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT"/>
- <enum bitpos="25" extends="VkAccessFlagBits2" name="VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"/>
- <enum bitpos="26" extends="VkAccessFlagBits2" name="VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"/>
- <enum bitpos="27" extends="VkAccessFlagBits2" name="VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"/>
- </require>
- <require extension="VK_EXT_conditional_rendering">
- <enum bitpos="18" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT" comment="A pipeline stage for conditional rendering predicate fetch"/>
- <enum bitpos="20" extends="VkAccessFlagBits2" name="VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT" comment="read access flag for reading conditional rendering predicate"/>
- </require>
- <require extension="VK_NV_device_generated_commands">
- <enum bitpos="17" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"/>
- <enum bitpos="17" extends="VkAccessFlagBits2" name="VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV"/>
- <enum bitpos="18" extends="VkAccessFlagBits2" name="VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV"/>
- </require>
- <require extension="VK_KHR_fragment_shading_rate">
- <enum bitpos="22" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
- <enum bitpos="23" extends="VkAccessFlagBits2" name="VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"/>
- </require>
- <require extension="VK_NV_shading_rate_image">
- <enum extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV" alias="VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
- <enum extends="VkAccessFlagBits2" name="VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV" alias="VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"/>
- </require>
- <require extension="VK_KHR_acceleration_structure">
- <enum bitpos="25" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"/>
- <enum bitpos="21" extends="VkAccessFlagBits2" name="VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR"/>
- <enum bitpos="22" extends="VkAccessFlagBits2" name="VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"/>
- </require>
- <require extension="VK_KHR_ray_tracing_pipeline">
- <enum bitpos="21" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR"/>
- </require>
- <require extension="VK_NV_ray_tracing">
- <enum extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV" alias="VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR"/>
- <enum extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV" alias="VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"/>
- <enum extends="VkAccessFlagBits2" name="VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV" alias="VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR"/>
- <enum extends="VkAccessFlagBits2" name="VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV" alias="VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"/>
- </require>
- <require extension="VK_EXT_fragment_density_map">
- <enum bitpos="23" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT"/>
- <enum bitpos="24" extends="VkAccessFlagBits2" name="VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"/>
- </require>
- <require extension="VK_EXT_blend_operation_advanced">
- <enum bitpos="19" extends="VkAccessFlagBits2" name="VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"/>
- </require>
- <require extension="VK_NV_mesh_shader">
- <enum bitpos="19" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV"/>
- <enum bitpos="20" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV"/>
- </require>
- <require extension="VK_AMD_buffer_marker">
- <command name="vkCmdWriteBufferMarker2AMD"/>
- </require>
- <require extension="VK_NV_device_diagnostic_checkpoints">
- <type name="VkQueueFamilyCheckpointProperties2NV"/>
- <type name="VkCheckpointData2NV"/>
- <command name="vkGetQueueCheckpointData2NV"/>
- <enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV"/>
- <enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_316" number="316" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_316_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_316&quot;" name="VK_AMD_EXTENSION_316_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_317" number="317" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_317_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_317&quot;" name="VK_AMD_EXTENSION_317_EXTENSION_NAME"/>
- <enum bitpos="4" extends="VkDescriptorSetLayoutCreateFlagBits" name="VK_DESCRIPTOR_SET_LAYOUT_CREATE_RESERVED_4_BIT_AMD"/>
- <enum bitpos="21" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_RESERVED_21_BIT_AMD"/>
- <enum bitpos="22" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_RESERVED_22_BIT_AMD"/>
- <enum bitpos="5" extends="VkBufferCreateFlagBits" name="VK_BUFFER_CREATE_RESERVED_5_BIT_AMD"/>
- <enum bitpos="16" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_RESERVED_16_BIT_AMD"/>
- <enum bitpos="3" extends="VkSamplerCreateFlagBits" name="VK_SAMPLER_CREATE_RESERVED_3_BIT_AMD"/>
- <enum bitpos="41" extends="VkAccessFlagBits2" name="VK_ACCESS_2_RESERVED_41_BIT_AMD"/>
- <enum bitpos="2" extends="VkImageViewCreateFlagBits" name="VK_IMAGE_VIEW_CREATE_RESERVED_2_BIT_AMD"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_318" number="318" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_318_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_318&quot;" name="VK_AMD_EXTENSION_318_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_319" number="319" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_319_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_319&quot;" name="VK_AMD_EXTENSION_319_EXTENSION_NAME"/>
- <enum bitpos="3" extends="VkDescriptorSetLayoutCreateFlagBits" name="VK_DESCRIPTOR_SET_LAYOUT_CREATE_RESERVED_3_BIT_AMD"/>
- <enum bitpos="0" extends="VkPipelineLayoutCreateFlagBits" name="VK_PIPELINE_LAYOUT_CREATE_RESERVED_0_BIT_AMD"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_320" number="320" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_320_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_320&quot;" name="VK_AMD_EXTENSION_320_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_321" number="321" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_321_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_321&quot;" name="VK_AMD_EXTENSION_321_EXTENSION_NAME"/>
- <enum bitpos="23" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_RESERVED_23_BIT_AMD"/>
- <enum bitpos="10" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_RESERVED_10_BIT_AMD"/>
- <enum bitpos="1" extends="VkPipelineLayoutCreateFlagBits" name="VK_PIPELINE_LAYOUT_CREATE_RESERVED_1_BIT_AMD"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_322" number="322" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_322_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_322&quot;" name="VK_AMD_EXTENSION_322_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_AMD_extension_323" number="323" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
- <require>
- <enum value="0" name="VK_AMD_EXTENSION_323_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_323&quot;" name="VK_AMD_EXTENSION_323_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_shader_subgroup_uniform_control_flow" number="324" type="device" requiresCore="1.1" author="KHR" contact="Alan Baker @alan-baker" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_shader_subgroup_uniform_control_flow&quot;" name="VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR"/>
- <type name="VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_325" number="325" author="KHR" contact="Ralph Potter gitlab:@r_potter" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_325_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_325&quot;" name="VK_KHR_EXTENSION_325_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_zero_initialize_workgroup_memory" number="326" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Alan Baker @alan-baker" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_zero_initialize_workgroup_memory&quot;" name="VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES"/>
- <type name="VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_NV_fragment_shading_rate_enums" number="327" type="device" requires="VK_KHR_fragment_shading_rate" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_fragment_shading_rate_enums&quot;" name="VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV"/>
- <type name="VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV"/>
- <type name="VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV"/>
- <type name="VkPipelineFragmentShadingRateEnumStateCreateInfoNV"/>
- <type name="VkFragmentShadingRateNV"/>
- <type name="VkFragmentShadingRateTypeNV"/>
- <command name="vkCmdSetFragmentShadingRateEnumNV"/>
- </require>
- </extension>
- <extension name="VK_NV_ray_tracing_motion_blur" number="328" type="device" requires="VK_KHR_ray_tracing_pipeline" author="NV" contact="Eric Werness" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_ray_tracing_motion_blur&quot;" name="VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV"/>
- <enum bitpos="5" extends="VkBuildAccelerationStructureFlagBitsKHR" name="VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"/>
- <enum bitpos="2" extends="VkAccelerationStructureCreateFlagBitsKHR" name="VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV"/>
- <enum bitpos="20" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV"/>
- <type name="VkAccelerationStructureGeometryMotionTrianglesDataNV"/>
- <type name="VkAccelerationStructureMotionInfoNV"/>
- <type name="VkAccelerationStructureMotionInstanceNV"/>
- <type name="VkAccelerationStructureMotionInstanceDataNV"/>
- <type name="VkAccelerationStructureMatrixMotionInstanceNV"/>
- <type name="VkAccelerationStructureSRTMotionInstanceNV"/>
- <type name="VkSRTDataNV"/>
- <type name="VkAccelerationStructureMotionInstanceTypeNV"/>
- <type name="VkPhysicalDeviceRayTracingMotionBlurFeaturesNV"/>
- <type name="VkAccelerationStructureMotionInfoFlagsNV"/>
- <type name="VkAccelerationStructureMotionInstanceFlagsNV"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_329" number="329" author="NV" contact="Pat Brown @nvpbrown" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_329_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_329&quot;" name="VK_NV_EXTENSION_329_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_330" number="330" author="NV" contact="Liam Middlebrook @liam-middlebrook" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_330_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_330&quot;" name="VK_NV_EXTENSION_330_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_ycbcr_2plane_444_formats" number="331" type="device" requires="VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Tony Zlatinski @tzlatinski" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <comment>
- VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT and
- VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
- were not promoted to Vulkan 1.3.
- </comment>
- <enum value="1" name="VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_ycbcr_2plane_444_formats&quot;" name="VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"/>
- <enum extends="VkFormat" name="VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT" alias="VK_FORMAT_G8_B8R8_2PLANE_444_UNORM"/>
- <enum extends="VkFormat" name="VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT" alias="VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT" alias="VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT" alias="VK_FORMAT_G16_B16R16_2PLANE_444_UNORM"/>
- <type name="VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_332" number="332" author="NV" contact="Tony Zlatinski @tzlatinski" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_332_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_332&quot;" name="VK_NV_EXTENSION_332_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_fragment_density_map2" number="333" type="device" requires="VK_EXT_fragment_density_map" author="EXT" contact="Matthew Netsch @mnetsch" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_fragment_density_map2&quot;" name="VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"/>
- <enum bitpos="1" extends="VkImageViewCreateFlagBits" name="VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"/>
- <type name="VkPhysicalDeviceFragmentDensityMap2FeaturesEXT"/>
- <type name="VkPhysicalDeviceFragmentDensityMap2PropertiesEXT"/>
- </require>
- </extension>
- <extension name="VK_QCOM_rotated_copy_commands" number="334" type="device" requires="VK_KHR_swapchain,VK_KHR_copy_commands2" author="QCOM" contact="Jeff Leger @jackohound" supported="vulkan">
- <require>
- <enum value="1" name="VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_rotated_copy_commands&quot;" name="VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM"/>
- <type name="VkCopyCommandTransformInfoQCOM"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_335" number="335" author="KHR" contact="Mark Bellamy @mark.bellamy_arm" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_335_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_335&quot;" name="VK_KHR_EXTENSION_335_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_image_robustness" number="336" type="device" author="EXT" contact="Graeme Leese @gnl21" supported="vulkan" requires="VK_KHR_get_physical_device_properties2" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_image_robustness&quot;" name="VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES"/>
- <type name="VkPhysicalDeviceImageRobustnessFeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_workgroup_memory_explicit_layout" number="337" type="device" requires="VK_KHR_get_physical_device_properties2" author="KHR" contact="Caio Marcelo de Oliveira Filho @cmarcelo" supported="vulkan">
- <require>
- <enum value="1" name="VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_workgroup_memory_explicit_layout&quot;" name="VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"/>
- <type name="VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR"/>
- </require>
- </extension>
- <extension name="VK_KHR_copy_commands2" number="338" author="KHR" type="device" contact="Jeff Leger @jackohound" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_KHR_COPY_COMMANDS_2_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_copy_commands2&quot;" name="VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR" alias="VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR" alias="VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR" alias="VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR" alias="VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR" alias="VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR" alias="VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR" alias="VK_STRUCTURE_TYPE_BUFFER_COPY_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR" alias="VK_STRUCTURE_TYPE_IMAGE_COPY_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR" alias="VK_STRUCTURE_TYPE_IMAGE_BLIT_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR" alias="VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR" alias="VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2"/>
- <type name="VkCopyBufferInfo2KHR"/>
- <type name="VkCopyImageInfo2KHR"/>
- <type name="VkCopyBufferToImageInfo2KHR"/>
- <type name="VkCopyImageToBufferInfo2KHR"/>
- <type name="VkBlitImageInfo2KHR"/>
- <type name="VkResolveImageInfo2KHR"/>
- <type name="VkBufferCopy2KHR"/>
- <type name="VkImageCopy2KHR"/>
- <type name="VkImageBlit2KHR"/>
- <type name="VkBufferImageCopy2KHR"/>
- <type name="VkImageResolve2KHR"/>
- <command name="vkCmdCopyBuffer2KHR"/>
- <command name="vkCmdCopyImage2KHR"/>
- <command name="vkCmdCopyBufferToImage2KHR"/>
- <command name="vkCmdCopyImageToBuffer2KHR"/>
- <command name="vkCmdBlitImage2KHR"/>
- <command name="vkCmdResolveImage2KHR"/>
- </require>
- </extension>
- <extension name="VK_ARM_extension_339" number="339" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled">
- <require>
- <enum value="0" name="VK_ARM_EXTENSION_339_SPEC_VERSION"/>
- <enum value="&quot;VK_ARM_extension_339&quot;" name="VK_ARM_EXTENSION_339_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_340" number="340" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_340_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_340&quot;" name="VK_EXT_EXTENSION_340_EXTENSION_NAME"/>
- <enum bitpos="19" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_RESERVED_19_BIT_EXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_4444_formats" number="341" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <comment>
- VkPhysicalDevice4444FormatsFeaturesEXT and
- VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT
- were not promoted to Vulkan 1.3.
- </comment>
- <enum value="1" name="VK_EXT_4444_FORMATS_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_4444_formats&quot;" name="VK_EXT_4444_FORMATS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT"/>
- <enum extends="VkFormat" name="VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT" alias="VK_FORMAT_A4R4G4B4_UNORM_PACK16"/>
- <enum extends="VkFormat" name="VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT" alias="VK_FORMAT_A4B4G4R4_UNORM_PACK16"/>
- <type name="VkPhysicalDevice4444FormatsFeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_342" number="342" author="EXT" contact="Ralph Potter gitlab:@r_potter" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_342_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_342&quot;" name="VK_EXT_EXTENSION_342_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_ARM_rasterization_order_attachment_access" number="343" type="device" requires="VK_KHR_get_physical_device_properties2" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan">
- <require>
- <enum value="1" name="VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION"/>
- <enum value="&quot;VK_ARM_rasterization_order_attachment_access&quot;" name="VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM"/>
- <type name="VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM"/>
- <type name="VkPipelineColorBlendStateCreateFlagBits"/>
- <type name="VkPipelineDepthStencilStateCreateFlagBits"/>
- <enum bitpos="0" extends="VkPipelineColorBlendStateCreateFlagBits" name="VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM"/>
- <enum bitpos="0" extends="VkPipelineDepthStencilStateCreateFlagBits" name="VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"/>
- <enum bitpos="1" extends="VkPipelineDepthStencilStateCreateFlagBits" name="VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"/>
- <enum bitpos="4" extends="VkSubpassDescriptionFlagBits" name="VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM"/>
- <enum bitpos="5" extends="VkSubpassDescriptionFlagBits" name="VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"/>
- <enum bitpos="6" extends="VkSubpassDescriptionFlagBits" name="VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"/>
- </require>
- </extension>
- <extension name="VK_ARM_extension_344" number="344" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled">
- <require>
- <enum value="0" name="VK_ARM_EXTENSION_344_SPEC_VERSION"/>
- <enum value="&quot;VK_ARM_extension_344&quot;" name="VK_ARM_EXTENSION_344_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_rgba10x6_formats" number="345" type="device" requires="VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_rgba10x6_formats&quot;" name="VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT"/>
- <type name="VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_NV_acquire_winrt_display" number="346" type="device" requires="VK_EXT_direct_mode_display" author="NV" contact="Jeff Juliano @jjuliano" platform="win32" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_acquire_winrt_display&quot;" name="VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME"/>
- <command name="vkAcquireWinrtDisplayNV"/>
- <command name="vkGetWinrtDisplayNV"/>
- </require>
- </extension>
- <extension name="VK_EXT_directfb_surface" number="347" type="instance" requires="VK_KHR_surface" platform="directfb" supported="vulkan" author="EXT" contact="Nicolas Caramelli @caramelli">
- <require>
- <enum value="1" name="VK_EXT_DIRECTFB_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_directfb_surface&quot;" name="VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT"/>
- <type name="VkDirectFBSurfaceCreateFlagsEXT"/>
- <type name="VkDirectFBSurfaceCreateInfoEXT"/>
- <command name="vkCreateDirectFBSurfaceEXT"/>
- <command name="vkGetPhysicalDeviceDirectFBPresentationSupportEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_350" number="350" author="KHR" contact="Mark Bellamy @mark.bellamy_arm" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_350_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_350&quot;" name="VK_KHR_EXTENSION_350_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_351" number="351" author="NV" contact="Liam Middlebrook @liam-middlebrook" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_351_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_351&quot;" name="VK_NV_EXTENSION_351_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_VALVE_mutable_descriptor_type" number="352" type="device" supported="vulkan" author="VALVE" contact="Joshua Ashton @Joshua-Ashton,Hans-Kristian Arntzen @HansKristian-Work" specialuse="d3demulation" requires="VK_KHR_maintenance3">
- <require>
- <enum value="1" name="VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION"/>
- <enum value="&quot;VK_VALVE_mutable_descriptor_type&quot;" name="VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE"/>
- <enum offset="0" extends="VkDescriptorType" name="VK_DESCRIPTOR_TYPE_MUTABLE_VALVE"/>
- <enum bitpos="2" extends="VkDescriptorPoolCreateFlagBits" name="VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE"/>
- <enum bitpos="2" extends="VkDescriptorSetLayoutCreateFlagBits" name="VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE"/>
- <type name="VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE"/>
- <type name="VkMutableDescriptorTypeListVALVE"/>
- <type name="VkMutableDescriptorTypeCreateInfoVALVE"/>
- </require>
- </extension>
- <extension name="VK_EXT_vertex_input_dynamic_state" number="353" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
- <require>
- <enum value="2" name="VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_vertex_input_dynamic_state&quot;" name="VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"/>
- <enum offset="0" extends="VkDynamicState" name="VK_DYNAMIC_STATE_VERTEX_INPUT_EXT"/>
- <type name="VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT"/>
- <type name="VkVertexInputBindingDescription2EXT"/>
- <type name="VkVertexInputAttributeDescription2EXT"/>
- <command name="vkCmdSetVertexInputEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_physical_device_drm" number="354" author="EXT" type="device" contact="Simon Ser @emersion" supported="vulkan" requires="VK_KHR_get_physical_device_properties2">
- <require>
- <enum value="1" name="VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_physical_device_drm&quot;" name="VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME"/>
-
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT"/>
-
- <type name="VkPhysicalDeviceDrmPropertiesEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_355" number="355" author="EXT" contact="Ralph Potter gitlab:@r_potter" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_355_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_355&quot;" name="VK_EXT_EXTENSION_355_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_depth_clip_control" number="356" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan" specialuse="glemulation">
- <require>
- <enum value="1" name="VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_depth_clip_control&quot;" name="VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT"/>
- <type name="VkPhysicalDeviceDepthClipControlFeaturesEXT"/>
- <type name="VkPipelineViewportDepthClipControlCreateInfoEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_primitive_topology_list_restart" number="357" type="device" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan" specialuse="glemulation">
- <require>
- <enum value="1" name="VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_primitive_topology_list_restart&quot;" name="VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT"/>
- <type name="VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_358" number="358" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_358_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_358&quot;" name="VK_KHR_EXTENSION_358_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_359" number="359" author="EXT" contact="Bill Hollings @billhollings" supported="disabled" specialuse="glemulation">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_359_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_359&quot;" name="VK_EXT_EXTENSION_359_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_360" number="360" author="EXT" contact="Bill Hollings @billhollings" supported="disabled" specialuse="glemulation">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_360_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_360&quot;" name="VK_EXT_EXTENSION_360_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_format_feature_flags2" number="361" author="KHR" type="device" requires="VK_KHR_get_physical_device_properties2" contact="Lionel Landwerlin @llandwerlin" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_format_feature_flags2&quot;" name="VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR" alias="VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3"/>
- <type name="VkFormatFeatureFlags2KHR"/>
- <type name="VkFormatFeatureFlagBits2KHR"/>
- <type name="VkFormatProperties3KHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_362" number="362" author="EXT" contact="Lionel Duc @nvlduc" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_362_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_362&quot;" name="VK_EXT_EXTENSION_362_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_363" number="363" author="EXT" contact="Kaye Mason @chaleur" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_363_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_363&quot;" name="VK_EXT_EXTENSION_363_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_FUCHSIA_extension_364" number="364" author="FUCHSIA" contact="Craig Stout @cdotstout" supported="disabled">
- <require>
- <enum value="0" name="VK_FUCHSIA_EXTENSION_364_SPEC_VERSION"/>
- <enum value="&quot;VK_FUCHSIA_extension_364&quot;" name="VK_FUCHSIA_EXTENSION_364_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_FUCHSIA_external_memory" number="365" type="device" requires="VK_KHR_external_memory_capabilities,VK_KHR_external_memory" author="FUCHSIA" contact="John Rosasco @rosasco" platform="fuchsia" supported="vulkan">
- <require>
- <enum value="1" name="VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION"/>
- <enum value="&quot;VK_FUCHSIA_external_memory&quot;" name="VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA"/>
- <enum bitpos="11" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"/>
- <type name="VkImportMemoryZirconHandleInfoFUCHSIA"/>
- <type name="VkMemoryZirconHandlePropertiesFUCHSIA"/>
- <type name="VkMemoryGetZirconHandleInfoFUCHSIA"/>
- <command name="vkGetMemoryZirconHandleFUCHSIA"/>
- <command name="vkGetMemoryZirconHandlePropertiesFUCHSIA"/>
- </require>
- </extension>
- <extension name="VK_FUCHSIA_external_semaphore" number="366" type="device" requires="VK_KHR_external_semaphore_capabilities,VK_KHR_external_semaphore" author="FUCHSIA" contact="John Rosasco @rosasco" platform="fuchsia" supported="vulkan">
- <require>
- <enum value="1" name="VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION"/>
- <enum value="&quot;VK_FUCHSIA_external_semaphore&quot;" name="VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA"/>
- <enum bitpos="7" extends="VkExternalSemaphoreHandleTypeFlagBits" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"/>
- <type name="VkImportSemaphoreZirconHandleInfoFUCHSIA"/>
- <type name="VkSemaphoreGetZirconHandleInfoFUCHSIA"/>
- <command name="vkImportSemaphoreZirconHandleFUCHSIA"/>
- <command name="vkGetSemaphoreZirconHandleFUCHSIA"/>
- </require>
- </extension>
- <extension name="VK_FUCHSIA_buffer_collection" number="367" type="device" requires="VK_FUCHSIA_external_memory,VK_KHR_sampler_ycbcr_conversion" author="FUCHSIA" contact="John Rosasco @rosasco" supported="vulkan" platform="fuchsia">
- <require>
- <enum value="2" name="VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION"/>
- <enum value="&quot;VK_FUCHSIA_buffer_collection&quot;" name="VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA"/>
- <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA" comment="VkBufferCollectionFUCHSIA"/>
- <enum offset="0" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA"/>
- <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA"/>
- <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA"/>
- <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA"/>
- <enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA"/>
- <enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA"/>
- <enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA"/>
- <type name="VkBufferCollectionFUCHSIA"/>
- <type name="VkBufferCollectionCreateInfoFUCHSIA"/>
- <type name="VkImportMemoryBufferCollectionFUCHSIA"/>
- <type name="VkBufferCollectionImageCreateInfoFUCHSIA"/>
- <type name="VkBufferConstraintsInfoFUCHSIA"/>
- <type name="VkBufferCollectionBufferCreateInfoFUCHSIA"/>
- <type name="VkBufferCollectionPropertiesFUCHSIA"/>
- <type name="VkImageFormatConstraintsFlagsFUCHSIA" comment="Will add VkImageFormatConstraintsFlagBitsFUCHSIA when bits are defined in the future"/>
- <type name="VkSysmemColorSpaceFUCHSIA"/>
- <type name="VkImageConstraintsInfoFlagBitsFUCHSIA"/>
- <type name="VkImageConstraintsInfoFlagsFUCHSIA"/>
- <type name="VkImageConstraintsInfoFUCHSIA"/>
- <type name="VkImageFormatConstraintsInfoFUCHSIA"/>
- <type name="VkBufferCollectionConstraintsInfoFUCHSIA"/>
- <command name="vkCreateBufferCollectionFUCHSIA"/>
- <command name="vkSetBufferCollectionImageConstraintsFUCHSIA"/>
- <command name="vkSetBufferCollectionBufferConstraintsFUCHSIA"/>
- <command name="vkDestroyBufferCollectionFUCHSIA"/>
- <command name="vkGetBufferCollectionPropertiesFUCHSIA"/>
- </require>
- </extension>
- <extension name="VK_FUCHSIA_extension_368" number="368" author="FUCHSIA" contact="Craig Stout @cdotstout" supported="disabled">
- <require>
- <enum value="0" name="VK_FUCHSIA_EXTENSION_368_SPEC_VERSION"/>
- <enum value="&quot;VK_FUCHSIA_extension_368&quot;" name="VK_FUCHSIA_EXTENSION_368_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_QCOM_extension_369" number="369" author="QCOM" contact="Matthew Netsch @mnetsch" supported="disabled">
- <require>
- <enum value="0" name="VK_QCOM_EXTENSION_369_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_extension_369&quot;" name="VK_QCOM_EXTENSION_369_EXTENSION_NAME"/>
- <enum bitpos="4" extends="VkDescriptorBindingFlagBits" name="VK_DESCRIPTOR_BINDING_RESERVED_4_BIT_QCOM"/>
- </require>
- </extension>
- <extension name="VK_HUAWEI_subpass_shading" number="370" type="device" author="HUAWEI" contact="Hueilong Wang @wyvernathuawei" requires="VK_KHR_create_renderpass2,VK_KHR_synchronization2" supported="vulkan">
- <require>
- <enum value="2" name="VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION"/>
- <enum value="&quot;VK_HUAWEI_subpass_shading&quot;" name="VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI"/>
- <enum offset="3" extends="VkPipelineBindPoint" extnumber="370" name="VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI"/>
- <enum bitpos="39" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI"/>
- <enum bitpos="14" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI"/>
- <type name="VkSubpassShadingPipelineCreateInfoHUAWEI"/>
- <type name="VkPhysicalDeviceSubpassShadingFeaturesHUAWEI"/>
- <type name="VkPhysicalDeviceSubpassShadingPropertiesHUAWEI"/>
- <command name="vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI"/>
- <command name="vkCmdSubpassShadingHUAWEI"/>
- </require>
- </extension>
- <extension name="VK_HUAWEI_invocation_mask" number="371" type="device" requires="VK_KHR_ray_tracing_pipeline,VK_KHR_synchronization2" author="Huawei" contact="Yunpeng Zhu @yunxingzhu" supported="vulkan">
- <require>
- <enum value="1" name="VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION"/>
- <enum value="&quot;VK_HUAWEI_invocation_mask&quot;" name="VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI"/>
- <enum bitpos="39" extends="VkAccessFlagBits2" name="VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI"/>
- <enum bitpos="18" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"/>
- <enum bitpos="40" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI"/>
- <type name="VkPhysicalDeviceInvocationMaskFeaturesHUAWEI"/>
- <command name="vkCmdBindInvocationMaskHUAWEI"/>
- </require>
- </extension>
- <extension name="VK_NV_external_memory_rdma" number="372" type="device" requires="VK_KHR_external_memory" author="NV" contact="Carsten Rohde @crohde" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_external_memory_rdma&quot;" name="VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV"/>
- <enum bitpos="8" extends="VkMemoryPropertyFlagBits" name="VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV"/>
- <enum bitpos="12" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV"/>
- <type name="VkRemoteAddressNV"/>
- <type name="VkMemoryGetRemoteAddressInfoNV"/>
- <type name="VkPhysicalDeviceExternalMemoryRDMAFeaturesNV"/>
- <command name="vkGetMemoryRemoteAddressNV"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_373" number="373" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_373_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_373&quot;" name="VK_NV_EXTENSION_373_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_374" number="374" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_374_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_374&quot;" name="VK_NV_EXTENSION_374_EXTENSION_NAME"/>
- <enum bitpos="4" extends="VkExternalFenceHandleTypeFlagBits" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_RESERVED_4_BIT_NV"/>
- <enum bitpos="5" extends="VkExternalFenceHandleTypeFlagBits" name="VK_EXTERNAL_FENCE_HANDLE_TYPE_RESERVED_5_BIT_NV"/>
- <enum bitpos="5" extends="VkExternalSemaphoreHandleTypeFlagBits" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_5_BIT_NV"/>
- <enum bitpos="6" extends="VkExternalSemaphoreHandleTypeFlagBits" name="VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_RESERVED_6_BIT_NV"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_375" number="375" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_375_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_375&quot;" name="VK_NV_EXTENSION_375_EXTENSION_NAME"/>
- <enum bitpos="13" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_RESERVED_13_BIT_NV"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_376" number="376" author="EXT" contact="Melih Yasin Yalcin @yalcinmelihyasin" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_376_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_376&quot;" name="VK_EXT_EXTENSION_376_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_377" number="377" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_377_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_377&quot;" name="VK_EXT_EXTENSION_377_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extended_dynamic_state2" number="378" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="1" name="VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extended_dynamic_state2&quot;" name="VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT" comment="Not promoted to 1.3"/>
- <enum offset="0" extends="VkDynamicState" name="VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT" comment="Not promoted to 1.3"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT" alias="VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT" alias="VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE"/>
- <enum offset="3" extends="VkDynamicState" name="VK_DYNAMIC_STATE_LOGIC_OP_EXT" comment="Not promoted to 1.3"/>
- <enum extends="VkDynamicState" name="VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT" alias="VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE"/>
- <type name="VkPhysicalDeviceExtendedDynamicState2FeaturesEXT" comment="Not promoted to 1.3"/>
- <command name="vkCmdSetPatchControlPointsEXT" comment="Not promoted to 1.3"/>
- <command name="vkCmdSetRasterizerDiscardEnableEXT"/>
- <command name="vkCmdSetDepthBiasEnableEXT"/>
- <command name="vkCmdSetLogicOpEXT" comment="Not promoted to 1.3"/>
- <command name="vkCmdSetPrimitiveRestartEnableEXT"/>
- </require>
- </extension>
- <extension name="VK_QNX_screen_surface" number="379" type="instance" requires="VK_KHR_surface" platform="screen" author="QNX" contact="Mike Gorchak @mgorchak-blackberry" supported="vulkan">
- <require>
- <enum value="1" name="VK_QNX_SCREEN_SURFACE_SPEC_VERSION"/>
- <enum value="&quot;VK_QNX_screen_surface&quot;" name="VK_QNX_SCREEN_SURFACE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX"/>
- <type name="VkScreenSurfaceCreateFlagsQNX"/>
- <type name="VkScreenSurfaceCreateInfoQNX"/>
- <command name="vkCreateScreenSurfaceQNX"/>
- <command name="vkGetPhysicalDeviceScreenPresentationSupportQNX"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_380" number="380" author="KHR" contact="James Jones @cubanismo" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_380_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_380&quot;" name="VK_KHR_EXTENSION_380_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_381" number="381" author="KHR" contact="James Jones @cubanismo" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_381_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_381&quot;" name="VK_KHR_EXTENSION_381_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_color_write_enable" number="382" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Sharif Elcott @selcott" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_color_write_enable&quot;" name="VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT"/>
- <enum offset="0" extends="VkDynamicState" name="VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT"/>
- <type name="VkPhysicalDeviceColorWriteEnableFeaturesEXT"/>
- <type name="VkPipelineColorWriteCreateInfoEXT"/>
- <command name="vkCmdSetColorWriteEnableEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_383" number="383" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_383_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_383&quot;" name="VK_EXT_EXTENSION_383_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_384" number="384" type="instance" author="EXT" contact="Chia-I Wu @olvaffe1" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_384_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_384&quot;" name="VK_EXT_EXTENSION_384_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_MESA_extension_385" number="385" type="instance" author="MESA" contact="Chia-I Wu @olvaffe1" supported="disabled">
- <require>
- <enum value="0" name="VK_MESA_EXTENSION_385_SPEC_VERSION"/>
- <enum value="&quot;VK_MESA_extension_385&quot;" name="VK_MESA_EXTENSION_385_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_GOOGLE_extension_386" number="386" author="GOOGLE" contact="Chia-I Wu @olvaffe1" supported="disabled">
- <require>
- <enum value="0" name="VK_GOOGLE_EXTENSION_386_SPEC_VERSION"/>
- <enum value="&quot;VK_GOOGLE_extension_386&quot;" name="VK_GOOGLE_EXTENSION_386_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_387" number="387" author="KHR" contact="Daniel Koch @dgkoch" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_387_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_387&quot;" name="VK_KHR_EXTENSION_387_EXTENSION_NAME"/>
- <enum bitpos="28" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_RESERVED_387_BIT_KHR"/>
- <enum bitpos="40" extends="VkAccessFlagBits2" name="VK_ACCESS_2_RESERVED_387_BIT_KHR"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_388" number="388" author="EXT" contact="Alan Baker @alan-baker" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_388_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_388&quot;" name="VK_EXT_EXTENSION_388_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_global_priority_query" number="389" type="device" requires="VK_EXT_global_priority,VK_KHR_get_physical_device_properties2" author="EXT" contact="Yiwei Zhang @zhangyiwei" supported="vulkan" promotedto="VK_KHR_global_priority">
- <require>
- <enum value="1" name="VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_global_priority_query&quot;" name="VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME"/>
- <enum extends="VkStructureType" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT"/>
- <enum extends="VkStructureType" alias="VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR" name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT"/>
- <enum name="VK_MAX_GLOBAL_PRIORITY_SIZE_EXT"/>
- <type name="VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT"/>
- <type name="VkQueueFamilyGlobalPriorityPropertiesEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_390" number="390" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_390_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_390&quot;" name="VK_EXT_EXTENSION_390_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_391" number="391" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_391_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_391&quot;" name="VK_EXT_EXTENSION_391_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_image_view_min_lod" number="392" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_image_view_min_lod&quot;" name="VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT"/>
- <type name="VkPhysicalDeviceImageViewMinLodFeaturesEXT"/>
- <type name="VkImageViewMinLodCreateInfoEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_multi_draw" number="393" author="EXT" contact="Mike Blumenkrantz @zmike" type="device" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_MULTI_DRAW_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_multi_draw&quot;" name="VK_EXT_MULTI_DRAW_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT"/>
- <type name="VkPhysicalDeviceMultiDrawFeaturesEXT"/>
- <type name="VkPhysicalDeviceMultiDrawPropertiesEXT"/>
- <command name="vkCmdDrawMultiEXT"/>
- <command name="vkCmdDrawMultiIndexedEXT"/>
- <type name="VkMultiDrawInfoEXT"/>
- <type name="VkMultiDrawIndexedInfoEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_394" number="394" author="EXT" contact="Mike Blumenkrantz @zmike" type="device" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_394_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_394&quot;" name="VK_EXT_EXTENSION_394_EXTENSION_NAME"/>
- <enum extends="VkImageCreateFlagBits" bitpos="17" name="VK_IMAGE_CREATE_RESERVED_394_BIT_EXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_395" number="395" author="KHR" contact="Lenny Komow @lkomow" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_395_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_395&quot;" name="VK_KHR_EXTENSION_395_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_396" number="396" author="EXT" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_396_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_396&quot;" name="VK_KHR_EXTENSION_396_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_397" number="397" author="NV" contact="Christoph Kubisch @pixeljetstream" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_397_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_397&quot;" name="VK_NV_EXTENSION_397_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_398" number="398" author="NV" contact="Christoph Kubisch @pixeljetstream" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_398_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_398&quot;" name="VK_NV_EXTENSION_398_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_JUICE_extension_399" number="399" author="JUICE" contact="Dean Beeler @canadacow" supported="disabled">
- <require>
- <enum value="0" name="VK_JUICE_EXTENSION_399_SPEC_VERSION"/>
- <enum value="&quot;VK_JUICE_extension_399&quot;" name="VK_JUICE_EXTENSION_399_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_JUICE_extension_400" number="400" author="JUICE" contact="David McCloskey @damcclos" supported="disabled">
- <require>
- <enum value="0" name="VK_JUICE_EXTENSION_400_SPEC_VERSION"/>
- <enum value="&quot;VK_JUICE_extension_400&quot;" name="VK_JUICE_EXTENSION_400_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_load_store_op_none" number="401" author="EXT" type="device" contact="Shahbaz Youssefi @syoussefi" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_load_store_op_none&quot;" name="VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkAttachmentLoadOp" name="VK_ATTACHMENT_LOAD_OP_NONE_EXT"/>
- <enum extends="VkAttachmentStoreOp" name="VK_ATTACHMENT_STORE_OP_NONE_EXT" alias="VK_ATTACHMENT_STORE_OP_NONE"/>
- </require>
- </extension>
- <extension name="VK_FB_extension_402" number="402" author="FB" contact="Artem Bolgar @artyom17" supported="disabled">
- <require>
- <enum value="0" name="VK_FB_EXTENSION_402_SPEC_VERSION"/>
- <enum value="&quot;VK_FB_extension_402&quot;" name="VK_FB_EXTENSION_402_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_FB_extension_403" number="403" author="FB" contact="Artem Bolgar @artyom17" supported="disabled">
- <require>
- <enum value="0" name="VK_FB_EXTENSION_403_SPEC_VERSION"/>
- <enum value="&quot;VK_FB_extension_403&quot;" name="VK_FB_EXTENSION_403_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_FB_extension_404" number="404" author="FB" contact="Artem Bolgar @artyom17" supported="disabled">
- <require>
- <enum value="0" name="VK_FB_EXTENSION_404_SPEC_VERSION"/>
- <enum value="&quot;VK_FB_extension_404&quot;" name="VK_FB_EXTENSION_404_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_HUAWEI_extension_405" number="405" author="HUAWEI" contact="Hueilong Wang @wyvernathuawei" supported="disabled">
- <require>
- <enum value="0" name="VK_HUAWEI_EXTENSION_405_SPEC_VERSION"/>
- <enum value="&quot;VK_HUAWEI_extension_405&quot;" name="VK_HUAWEI_EXTENSION_405_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_HUAWEI_extension_406" number="406" author="HUAWEI" contact="Hueilong Wang @wyvernathuawei" supported="disabled">
- <require>
- <enum value="0" name="VK_HUAWEI_EXTENSION_406_SPEC_VERSION"/>
- <enum value="&quot;VK_HUAWEI_extension_406&quot;" name="VK_HUAWEI_EXTENSION_406_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_GGP_extension_407" number="407" author="GGP" contact="J.D. Rouan @jdrouan" supported="disabled">
- <require>
- <enum value="0" name="VK_GGP_EXTENSION_407_SPEC_VERSION"/>
- <enum value="&quot;VK_GGP_extension_407&quot;" name="VK_GGP_EXTENSION_407_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_GGP_extension_408" number="408" author="GGP" contact="J.D. Rouan @jdrouan" supported="disabled">
- <require>
- <enum value="0" name="VK_GGP_EXTENSION_408_SPEC_VERSION"/>
- <enum value="&quot;VK_GGP_extension_408&quot;" name="VK_GGP_EXTENSION_408_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_GGP_extension_409" number="409" author="GGP" contact="J.D. Rouan @jdrouan" supported="disabled">
- <require>
- <enum value="0" name="VK_GGP_EXTENSION_409_SPEC_VERSION"/>
- <enum value="&quot;VK_GGP_extension_409&quot;" name="VK_GGP_EXTENSION_409_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_GGP_extension_410" number="410" author="GGP" contact="J.D. Rouan @jdrouan" supported="disabled">
- <require>
- <enum value="0" name="VK_GGP_EXTENSION_410_SPEC_VERSION"/>
- <enum value="&quot;VK_GGP_extension_410&quot;" name="VK_GGP_EXTENSION_410_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_GGP_extension_411" number="411" author="GGP" contact="J.D. Rouan @jdrouan" supported="disabled">
- <require>
- <enum value="0" name="VK_GGP_EXTENSION_411_SPEC_VERSION"/>
- <enum value="&quot;VK_GGP_extension_411&quot;" name="VK_GGP_EXTENSION_411_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_border_color_swizzle" number="412" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan" requires="VK_EXT_custom_border_color" specialuse="glemulation,d3demulation">
- <require>
- <enum value="1" name="VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_border_color_swizzle&quot;" name="VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT"/>
- <type name="VkPhysicalDeviceBorderColorSwizzleFeaturesEXT"/>
- <type name="VkSamplerBorderColorComponentMappingCreateInfoEXT"/>
- </require>
- </extension>
- <extension name="VK_EXT_pageable_device_local_memory" number="413" author="EXT" contact="Piers Daniell @pdaniell-nv" type="device" requires="VK_EXT_memory_priority" supported="vulkan">
- <require>
- <enum value="1" name="VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_pageable_device_local_memory&quot;" name="VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT"/>
- <type name="VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT"/>
- <command name="vkSetDeviceMemoryPriorityEXT"/>
- </require>
- </extension>
- <extension name="VK_KHR_maintenance4" number="414" type="device" requiresCore="1.1" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_3">
- <require>
- <enum value="2" name="VK_KHR_MAINTENANCE_4_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_maintenance4&quot;" name="VK_KHR_MAINTENANCE_4_EXTENSION_NAME"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR" alias="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR" alias="VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS"/>
- <enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR" alias="VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS"/>
- <enum extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_NONE_KHR" alias="VK_IMAGE_ASPECT_NONE"/>
- <type name="VkPhysicalDeviceMaintenance4FeaturesKHR"/>
- <type name="VkPhysicalDeviceMaintenance4PropertiesKHR"/>
- <type name="VkDeviceBufferMemoryRequirementsKHR"/>
- <type name="VkDeviceImageMemoryRequirementsKHR"/>
- <command name="vkGetDeviceBufferMemoryRequirementsKHR"/>
- <command name="vkGetDeviceImageMemoryRequirementsKHR"/>
- <command name="vkGetDeviceImageSparseMemoryRequirementsKHR"/>
- </require>
- </extension>
- <extension name="VK_HUAWEI_extension_415" number="415" author="HUAWEI" contact="Hueilong Wang @wyvernathuawei" supported="disabled">
- <require>
- <enum value="0" name="VK_HUAWEI_EXTENSION_415_SPEC_VERSION"/>
- <enum value="&quot;VK_HUAWEI_extension_415&quot;" name="VK_HUAWEI_EXTENSION_415_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_ARM_extension_416" number="416" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled">
- <require>
- <enum value="0" name="VK_ARM_EXTENSION_416_SPEC_VERSION"/>
- <enum value="&quot;VK_ARM_extension_416&quot;" name="VK_ARM_EXTENSION_416_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_417" number="417" author="KHR" contact="Kevin Petit @kevinpetit" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_417_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_417&quot;" name="VK_KHR_EXTENSION_417_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_ARM_extension_418" number="418" author="ARM" contact="Kevin Petit @kevinpetit" supported="disabled">
- <require>
- <enum value="0" name="VK_ARM_EXTENSION_418_SPEC_VERSION"/>
- <enum value="&quot;VK_ARM_extension_418&quot;" name="VK_ARM_EXTENSION_418_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_419" number="419" author="EXT" contact="Mike Blumenkrantz @zmike" type="device" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_419_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_419&quot;" name="VK_EXT_EXTENSION_419_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_420" number="420" author="EXT" contact="Mike Blumenkrantz @zmike" type="device" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_420_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_420&quot;" name="VK_EXT_EXTENSION_420_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_421" number="421" author="KHR" contact="Hans-Kristian Arntzen @HansKristian-Work" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_421_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_421&quot;" name="VK_KHR_EXTENSION_421_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_422" number="422" author="EXT" contact="Graeme Leese @gnl21" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_422_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_422&quot;" name="VK_EXT_EXTENSION_422_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_disable_cube_map_wrap" number="423" author="EXT" contact="Georg Lehmann @DadSchoorse" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_DISABLE_CUBE_MAP_WRAP_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_disable_cube_map_wrap&quot;" name="VK_EXT_DISABLE_CUBE_MAP_WRAP_EXTENSION_NAME"/>
- <enum bitpos="2" extends="VkSamplerCreateFlagBits" name="VK_SAMPLER_CREATE_RESERVED_2_BIT_EXT"/>
- </require>
- </extension>
- <extension name="VK_ARM_extension_424" number="424" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled">
- <require>
- <enum value="0" name="VK_ARM_EXTENSION_424_SPEC_VERSION"/>
- <enum value="&quot;VK_ARM_extension_424&quot;" name="VK_ARM_EXTENSION_424_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_ARM_extension_425" number="425" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled">
- <require>
- <enum value="0" name="VK_ARM_EXTENSION_425_SPEC_VERSION"/>
- <enum value="&quot;VK_ARM_extension_425&quot;" name="VK_ARM_EXTENSION_425_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_QCOM_fragment_density_map_offset" number="426" type="device" requires="VK_KHR_get_physical_device_properties2,VK_EXT_fragment_density_map" author="QCOM" contact="Matthew Netsch @mnetsch" supported="vulkan">
- <require>
- <enum value="1" name="VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_fragment_density_map_offset&quot;" name="VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM"/>
- <enum bitpos="15" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM"/>
- <type name="VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM"/>
- <type name="VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM"/>
- <type name="VkSubpassFragmentDensityMapOffsetEndInfoQCOM"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_427" number="427" author="NV" contact="Vikram Kushwaha @vkushwaha-nv" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_427_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_427&quot;" name="VK_NV_EXTENSION_427_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_428" number="428" author="NV" contact="Vikram Kushwaha @vkushwaha-nv" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_428_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_428&quot;" name="VK_NV_EXTENSION_428_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_429" number="429" author="NV" contact="Vikram Kushwaha @vkushwaha-nv" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_429_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_429&quot;" name="VK_NV_EXTENSION_429_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_430" number="430" author="NV" contact="Vikram Kushwaha @vkushwaha-nv" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_430_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_430&quot;" name="VK_NV_EXTENSION_430_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_linear_color_attachment" number="431" type="device" author="NVIDIA" contact="sourav parmar @souravpNV" supported="vulkan">
- <require>
- <enum value="1" name="VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_linear_color_attachment&quot;" name="VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV"/>
- <type name="VkPhysicalDeviceLinearColorAttachmentFeaturesNV"/>
- </require>
- <require extension="VK_KHR_format_feature_flags2">
- <enum bitpos="38" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV" comment="Format support linear image as render target, it cannot be mixed with non linear attachment"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_432" number="432" author="NV" contact="Sourav Parmar @souravpNV" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_432_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_432&quot;" name="VK_NV_EXTENSION_432_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_433" number="433" author="NV" contact="Sourav Parmar @souravpNV" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_433_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_433&quot;" name="VK_NV_EXTENSION_433_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_GOOGLE_surfaceless_query" number="434" type="instance" requires="VK_KHR_surface" author="GOOGLE" contact="Shahbaz Youssefi @syoussefi" specialuse="glemulation" supported="vulkan">
- <require>
- <enum value="1" name="VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION"/>
- <enum value="&quot;VK_GOOGLE_surfaceless_query&quot;" name="VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_KHR_extension_435" number="435" author="KHR" contact="Alan Baker @alan-baker" supported="disabled">
- <require>
- <enum value="0" name="VK_KHR_EXTENSION_435_SPEC_VERSION"/>
- <enum value="&quot;VK_KHR_extension_435&quot;" name="VK_KHR_EXTENSION_435_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_436" number="436" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_436_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_436&quot;" name="VK_NV_EXTENSION_436_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_437" number="437" author="EXT" contact="Jonathan Weinstein @Jonathan-Weinstein" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_437_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_437&quot;" name="VK_EXT_EXTENSION_437_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_EXT_extension_438" number="438" author="EXT" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled">
- <require>
- <enum value="0" name="VK_EXT_EXTENSION_438_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_438&quot;" name="VK_EXT_EXTENSION_438_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_SEC_extension_439" number="439" author="SEC" contact="Ralph Potter gitlab:@r_potter" supported="disabled">
- <require>
- <enum value="0" name="VK_SEC_EXTENSION_439_SPEC_VERSION"/>
- <enum value="&quot;VK_SEC_extension_439&quot;" name="VK_SEC_EXTENSION_439_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_QCOM_extension_440" number="440" author="QCOM" contact="Jeff Leger @jackohound" supported="disabled">
- <require>
- <enum value="0" name="VK_QCOM_EXTENSION_440_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_extension_440&quot;" name="VK_QCOM_EXTENSION_440_EXTENSION_NAME"/>
- <enum bitpos="7" extends="VkQueueFlagBits" name="VK_QUEUE_RESERVED_7_BIT_QCOM"/>
- <enum bitpos="1" extends="VkDeviceQueueCreateFlagBits" name="VK_DEVICE_QUEUE_CREATE_RESERVED_1_BIT_QCOM"/>
- </require>
- </extension>
- <extension name="VK_QCOM_extension_441" number="441" author="QCOM" contact="Jeff Leger @jackohound" supported="disabled">
- <require>
- <enum value="0" name="VK_QCOM_EXTENSION_441_SPEC_VERSION"/>
- <enum value="&quot;VK_QCOM_extension_441&quot;" name="VK_QCOM_EXTENSION_441_EXTENSION_NAME"/>
- <enum bitpos="4" extends="VkSamplerCreateFlagBits" name="VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM"/>
- <enum bitpos="20" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_RESERVED_20_BIT_QCOM"/>
- <enum bitpos="21" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_RESERVED_21_BIT_QCOM"/>
- <enum bitpos="34" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_RESERVED_34_BIT_QCOM"/>
- <enum bitpos="35" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_RESERVED_35_BIT_QCOM"/>
- <enum bitpos="36" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_RESERVED_36_BIT_QCOM"/>
- <enum bitpos="37" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_RESERVED_37_BIT_QCOM"/>
- </require>
- </extension>
- <extension name="VK_COREAVI_extension_442" number="442" author="COREAVI" contact="Aidan Fabius @afabius" supported="disabled">
- <require>
- <enum value="0" name="VK_COREAVI_EXTENSION_442_SPEC_VERSION"/>
- <enum value="&quot;VK_COREAVI_extension_442&quot;" name="VK_COREAVI_EXTENSION_442_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_COREAVI_extension_443" number="443" author="COREAVI" contact="Aidan Fabius @afabius" supported="disabled">
- <require>
- <enum value="0" name="VK_COREAVI_EXTENSION_443_SPEC_VERSION"/>
- <enum value="&quot;VK_COREAVI_extension_443&quot;" name="VK_COREAVI_EXTENSION_443_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_COREAVI_extension_444" number="444" author="COREAVI" contact="Aidan Fabius @afabius" supported="disabled">
- <require>
- <enum value="0" name="VK_COREAVI_EXTENSION_444_SPEC_VERSION"/>
- <enum value="&quot;VK_COREAVI_extension_444&quot;" name="VK_COREAVI_EXTENSION_444_EXTENSION_NAME"/>
- <enum extends="VkCommandPoolResetFlagBits" bitpos="1" name="VK_COMMAND_POOL_RESET_RESERVED_1_BIT_COREAVI"/>
- </require>
- </extension>
- <extension name="VK_COREAVI_extension_445" number="445" author="COREAVI" contact="Aidan Fabius @afabius" supported="disabled">
- <require>
- <enum value="0" name="VK_COREAVI_EXTENSION_445_SPEC_VERSION"/>
- <enum value="&quot;VK_COREAVI_extension_445&quot;" name="VK_COREAVI_EXTENSION_445_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_COREAVI_extension_446" number="446" author="COREAVI" contact="Aidan Fabius @afabius" supported="disabled">
- <require>
- <enum value="0" name="VK_COREAVI_EXTENSION_446_SPEC_VERSION"/>
- <enum value="&quot;VK_COREAVI_extension_446&quot;" name="VK_COREAVI_EXTENSION_446_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_COREAVI_extension_447" number="447" author="COREAVI" contact="Aidan Fabius @afabius" supported="disabled">
- <require>
- <enum value="0" name="VK_COREAVI_EXTENSION_447_SPEC_VERSION"/>
- <enum value="&quot;VK_COREAVI_extension_447&quot;" name="VK_COREAVI_EXTENSION_447_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_SEC_extension_448" number="448" author="SEC" contact="Ralph Potter gitlab:@r_potter" supported="disabled">
- <require>
- <enum value="0" name="VK_SEC_EXTENSION_448_SPEC_VERSION"/>
- <enum value="&quot;VK_SEC_extension_448&quot;" name="VK_SEC_EXTENSION_448_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_SEC_extension_449" number="449" author="SEC" contact="Ralph Potter gitlab:@r_potter" supported="disabled">
- <require>
- <enum value="0" name="VK_SEC_EXTENSION_449_SPEC_VERSION"/>
- <enum value="&quot;VK_SEC_extension_449&quot;" name="VK_SEC_EXTENSION_449_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_SEC_extension_450" number="450" author="SEC" contact="Ralph Potter gitlab:@r_potter" supported="disabled">
- <require>
- <enum value="0" name="VK_SEC_EXTENSION_450_SPEC_VERSION"/>
- <enum value="&quot;VK_SEC_extension_450&quot;" name="VK_SEC_EXTENSION_450_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_SEC_extension_451" number="451" author="SEC" contact="Ralph Potter gitlab:@r_potter" supported="disabled">
- <require>
- <enum value="0" name="VK_SEC_EXTENSION_451_SPEC_VERSION"/>
- <enum value="&quot;VK_SEC_extension_451&quot;" name="VK_SEC_EXTENSION_451_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_NV_extension_452" number="452" author="NV" contact="Piers Daniell @pdaniell-nv" supported="disabled">
- <require>
- <enum value="0" name="VK_NV_EXTENSION_452_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_452&quot;" name="VK_NV_EXTENSION_452_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_ARM_extension_453" number="453" author="Arm" contact="Kevin Petit @kevinpetit" supported="disabled">
- <require>
- <enum value="0" name="VK_ARM_EXTENSION_453_SPEC_VERSION"/>
- <enum value="&quot;VK_ARM_extension_453&quot;" name="VK_ARM_EXTENSION_453_EXTENSION_NAME"/>
- </require>
- </extension>
- <extension name="VK_GOOGLE_extension_454" number="454" author="GOOGLE" contact="Chad Versace @chadversary" supported="disabled">
- <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"/>
- </require>
- </extension>
- <extension name="VK_GOOGLE_extension_455" number="455" author="GOOGLE" contact="Chad Versace @chadversary" supported="disabled">
- <require>
- <enum value="0" name="VK_GOOGLE_EXTENSION_455_SPEC_VERSION"/>
- <enum value="&quot;VK_GOOGLE_extension_455&quot;" name="VK_GOOGLE_EXTENSION_455_EXTENSION_NAME"/>
- </require>
- </extension>
- </extensions>
- <formats>
- <format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8">
- <component name="R" bits="4" numericFormat="UNORM"/>
- <component name="G" bits="4" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_R4G4B4A4_UNORM_PACK16" class="16-bit" blockSize="2" texelsPerBlock="1" packed="16">
- <component name="R" bits="4" numericFormat="UNORM"/>
- <component name="G" bits="4" numericFormat="UNORM"/>
- <component name="B" bits="4" numericFormat="UNORM"/>
- <component name="A" bits="4" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_B4G4R4A4_UNORM_PACK16" class="16-bit" blockSize="2" texelsPerBlock="1" packed="16">
- <component name="B" bits="4" numericFormat="UNORM"/>
- <component name="G" bits="4" numericFormat="UNORM"/>
- <component name="R" bits="4" numericFormat="UNORM"/>
- <component name="A" bits="4" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_R5G6B5_UNORM_PACK16" class="16-bit" blockSize="2" texelsPerBlock="1" packed="16">
- <component name="R" bits="5" numericFormat="UNORM"/>
- <component name="G" bits="6" numericFormat="UNORM"/>
- <component name="B" bits="5" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_B5G6R5_UNORM_PACK16" class="16-bit" blockSize="2" texelsPerBlock="1" packed="16">
- <component name="B" bits="5" numericFormat="UNORM"/>
- <component name="G" bits="6" numericFormat="UNORM"/>
- <component name="R" bits="5" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_R5G5B5A1_UNORM_PACK16" class="16-bit" blockSize="2" texelsPerBlock="1" packed="16">
- <component name="R" bits="5" numericFormat="UNORM"/>
- <component name="G" bits="5" numericFormat="UNORM"/>
- <component name="B" bits="5" numericFormat="UNORM"/>
- <component name="A" bits="1" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_B5G5R5A1_UNORM_PACK16" class="16-bit" blockSize="2" texelsPerBlock="1" packed="16">
- <component name="B" bits="5" numericFormat="UNORM"/>
- <component name="R" bits="5" numericFormat="UNORM"/>
- <component name="G" bits="5" numericFormat="UNORM"/>
- <component name="A" bits="1" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_A1R5G5B5_UNORM_PACK16" class="16-bit" blockSize="2" texelsPerBlock="1" packed="16">
- <component name="A" bits="1" numericFormat="UNORM"/>
- <component name="R" bits="5" numericFormat="UNORM"/>
- <component name="G" bits="5" numericFormat="UNORM"/>
- <component name="B" bits="5" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_R8_UNORM" class="8-bit" blockSize="1" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="UNORM"/>
- <spirvimageformat name="R8"/>
- </format>
- <format name="VK_FORMAT_R8_SNORM" class="8-bit" blockSize="1" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SNORM"/>
- <spirvimageformat name="R8Snorm"/>
- </format>
- <format name="VK_FORMAT_R8_USCALED" class="8-bit" blockSize="1" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="USCALED"/>
- </format>
- <format name="VK_FORMAT_R8_SSCALED" class="8-bit" blockSize="1" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SSCALED"/>
- </format>
- <format name="VK_FORMAT_R8_UINT" class="8-bit" blockSize="1" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="UINT"/>
- <spirvimageformat name="R8ui"/>
- </format>
- <format name="VK_FORMAT_R8_SINT" class="8-bit" blockSize="1" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SINT"/>
- <spirvimageformat name="R8i"/>
- </format>
- <format name="VK_FORMAT_R8_SRGB" class="8-bit" blockSize="1" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_R8G8_UNORM" class="16-bit" blockSize="2" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="UNORM"/>
- <component name="G" bits="8" numericFormat="UNORM"/>
- <spirvimageformat name="Rg8"/>
- </format>
- <format name="VK_FORMAT_R8G8_SNORM" class="16-bit" blockSize="2" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SNORM"/>
- <component name="G" bits="8" numericFormat="SNORM"/>
- <spirvimageformat name="Rg8Snorm"/>
- </format>
- <format name="VK_FORMAT_R8G8_USCALED" class="16-bit" blockSize="2" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="USCALED"/>
- <component name="G" bits="8" numericFormat="USCALED"/>
- </format>
- <format name="VK_FORMAT_R8G8_SSCALED" class="16-bit" blockSize="2" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SSCALED"/>
- <component name="G" bits="8" numericFormat="SSCALED"/>
- </format>
- <format name="VK_FORMAT_R8G8_UINT" class="16-bit" blockSize="2" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="UINT"/>
- <component name="G" bits="8" numericFormat="UINT"/>
- <spirvimageformat name="Rg8ui"/>
- </format>
- <format name="VK_FORMAT_R8G8_SINT" class="16-bit" blockSize="2" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SINT"/>
- <component name="G" bits="8" numericFormat="SINT"/>
- <spirvimageformat name="Rg8i"/>
- </format>
- <format name="VK_FORMAT_R8G8_SRGB" class="16-bit" blockSize="2" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SRGB"/>
- <component name="G" bits="8" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_R8G8B8_UNORM" class="24-bit" blockSize="3" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="UNORM"/>
- <component name="G" bits="8" numericFormat="UNORM"/>
- <component name="B" bits="8" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_R8G8B8_SNORM" class="24-bit" blockSize="3" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SNORM"/>
- <component name="G" bits="8" numericFormat="SNORM"/>
- <component name="B" bits="8" numericFormat="SNORM"/>
- </format>
- <format name="VK_FORMAT_R8G8B8_USCALED" class="24-bit" blockSize="3" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="USCALED"/>
- <component name="G" bits="8" numericFormat="USCALED"/>
- <component name="B" bits="8" numericFormat="USCALED"/>
- </format>
- <format name="VK_FORMAT_R8G8B8_SSCALED" class="24-bit" blockSize="3" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SSCALED"/>
- <component name="G" bits="8" numericFormat="SSCALED"/>
- <component name="B" bits="8" numericFormat="SSCALED"/>
- </format>
- <format name="VK_FORMAT_R8G8B8_UINT" class="24-bit" blockSize="3" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="UINT"/>
- <component name="G" bits="8" numericFormat="UINT"/>
- <component name="B" bits="8" numericFormat="UINT"/>
- </format>
- <format name="VK_FORMAT_R8G8B8_SINT" class="24-bit" blockSize="3" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SINT"/>
- <component name="G" bits="8" numericFormat="SINT"/>
- <component name="B" bits="8" numericFormat="SINT"/>
- </format>
- <format name="VK_FORMAT_R8G8B8_SRGB" class="24-bit" blockSize="3" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SRGB"/>
- <component name="G" bits="8" numericFormat="SRGB"/>
- <component name="B" bits="8" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_B8G8R8_UNORM" class="24-bit" blockSize="3" texelsPerBlock="1">
- <component name="B" bits="8" numericFormat="UNORM"/>
- <component name="G" bits="8" numericFormat="UNORM"/>
- <component name="R" bits="8" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_B8G8R8_SNORM" class="24-bit" blockSize="3" texelsPerBlock="1">
- <component name="B" bits="8" numericFormat="SNORM"/>
- <component name="G" bits="8" numericFormat="SNORM"/>
- <component name="R" bits="8" numericFormat="SNORM"/>
- </format>
- <format name="VK_FORMAT_B8G8R8_USCALED" class="24-bit" blockSize="3" texelsPerBlock="1">
- <component name="B" bits="8" numericFormat="USCALED"/>
- <component name="G" bits="8" numericFormat="USCALED"/>
- <component name="R" bits="8" numericFormat="USCALED"/>
- </format>
- <format name="VK_FORMAT_B8G8R8_SSCALED" class="24-bit" blockSize="3" texelsPerBlock="1">
- <component name="B" bits="8" numericFormat="SSCALED"/>
- <component name="G" bits="8" numericFormat="SSCALED"/>
- <component name="R" bits="8" numericFormat="SSCALED"/>
- </format>
- <format name="VK_FORMAT_B8G8R8_UINT" class="24-bit" blockSize="3" texelsPerBlock="1">
- <component name="B" bits="8" numericFormat="UINT"/>
- <component name="G" bits="8" numericFormat="UINT"/>
- <component name="R" bits="8" numericFormat="UINT"/>
- </format>
- <format name="VK_FORMAT_B8G8R8_SINT" class="24-bit" blockSize="3" texelsPerBlock="1">
- <component name="B" bits="8" numericFormat="SINT"/>
- <component name="G" bits="8" numericFormat="SINT"/>
- <component name="R" bits="8" numericFormat="SINT"/>
- </format>
- <format name="VK_FORMAT_B8G8R8_SRGB" class="24-bit" blockSize="3" texelsPerBlock="1">
- <component name="B" bits="8" numericFormat="SRGB"/>
- <component name="G" bits="8" numericFormat="SRGB"/>
- <component name="R" bits="8" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_R8G8B8A8_UNORM" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="UNORM"/>
- <component name="G" bits="8" numericFormat="UNORM"/>
- <component name="B" bits="8" numericFormat="UNORM"/>
- <component name="A" bits="8" numericFormat="UNORM"/>
- <spirvimageformat name="Rgba8"/>
- </format>
- <format name="VK_FORMAT_R8G8B8A8_SNORM" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SNORM"/>
- <component name="G" bits="8" numericFormat="SNORM"/>
- <component name="B" bits="8" numericFormat="SNORM"/>
- <component name="A" bits="8" numericFormat="SNORM"/>
- <spirvimageformat name="Rgba8Snorm"/>
- </format>
- <format name="VK_FORMAT_R8G8B8A8_USCALED" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="USCALED"/>
- <component name="G" bits="8" numericFormat="USCALED"/>
- <component name="B" bits="8" numericFormat="USCALED"/>
- <component name="A" bits="8" numericFormat="USCALED"/>
- </format>
- <format name="VK_FORMAT_R8G8B8A8_SSCALED" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SSCALED"/>
- <component name="G" bits="8" numericFormat="SSCALED"/>
- <component name="B" bits="8" numericFormat="SSCALED"/>
- <component name="A" bits="8" numericFormat="SSCALED"/>
- </format>
- <format name="VK_FORMAT_R8G8B8A8_UINT" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="UINT"/>
- <component name="G" bits="8" numericFormat="UINT"/>
- <component name="B" bits="8" numericFormat="UINT"/>
- <component name="A" bits="8" numericFormat="UINT"/>
- <spirvimageformat name="Rgba8ui"/>
- </format>
- <format name="VK_FORMAT_R8G8B8A8_SINT" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SINT"/>
- <component name="G" bits="8" numericFormat="SINT"/>
- <component name="B" bits="8" numericFormat="SINT"/>
- <component name="A" bits="8" numericFormat="SINT"/>
- <spirvimageformat name="Rgba8i"/>
- </format>
- <format name="VK_FORMAT_R8G8B8A8_SRGB" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="8" numericFormat="SRGB"/>
- <component name="G" bits="8" numericFormat="SRGB"/>
- <component name="B" bits="8" numericFormat="SRGB"/>
- <component name="A" bits="8" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_B8G8R8A8_UNORM" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="B" bits="8" numericFormat="UNORM"/>
- <component name="G" bits="8" numericFormat="UNORM"/>
- <component name="R" bits="8" numericFormat="UNORM"/>
- <component name="A" bits="8" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_B8G8R8A8_SNORM" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="B" bits="8" numericFormat="SNORM"/>
- <component name="G" bits="8" numericFormat="SNORM"/>
- <component name="R" bits="8" numericFormat="SNORM"/>
- <component name="A" bits="8" numericFormat="SNORM"/>
- </format>
- <format name="VK_FORMAT_B8G8R8A8_USCALED" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="B" bits="8" numericFormat="USCALED"/>
- <component name="G" bits="8" numericFormat="USCALED"/>
- <component name="R" bits="8" numericFormat="USCALED"/>
- <component name="A" bits="8" numericFormat="USCALED"/>
- </format>
- <format name="VK_FORMAT_B8G8R8A8_SSCALED" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="B" bits="8" numericFormat="SSCALED"/>
- <component name="G" bits="8" numericFormat="SSCALED"/>
- <component name="R" bits="8" numericFormat="SSCALED"/>
- <component name="A" bits="8" numericFormat="SSCALED"/>
- </format>
- <format name="VK_FORMAT_B8G8R8A8_UINT" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="B" bits="8" numericFormat="UINT"/>
- <component name="G" bits="8" numericFormat="UINT"/>
- <component name="R" bits="8" numericFormat="UINT"/>
- <component name="A" bits="8" numericFormat="UINT"/>
- </format>
- <format name="VK_FORMAT_B8G8R8A8_SINT" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="B" bits="8" numericFormat="SINT"/>
- <component name="G" bits="8" numericFormat="SINT"/>
- <component name="R" bits="8" numericFormat="SINT"/>
- <component name="A" bits="8" numericFormat="SINT"/>
- </format>
- <format name="VK_FORMAT_B8G8R8A8_SRGB" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="B" bits="8" numericFormat="SRGB"/>
- <component name="G" bits="8" numericFormat="SRGB"/>
- <component name="R" bits="8" numericFormat="SRGB"/>
- <component name="A" bits="8" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_A8B8G8R8_UNORM_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="8" numericFormat="UNORM"/>
- <component name="B" bits="8" numericFormat="UNORM"/>
- <component name="G" bits="8" numericFormat="UNORM"/>
- <component name="R" bits="8" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_A8B8G8R8_SNORM_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="8" numericFormat="SNORM"/>
- <component name="B" bits="8" numericFormat="SNORM"/>
- <component name="G" bits="8" numericFormat="SNORM"/>
- <component name="R" bits="8" numericFormat="SNORM"/>
- </format>
- <format name="VK_FORMAT_A8B8G8R8_USCALED_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="8" numericFormat="USCALED"/>
- <component name="B" bits="8" numericFormat="USCALED"/>
- <component name="G" bits="8" numericFormat="USCALED"/>
- <component name="R" bits="8" numericFormat="USCALED"/>
- </format>
- <format name="VK_FORMAT_A8B8G8R8_SSCALED_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="8" numericFormat="SSCALED"/>
- <component name="B" bits="8" numericFormat="SSCALED"/>
- <component name="G" bits="8" numericFormat="SSCALED"/>
- <component name="R" bits="8" numericFormat="SSCALED"/>
- </format>
- <format name="VK_FORMAT_A8B8G8R8_UINT_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="8" numericFormat="UINT"/>
- <component name="B" bits="8" numericFormat="UINT"/>
- <component name="G" bits="8" numericFormat="UINT"/>
- <component name="R" bits="8" numericFormat="UINT"/>
- </format>
- <format name="VK_FORMAT_A8B8G8R8_SINT_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="8" numericFormat="SINT"/>
- <component name="B" bits="8" numericFormat="SINT"/>
- <component name="G" bits="8" numericFormat="SINT"/>
- <component name="R" bits="8" numericFormat="SINT"/>
- </format>
- <format name="VK_FORMAT_A8B8G8R8_SRGB_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="8" numericFormat="SRGB"/>
- <component name="B" bits="8" numericFormat="SRGB"/>
- <component name="G" bits="8" numericFormat="SRGB"/>
- <component name="R" bits="8" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_A2R10G10B10_UNORM_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="2" numericFormat="UNORM"/>
- <component name="R" bits="10" numericFormat="UNORM"/>
- <component name="G" bits="10" numericFormat="UNORM"/>
- <component name="B" bits="10" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_A2R10G10B10_SNORM_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="2" numericFormat="SNORM"/>
- <component name="R" bits="10" numericFormat="SNORM"/>
- <component name="G" bits="10" numericFormat="SNORM"/>
- <component name="B" bits="10" numericFormat="SNORM"/>
- </format>
- <format name="VK_FORMAT_A2R10G10B10_USCALED_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="2" numericFormat="USCALED"/>
- <component name="R" bits="10" numericFormat="USCALED"/>
- <component name="G" bits="10" numericFormat="USCALED"/>
- <component name="B" bits="10" numericFormat="USCALED"/>
- </format>
- <format name="VK_FORMAT_A2R10G10B10_SSCALED_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="2" numericFormat="SSCALED"/>
- <component name="R" bits="10" numericFormat="SSCALED"/>
- <component name="G" bits="10" numericFormat="SSCALED"/>
- <component name="B" bits="10" numericFormat="SSCALED"/>
- </format>
- <format name="VK_FORMAT_A2R10G10B10_UINT_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="2" numericFormat="UINT"/>
- <component name="R" bits="10" numericFormat="UINT"/>
- <component name="G" bits="10" numericFormat="UINT"/>
- <component name="B" bits="10" numericFormat="UINT"/>
- </format>
- <format name="VK_FORMAT_A2R10G10B10_SINT_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="2" numericFormat="SINT"/>
- <component name="R" bits="10" numericFormat="SINT"/>
- <component name="G" bits="10" numericFormat="SINT"/>
- <component name="B" bits="10" numericFormat="SINT"/>
- </format>
- <format name="VK_FORMAT_A2B10G10R10_UNORM_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="2" numericFormat="UNORM"/>
- <component name="B" bits="10" numericFormat="UNORM"/>
- <component name="G" bits="10" numericFormat="UNORM"/>
- <component name="R" bits="10" numericFormat="UNORM"/>
- <spirvimageformat name="Rgb10A2"/>
- </format>
- <format name="VK_FORMAT_A2B10G10R10_SNORM_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="2" numericFormat="SNORM"/>
- <component name="B" bits="10" numericFormat="SNORM"/>
- <component name="G" bits="10" numericFormat="SNORM"/>
- <component name="R" bits="10" numericFormat="SNORM"/>
- </format>
- <format name="VK_FORMAT_A2B10G10R10_USCALED_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="2" numericFormat="USCALED"/>
- <component name="B" bits="10" numericFormat="USCALED"/>
- <component name="G" bits="10" numericFormat="USCALED"/>
- <component name="R" bits="10" numericFormat="USCALED"/>
- </format>
- <format name="VK_FORMAT_A2B10G10R10_SSCALED_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="2" numericFormat="SSCALED"/>
- <component name="B" bits="10" numericFormat="SSCALED"/>
- <component name="G" bits="10" numericFormat="SSCALED"/>
- <component name="R" bits="10" numericFormat="SSCALED"/>
- </format>
- <format name="VK_FORMAT_A2B10G10R10_UINT_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="2" numericFormat="UINT"/>
- <component name="B" bits="10" numericFormat="UINT"/>
- <component name="G" bits="10" numericFormat="UINT"/>
- <component name="R" bits="10" numericFormat="UINT"/>
- <spirvimageformat name="Rgb10a2ui"/>
- </format>
- <format name="VK_FORMAT_A2B10G10R10_SINT_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="A" bits="2" numericFormat="SINT"/>
- <component name="B" bits="10" numericFormat="SINT"/>
- <component name="G" bits="10" numericFormat="SINT"/>
- <component name="R" bits="10" numericFormat="SINT"/>
- </format>
- <format name="VK_FORMAT_R16_UNORM" class="16-bit" blockSize="2" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="UNORM"/>
- <spirvimageformat name="R16"/>
- </format>
- <format name="VK_FORMAT_R16_SNORM" class="16-bit" blockSize="2" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SNORM"/>
- <spirvimageformat name="R16Snorm"/>
- </format>
- <format name="VK_FORMAT_R16_USCALED" class="16-bit" blockSize="2" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="USCALED"/>
- </format>
- <format name="VK_FORMAT_R16_SSCALED" class="16-bit" blockSize="2" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SSCALED"/>
- </format>
- <format name="VK_FORMAT_R16_UINT" class="16-bit" blockSize="2" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="UINT"/>
- <spirvimageformat name="R16ui"/>
- </format>
- <format name="VK_FORMAT_R16_SINT" class="16-bit" blockSize="2" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SINT"/>
- <spirvimageformat name="R16i"/>
- </format>
- <format name="VK_FORMAT_R16_SFLOAT" class="16-bit" blockSize="2" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SFLOAT"/>
- <spirvimageformat name="R16f"/>
- </format>
- <format name="VK_FORMAT_R16G16_UNORM" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="UNORM"/>
- <component name="G" bits="16" numericFormat="UNORM"/>
- <spirvimageformat name="Rg16"/>
- </format>
- <format name="VK_FORMAT_R16G16_SNORM" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SNORM"/>
- <component name="G" bits="16" numericFormat="SNORM"/>
- <spirvimageformat name="Rg16Snorm"/>
- </format>
- <format name="VK_FORMAT_R16G16_USCALED" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="USCALED"/>
- <component name="G" bits="16" numericFormat="USCALED"/>
- </format>
- <format name="VK_FORMAT_R16G16_SSCALED" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SSCALED"/>
- <component name="G" bits="16" numericFormat="SSCALED"/>
- </format>
- <format name="VK_FORMAT_R16G16_UINT" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="UINT"/>
- <component name="G" bits="16" numericFormat="UINT"/>
- <spirvimageformat name="Rg16ui"/>
- </format>
- <format name="VK_FORMAT_R16G16_SINT" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SINT"/>
- <component name="G" bits="16" numericFormat="SINT"/>
- <spirvimageformat name="Rg16i"/>
- </format>
- <format name="VK_FORMAT_R16G16_SFLOAT" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SFLOAT"/>
- <component name="G" bits="16" numericFormat="SFLOAT"/>
- <spirvimageformat name="Rg16f"/>
- </format>
- <format name="VK_FORMAT_R16G16B16_UNORM" class="48-bit" blockSize="6" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="UNORM"/>
- <component name="G" bits="16" numericFormat="UNORM"/>
- <component name="B" bits="16" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_R16G16B16_SNORM" class="48-bit" blockSize="6" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SNORM"/>
- <component name="G" bits="16" numericFormat="SNORM"/>
- <component name="B" bits="16" numericFormat="SNORM"/>
- </format>
- <format name="VK_FORMAT_R16G16B16_USCALED" class="48-bit" blockSize="6" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="USCALED"/>
- <component name="G" bits="16" numericFormat="USCALED"/>
- <component name="B" bits="16" numericFormat="USCALED"/>
- </format>
- <format name="VK_FORMAT_R16G16B16_SSCALED" class="48-bit" blockSize="6" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SSCALED"/>
- <component name="G" bits="16" numericFormat="SSCALED"/>
- <component name="B" bits="16" numericFormat="SSCALED"/>
- </format>
- <format name="VK_FORMAT_R16G16B16_UINT" class="48-bit" blockSize="6" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="UINT"/>
- <component name="G" bits="16" numericFormat="UINT"/>
- <component name="B" bits="16" numericFormat="UINT"/>
- </format>
- <format name="VK_FORMAT_R16G16B16_SINT" class="48-bit" blockSize="6" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SINT"/>
- <component name="G" bits="16" numericFormat="SINT"/>
- <component name="B" bits="16" numericFormat="SINT"/>
- </format>
- <format name="VK_FORMAT_R16G16B16_SFLOAT" class="48-bit" blockSize="6" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SFLOAT"/>
- <component name="G" bits="16" numericFormat="SFLOAT"/>
- <component name="B" bits="16" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_R16G16B16A16_UNORM" class="64-bit" blockSize="8" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="UNORM"/>
- <component name="G" bits="16" numericFormat="UNORM"/>
- <component name="B" bits="16" numericFormat="UNORM"/>
- <component name="A" bits="16" numericFormat="UNORM"/>
- <spirvimageformat name="Rgba16"/>
- </format>
- <format name="VK_FORMAT_R16G16B16A16_SNORM" class="64-bit" blockSize="8" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SNORM"/>
- <component name="G" bits="16" numericFormat="SNORM"/>
- <component name="B" bits="16" numericFormat="SNORM"/>
- <component name="A" bits="16" numericFormat="SNORM"/>
- <spirvimageformat name="Rgba16Snorm"/>
- </format>
- <format name="VK_FORMAT_R16G16B16A16_USCALED" class="64-bit" blockSize="8" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="USCALED"/>
- <component name="G" bits="16" numericFormat="USCALED"/>
- <component name="B" bits="16" numericFormat="USCALED"/>
- <component name="A" bits="16" numericFormat="USCALED"/>
- </format>
- <format name="VK_FORMAT_R16G16B16A16_SSCALED" class="64-bit" blockSize="8" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SSCALED"/>
- <component name="G" bits="16" numericFormat="SSCALED"/>
- <component name="B" bits="16" numericFormat="SSCALED"/>
- <component name="A" bits="16" numericFormat="SSCALED"/>
- </format>
- <format name="VK_FORMAT_R16G16B16A16_UINT" class="64-bit" blockSize="8" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="UINT"/>
- <component name="G" bits="16" numericFormat="UINT"/>
- <component name="B" bits="16" numericFormat="UINT"/>
- <component name="A" bits="16" numericFormat="UINT"/>
- <spirvimageformat name="Rgba16ui"/>
- </format>
- <format name="VK_FORMAT_R16G16B16A16_SINT" class="64-bit" blockSize="8" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SINT"/>
- <component name="G" bits="16" numericFormat="SINT"/>
- <component name="B" bits="16" numericFormat="SINT"/>
- <component name="A" bits="16" numericFormat="SINT"/>
- <spirvimageformat name="Rgba16i"/>
- </format>
- <format name="VK_FORMAT_R16G16B16A16_SFLOAT" class="64-bit" blockSize="8" texelsPerBlock="1">
- <component name="R" bits="16" numericFormat="SFLOAT"/>
- <component name="G" bits="16" numericFormat="SFLOAT"/>
- <component name="B" bits="16" numericFormat="SFLOAT"/>
- <component name="A" bits="16" numericFormat="SFLOAT"/>
- <spirvimageformat name="Rgba16f"/>
- </format>
- <format name="VK_FORMAT_R32_UINT" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="32" numericFormat="UINT"/>
- <spirvimageformat name="R32ui"/>
- </format>
- <format name="VK_FORMAT_R32_SINT" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="32" numericFormat="SINT"/>
- <spirvimageformat name="R32i"/>
- </format>
- <format name="VK_FORMAT_R32_SFLOAT" class="32-bit" blockSize="4" texelsPerBlock="1">
- <component name="R" bits="32" numericFormat="SFLOAT"/>
- <spirvimageformat name="R32f"/>
- </format>
- <format name="VK_FORMAT_R32G32_UINT" class="64-bit" blockSize="8" texelsPerBlock="1">
- <component name="R" bits="32" numericFormat="UINT"/>
- <component name="G" bits="32" numericFormat="UINT"/>
- <spirvimageformat name="Rg32ui"/>
- </format>
- <format name="VK_FORMAT_R32G32_SINT" class="64-bit" blockSize="8" texelsPerBlock="1">
- <component name="R" bits="32" numericFormat="SINT"/>
- <component name="G" bits="32" numericFormat="SINT"/>
- <spirvimageformat name="Rg32i"/>
- </format>
- <format name="VK_FORMAT_R32G32_SFLOAT" class="64-bit" blockSize="8" texelsPerBlock="1">
- <component name="R" bits="32" numericFormat="SFLOAT"/>
- <component name="G" bits="32" numericFormat="SFLOAT"/>
- <spirvimageformat name="Rg32f"/>
- </format>
- <format name="VK_FORMAT_R32G32B32_UINT" class="96-bit" blockSize="12" texelsPerBlock="1">
- <component name="R" bits="32" numericFormat="UINT"/>
- <component name="G" bits="32" numericFormat="UINT"/>
- <component name="B" bits="32" numericFormat="UINT"/>
- </format>
- <format name="VK_FORMAT_R32G32B32_SINT" class="96-bit" blockSize="12" texelsPerBlock="1">
- <component name="R" bits="32" numericFormat="SINT"/>
- <component name="G" bits="32" numericFormat="SINT"/>
- <component name="B" bits="32" numericFormat="SINT"/>
- </format>
- <format name="VK_FORMAT_R32G32B32_SFLOAT" class="96-bit" blockSize="12" texelsPerBlock="1">
- <component name="R" bits="32" numericFormat="SFLOAT"/>
- <component name="G" bits="32" numericFormat="SFLOAT"/>
- <component name="B" bits="32" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_R32G32B32A32_UINT" class="128-bit" blockSize="16" texelsPerBlock="1">
- <component name="R" bits="32" numericFormat="UINT"/>
- <component name="G" bits="32" numericFormat="UINT"/>
- <component name="B" bits="32" numericFormat="UINT"/>
- <component name="A" bits="32" numericFormat="UINT"/>
- <spirvimageformat name="Rgba32ui"/>
- </format>
- <format name="VK_FORMAT_R32G32B32A32_SINT" class="128-bit" blockSize="16" texelsPerBlock="1">
- <component name="R" bits="32" numericFormat="SINT"/>
- <component name="G" bits="32" numericFormat="SINT"/>
- <component name="B" bits="32" numericFormat="SINT"/>
- <component name="A" bits="32" numericFormat="SINT"/>
- <spirvimageformat name="Rgba32i"/>
- </format>
- <format name="VK_FORMAT_R32G32B32A32_SFLOAT" class="128-bit" blockSize="16" texelsPerBlock="1">
- <component name="R" bits="32" numericFormat="SFLOAT"/>
- <component name="G" bits="32" numericFormat="SFLOAT"/>
- <component name="B" bits="32" numericFormat="SFLOAT"/>
- <component name="A" bits="32" numericFormat="SFLOAT"/>
- <spirvimageformat name="Rgba32f"/>
- </format>
- <format name="VK_FORMAT_R64_UINT" class="64-bit" blockSize="8" texelsPerBlock="1">
- <component name="R" bits="64" numericFormat="UINT"/>
- <spirvimageformat name="R64ui"/>
- </format>
- <format name="VK_FORMAT_R64_SINT" class="64-bit" blockSize="8" texelsPerBlock="1">
- <component name="R" bits="64" numericFormat="SINT"/>
- <spirvimageformat name="R64i"/>
- </format>
- <format name="VK_FORMAT_R64_SFLOAT" class="64-bit" blockSize="8" texelsPerBlock="1">
- <component name="R" bits="64" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_R64G64_UINT" class="128-bit" blockSize="16" texelsPerBlock="1">
- <component name="R" bits="64" numericFormat="UINT"/>
- <component name="B" bits="64" numericFormat="UINT"/>
- </format>
- <format name="VK_FORMAT_R64G64_SINT" class="128-bit" blockSize="16" texelsPerBlock="1">
- <component name="R" bits="64" numericFormat="SINT"/>
- <component name="B" bits="64" numericFormat="SINT"/>
- </format>
- <format name="VK_FORMAT_R64G64_SFLOAT" class="128-bit" blockSize="16" texelsPerBlock="1">
- <component name="R" bits="64" numericFormat="SFLOAT"/>
- <component name="B" bits="64" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_R64G64B64_UINT" class="192-bit" blockSize="24" texelsPerBlock="1">
- <component name="R" bits="64" numericFormat="UINT"/>
- <component name="G" bits="64" numericFormat="UINT"/>
- <component name="B" bits="64" numericFormat="UINT"/>
- </format>
- <format name="VK_FORMAT_R64G64B64_SINT" class="192-bit" blockSize="24" texelsPerBlock="1">
- <component name="R" bits="64" numericFormat="SINT"/>
- <component name="G" bits="64" numericFormat="SINT"/>
- <component name="B" bits="64" numericFormat="SINT"/>
- </format>
- <format name="VK_FORMAT_R64G64B64_SFLOAT" class="192-bit" blockSize="24" texelsPerBlock="1">
- <component name="R" bits="64" numericFormat="SFLOAT"/>
- <component name="G" bits="64" numericFormat="SFLOAT"/>
- <component name="B" bits="64" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_R64G64B64A64_UINT" class="256-bit" blockSize="32" texelsPerBlock="1">
- <component name="R" bits="64" numericFormat="UINT"/>
- <component name="G" bits="64" numericFormat="UINT"/>
- <component name="B" bits="64" numericFormat="UINT"/>
- <component name="A" bits="64" numericFormat="UINT"/>
- </format>
- <format name="VK_FORMAT_R64G64B64A64_SINT" class="256-bit" blockSize="32" texelsPerBlock="1">
- <component name="R" bits="64" numericFormat="SINT"/>
- <component name="G" bits="64" numericFormat="SINT"/>
- <component name="B" bits="64" numericFormat="SINT"/>
- <component name="A" bits="64" numericFormat="SINT"/>
- </format>
- <format name="VK_FORMAT_R64G64B64A64_SFLOAT" class="256-bit" blockSize="32" texelsPerBlock="1">
- <component name="R" bits="64" numericFormat="SFLOAT"/>
- <component name="G" bits="64" numericFormat="SFLOAT"/>
- <component name="B" bits="64" numericFormat="SFLOAT"/>
- <component name="A" bits="64" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_B10G11R11_UFLOAT_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="B" bits="10" numericFormat="UFLOAT"/>
- <component name="G" bits="11" numericFormat="UFLOAT"/>
- <component name="R" bits="10" numericFormat="UFLOAT"/>
- <spirvimageformat name="R11fG11fB10f"/>
- </format>
- <format name="VK_FORMAT_E5B9G9R9_UFLOAT_PACK32" class="32-bit" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="B" bits="9" numericFormat="UFLOAT"/>
- <component name="G" bits="9" numericFormat="UFLOAT"/>
- <component name="R" bits="9" numericFormat="UFLOAT"/>
- </format>
- <format name="VK_FORMAT_D16_UNORM" class="D16" blockSize="2" texelsPerBlock="1">
- <component name="D" bits="16" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_X8_D24_UNORM_PACK32" class="D24" blockSize="4" texelsPerBlock="1" packed="32">
- <component name="D" bits="24" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_D32_SFLOAT" class="D32" blockSize="4" texelsPerBlock="1">
- <component name="D" bits="32" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_S8_UINT" class="S8" blockSize="1" texelsPerBlock="1">
- <component name="S" bits="8" numericFormat="UINT"/>
- </format>
- <format name="VK_FORMAT_D16_UNORM_S8_UINT" class="D16S8" blockSize="3" texelsPerBlock="1">
- <component name="D" bits="16" numericFormat="UNORM"/>
- <component name="S" bits="8" numericFormat="UINT"/>
- </format>
- <format name="VK_FORMAT_D24_UNORM_S8_UINT" class="D24S8" blockSize="4" texelsPerBlock="1">
- <component name="D" bits="24" numericFormat="UNORM"/>
- <component name="S" bits="8" numericFormat="UINT"/>
- </format>
- <format name="VK_FORMAT_D32_SFLOAT_S8_UINT" class="D32S8" blockSize="5" texelsPerBlock="1">
- <component name="D" bits="32" numericFormat="SFLOAT"/>
- <component name="S" bits="8" numericFormat="UINT"/>
- </format>
- <format name="VK_FORMAT_BC1_RGB_UNORM_BLOCK" class="BC1_RGB" blockSize="8" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_BC1_RGB_SRGB_BLOCK" class="BC1_RGB" blockSize="8" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_BC1_RGBA_UNORM_BLOCK" class="BC1_RGBA" blockSize="8" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_BC1_RGBA_SRGB_BLOCK" class="BC1_RGBA" blockSize="8" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_BC2_UNORM_BLOCK" class="BC2" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_BC2_SRGB_BLOCK" class="BC2" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_BC3_UNORM_BLOCK" class="BC3" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_BC3_SRGB_BLOCK" class="BC3" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_BC4_UNORM_BLOCK" class="BC4" blockSize="8" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_BC4_SNORM_BLOCK" class="BC4" blockSize="8" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_BC5_UNORM_BLOCK" class="BC5" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_BC5_SNORM_BLOCK" class="BC5" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_BC6H_UFLOAT_BLOCK" class="BC6H" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="UFLOAT"/>
- <component name="G" bits="compressed" numericFormat="UFLOAT"/>
- <component name="B" bits="compressed" numericFormat="UFLOAT"/>
- </format>
- <format name="VK_FORMAT_BC6H_SFLOAT_BLOCK" class="BC6H" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_BC7_UNORM_BLOCK" class="BC7" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_BC7_SRGB_BLOCK" class="BC7" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="BC">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK" class="ETC2_RGB" blockSize="8" texelsPerBlock="16" blockExtent="4,4,1" compressed="ETC2">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK" class="ETC2_RGB" blockSize="8" texelsPerBlock="16" blockExtent="4,4,1" compressed="ETC2">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK" class="ETC2_RGBA" blockSize="8" texelsPerBlock="16" blockExtent="4,4,1" compressed="ETC2">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK" class="ETC2_RGBA" blockSize="8" texelsPerBlock="16" blockExtent="4,4,1" compressed="ETC2">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK" class="ETC2_EAC_RGBA" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="ETC2">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK" class="ETC2_EAC_RGBA" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="ETC2">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_EAC_R11_UNORM_BLOCK" class="EAC_R" blockSize="8" texelsPerBlock="16" blockExtent="4,4,1" compressed="EAC">
- <component name="R" bits="11" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_EAC_R11_SNORM_BLOCK" class="EAC_R" blockSize="8" texelsPerBlock="16" blockExtent="4,4,1" compressed="EAC">
- <component name="R" bits="11" numericFormat="SNORM"/>
- </format>
- <format name="VK_FORMAT_EAC_R11G11_UNORM_BLOCK" class="EAC_RG" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="EAC">
- <component name="R" bits="11" numericFormat="UNORM"/>
- <component name="G" bits="11" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_EAC_R11G11_SNORM_BLOCK" class="EAC_RG" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="EAC">
- <component name="R" bits="11" numericFormat="SNORM"/>
- <component name="G" bits="11" numericFormat="SNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_4x4_UNORM_BLOCK" class="ASTC_4x4" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_4x4_SRGB_BLOCK" class="ASTC_4x4" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ASTC_5x4_UNORM_BLOCK" class="ASTC_5x4" blockSize="16" texelsPerBlock="20" blockExtent="5,4,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_5x4_SRGB_BLOCK" class="ASTC_5x4" blockSize="16" texelsPerBlock="20" blockExtent="5,4,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ASTC_5x5_UNORM_BLOCK" class="ASTC_5x5" blockSize="16" texelsPerBlock="25" blockExtent="5,5,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_5x5_SRGB_BLOCK" class="ASTC_5x5" blockSize="16" texelsPerBlock="25" blockExtent="5,5,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ASTC_6x5_UNORM_BLOCK" class="ASTC_6x5" blockSize="16" texelsPerBlock="30" blockExtent="6,5,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_6x5_SRGB_BLOCK" class="ASTC_6x5" blockSize="16" texelsPerBlock="30" blockExtent="6,5,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ASTC_6x6_UNORM_BLOCK" class="ASTC_6x6" blockSize="16" texelsPerBlock="36" blockExtent="6,6,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_6x6_SRGB_BLOCK" class="ASTC_6x6" blockSize="16" texelsPerBlock="36" blockExtent="6,6,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ASTC_8x5_UNORM_BLOCK" class="ASTC_8x5" blockSize="16" texelsPerBlock="40" blockExtent="8,5,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_8x5_SRGB_BLOCK" class="ASTC_8x5" blockSize="16" texelsPerBlock="40" blockExtent="8,5,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ASTC_8x6_UNORM_BLOCK" class="ASTC_8x6" blockSize="16" texelsPerBlock="48" blockExtent="8,6,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_8x6_SRGB_BLOCK" class="ASTC_8x6" blockSize="16" texelsPerBlock="48" blockExtent="8,6,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ASTC_8x8_UNORM_BLOCK" class="ASTC_8x8" blockSize="16" texelsPerBlock="64" blockExtent="8,8,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_8x8_SRGB_BLOCK" class="ASTC_8x8" blockSize="16" texelsPerBlock="64" blockExtent="8,8,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ASTC_10x5_UNORM_BLOCK" class="ASTC_10x5" blockSize="16" texelsPerBlock="50" blockExtent="10,5,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_10x5_SRGB_BLOCK" class="ASTC_10x5" blockSize="16" texelsPerBlock="50" blockExtent="10,5,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ASTC_10x6_UNORM_BLOCK" class="ASTC_10x6" blockSize="16" texelsPerBlock="60" blockExtent="10,6,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_10x6_SRGB_BLOCK" class="ASTC_10x6" blockSize="16" texelsPerBlock="60" blockExtent="10,6,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ASTC_10x8_UNORM_BLOCK" class="ASTC_10x8" blockSize="16" texelsPerBlock="80" blockExtent="10,8,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_10x8_SRGB_BLOCK" class="ASTC_10x8" blockSize="16" texelsPerBlock="80" blockExtent="10,8,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ASTC_10x10_UNORM_BLOCK" class="ASTC_10x10" blockSize="16" texelsPerBlock="100" blockExtent="10,10,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_10x10_SRGB_BLOCK" class="ASTC_10x10" blockSize="16" texelsPerBlock="100" blockExtent="10,10,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ASTC_12x10_UNORM_BLOCK" class="ASTC_12x10" blockSize="16" texelsPerBlock="120" blockExtent="12,10,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_12x10_SRGB_BLOCK" class="ASTC_12x10" blockSize="16" texelsPerBlock="120" blockExtent="12,10,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ASTC_12x12_UNORM_BLOCK" class="ASTC_12x12" blockSize="16" texelsPerBlock="144" blockExtent="12,12,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_ASTC_12x12_SRGB_BLOCK" class="ASTC_12x12" blockSize="16" texelsPerBlock="144" blockExtent="12,12,1" compressed="ASTC LDR">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_G8B8G8R8_422_UNORM" class="32-bit G8B8G8R8" blockSize="4" texelsPerBlock="1" blockExtent="2,1,1" chroma="422">
- <component name="G" bits="8" numericFormat="UNORM"/>
- <component name="B" bits="8" numericFormat="UNORM"/>
- <component name="G" bits="8" numericFormat="UNORM"/>
- <component name="R" bits="8" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_B8G8R8G8_422_UNORM" class="32-bit B8G8R8G8" blockSize="4" texelsPerBlock="1" blockExtent="2,1,1" chroma="422">
- <component name="B" bits="8" numericFormat="UNORM"/>
- <component name="G" bits="8" numericFormat="UNORM"/>
- <component name="R" bits="8" numericFormat="UNORM"/>
- <component name="G" bits="8" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM" class="8-bit 3-plane 420" blockSize="3" texelsPerBlock="1" chroma="420">
- <component name="G" bits="8" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="8" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="8" numericFormat="UNORM" planeIndex="2"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R8_UNORM"/>
- <plane index="1" widthDivisor="2" heightDivisor="2" compatible="VK_FORMAT_R8_UNORM"/>
- <plane index="2" widthDivisor="2" heightDivisor="2" compatible="VK_FORMAT_R8_UNORM"/>
- </format>
- <format name="VK_FORMAT_G8_B8R8_2PLANE_420_UNORM" class="8-bit 2-plane 420" blockSize="3" texelsPerBlock="1" chroma="420">
- <component name="G" bits="8" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="8" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="8" numericFormat="UNORM" planeIndex="1"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R8_UNORM"/>
- <plane index="1" widthDivisor="2" heightDivisor="2" compatible="VK_FORMAT_R8G8_UNORM"/>
- </format>
- <format name="VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM" class="8-bit 3-plane 422" blockSize="3" texelsPerBlock="1" chroma="422">
- <component name="G" bits="8" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="8" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="8" numericFormat="UNORM" planeIndex="2"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R8_UNORM"/>
- <plane index="1" widthDivisor="2" heightDivisor="1" compatible="VK_FORMAT_R8_UNORM"/>
- <plane index="2" widthDivisor="2" heightDivisor="1" compatible="VK_FORMAT_R8_UNORM"/>
- </format>
- <format name="VK_FORMAT_G8_B8R8_2PLANE_422_UNORM" class="8-bit 2-plane 422" blockSize="3" texelsPerBlock="1" chroma="422">
- <component name="G" bits="8" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="8" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="8" numericFormat="UNORM" planeIndex="1"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R8_UNORM"/>
- <plane index="1" widthDivisor="2" heightDivisor="1" compatible="VK_FORMAT_R8G8_UNORM"/>
- </format>
- <format name="VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM" class="8-bit 3-plane 444" blockSize="3" texelsPerBlock="1" chroma="444">
- <component name="G" bits="8" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="8" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="8" numericFormat="UNORM" planeIndex="2"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R8_UNORM"/>
- <plane index="1" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R8_UNORM"/>
- <plane index="2" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R8_UNORM"/>
- </format>
- <format name="VK_FORMAT_R10X6_UNORM_PACK16" class="16-bit" blockSize="2" texelsPerBlock="1" packed="16">
- <component name="R" bits="10" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_R10X6G10X6_UNORM_2PACK16" class="32-bit" blockSize="4" texelsPerBlock="1" packed="16">
- <component name="R" bits="10" numericFormat="UNORM"/>
- <component name="G" bits="10" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16" class="64-bit R10G10B10A10" blockSize="8" texelsPerBlock="1" packed="16" chroma="444">
- <component name="R" bits="10" numericFormat="UNORM"/>
- <component name="G" bits="10" numericFormat="UNORM"/>
- <component name="B" bits="10" numericFormat="UNORM"/>
- <component name="A" bits="10" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16" class="64-bit G10B10G10R10" blockSize="8" texelsPerBlock="1" blockExtent="2,1,1" packed="16" chroma="422">
- <component name="G" bits="10" numericFormat="UNORM"/>
- <component name="B" bits="10" numericFormat="UNORM"/>
- <component name="G" bits="10" numericFormat="UNORM"/>
- <component name="R" bits="10" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16" class="64-bit B10G10R10G10" blockSize="8" texelsPerBlock="1" blockExtent="2,1,1" packed="16" chroma="422">
- <component name="B" bits="10" numericFormat="UNORM"/>
- <component name="G" bits="10" numericFormat="UNORM"/>
- <component name="R" bits="10" numericFormat="UNORM"/>
- <component name="G" bits="10" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16" class="10-bit 3-plane 420" blockSize="6" texelsPerBlock="1" packed="16" chroma="420">
- <component name="G" bits="10" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="10" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="10" numericFormat="UNORM" planeIndex="2"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R10X6_UNORM_PACK16"/>
- <plane index="1" widthDivisor="2" heightDivisor="2" compatible="VK_FORMAT_R10X6_UNORM_PACK16"/>
- <plane index="2" widthDivisor="2" heightDivisor="2" compatible="VK_FORMAT_R10X6_UNORM_PACK16"/>
- </format>
- <format name="VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16" class="10-bit 2-plane 420" blockSize="6" texelsPerBlock="1" packed="16" chroma="420">
- <component name="G" bits="10" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="10" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="10" numericFormat="UNORM" planeIndex="1"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R10X6_UNORM_PACK16"/>
- <plane index="1" widthDivisor="2" heightDivisor="2" compatible="VK_FORMAT_R10X6G10X6_UNORM_2PACK16"/>
- </format>
- <format name="VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16" class="10-bit 3-plane 422" blockSize="6" texelsPerBlock="1" packed="16" chroma="422">
- <component name="G" bits="10" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="10" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="10" numericFormat="UNORM" planeIndex="2"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R10X6_UNORM_PACK16"/>
- <plane index="1" widthDivisor="2" heightDivisor="1" compatible="VK_FORMAT_R10X6_UNORM_PACK16"/>
- <plane index="2" widthDivisor="2" heightDivisor="1" compatible="VK_FORMAT_R10X6_UNORM_PACK16"/>
- </format>
- <format name="VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16" class="10-bit 2-plane 422" blockSize="6" texelsPerBlock="1" packed="16" chroma="422">
- <component name="G" bits="10" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="10" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="10" numericFormat="UNORM" planeIndex="1"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R10X6_UNORM_PACK16"/>
- <plane index="1" widthDivisor="2" heightDivisor="1" compatible="VK_FORMAT_R10X6G10X6_UNORM_2PACK16"/>
- </format>
- <format name="VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16" class="10-bit 3-plane 444" blockSize="6" texelsPerBlock="1" packed="16" chroma="444">
- <component name="G" bits="10" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="10" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="10" numericFormat="UNORM" planeIndex="2"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R10X6_UNORM_PACK16"/>
- <plane index="1" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R10X6_UNORM_PACK16"/>
- <plane index="2" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R10X6_UNORM_PACK16"/>
- </format>
- <format name="VK_FORMAT_R12X4_UNORM_PACK16" class="16-bit" blockSize="2" texelsPerBlock="1" packed="16">
- <component name="R" bits="12" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_R12X4G12X4_UNORM_2PACK16" class="32-bit" blockSize="4" texelsPerBlock="1" packed="16">
- <component name="R" bits="12" numericFormat="UNORM"/>
- <component name="G" bits="12" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16" class="64-bit R12G12B12A12" blockSize="8" texelsPerBlock="1" packed="16" chroma="444">
- <component name="R" bits="12" numericFormat="UNORM"/>
- <component name="G" bits="12" numericFormat="UNORM"/>
- <component name="B" bits="12" numericFormat="UNORM"/>
- <component name="A" bits="12" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16" class="64-bit G12B12G12R12" blockSize="8" texelsPerBlock="1" blockExtent="2,1,1" packed="16" chroma="422">
- <component name="G" bits="12" numericFormat="UNORM"/>
- <component name="B" bits="12" numericFormat="UNORM"/>
- <component name="G" bits="12" numericFormat="UNORM"/>
- <component name="R" bits="12" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16" class="64-bit B12G12R12G12" blockSize="8" texelsPerBlock="1" blockExtent="2,1,1" packed="16" chroma="422">
- <component name="B" bits="12" numericFormat="UNORM"/>
- <component name="G" bits="12" numericFormat="UNORM"/>
- <component name="R" bits="12" numericFormat="UNORM"/>
- <component name="G" bits="12" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16" class="12-bit 3-plane 420" blockSize="6" texelsPerBlock="1" packed="16" chroma="420">
- <component name="G" bits="12" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="12" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="12" numericFormat="UNORM" planeIndex="2"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R12X4_UNORM_PACK16"/>
- <plane index="1" widthDivisor="2" heightDivisor="2" compatible="VK_FORMAT_R12X4_UNORM_PACK16"/>
- <plane index="2" widthDivisor="2" heightDivisor="2" compatible="VK_FORMAT_R12X4_UNORM_PACK16"/>
- </format>
- <format name="VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16" class="12-bit 2-plane 420" blockSize="6" texelsPerBlock="1" packed="16" chroma="420">
- <component name="G" bits="12" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="12" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="12" numericFormat="UNORM" planeIndex="1"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R12X4_UNORM_PACK16"/>
- <plane index="1" widthDivisor="2" heightDivisor="2" compatible="VK_FORMAT_R12X4G12X4_UNORM_2PACK16"/>
- </format>
- <format name="VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16" class="12-bit 3-plane 422" blockSize="6" texelsPerBlock="1" packed="16" chroma="422">
- <component name="G" bits="12" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="12" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="12" numericFormat="UNORM" planeIndex="2"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R12X4_UNORM_PACK16"/>
- <plane index="1" widthDivisor="2" heightDivisor="1" compatible="VK_FORMAT_R12X4_UNORM_PACK16"/>
- <plane index="2" widthDivisor="2" heightDivisor="1" compatible="VK_FORMAT_R12X4_UNORM_PACK16"/>
- </format>
- <format name="VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16" class="12-bit 2-plane 422" blockSize="6" texelsPerBlock="1" packed="16" chroma="422">
- <component name="G" bits="12" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="12" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="12" numericFormat="UNORM" planeIndex="1"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R12X4_UNORM_PACK16"/>
- <plane index="1" widthDivisor="2" heightDivisor="1" compatible="VK_FORMAT_R12X4G12X4_UNORM_2PACK16"/>
- </format>
- <format name="VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16" class="12-bit 3-plane 444" blockSize="6" texelsPerBlock="1" packed="16" chroma="444">
- <component name="G" bits="12" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="12" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="12" numericFormat="UNORM" planeIndex="2"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R12X4_UNORM_PACK16"/>
- <plane index="1" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R12X4_UNORM_PACK16"/>
- <plane index="2" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R12X4_UNORM_PACK16"/>
- </format>
- <format name="VK_FORMAT_G16B16G16R16_422_UNORM" class="64-bit G16B16G16R16" blockSize="8" texelsPerBlock="1" blockExtent="2,1,1" chroma="422">
- <component name="G" bits="16" numericFormat="UNORM"/>
- <component name="B" bits="16" numericFormat="UNORM"/>
- <component name="G" bits="16" numericFormat="UNORM"/>
- <component name="R" bits="16" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_B16G16R16G16_422_UNORM" class="64-bit B16G16R16G16" blockSize="8" texelsPerBlock="1" blockExtent="2,1,1" chroma="422">
- <component name="B" bits="16" numericFormat="UNORM"/>
- <component name="G" bits="16" numericFormat="UNORM"/>
- <component name="R" bits="16" numericFormat="UNORM"/>
- <component name="G" bits="16" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM" class="16-bit 3-plane 420" blockSize="6" texelsPerBlock="1" chroma="420">
- <component name="G" bits="16" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="16" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="16" numericFormat="UNORM" planeIndex="2"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R16_UNORM"/>
- <plane index="1" widthDivisor="2" heightDivisor="2" compatible="VK_FORMAT_R16_UNORM"/>
- <plane index="2" widthDivisor="2" heightDivisor="2" compatible="VK_FORMAT_R16_UNORM"/>
- </format>
- <format name="VK_FORMAT_G16_B16R16_2PLANE_420_UNORM" class="16-bit 2-plane 420" blockSize="6" texelsPerBlock="1" chroma="420">
- <component name="G" bits="16" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="16" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="16" numericFormat="UNORM" planeIndex="1"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R16_UNORM"/>
- <plane index="1" widthDivisor="2" heightDivisor="2" compatible="VK_FORMAT_R16G16_UNORM"/>
- </format>
- <format name="VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM" class="16-bit 3-plane 422" blockSize="6" texelsPerBlock="1" chroma="422">
- <component name="G" bits="16" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="16" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="16" numericFormat="UNORM" planeIndex="2"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R16_UNORM"/>
- <plane index="1" widthDivisor="2" heightDivisor="1" compatible="VK_FORMAT_R16_UNORM"/>
- <plane index="2" widthDivisor="2" heightDivisor="1" compatible="VK_FORMAT_R16_UNORM"/>
- </format>
- <format name="VK_FORMAT_G16_B16R16_2PLANE_422_UNORM" class="16-bit 2-plane 422" blockSize="6" texelsPerBlock="1" chroma="422">
- <component name="G" bits="16" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="16" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="16" numericFormat="UNORM" planeIndex="1"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R16_UNORM"/>
- <plane index="1" widthDivisor="2" heightDivisor="1" compatible="VK_FORMAT_R16G16_UNORM"/>
- </format>
- <format name="VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM" class="16-bit 3-plane 444" blockSize="6" texelsPerBlock="1" chroma="444">
- <component name="G" bits="16" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="16" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="16" numericFormat="UNORM" planeIndex="2"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R16_UNORM"/>
- <plane index="1" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R16_UNORM"/>
- <plane index="2" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R16_UNORM"/>
- </format>
- <format name="VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG" class="PVRTC1_2BPP" blockSize="8" texelsPerBlock="1" blockExtent="8,4,1" compressed="PVRTC">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG" class="PVRTC1_4BPP" blockSize="8" texelsPerBlock="1" blockExtent="4,4,1" compressed="PVRTC">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG" class="PVRTC2_2BPP" blockSize="8" texelsPerBlock="1" blockExtent="8,4,1" compressed="PVRTC">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG" class="PVRTC2_4BPP" blockSize="8" texelsPerBlock="1" blockExtent="4,4,1" compressed="PVRTC">
- <component name="R" bits="compressed" numericFormat="UNORM"/>
- <component name="G" bits="compressed" numericFormat="UNORM"/>
- <component name="B" bits="compressed" numericFormat="UNORM"/>
- <component name="A" bits="compressed" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG" class="PVRTC1_2BPP" blockSize="8" texelsPerBlock="1" blockExtent="8,4,1" compressed="PVRTC">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG" class="PVRTC1_4BPP" blockSize="8" texelsPerBlock="1" blockExtent="4,4,1" compressed="PVRTC">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG" class="PVRTC2_2BPP" blockSize="8" texelsPerBlock="1" blockExtent="8,4,1" compressed="PVRTC">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG" class="PVRTC2_4BPP" blockSize="8" texelsPerBlock="1" blockExtent="4,4,1" compressed="PVRTC">
- <component name="R" bits="compressed" numericFormat="SRGB"/>
- <component name="G" bits="compressed" numericFormat="SRGB"/>
- <component name="B" bits="compressed" numericFormat="SRGB"/>
- <component name="A" bits="compressed" numericFormat="SRGB"/>
- </format>
- <format name="VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK" class="ASTC_4x4" blockSize="16" texelsPerBlock="16" blockExtent="4,4,1" compressed="ASTC HDR">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- <component name="A" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK" class="ASTC_5x4" blockSize="16" texelsPerBlock="20" blockExtent="5,4,1" compressed="ASTC HDR">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- <component name="A" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK" class="ASTC_5x5" blockSize="16" texelsPerBlock="25" blockExtent="5,5,1" compressed="ASTC HDR">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- <component name="A" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK" class="ASTC_6x5" blockSize="16" texelsPerBlock="30" blockExtent="6,5,1" compressed="ASTC HDR">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- <component name="A" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK" class="ASTC_6x6" blockSize="16" texelsPerBlock="36" blockExtent="6,6,1" compressed="ASTC HDR">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- <component name="A" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK" class="ASTC_8x5" blockSize="16" texelsPerBlock="40" blockExtent="8,5,1" compressed="ASTC HDR">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- <component name="A" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK" class="ASTC_8x6" blockSize="16" texelsPerBlock="48" blockExtent="8,6,1" compressed="ASTC HDR">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- <component name="A" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK" class="ASTC_8x8" blockSize="16" texelsPerBlock="64" blockExtent="8,8,1" compressed="ASTC HDR">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- <component name="A" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK" class="ASTC_10x5" blockSize="16" texelsPerBlock="50" blockExtent="10,5,1" compressed="ASTC HDR">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- <component name="A" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK" class="ASTC_10x6" blockSize="16" texelsPerBlock="60" blockExtent="10,6,1" compressed="ASTC HDR">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- <component name="A" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK" class="ASTC_10x8" blockSize="16" texelsPerBlock="80" blockExtent="10,8,1" compressed="ASTC HDR">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- <component name="A" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK" class="ASTC_10x10" blockSize="16" texelsPerBlock="100" blockExtent="10,10,1" compressed="ASTC HDR">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- <component name="A" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK" class="ASTC_12x10" blockSize="16" texelsPerBlock="120" blockExtent="12,10,1" compressed="ASTC HDR">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- <component name="A" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK" class="ASTC_12x12" blockSize="16" texelsPerBlock="144" blockExtent="12,12,1" compressed="ASTC HDR">
- <component name="R" bits="compressed" numericFormat="SFLOAT"/>
- <component name="G" bits="compressed" numericFormat="SFLOAT"/>
- <component name="B" bits="compressed" numericFormat="SFLOAT"/>
- <component name="A" bits="compressed" numericFormat="SFLOAT"/>
- </format>
- <format name="VK_FORMAT_G8_B8R8_2PLANE_444_UNORM" class="8-bit 2-plane 444" blockSize="3" texelsPerBlock="1" chroma="444">
- <component name="G" bits="8" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="8" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="8" numericFormat="UNORM" planeIndex="1"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R8_UNORM"/>
- <plane index="1" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R8G8_UNORM"/>
- </format>
- <format name="VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16" class="10-bit 2-plane 444" blockSize="6" texelsPerBlock="1" packed="16" chroma="444">
- <component name="G" bits="10" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="10" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="10" numericFormat="UNORM" planeIndex="1"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R10X6_UNORM_PACK16"/>
- <plane index="1" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R10X6G10X6_UNORM_2PACK16"/>
- </format>
- <format name="VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16" class="12-bit 2-plane 444" blockSize="6" texelsPerBlock="1" packed="16" chroma="444">
- <component name="G" bits="12" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="12" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="12" numericFormat="UNORM" planeIndex="1"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R12X4_UNORM_PACK16"/>
- <plane index="1" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R12X4G12X4_UNORM_2PACK16"/>
- </format>
- <format name="VK_FORMAT_G16_B16R16_2PLANE_444_UNORM" class="16-bit 2-plane 444" blockSize="6" texelsPerBlock="1" chroma="444">
- <component name="G" bits="16" numericFormat="UNORM" planeIndex="0"/>
- <component name="B" bits="16" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="16" numericFormat="UNORM" planeIndex="1"/>
- <plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R16_UNORM"/>
- <plane index="1" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R16G16_UNORM"/>
- </format>
- <format name="VK_FORMAT_A4R4G4B4_UNORM_PACK16" class="16-bit" blockSize="2" texelsPerBlock="1" packed="16">
- <component name="A" bits="4" numericFormat="UNORM"/>
- <component name="R" bits="4" numericFormat="UNORM"/>
- <component name="G" bits="4" numericFormat="UNORM"/>
- <component name="B" bits="4" numericFormat="UNORM"/>
- </format>
- <format name="VK_FORMAT_A4B4G4R4_UNORM_PACK16" class="16-bit" blockSize="2" texelsPerBlock="1" packed="16">
- <component name="A" bits="4" numericFormat="UNORM"/>
- <component name="B" bits="4" numericFormat="UNORM"/>
- <component name="G" bits="4" numericFormat="UNORM"/>
- <component name="R" bits="4" numericFormat="UNORM"/>
- </format>
- </formats>
- <spirvextensions comment="SPIR-V Extensions allowed in Vulkan and what is required to use it">
- <spirvextension name="SPV_KHR_variable_pointers">
- <enable version="VK_VERSION_1_1"/>
- <enable extension="VK_KHR_variable_pointers"/>
- </spirvextension>
- <spirvextension name="SPV_AMD_shader_explicit_vertex_parameter">
- <enable extension="VK_AMD_shader_explicit_vertex_parameter"/>
- </spirvextension>
- <spirvextension name="SPV_AMD_gcn_shader">
- <enable extension="VK_AMD_gcn_shader"/>
- </spirvextension>
- <spirvextension name="SPV_AMD_gpu_shader_half_float">
- <enable extension="VK_AMD_gpu_shader_half_float"/>
- </spirvextension>
- <spirvextension name="SPV_AMD_gpu_shader_int16">
- <enable extension="VK_AMD_gpu_shader_int16"/>
- </spirvextension>
- <spirvextension name="SPV_AMD_shader_ballot">
- <enable extension="VK_AMD_shader_ballot"/>
- </spirvextension>
- <spirvextension name="SPV_AMD_shader_fragment_mask">
- <enable extension="VK_AMD_shader_fragment_mask"/>
- </spirvextension>
- <spirvextension name="SPV_AMD_shader_image_load_store_lod">
- <enable extension="VK_AMD_shader_image_load_store_lod"/>
- </spirvextension>
- <spirvextension name="SPV_AMD_shader_trinary_minmax">
- <enable extension="VK_AMD_shader_trinary_minmax"/>
- </spirvextension>
- <spirvextension name="SPV_AMD_texture_gather_bias_lod">
- <enable extension="VK_AMD_texture_gather_bias_lod"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_shader_draw_parameters">
- <enable version="VK_VERSION_1_1"/>
- <enable extension="VK_KHR_shader_draw_parameters"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_8bit_storage">
- <enable version="VK_VERSION_1_2"/>
- <enable extension="VK_KHR_8bit_storage"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_16bit_storage">
- <enable version="VK_VERSION_1_1"/>
- <enable extension="VK_KHR_16bit_storage"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_shader_clock">
- <enable extension="VK_KHR_shader_clock"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_float_controls">
- <enable version="VK_VERSION_1_2"/>
- <enable extension="VK_KHR_shader_float_controls"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_storage_buffer_storage_class">
- <enable version="VK_VERSION_1_1"/>
- <enable extension="VK_KHR_storage_buffer_storage_class"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_post_depth_coverage">
- <enable extension="VK_EXT_post_depth_coverage"/>
- </spirvextension>
- <spirvextension name="SPV_EXT_shader_stencil_export">
- <enable extension="VK_EXT_shader_stencil_export"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_shader_ballot">
- <enable extension="VK_EXT_shader_subgroup_ballot"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_subgroup_vote">
- <enable extension="VK_EXT_shader_subgroup_vote"/>
- </spirvextension>
- <spirvextension name="SPV_NV_sample_mask_override_coverage">
- <enable extension="VK_NV_sample_mask_override_coverage"/>
- </spirvextension>
- <spirvextension name="SPV_NV_geometry_shader_passthrough">
- <enable extension="VK_NV_geometry_shader_passthrough"/>
- </spirvextension>
- <spirvextension name="SPV_NV_mesh_shader">
- <enable extension="VK_NV_mesh_shader"/>
- </spirvextension>
- <spirvextension name="SPV_NV_viewport_array2">
- <enable extension="VK_NV_viewport_array2"/>
- </spirvextension>
- <spirvextension name="SPV_NV_shader_subgroup_partitioned">
- <enable extension="VK_NV_shader_subgroup_partitioned"/>
- </spirvextension>
- <spirvextension name="SPV_EXT_shader_viewport_index_layer">
- <enable version="VK_VERSION_1_2"/>
- <enable extension="VK_EXT_shader_viewport_index_layer"/>
- </spirvextension>
- <spirvextension name="SPV_NVX_multiview_per_view_attributes">
- <enable extension="VK_NVX_multiview_per_view_attributes"/>
- </spirvextension>
- <spirvextension name="SPV_EXT_descriptor_indexing">
- <enable version="VK_VERSION_1_2"/>
- <enable extension="VK_EXT_descriptor_indexing"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_vulkan_memory_model">
- <enable version="VK_VERSION_1_2"/>
- <enable extension="VK_KHR_vulkan_memory_model"/>
- </spirvextension>
- <spirvextension name="SPV_NV_compute_shader_derivatives">
- <enable extension="VK_NV_compute_shader_derivatives"/>
- </spirvextension>
- <spirvextension name="SPV_NV_fragment_shader_barycentric">
- <enable extension="VK_NV_fragment_shader_barycentric"/>
- </spirvextension>
- <spirvextension name="SPV_NV_shader_image_footprint">
- <enable extension="VK_NV_shader_image_footprint"/>
- </spirvextension>
- <spirvextension name="SPV_NV_shading_rate">
- <enable extension="VK_NV_shading_rate_image"/>
- </spirvextension>
- <spirvextension name="SPV_NV_ray_tracing">
- <enable extension="VK_NV_ray_tracing"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_ray_tracing">
- <enable extension="VK_KHR_ray_tracing_pipeline"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_ray_query">
- <enable extension="VK_KHR_ray_query"/>
- </spirvextension>
- <spirvextension name="SPV_GOOGLE_hlsl_functionality1">
- <enable extension="VK_GOOGLE_hlsl_functionality1"/>
- </spirvextension>
- <spirvextension name="SPV_GOOGLE_user_type">
- <enable extension="VK_GOOGLE_user_type"/>
- </spirvextension>
- <spirvextension name="SPV_GOOGLE_decorate_string">
- <enable extension="VK_GOOGLE_decorate_string"/>
- </spirvextension>
- <spirvextension name="SPV_EXT_fragment_invocation_density">
- <enable extension="VK_EXT_fragment_density_map"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_physical_storage_buffer">
- <enable version="VK_VERSION_1_2"/>
- <enable extension="VK_KHR_buffer_device_address"/>
- </spirvextension>
- <spirvextension name="SPV_EXT_physical_storage_buffer">
- <enable extension="VK_EXT_buffer_device_address"/>
- </spirvextension>
- <spirvextension name="SPV_NV_cooperative_matrix">
- <enable extension="VK_NV_cooperative_matrix"/>
- </spirvextension>
- <spirvextension name="SPV_NV_shader_sm_builtins">
- <enable extension="VK_NV_shader_sm_builtins"/>
- </spirvextension>
- <spirvextension name="SPV_EXT_fragment_shader_interlock">
- <enable extension="VK_EXT_fragment_shader_interlock"/>
- </spirvextension>
- <spirvextension name="SPV_EXT_demote_to_helper_invocation">
- <enable version="VK_API_VERSION_1_3"/>
- <enable extension="VK_EXT_shader_demote_to_helper_invocation"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_fragment_shading_rate">
- <enable extension="VK_KHR_fragment_shading_rate"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_non_semantic_info">
- <enable version="VK_API_VERSION_1_3"/>
- <enable extension="VK_KHR_shader_non_semantic_info"/>
- </spirvextension>
- <spirvextension name="SPV_EXT_shader_image_int64">
- <enable extension="VK_EXT_shader_image_atomic_int64"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_terminate_invocation">
- <enable version="VK_API_VERSION_1_3"/>
- <enable extension="VK_KHR_shader_terminate_invocation"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_multiview">
- <enable version="VK_VERSION_1_1"/>
- <enable extension="VK_KHR_multiview"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_workgroup_memory_explicit_layout">
- <enable extension="VK_KHR_workgroup_memory_explicit_layout"/>
- </spirvextension>
- <spirvextension name="SPV_EXT_shader_atomic_float_add">
- <enable extension="VK_EXT_shader_atomic_float"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_subgroup_uniform_control_flow">
- <enable version="VK_API_VERSION_1_3"/>
- <enable extension="VK_KHR_shader_subgroup_uniform_control_flow"/>
- </spirvextension>
- <spirvextension name="SPV_EXT_shader_atomic_float_min_max">
- <enable extension="VK_EXT_shader_atomic_float2"/>
- </spirvextension>
- <spirvextension name="SPV_EXT_shader_atomic_float16_add">
- <enable extension="VK_EXT_shader_atomic_float2"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_integer_dot_product">
- <enable version="VK_API_VERSION_1_3"/>
- <enable extension="VK_KHR_shader_integer_dot_product"/>
- </spirvextension>
- <spirvextension name="SPV_INTEL_shader_integer_functions">
- <enable extension="VK_INTEL_shader_integer_functions2"/>
- </spirvextension>
- <spirvextension name="SPV_KHR_device_group">
- <enable version="VK_API_VERSION_1_1"/>
- <enable extension="VK_KHR_device_group"/>
- </spirvextension>
- </spirvextensions>
- <spirvcapabilities comment="SPIR-V Capabilities allowed in Vulkan and what is required to use it">
- <spirvcapability name="Matrix">
- <enable version="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="Shader">
- <enable version="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="InputAttachment">
- <enable version="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="Sampled1D">
- <enable version="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="Image1D">
- <enable version="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="SampledBuffer">
- <enable version="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="ImageBuffer">
- <enable version="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="ImageQuery">
- <enable version="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="DerivativeControl">
- <enable version="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="Geometry">
- <enable struct="VkPhysicalDeviceFeatures" feature="geometryShader" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="Tessellation">
- <enable struct="VkPhysicalDeviceFeatures" feature="tessellationShader" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="Float64">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderFloat64" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="Int64">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderInt64" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="Int64Atomics">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderBufferInt64Atomics" requires="VK_VERSION_1_2,VK_KHR_shader_atomic_int64"/>
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderSharedInt64Atomics" requires="VK_VERSION_1_2,VK_KHR_shader_atomic_int64"/>
- <enable struct="VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT" feature="shaderImageInt64Atomics" requires="VK_EXT_shader_image_atomic_int64"/>
- </spirvcapability>
- <spirvcapability name="AtomicFloat16AddEXT">
- <enable struct="VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT" feature="shaderBufferFloat16AtomicAdd" requires="VK_EXT_shader_atomic_float2"/>
- <enable struct="VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT" feature="shaderSharedFloat16AtomicAdd" requires="VK_EXT_shader_atomic_float2"/>
- </spirvcapability>
- <spirvcapability name="AtomicFloat32AddEXT">
- <enable struct="VkPhysicalDeviceShaderAtomicFloatFeaturesEXT" feature="shaderBufferFloat32AtomicAdd" requires="VK_EXT_shader_atomic_float"/>
- <enable struct="VkPhysicalDeviceShaderAtomicFloatFeaturesEXT" feature="shaderSharedFloat32AtomicAdd" requires="VK_EXT_shader_atomic_float"/>
- <enable struct="VkPhysicalDeviceShaderAtomicFloatFeaturesEXT" feature="shaderImageFloat32AtomicAdd" requires="VK_EXT_shader_atomic_float"/>
- </spirvcapability>
- <spirvcapability name="AtomicFloat64AddEXT">
- <enable struct="VkPhysicalDeviceShaderAtomicFloatFeaturesEXT" feature="shaderBufferFloat64AtomicAdd" requires="VK_EXT_shader_atomic_float"/>
- <enable struct="VkPhysicalDeviceShaderAtomicFloatFeaturesEXT" feature="shaderSharedFloat64AtomicAdd" requires="VK_EXT_shader_atomic_float"/>
- </spirvcapability>
- <spirvcapability name="AtomicFloat16MinMaxEXT">
- <enable struct="VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT" feature="shaderBufferFloat16AtomicMinMax" requires="VK_EXT_shader_atomic_float2"/>
- <enable struct="VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT" feature="shaderSharedFloat16AtomicMinMax" requires="VK_EXT_shader_atomic_float2"/>
- </spirvcapability>
- <spirvcapability name="AtomicFloat32MinMaxEXT">
- <enable struct="VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT" feature="shaderBufferFloat32AtomicMinMax" requires="VK_EXT_shader_atomic_float2"/>
- <enable struct="VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT" feature="shaderSharedFloat32AtomicMinMax" requires="VK_EXT_shader_atomic_float2"/>
- <enable struct="VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT" feature="shaderImageFloat32AtomicMinMax" requires="VK_EXT_shader_atomic_float2"/>
- </spirvcapability>
- <spirvcapability name="AtomicFloat64MinMaxEXT">
- <enable struct="VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT" feature="shaderBufferFloat64AtomicMinMax" requires="VK_EXT_shader_atomic_float2"/>
- <enable struct="VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT" feature="shaderSharedFloat64AtomicMinMax" requires="VK_EXT_shader_atomic_float2"/>
- </spirvcapability>
- <spirvcapability name="Int64ImageEXT">
- <enable struct="VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT" feature="shaderImageInt64Atomics" requires="VK_EXT_shader_image_atomic_int64"/>
- </spirvcapability>
- <spirvcapability name="Int16">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderInt16" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="TessellationPointSize">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderTessellationAndGeometryPointSize" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="GeometryPointSize">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderTessellationAndGeometryPointSize" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="ImageGatherExtended">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderImageGatherExtended" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="StorageImageMultisample">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderStorageImageMultisample" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="UniformBufferArrayDynamicIndexing">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderUniformBufferArrayDynamicIndexing" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="SampledImageArrayDynamicIndexing">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderSampledImageArrayDynamicIndexing" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="StorageBufferArrayDynamicIndexing">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderStorageBufferArrayDynamicIndexing" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="StorageImageArrayDynamicIndexing">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderStorageImageArrayDynamicIndexing" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="ClipDistance">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderClipDistance" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="CullDistance">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderCullDistance" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="ImageCubeArray">
- <enable struct="VkPhysicalDeviceFeatures" feature="imageCubeArray" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="SampleRateShading">
- <enable struct="VkPhysicalDeviceFeatures" feature="sampleRateShading" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="SparseResidency">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderResourceResidency" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="MinLod">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderResourceMinLod" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="SampledCubeArray">
- <enable struct="VkPhysicalDeviceFeatures" feature="imageCubeArray" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="ImageMSArray">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderStorageImageMultisample" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="StorageImageExtendedFormats">
- <enable version="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="InterpolationFunction">
- <enable struct="VkPhysicalDeviceFeatures" feature="sampleRateShading" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="StorageImageReadWithoutFormat">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderStorageImageReadWithoutFormat" requires="VK_VERSION_1_0"/>
- <enable version="VK_API_VERSION_1_3"/>
- <enable extension="VK_KHR_format_feature_flags2"/>
- </spirvcapability>
- <spirvcapability name="StorageImageWriteWithoutFormat">
- <enable struct="VkPhysicalDeviceFeatures" feature="shaderStorageImageWriteWithoutFormat" requires="VK_VERSION_1_0"/>
- <enable version="VK_API_VERSION_1_3"/>
- <enable extension="VK_KHR_format_feature_flags2"/>
- </spirvcapability>
- <spirvcapability name="MultiViewport">
- <enable struct="VkPhysicalDeviceFeatures" feature="multiViewport" requires="VK_VERSION_1_0"/>
- </spirvcapability>
- <spirvcapability name="DrawParameters">
- <enable struct="VkPhysicalDeviceVulkan11Features" feature="shaderDrawParameters" requires="VK_VERSION_1_2"/>
- <enable struct="VkPhysicalDeviceShaderDrawParametersFeatures" feature="shaderDrawParameters" requires="VK_VERSION_1_1"/>
- <enable extension="VK_KHR_shader_draw_parameters"/>
- </spirvcapability>
- <spirvcapability name="MultiView">
- <enable struct="VkPhysicalDeviceVulkan11Features" feature="multiview" requires="VK_VERSION_1_2"/>
- <enable struct="VkPhysicalDeviceMultiviewFeatures" feature="multiview" requires="VK_KHR_multiview"/>
- </spirvcapability>
- <spirvcapability name="DeviceGroup">
- <enable version="VK_VERSION_1_1"/>
- <enable extension="VK_KHR_device_group"/>
- </spirvcapability>
- <spirvcapability name="VariablePointersStorageBuffer">
- <enable struct="VkPhysicalDeviceVulkan11Features" feature="variablePointersStorageBuffer" requires="VK_VERSION_1_2"/>
- <enable struct="VkPhysicalDeviceVariablePointersFeatures" feature="variablePointersStorageBuffer" requires="VK_KHR_variable_pointers"/>
- </spirvcapability>
- <spirvcapability name="VariablePointers">
- <enable struct="VkPhysicalDeviceVulkan11Features" feature="variablePointers" requires="VK_VERSION_1_2"/>
- <enable struct="VkPhysicalDeviceVariablePointersFeatures" feature="variablePointers" requires="VK_KHR_variable_pointers"/>
- </spirvcapability>
- <spirvcapability name="ShaderClockKHR">
- <enable extension="VK_KHR_shader_clock"/>
- </spirvcapability>
- <spirvcapability name="StencilExportEXT">
- <enable extension="VK_EXT_shader_stencil_export"/>
- </spirvcapability>
- <spirvcapability name="SubgroupBallotKHR">
- <enable extension="VK_EXT_shader_subgroup_ballot"/>
- </spirvcapability>
- <spirvcapability name="SubgroupVoteKHR">
- <enable extension="VK_EXT_shader_subgroup_vote"/>
- </spirvcapability>
- <spirvcapability name="ImageReadWriteLodAMD">
- <enable extension="VK_AMD_shader_image_load_store_lod"/>
- </spirvcapability>
- <spirvcapability name="ImageGatherBiasLodAMD">
- <enable extension="VK_AMD_texture_gather_bias_lod"/>
- </spirvcapability>
- <spirvcapability name="FragmentMaskAMD">
- <enable extension="VK_AMD_shader_fragment_mask"/>
- </spirvcapability>
- <spirvcapability name="SampleMaskOverrideCoverageNV">
- <enable extension="VK_NV_sample_mask_override_coverage"/>
- </spirvcapability>
- <spirvcapability name="GeometryShaderPassthroughNV">
- <enable extension="VK_NV_geometry_shader_passthrough"/>
- </spirvcapability>
- <spirvcapability name="ShaderViewportIndex">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderOutputViewportIndex" requires="VK_VERSION_1_2"/>
- </spirvcapability>
- <spirvcapability name="ShaderLayer">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderOutputLayer" requires="VK_VERSION_1_2"/>
- </spirvcapability>
- <spirvcapability name="ShaderViewportIndexLayerEXT">
- <enable extension="VK_EXT_shader_viewport_index_layer"/>
- </spirvcapability>
- <spirvcapability name="ShaderViewportIndexLayerNV">
- <enable extension="VK_NV_viewport_array2"/>
- </spirvcapability>
- <spirvcapability name="ShaderViewportMaskNV">
- <enable extension="VK_NV_viewport_array2"/>
- </spirvcapability>
- <spirvcapability name="PerViewAttributesNV">
- <enable extension="VK_NVX_multiview_per_view_attributes"/>
- </spirvcapability>
- <spirvcapability name="StorageBuffer16BitAccess">
- <enable struct="VkPhysicalDeviceVulkan11Features" feature="storageBuffer16BitAccess" requires="VK_VERSION_1_2"/>
- <enable struct="VkPhysicalDevice16BitStorageFeatures" feature="storageBuffer16BitAccess" requires="VK_KHR_16bit_storage"/>
- </spirvcapability>
- <spirvcapability name="UniformAndStorageBuffer16BitAccess">
- <enable struct="VkPhysicalDeviceVulkan11Features" feature="uniformAndStorageBuffer16BitAccess" requires="VK_VERSION_1_2"/>
- <enable struct="VkPhysicalDevice16BitStorageFeatures" feature="uniformAndStorageBuffer16BitAccess" requires="VK_KHR_16bit_storage"/>
- </spirvcapability>
- <spirvcapability name="StoragePushConstant16">
- <enable struct="VkPhysicalDeviceVulkan11Features" feature="storagePushConstant16" requires="VK_VERSION_1_2"/>
- <enable struct="VkPhysicalDevice16BitStorageFeatures" feature="storagePushConstant16" requires="VK_KHR_16bit_storage"/>
- </spirvcapability>
- <spirvcapability name="StorageInputOutput16">
- <enable struct="VkPhysicalDeviceVulkan11Features" feature="storageInputOutput16" requires="VK_VERSION_1_2"/>
- <enable struct="VkPhysicalDevice16BitStorageFeatures" feature="storageInputOutput16" requires="VK_KHR_16bit_storage"/>
- </spirvcapability>
- <spirvcapability name="GroupNonUniform">
- <enable property="VkPhysicalDeviceVulkan11Properties" member="subgroupSupportedOperations" value="VK_SUBGROUP_FEATURE_BASIC_BIT" requires="VK_VERSION_1_1"/>
- </spirvcapability>
- <spirvcapability name="GroupNonUniformVote">
- <enable property="VkPhysicalDeviceVulkan11Properties" member="subgroupSupportedOperations" value="VK_SUBGROUP_FEATURE_VOTE_BIT" requires="VK_VERSION_1_1"/>
- </spirvcapability>
- <spirvcapability name="GroupNonUniformArithmetic">
- <enable property="VkPhysicalDeviceVulkan11Properties" member="subgroupSupportedOperations" value="VK_SUBGROUP_FEATURE_ARITHMETIC_BIT" requires="VK_VERSION_1_1"/>
- </spirvcapability>
- <spirvcapability name="GroupNonUniformBallot">
- <enable property="VkPhysicalDeviceVulkan11Properties" member="subgroupSupportedOperations" value="VK_SUBGROUP_FEATURE_BALLOT_BIT" requires="VK_VERSION_1_1"/>
- </spirvcapability>
- <spirvcapability name="GroupNonUniformShuffle">
- <enable property="VkPhysicalDeviceVulkan11Properties" member="subgroupSupportedOperations" value="VK_SUBGROUP_FEATURE_SHUFFLE_BIT" requires="VK_VERSION_1_1"/>
- </spirvcapability>
- <spirvcapability name="GroupNonUniformShuffleRelative">
- <enable property="VkPhysicalDeviceVulkan11Properties" member="subgroupSupportedOperations" value="VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT" requires="VK_VERSION_1_1"/>
- </spirvcapability>
- <spirvcapability name="GroupNonUniformClustered">
- <enable property="VkPhysicalDeviceVulkan11Properties" member="subgroupSupportedOperations" value="VK_SUBGROUP_FEATURE_CLUSTERED_BIT" requires="VK_VERSION_1_1"/>
- </spirvcapability>
- <spirvcapability name="GroupNonUniformQuad">
- <enable property="VkPhysicalDeviceVulkan11Properties" member="subgroupSupportedOperations" value="VK_SUBGROUP_FEATURE_QUAD_BIT" requires="VK_VERSION_1_1"/>
- </spirvcapability>
- <spirvcapability name="GroupNonUniformPartitionedNV">
- <enable property="VkPhysicalDeviceVulkan11Properties" member="subgroupSupportedOperations" value="VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV" requires="VK_NV_shader_subgroup_partitioned"/>
- </spirvcapability>
- <spirvcapability name="SampleMaskPostDepthCoverage">
- <enable extension="VK_EXT_post_depth_coverage"/>
- </spirvcapability>
- <spirvcapability name="ShaderNonUniform">
- <enable version="VK_VERSION_1_2"/>
- <enable extension="VK_EXT_descriptor_indexing"/>
- </spirvcapability>
- <spirvcapability name="RuntimeDescriptorArray">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="runtimeDescriptorArray" requires="VK_VERSION_1_2,VK_EXT_descriptor_indexing"/>
- </spirvcapability>
- <spirvcapability name="InputAttachmentArrayDynamicIndexing">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderInputAttachmentArrayDynamicIndexing" requires="VK_VERSION_1_2,VK_EXT_descriptor_indexing"/>
- </spirvcapability>
- <spirvcapability name="UniformTexelBufferArrayDynamicIndexing">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderUniformTexelBufferArrayDynamicIndexing" requires="VK_VERSION_1_2,VK_EXT_descriptor_indexing"/>
- </spirvcapability>
- <spirvcapability name="StorageTexelBufferArrayDynamicIndexing">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderStorageTexelBufferArrayDynamicIndexing" requires="VK_VERSION_1_2,VK_EXT_descriptor_indexing"/>
- </spirvcapability>
- <spirvcapability name="UniformBufferArrayNonUniformIndexing">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderUniformBufferArrayNonUniformIndexing" requires="VK_VERSION_1_2,VK_EXT_descriptor_indexing"/>
- </spirvcapability>
- <spirvcapability name="SampledImageArrayNonUniformIndexing">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderSampledImageArrayNonUniformIndexing" requires="VK_VERSION_1_2,VK_EXT_descriptor_indexing"/>
- </spirvcapability>
- <spirvcapability name="StorageBufferArrayNonUniformIndexing">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderStorageBufferArrayNonUniformIndexing" requires="VK_VERSION_1_2,VK_EXT_descriptor_indexing"/>
- </spirvcapability>
- <spirvcapability name="StorageImageArrayNonUniformIndexing">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderStorageImageArrayNonUniformIndexing" requires="VK_VERSION_1_2,VK_EXT_descriptor_indexing"/>
- </spirvcapability>
- <spirvcapability name="InputAttachmentArrayNonUniformIndexing">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderInputAttachmentArrayNonUniformIndexing" requires="VK_VERSION_1_2,VK_EXT_descriptor_indexing"/>
- </spirvcapability>
- <spirvcapability name="UniformTexelBufferArrayNonUniformIndexing">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderUniformTexelBufferArrayNonUniformIndexing" requires="VK_VERSION_1_2,VK_EXT_descriptor_indexing"/>
- </spirvcapability>
- <spirvcapability name="StorageTexelBufferArrayNonUniformIndexing">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderStorageTexelBufferArrayNonUniformIndexing" requires="VK_VERSION_1_2,VK_EXT_descriptor_indexing"/>
- </spirvcapability>
- <spirvcapability name="Float16">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderFloat16" requires="VK_VERSION_1_2,VK_KHR_shader_float16_int8"/>
- <enable extension="VK_AMD_gpu_shader_half_float"/>
- </spirvcapability>
- <spirvcapability name="Int8">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="shaderInt8" requires="VK_VERSION_1_2,VK_KHR_shader_float16_int8"/>
- </spirvcapability>
- <spirvcapability name="StorageBuffer8BitAccess">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="storageBuffer8BitAccess" requires="VK_VERSION_1_2,VK_KHR_8bit_storage"/>
- </spirvcapability>
- <spirvcapability name="UniformAndStorageBuffer8BitAccess">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="uniformAndStorageBuffer8BitAccess" requires="VK_VERSION_1_2,VK_KHR_8bit_storage"/>
- </spirvcapability>
- <spirvcapability name="StoragePushConstant8">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="storagePushConstant8" requires="VK_VERSION_1_2,VK_KHR_8bit_storage"/>
- </spirvcapability>
- <spirvcapability name="VulkanMemoryModel">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="vulkanMemoryModel" requires="VK_VERSION_1_2,VK_KHR_vulkan_memory_model"/>
- </spirvcapability>
- <spirvcapability name="VulkanMemoryModelDeviceScope">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="vulkanMemoryModelDeviceScope" requires="VK_VERSION_1_2,VK_KHR_vulkan_memory_model"/>
- </spirvcapability>
- <spirvcapability name="DenormPreserve">
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderDenormPreserveFloat16" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderDenormPreserveFloat32" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderDenormPreserveFloat64" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- </spirvcapability>
- <spirvcapability name="DenormFlushToZero">
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderDenormFlushToZeroFloat16" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderDenormFlushToZeroFloat32" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderDenormFlushToZeroFloat64" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- </spirvcapability>
- <spirvcapability name="SignedZeroInfNanPreserve">
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderSignedZeroInfNanPreserveFloat16" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderSignedZeroInfNanPreserveFloat32" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderSignedZeroInfNanPreserveFloat64" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- </spirvcapability>
- <spirvcapability name="RoundingModeRTE">
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderRoundingModeRTEFloat16" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderRoundingModeRTEFloat32" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderRoundingModeRTEFloat64" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- </spirvcapability>
- <spirvcapability name="RoundingModeRTZ">
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderRoundingModeRTZFloat16" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderRoundingModeRTZFloat32" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderRoundingModeRTZFloat64" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
- </spirvcapability>
- <spirvcapability name="ComputeDerivativeGroupQuadsNV">
- <enable struct="VkPhysicalDeviceComputeShaderDerivativesFeaturesNV" feature="computeDerivativeGroupQuads" requires="VK_NV_compute_shader_derivatives"/>
- </spirvcapability>
- <spirvcapability name="ComputeDerivativeGroupLinearNV">
- <enable struct="VkPhysicalDeviceComputeShaderDerivativesFeaturesNV" feature="computeDerivativeGroupLinear" requires="VK_NV_compute_shader_derivatives"/>
- </spirvcapability>
- <spirvcapability name="FragmentBarycentricNV">
- <enable struct="VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV" feature="fragmentShaderBarycentric" requires="VK_NV_fragment_shader_barycentric"/>
- </spirvcapability>
- <spirvcapability name="ImageFootprintNV">
- <enable struct="VkPhysicalDeviceShaderImageFootprintFeaturesNV" feature="imageFootprint" requires="VK_NV_shader_image_footprint"/>
- </spirvcapability>
- <spirvcapability name="ShadingRateNV">
- <enable struct="VkPhysicalDeviceShadingRateImageFeaturesNV" feature="shadingRateImage" requires="VK_NV_shading_rate_image"/>
- </spirvcapability>
- <spirvcapability name="MeshShadingNV">
- <enable extension="VK_NV_mesh_shader"/>
- </spirvcapability>
- <spirvcapability name="RayTracingKHR">
- <enable struct="VkPhysicalDeviceRayTracingPipelineFeaturesKHR" feature="rayTracingPipeline" requires="VK_KHR_ray_tracing_pipeline"/>
- </spirvcapability>
- <spirvcapability name="RayQueryKHR">
- <enable struct="VkPhysicalDeviceRayQueryFeaturesKHR" feature="rayQuery" requires="VK_KHR_ray_query"/>
- </spirvcapability>
- <spirvcapability name="RayTraversalPrimitiveCullingKHR">
- <enable struct="VkPhysicalDeviceRayTracingPipelineFeaturesKHR" feature="rayTraversalPrimitiveCulling" requires="VK_KHR_ray_tracing_pipeline"/>
- </spirvcapability>
- <spirvcapability name="RayTracingNV">
- <enable extension="VK_NV_ray_tracing"/>
- </spirvcapability>
- <spirvcapability name="RayTracingMotionBlurNV">
- <enable struct="VkPhysicalDeviceRayTracingMotionBlurFeaturesNV" feature="rayTracingMotionBlur" requires="VK_NV_ray_tracing_motion_blur"/>
- </spirvcapability>
- <spirvcapability name="TransformFeedback">
- <enable struct="VkPhysicalDeviceTransformFeedbackFeaturesEXT" feature="transformFeedback" requires="VK_EXT_transform_feedback"/>
- </spirvcapability>
- <spirvcapability name="GeometryStreams">
- <enable struct="VkPhysicalDeviceTransformFeedbackFeaturesEXT" feature="geometryStreams" requires="VK_EXT_transform_feedback"/>
- </spirvcapability>
- <spirvcapability name="FragmentDensityEXT">
- <enable struct="VkPhysicalDeviceFragmentDensityMapFeaturesEXT" feature="fragmentDensityMap" requires="VK_EXT_fragment_density_map"/>
- </spirvcapability>
- <spirvcapability name="PhysicalStorageBufferAddresses">
- <enable struct="VkPhysicalDeviceVulkan12Features" feature="bufferDeviceAddress" requires="VK_VERSION_1_2,VK_KHR_buffer_device_address"/>
- <enable struct="VkPhysicalDeviceBufferDeviceAddressFeaturesEXT" feature="bufferDeviceAddress" requires="VK_EXT_buffer_device_address" alias="bufferDeviceAddressEXT"/>
- </spirvcapability>
- <spirvcapability name="CooperativeMatrixNV">
- <enable struct="VkPhysicalDeviceCooperativeMatrixFeaturesNV" feature="cooperativeMatrix" requires="VK_NV_cooperative_matrix"/>
- </spirvcapability>
- <spirvcapability name="IntegerFunctions2INTEL">
- <enable struct="VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL" feature="shaderIntegerFunctions2" requires="VK_INTEL_shader_integer_functions2"/>
- </spirvcapability>
- <spirvcapability name="ShaderSMBuiltinsNV">
- <enable struct="VkPhysicalDeviceShaderSMBuiltinsFeaturesNV" feature="shaderSMBuiltins" requires="VK_NV_shader_sm_builtins"/>
- </spirvcapability>
- <spirvcapability name="FragmentShaderSampleInterlockEXT">
- <enable struct="VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT" feature="fragmentShaderSampleInterlock" requires="VK_EXT_fragment_shader_interlock"/>
- </spirvcapability>
- <spirvcapability name="FragmentShaderPixelInterlockEXT">
- <enable struct="VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT" feature="fragmentShaderPixelInterlock" requires="VK_EXT_fragment_shader_interlock"/>
- </spirvcapability>
- <spirvcapability name="FragmentShaderShadingRateInterlockEXT">
- <enable struct="VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT" feature="fragmentShaderShadingRateInterlock" requires="VK_EXT_fragment_shader_interlock"/>
- <enable struct="VkPhysicalDeviceShadingRateImageFeaturesNV" feature="shadingRateImage" requires="VK_NV_shading_rate_image"/>
- </spirvcapability>
- <spirvcapability name="DemoteToHelperInvocationEXT">
- <enable struct="VkPhysicalDeviceVulkan13Features" feature="shaderDemoteToHelperInvocation" requires="VK_VERSION_1_3,VK_EXT_shader_demote_to_helper_invocation"/>
- <enable struct="VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT" feature="shaderDemoteToHelperInvocation" requires="VK_EXT_shader_demote_to_helper_invocation"/>
- </spirvcapability>
- <spirvcapability name="FragmentShadingRateKHR">
- <enable struct="VkPhysicalDeviceFragmentShadingRateFeaturesKHR" feature="pipelineFragmentShadingRate" requires="VK_KHR_fragment_shading_rate"/>
- <enable struct="VkPhysicalDeviceFragmentShadingRateFeaturesKHR" feature="primitiveFragmentShadingRate" requires="VK_KHR_fragment_shading_rate"/>
- <enable struct="VkPhysicalDeviceFragmentShadingRateFeaturesKHR" feature="attachmentFragmentShadingRate" requires="VK_KHR_fragment_shading_rate"/>
- </spirvcapability>
- <spirvcapability name="WorkgroupMemoryExplicitLayoutKHR">
- <enable struct="VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR" feature="workgroupMemoryExplicitLayout" requires="VK_KHR_workgroup_memory_explicit_layout"/>
- </spirvcapability>
- <spirvcapability name="WorkgroupMemoryExplicitLayout8BitAccessKHR">
- <enable struct="VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR" feature="workgroupMemoryExplicitLayout8BitAccess" requires="VK_KHR_workgroup_memory_explicit_layout"/>
- </spirvcapability>
- <spirvcapability name="WorkgroupMemoryExplicitLayout16BitAccessKHR">
- <enable struct="VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR" feature="workgroupMemoryExplicitLayout16BitAccess" requires="VK_KHR_workgroup_memory_explicit_layout"/>
- </spirvcapability>
- <spirvcapability name="DotProductInputAllKHR">
- <enable struct="VkPhysicalDeviceVulkan13Features" feature="shaderIntegerDotProduct" requires="VK_VERSION_1_3,VK_KHR_shader_integer_dot_product"/>
- <enable struct="VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR" feature="shaderIntegerDotProduct" requires="VK_KHR_shader_integer_dot_product"/>
- </spirvcapability>
- <spirvcapability name="DotProductInput4x8BitKHR">
- <enable struct="VkPhysicalDeviceVulkan13Features" feature="shaderIntegerDotProduct" requires="VK_VERSION_1_3,VK_KHR_shader_integer_dot_product"/>
- <enable struct="VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR" feature="shaderIntegerDotProduct" requires="VK_KHR_shader_integer_dot_product"/>
- </spirvcapability>
- <spirvcapability name="DotProductInput4x8BitPackedKHR">
- <enable struct="VkPhysicalDeviceVulkan13Features" feature="shaderIntegerDotProduct" requires="VK_VERSION_1_3,VK_KHR_shader_integer_dot_product"/>
- <enable struct="VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR" feature="shaderIntegerDotProduct" requires="VK_KHR_shader_integer_dot_product"/>
- </spirvcapability>
- <spirvcapability name="DotProductKHR">
- <enable struct="VkPhysicalDeviceVulkan13Features" feature="shaderIntegerDotProduct" requires="VK_VERSION_1_3,VK_KHR_shader_integer_dot_product"/>
- <enable struct="VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR" feature="shaderIntegerDotProduct" requires="VK_KHR_shader_integer_dot_product"/>
- </spirvcapability>
- </spirvcapabilities>
-</registry>
diff --git a/registry/vkconventions.py b/registry/vkconventions.py
deleted file mode 100644
index 175c37f..0000000
--- a/registry/vkconventions.py
+++ /dev/null
@@ -1,275 +0,0 @@
-#!/usr/bin/python3 -i
-#
-# Copyright 2013-2022 The Khronos Group Inc.
-#
-# SPDX-License-Identifier: Apache-2.0
-
-# Working-group-specific style conventions,
-# used in generation.
-
-import re
-import os
-
-from conventions import ConventionsBase
-
-
-# Modified from default implementation - see category_requires_validation() below
-CATEGORIES_REQUIRING_VALIDATION = set(('handle', 'enum', 'bitmask'))
-
-# Tokenize into "words" for structure types, approximately per spec "Implicit Valid Usage" section 2.7.2
-# This first set is for things we recognize explicitly as words,
-# as exceptions to the general regex.
-# Ideally these would be listed in the spec as exceptions, as OpenXR does.
-SPECIAL_WORDS = set((
- '16Bit', # VkPhysicalDevice16BitStorageFeatures
- '8Bit', # VkPhysicalDevice8BitStorageFeaturesKHR
- 'AABB', # VkGeometryAABBNV
- 'ASTC', # VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT
- 'D3D12', # VkD3D12FenceSubmitInfoKHR
- 'Float16', # VkPhysicalDeviceShaderFloat16Int8FeaturesKHR
- 'ImagePipe', # VkImagePipeSurfaceCreateInfoFUCHSIA
- 'Int64', # VkPhysicalDeviceShaderAtomicInt64FeaturesKHR
- 'Int8', # VkPhysicalDeviceShaderFloat16Int8FeaturesKHR
- 'MacOS', # VkMacOSSurfaceCreateInfoMVK
- 'RGBA10X6', # VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT
- 'Uint8', # VkPhysicalDeviceIndexTypeUint8FeaturesEXT
- 'Win32', # VkWin32SurfaceCreateInfoKHR
-))
-# A regex to match any of the SPECIAL_WORDS
-EXCEPTION_PATTERN = r'(?P<exception>{})'.format(
- '|'.join('(%s)' % re.escape(w) for w in SPECIAL_WORDS))
-MAIN_RE = re.compile(
- # the negative lookahead is to prevent the all-caps pattern from being too greedy.
- r'({}|([0-9]+)|([A-Z][a-z]+)|([A-Z][A-Z]*(?![a-z])))'.format(EXCEPTION_PATTERN))
-
-
-class VulkanConventions(ConventionsBase):
- @property
- def null(self):
- """Preferred spelling of NULL."""
- return '`NULL`'
-
- @property
- def struct_macro(self):
- """Get the appropriate format macro for a structure.
-
- Primarily affects generated valid usage statements.
- """
-
- return 'slink:'
-
- @property
- def constFlagBits(self):
- """Returns True if static const flag bits should be generated, False if an enumerated type should be generated."""
- return False
-
- @property
- def structtype_member_name(self):
- """Return name of the structure type member"""
- return 'sType'
-
- @property
- def nextpointer_member_name(self):
- """Return name of the structure pointer chain member"""
- return 'pNext'
-
- @property
- def valid_pointer_prefix(self):
- """Return prefix to pointers which must themselves be valid"""
- return 'valid'
-
- def is_structure_type_member(self, paramtype, paramname):
- """Determine if member type and name match the structure type member."""
- return paramtype == 'VkStructureType' and paramname == self.structtype_member_name
-
- def is_nextpointer_member(self, paramtype, paramname):
- """Determine if member type and name match the next pointer chain member."""
- return paramtype == 'void' and paramname == self.nextpointer_member_name
-
- def generate_structure_type_from_name(self, structname):
- """Generate a structure type name, like VK_STRUCTURE_TYPE_CREATE_INSTANCE_INFO"""
-
- structure_type_parts = []
- # Tokenize into "words"
- for elem in MAIN_RE.findall(structname):
- word = elem[0]
- if word == 'Vk':
- structure_type_parts.append('VK_STRUCTURE_TYPE')
- else:
- structure_type_parts.append(word.upper())
- name = '_'.join(structure_type_parts)
-
- # The simple-minded rules need modification for some structure names
- subpats = [
- [ r'_H_(26[45])_', r'_H\1_' ],
- [ r'_VULKAN_([0-9])([0-9])_', r'_VULKAN_\1_\2_' ],
- [ r'_DIRECT_FB_', r'_DIRECTFB_' ],
- ]
-
- for subpat in subpats:
- name = re.sub(subpat[0], subpat[1], name)
- return name
-
- @property
- def warning_comment(self):
- """Return warning comment to be placed in header of generated Asciidoctor files"""
- return '// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry'
-
- @property
- def file_suffix(self):
- """Return suffix of generated Asciidoctor files"""
- return '.txt'
-
- def api_name(self, spectype='api'):
- """Return API or specification name for citations in ref pages.ref
- pages should link to for
-
- spectype is the spec this refpage is for: 'api' is the Vulkan API
- Specification. Defaults to 'api'. If an unrecognized spectype is
- given, returns None.
- """
- if spectype == 'api' or spectype is None:
- return 'Vulkan'
- else:
- return None
-
- @property
- def api_prefix(self):
- """Return API token prefix"""
- return 'VK_'
-
- @property
- def write_contacts(self):
- """Return whether contact list 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 member_used_for_unique_vuid(self):
- """Return the member name used in the VUID-...-...-unique ID."""
- return self.structtype_member_name
-
- def is_externsync_command(self, protoname):
- """Returns True if the protoname element is an API command requiring
- external synchronization
- """
- return protoname is not None and 'vkCmd' in protoname
-
- def is_api_name(self, name):
- """Returns True if name is in the reserved API namespace.
- For Vulkan, these are names with a case-insensitive 'vk' prefix, or
- a 'PFN_vk' function pointer type prefix.
- """
- return name[0:2].lower() == 'vk' or name[0:6] == 'PFN_vk'
-
- 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://www.khronos.org/registry/vulkan/specs/1.3-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 'vulkan'
-
- @property
- def registry_path(self):
- """Return relpath to the default API XML registry in this project."""
- return 'xml/vk.xml'
-
- @property
- def specification_path(self):
- """Return relpath to the Asciidoctor specification sources in this project."""
- return '{generated}/meta'
-
- @property
- def special_use_section_anchor(self):
- """Return asciidoctor anchor name in the API Specification of the
- section describing extension special uses in detail."""
- return 'extendingvulkan-compatibility-specialuse'
-
- @property
- def extra_refpage_headers(self):
- """Return any extra text to add to refpage headers."""
- return 'include::{config}/attribs.txt[]'
-
- @property
- def extension_index_prefixes(self):
- """Return a list of extension prefixes used to group extension refpages."""
- return ['VK_KHR', 'VK_EXT', 'VK']
-
- @property
- def unified_flag_refpages(self):
- """Return True if Flags/FlagBits refpages are unified, False if
- they are separate.
- """
- return False
-
- @property
- def spec_reflow_path(self):
- """Return the path to the spec source folder to reflow"""
- return os.getcwd()
-
- @property
- def spec_no_reflow_dirs(self):
- """Return a set of directories not to automatically descend into
- when reflowing spec text
- """
- return ('scripts', 'style')
-
- @property
- def zero(self):
- return '`0`'
-
- def category_requires_validation(self, category):
- """Return True if the given type 'category' always requires validation.
-
- Overridden because Vulkan does not require "valid" text for basetype
- in the spec right now."""
- return category in CATEGORIES_REQUIRING_VALIDATION
-
- @property
- def should_skip_checking_codes(self):
- """Return True if more than the basic validation of return codes should
- be skipped for a command.
-
- Vulkan mostly relies on the validation layers rather than API
- builtin error checking, so these checks are not appropriate.
-
- For example, passing in a VkFormat parameter will not potentially
- generate a VK_ERROR_FORMAT_NOT_SUPPORTED code."""
-
- return True
-
- def extension_include_string(self, ext):
- """Return format string for include:: line for an extension appendix
- file. ext is an object with the following members:
- - name - extension string string
- - vendor - vendor portion of name
- - barename - remainder of name"""
-
- return 'include::{{appendices}}/{name}{suffix}[]'.format(
- name=ext.name, suffix=self.file_suffix)
-
- @property
- def refpage_generated_include_path(self):
- """Return path relative to the generated reference pages, to the
- generated API include files."""
- return "{generated}"
-
- def valid_flag_bit(self, bitpos):
- """Return True if bitpos is an allowed numeric bit position for
- an API flag bit.
-
- Vulkan uses 32 bit Vk*Flags types, and assumes C compilers may
- cause Vk*FlagBits values with bit 31 set to result in a 64 bit
- enumerated type, so disallows such flags."""
- return bitpos >= 0 and bitpos < 31