Update for Vulkan-Docs 1.3.253

This commit is contained in:
Jon Leech
2023-06-09 20:55:33 -07:00
committed by Jon Leech
parent 605dc6d3e7
commit cb71b646f1
19 changed files with 5694 additions and 1689 deletions

View File

@@ -1021,6 +1021,30 @@ class OutputGenerator:
Extend to generate as desired in your derived class."""
return
def genSyncStage(self, stageinfo):
"""Generate interface for a sync stage element.
- stageinfo - SyncStageInfo
Extend to generate as desired in your derived class."""
return
def genSyncAccess(self, accessinfo):
"""Generate interface for a sync stage element.
- accessinfo - AccessInfo
Extend to generate as desired in your derived class."""
return
def genSyncPipeline(self, pipelineinfo):
"""Generate interface for a sync stage element.
- pipelineinfo - SyncPipelineInfo
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.

View File

@@ -31,6 +31,7 @@ from generator import write
from spirvcapgenerator import SpirvCapabilityOutputGenerator
from hostsyncgenerator import HostSynchronizationOutputGenerator
from formatsgenerator import FormatsOutputGenerator
from syncgenerator import SyncOutputGenerator
from jsgenerator import JSOutputGenerator
from pygenerator import PyOutputGenerator
from rubygenerator import RubyOutputGenerator
@@ -371,6 +372,25 @@ def makeGenOpts(args):
reparentEnums = False)
]
# Used to generate various synchronization chapter tables
genOpts['syncinc'] = [
SyncOutputGenerator,
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)
]
# Platform extensions, in their own header files
# Each element of the platforms[] array defines information for
# generating a single platform:

View File

@@ -376,6 +376,28 @@ class FormatInfo(BaseInfo):
# Need to save the condition here when it is known
self.condition = condition
class SyncStageInfo(BaseInfo):
"""Registry information about <syncstage>."""
def __init__(self, elem, condition):
BaseInfo.__init__(self, elem)
# Need to save the condition here when it is known
self.condition = condition
class SyncAccessInfo(BaseInfo):
"""Registry information about <syncaccess>."""
def __init__(self, elem, condition):
BaseInfo.__init__(self, elem)
# Need to save the condition here when it is known
self.condition = condition
class SyncPipelineInfo(BaseInfo):
"""Registry information about <syncpipeline>."""
def __init__(self, elem):
BaseInfo.__init__(self, elem)
class Registry:
"""Object representing an API registry, loaded from an XML file."""
@@ -432,6 +454,15 @@ class Registry:
self.formatsdict = {}
"dictionary of FeatureInfo objects for `<format>` elements keyed by VkFormat name"
self.syncstagedict = {}
"dictionary of Sync*Info objects for `<syncstage>` elements keyed by VkPipelineStageFlagBits2 name"
self.syncaccessdict = {}
"dictionary of Sync*Info objects for `<syncaccess>` elements keyed by VkAccessFlagBits2 name"
self.syncpipelinedict = {}
"dictionary of Sync*Info objects for `<syncpipeline>` elements keyed by pipeline type name"
self.emitFeatures = False
"""True to actually emit features for a version / extension,
or False to just treat them as emitted"""
@@ -477,10 +508,10 @@ class Registry:
Intended for internal use only.
- elem - `<type>`/`<enums>`/`<enum>`/`<command>`/`<feature>`/`<extension>`/`<spirvextension>`/`<spirvcapability>`/`<format>` Element
- info - corresponding {Type|Group|Enum|Cmd|Feature|Spirv|Format}Info object
- infoName - 'type' / 'group' / 'enum' / 'command' / 'feature' / 'extension' / 'spirvextension' / 'spirvcapability' / 'format'
- dictionary - self.{type|group|enum|cmd|api|ext|format|spirvext|spirvcap}dict
- elem - `<type>`/`<enums>`/`<enum>`/`<command>`/`<feature>`/`<extension>`/`<spirvextension>`/`<spirvcapability>`/`<format>`/`<syncstage>`/`<syncaccess>`/`<syncpipeline>` Element
- info - corresponding {Type|Group|Enum|Cmd|Feature|Spirv|Format|SyncStage|SyncAccess|SyncPipeline}Info object
- infoName - 'type' / 'group' / 'enum' / 'command' / 'feature' / 'extension' / 'spirvextension' / 'spirvcapability' / 'format' / 'syncstage' / 'syncaccess' / 'syncpipeline'
- dictionary - self.{type|group|enum|cmd|api|ext|format|spirvext|spirvcap|sync}dict
The dictionary key is the element 'name' attribute."""
@@ -683,6 +714,9 @@ class Registry:
enumInfo = EnumInfo(enum)
self.addElementInfo(enum, enumInfo, 'enum', self.enumdict)
sync_pipeline_stage_condition = dict()
sync_access_condition = dict()
self.extensions = self.reg.findall('extensions/extension')
self.extdict = {}
for feature in self.extensions:
@@ -730,6 +764,25 @@ class Registry:
format_condition[format_name] += "," + featureInfo.name
else:
format_condition[format_name] = featureInfo.name
elif groupName == "VkPipelineStageFlagBits2":
stage_flag = enum.get('name')
if enum.get('alias'):
stage_flag = enum.get('alias')
featureName = elem.get('depends') if elem.get('depends') is not None else featureInfo.name
if stage_flag in sync_pipeline_stage_condition:
sync_pipeline_stage_condition[stage_flag] += "," + featureName
else:
sync_pipeline_stage_condition[stage_flag] = featureName
elif groupName == "VkAccessFlagBits2":
access_flag = enum.get('name')
if enum.get('alias'):
access_flag = enum.get('alias')
featureName = elem.get('depends') if elem.get('depends') is not None else featureInfo.name
if access_flag in sync_access_condition:
sync_access_condition[access_flag] += "," + featureName
else:
sync_access_condition[access_flag] = featureName
addEnumInfo = True
elif enum.get('value') or enum.get('bitpos') or enum.get('alias'):
# self.gen.logMsg('diag', 'Adding extension constant "enum"',
@@ -756,6 +809,26 @@ class Registry:
formatInfo = FormatInfo(format, condition)
self.addElementInfo(format, formatInfo, 'format', self.formatsdict)
for stage in self.reg.findall('sync/syncstage'):
condition = None
stage_flag = stage.get('name')
if stage_flag in sync_pipeline_stage_condition:
condition = sync_pipeline_stage_condition[stage_flag]
syncInfo = SyncStageInfo(stage, condition)
self.addElementInfo(stage, syncInfo, 'syncstage', self.syncstagedict)
for access in self.reg.findall('sync/syncaccess'):
condition = None
access_flag = access.get('name')
if access_flag in sync_access_condition:
condition = sync_access_condition[access_flag]
syncInfo = SyncAccessInfo(access, condition)
self.addElementInfo(access, syncInfo, 'syncaccess', self.syncaccessdict)
for pipeline in self.reg.findall('sync/syncpipeline'):
syncInfo = SyncPipelineInfo(pipeline)
self.addElementInfo(pipeline, syncInfo, 'syncpipeline', self.syncpipelinedict)
def dumpReg(self, maxlen=120, filehandle=sys.stdout):
"""Dump all the dictionaries constructed from the Registry object.
@@ -1440,6 +1513,18 @@ class Registry:
genProc = self.gen.genFormat
genProc(format, name, alias)
def generateSyncStage(self, sync):
genProc = self.gen.genSyncStage
genProc(sync)
def generateSyncAccess(self, sync):
genProc = self.gen.genSyncAccess
genProc(sync)
def generateSyncPipeline(self, sync):
genProc = self.gen.genSyncPipeline
genProc(sync)
def tagValidExtensionStructs(self):
"""Construct a "validextensionstructs" list for parent structures
based on "structextends" tags in child structures.
@@ -1664,6 +1749,12 @@ class Registry:
self.generateSpirv(s, self.spirvcapdict)
for s in formats:
self.generateFormat(s, self.formatsdict)
for s in self.syncstagedict:
self.generateSyncStage(self.syncstagedict[s])
for s in self.syncaccessdict:
self.generateSyncAccess(self.syncaccessdict[s])
for s in self.syncpipelinedict:
self.generateSyncPipeline(self.syncpipelinedict[s])
self.gen.endFile()
def apiReset(self):

View File

@@ -1,9 +1,9 @@
{
"version info": {
"schema version": 2,
"api version": "1.3.252",
"comment": "from git branch: github-main commit: 5718db0a370b5bd91e6cf2268a3dc2af9cfc15d1",
"date": "2023-06-02 12:04:26Z"
"api version": "1.3.253",
"comment": "from git branch: github-main commit: 45c0a582bbff022efc3b8c8019f94256b64f54af",
"date": "2023-06-10 02:50:38Z"
},
"validation": {
"vkGetInstanceProcAddr": {
@@ -13694,7 +13694,15 @@
},
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-Input-08733",
"text": " If the pipeline requires <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a> and <code>pVertexInputState</code> is not dynamic, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same numeric type as the matching location in <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>"
"text": " If the pipeline requires <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a> and <code>pVertexInputState</code> is not dynamic, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>format</code>"
},
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08929",
"text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a> and <code>pVertexInputState</code> is not dynamic, and <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>format</code> has a 64-bit component, then the scalar width associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit"
},
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08930",
"text": " If the pipeline is being created with <a href=\"#pipelines-graphics-subsets-vertex-input\">vertex input state</a> and <code>pVertexInputState</code> is not dynamic, and the scalar width associated with a <code>Location</code> decorated <code>Input</code> variable in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> is 64-bit, then the corresponding <a href=\"#VkVertexInputAttributeDescription\">VkVertexInputAttributeDescription</a>::<code>format</code> <strong class=\"purple\">must</strong> have a 64-bit component"
},
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02098",
@@ -20346,18 +20354,10 @@
"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"
@@ -20491,14 +20491,24 @@
"text": " If <code>image</code> was created with <code>VK_IMAGE_TYPE_3D</code> and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> then <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> <strong class=\"purple\">must</strong> not contain any of <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, and <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>"
}
],
"(VK_NV_linear_color_attachment)": [
"!(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-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-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"
"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>"
}
],
"(VK_NV_linear_color_attachment)": [
{
"vuid": "VUID-VkImageViewCreateInfo-usage-08931",
"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> or <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
},
{
"vuid": "VUID-VkImageViewCreateInfo-usage-08932",
"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>, <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code> or, <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>"
}
],
"(VK_EXT_fragment_density_map)": [
@@ -21204,7 +21214,7 @@
"(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"
"text": " The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled"
},
{
"vuid": "VUID-vkCreateAccelerationStructureKHR-deviceAddress-03488",
@@ -21285,12 +21295,12 @@
],
"(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-createFlags-04954",
"text": " If <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code> is set in <code>createFlags</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>"
"vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-04955",
"text": " If any geometry includes <code>VkAccelerationStructureGeometryMotionTrianglesDataNV</code> then <code>createFlags</code> <strong class=\"purple\">must</strong> contain <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code>"
}
],
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_EXT_descriptor_buffer)": [
@@ -21319,8 +21329,8 @@
"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-accelerationStructure-08933",
"text": " The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled"
},
{
"vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-device-03618",
@@ -21522,6 +21532,10 @@
},
"vkDestroyAccelerationStructureKHR": {
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
{
"vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-08934",
"text": " The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled"
},
{
"vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02442",
"text": " All submitted commands that refer to <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have completed execution"
@@ -21722,6 +21736,10 @@
},
"vkGetAccelerationStructureDeviceAddressKHR": {
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
{
"vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-accelerationStructure-08935",
"text": " The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled"
},
{
"vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504",
"text": " If <code>device</code> was created with multiple physical devices, then the <a href=\"#features-bufferDeviceAddressMultiDevice\"><code>bufferDeviceAddressMultiDevice</code></a> feature <strong class=\"purple\">must</strong> be enabled"
@@ -36614,7 +36632,15 @@
},
{
"vuid": "VUID-vkCmdDraw-Input-08734",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same numeric type as the matching location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>"
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>"
},
{
"vuid": "VUID-vkCmdDraw-format-08936",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a 64-bit component, then the scalar width associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit"
},
{
"vuid": "VUID-vkCmdDraw-format-08937",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and the scalar width associated with a <code>Location</code> decorated <code>Input</code> variable in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> is 64-bit, then the corresponding <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a 64-bit component"
}
],
"(VK_EXT_extended_dynamic_state2)": [
@@ -38254,7 +38280,15 @@
},
{
"vuid": "VUID-vkCmdDrawIndexed-Input-08734",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same numeric type as the matching location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>"
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexed-format-08936",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a 64-bit component, then the scalar width associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit"
},
{
"vuid": "VUID-vkCmdDrawIndexed-format-08937",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and the scalar width associated with a <code>Location</code> decorated <code>Input</code> variable in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> is 64-bit, then the corresponding <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a 64-bit component"
}
],
"(VK_EXT_extended_dynamic_state2)": [
@@ -39902,7 +39936,15 @@
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-Input-08734",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same numeric type as the matching location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>"
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-format-08936",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a 64-bit component, then the scalar width associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-format-08937",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and the scalar width associated with a <code>Location</code> decorated <code>Input</code> variable in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> is 64-bit, then the corresponding <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a 64-bit component"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state2)": [
@@ -41562,7 +41604,15 @@
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-Input-08734",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same numeric type as the matching location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>"
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-format-08936",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a 64-bit component, then the scalar width associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-format-08937",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and the scalar width associated with a <code>Location</code> decorated <code>Input</code> variable in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> is 64-bit, then the corresponding <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a 64-bit component"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state2)": [
@@ -43224,7 +43274,15 @@
},
{
"vuid": "VUID-vkCmdDrawIndirect-Input-08734",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same numeric type as the matching location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>"
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirect-format-08936",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a 64-bit component, then the scalar width associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit"
},
{
"vuid": "VUID-vkCmdDrawIndirect-format-08937",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and the scalar width associated with a <code>Location</code> decorated <code>Input</code> variable in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> is 64-bit, then the corresponding <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a 64-bit component"
}
],
"(VK_EXT_extended_dynamic_state2)": [
@@ -44918,7 +44976,15 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-Input-08734",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same numeric type as the matching location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>"
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-format-08936",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a 64-bit component, then the scalar width associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-format-08937",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and the scalar width associated with a <code>Location</code> decorated <code>Input</code> variable in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> is 64-bit, then the corresponding <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a 64-bit component"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state2)": [
@@ -46594,7 +46660,15 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-Input-08734",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same numeric type as the matching location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>"
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-format-08936",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a 64-bit component, then the scalar width associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-format-08937",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and the scalar width associated with a <code>Location</code> decorated <code>Input</code> variable in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> is 64-bit, then the corresponding <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a 64-bit component"
}
],
"(VK_EXT_extended_dynamic_state2)": [
@@ -48296,7 +48370,15 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-Input-08734",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same numeric type as the matching location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>"
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-format-08936",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a 64-bit component, then the scalar width associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-format-08937",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and the scalar width associated with a <code>Location</code> decorated <code>Input</code> variable in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> is 64-bit, then the corresponding <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a 64-bit component"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state2)": [
@@ -49956,7 +50038,15 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-Input-08734",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same numeric type as the matching location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>"
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-format-08936",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a 64-bit component, then the scalar width associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-format-08937",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and the scalar width associated with a <code>Location</code> decorated <code>Input</code> variable in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> is 64-bit, then the corresponding <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a 64-bit component"
}
],
"(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state2)": [
@@ -70812,7 +70902,15 @@
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-Input-08734",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then all variables with the <code>Input</code> storage class decorated with <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same numeric type as the matching location in <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>"
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then the numeric type associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be the same as <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code>"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-format-08936",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> has a 64-bit component, then the scalar width associated with all <code>Input</code> variables of the corresponding <code>Location</code> in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> <strong class=\"purple\">must</strong> be 64-bit"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-format-08937",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, and the scalar width associated with a <code>Location</code> decorated <code>Input</code> variable in the <code>Vertex</code> {ExecutionModel} <code>OpEntryPoint</code> is 64-bit, then the corresponding <a href=\"#VkVertexInputAttributeDescription2EXT\">VkVertexInputAttributeDescription2EXT</a>::<code>format</code> <strong class=\"purple\">must</strong> have a 64-bit component"
}
],
"(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state2)": [
@@ -74890,6 +74988,10 @@
},
"vkCmdBuildAccelerationStructuresKHR": {
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
{
"vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-accelerationStructure-08923",
"text": " The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled"
},
{
"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"
@@ -75178,6 +75280,10 @@
},
"vkCmdBuildAccelerationStructuresIndirectKHR": {
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
{
"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-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"
@@ -75446,10 +75552,6 @@
"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"
@@ -75870,6 +75972,10 @@
},
"vkCmdWriteAccelerationStructuresPropertiesKHR": {
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
{
"vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructure-08924",
"text": " The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled"
},
{
"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>"
@@ -76086,6 +76192,10 @@
},
"vkCmdCopyAccelerationStructureKHR": {
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [
{
"vuid": "VUID-vkCmdCopyAccelerationStructureKHR-accelerationStructure-08925",
"text": " The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled"
},
{
"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"
@@ -76178,6 +76288,10 @@
},
"vkCmdCopyAccelerationStructureToMemoryKHR": {
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
{
"vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-accelerationStructure-08926",
"text": " The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled"
},
{
"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"
@@ -76254,6 +76368,10 @@
},
"vkCmdCopyMemoryToAccelerationStructureKHR": {
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
{
"vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-accelerationStructure-08927",
"text": " The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled"
},
{
"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"
@@ -76335,8 +76453,8 @@
"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-accelerationStructure-08928",
"text": " The <a href=\"#features-accelerationStructure\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructure</code></a> feature <strong class=\"purple\">must</strong> be enabled"
},
{
"vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameter",
@@ -76370,6 +76488,10 @@
},
"vkBuildAccelerationStructuresKHR": {
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
{
"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-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"
@@ -76530,10 +76652,6 @@
"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"
@@ -76614,6 +76732,10 @@
},
"vkCopyAccelerationStructureKHR": {
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
{
"vuid": "VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582",
"text": " The <a href=\"#features-accelerationStructureHostCommands\"><code>VkPhysicalDeviceAccelerationStructureFeaturesKHR</code>::<code>accelerationStructureHostCommands</code></a>"
},
{
"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"
@@ -76628,11 +76750,7 @@
},
{
"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"
"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 feature <strong class=\"purple\">must</strong> be enabled"
},
{
"vuid": "VUID-vkCopyAccelerationStructureKHR-device-parameter",
@@ -76664,6 +76782,10 @@
},
"vkCopyMemoryToAccelerationStructureKHR": {
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
{
"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-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"
@@ -76684,10 +76806,6 @@
"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"
@@ -76714,6 +76832,10 @@
},
"vkCopyAccelerationStructureToMemoryKHR": {
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
{
"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-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"
@@ -76734,10 +76856,6 @@
"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"
@@ -76764,6 +76882,10 @@
},
"vkWriteAccelerationStructuresPropertiesKHR": {
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [
{
"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-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"
@@ -76796,10 +76918,6 @@
"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"
@@ -80204,7 +80322,11 @@
},
{
"vuid": "VUID-VkVideoSessionCreateInfoKHR-pNext-pNext",
"text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
"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=\"#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",
@@ -80420,7 +80542,7 @@
},
{
"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=\"#VkVideoDecodeH264SessionParametersCreateInfoKHR\">VkVideoDecodeH264SessionParametersCreateInfoKHR</a>, <a href=\"#VkVideoDecodeH265SessionParametersCreateInfoKHR\">VkVideoDecodeH265SessionParametersCreateInfoKHR</a>, <a href=\"#VkVideoEncodeH264SessionParametersCreateInfoEXT\">VkVideoEncodeH264SessionParametersCreateInfoEXT</a>, or <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoEXT\">VkVideoEncodeH265SessionParametersCreateInfoEXT</a>"
"text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoDecodeH264SessionParametersCreateInfoKHR\">VkVideoDecodeH264SessionParametersCreateInfoKHR</a>, <a href=\"#VkVideoDecodeH265SessionParametersCreateInfoKHR\">VkVideoDecodeH265SessionParametersCreateInfoKHR</a>, <a href=\"#VkVideoEncodeH264SessionParametersCreateInfoEXT\">VkVideoEncodeH264SessionParametersCreateInfoEXT</a>, <a href=\"#VkVideoEncodeH265SessionParametersCreateInfoEXT\">VkVideoEncodeH265SessionParametersCreateInfoEXT</a>, or <a href=\"#VkVideoEncodeQualityLevelInfoKHR\">VkVideoEncodeQualityLevelInfoKHR</a>"
},
{
"vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-sType-unique",
@@ -80732,7 +80854,11 @@
},
{
"vuid": "VUID-VkVideoBeginCodingInfoKHR-pNext-pNext",
"text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
"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=\"#VkVideoEncodeH264GopRemainingFrameInfoEXT\">VkVideoEncodeH264GopRemainingFrameInfoEXT</a>, <a href=\"#VkVideoEncodeH264RateControlInfoEXT\">VkVideoEncodeH264RateControlInfoEXT</a>, <a href=\"#VkVideoEncodeH265GopRemainingFrameInfoEXT\">VkVideoEncodeH265GopRemainingFrameInfoEXT</a>, <a href=\"#VkVideoEncodeH265RateControlInfoEXT\">VkVideoEncodeH265RateControlInfoEXT</a>, or <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>"
},
{
"vuid": "VUID-VkVideoBeginCodingInfoKHR-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-VkVideoBeginCodingInfoKHR-flags-zerobitmask",
@@ -80909,14 +81035,6 @@
{
"vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07018",
"text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> structure"
},
{
"vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07019",
"text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeRateControlLayerInfoKHR\">VkVideoEncodeRateControlLayerInfoKHR</a> structure"
},
{
"vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07020",
"text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR</code>, then it <strong class=\"purple\">must</strong> not also include <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR</code>"
}
],
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
@@ -80927,10 +81045,6 @@
{
"vuid": "VUID-VkVideoCodingControlInfoKHR-pNext-07022",
"text": " If the <code>pNext</code> chain includes a <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>, and <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>"
},
{
"vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07023",
"text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR</code> and the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH264RateControlLayerInfoEXT\">VkVideoEncodeH264RateControlLayerInfoEXT</a> structure"
}
],
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
@@ -80941,10 +81055,6 @@
{
"vuid": "VUID-VkVideoCodingControlInfoKHR-pNext-07025",
"text": " If the <code>pNext</code> chain includes a <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>, and <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>"
},
{
"vuid": "VUID-VkVideoCodingControlInfoKHR-flags-07026",
"text": " If <code>flags</code> includes <code>VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR</code> and the bound video session was created with the video codec operation <code>VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkVideoEncodeH265RateControlLayerInfoEXT\">VkVideoEncodeH265RateControlLayerInfoEXT</a> structure"
}
],
"(VK_KHR_video_queue)": [
@@ -80954,7 +81064,7 @@
},
{
"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=\"#VkVideoEncodeH264RateControlInfoEXT\">VkVideoEncodeH264RateControlInfoEXT</a>, <a href=\"#VkVideoEncodeH264RateControlLayerInfoEXT\">VkVideoEncodeH264RateControlLayerInfoEXT</a>, <a href=\"#VkVideoEncodeH265RateControlInfoEXT\">VkVideoEncodeH265RateControlInfoEXT</a>, <a href=\"#VkVideoEncodeH265RateControlLayerInfoEXT\">VkVideoEncodeH265RateControlLayerInfoEXT</a>, <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>, or <a href=\"#VkVideoEncodeRateControlLayerInfoKHR\">VkVideoEncodeRateControlLayerInfoKHR</a>"
"text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeH264RateControlInfoEXT\">VkVideoEncodeH264RateControlInfoEXT</a>, <a href=\"#VkVideoEncodeH265RateControlInfoEXT\">VkVideoEncodeH265RateControlInfoEXT</a>, <a href=\"#VkVideoEncodeQualityLevelInfoKHR\">VkVideoEncodeQualityLevelInfoKHR</a>, or <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>"
},
{
"vuid": "VUID-VkVideoCodingControlInfoKHR-sType-unique",
@@ -81478,6 +81588,122 @@
}
]
},
"vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR": {
"(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
{
"vuid": "VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-physicalDevice-parameter",
"text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
},
{
"vuid": "VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-pQualityLevelInfo-parameter",
"text": " <code>pQualityLevelInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR\">VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR</a> structure"
},
{
"vuid": "VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-pQualityLevelProperties-parameter",
"text": " <code>pQualityLevelProperties</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkVideoEncodeQualityLevelPropertiesKHR\">VkVideoEncodeQualityLevelPropertiesKHR</a> structure"
}
]
},
"VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR": {
"(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
{
"vuid": "VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR</code>"
},
{
"vuid": "VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pNext-pNext",
"text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
},
{
"vuid": "VUID-VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR-pVideoProfile-parameter",
"text": " <code>pVideoProfile</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoProfileInfoKHR\">VkVideoProfileInfoKHR</a> structure"
}
]
},
"VkVideoEncodeQualityLevelPropertiesKHR": {
"(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
{
"vuid": "VUID-VkVideoEncodeQualityLevelPropertiesKHR-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR</code>"
},
{
"vuid": "VUID-VkVideoEncodeQualityLevelPropertiesKHR-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=\"#VkVideoEncodeH264QualityLevelPropertiesEXT\">VkVideoEncodeH264QualityLevelPropertiesEXT</a> or <a href=\"#VkVideoEncodeH265QualityLevelPropertiesEXT\">VkVideoEncodeH265QualityLevelPropertiesEXT</a>"
},
{
"vuid": "VUID-VkVideoEncodeQualityLevelPropertiesKHR-sType-unique",
"text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
}
]
},
"VkVideoEncodeQualityLevelInfoKHR": {
"(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
{
"vuid": "VUID-VkVideoEncodeQualityLevelInfoKHR-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR</code>"
}
]
},
"vkGetEncodedVideoSessionParametersKHR": {
"(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
{
"vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
{
"vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pVideoSessionParametersInfo-parameter",
"text": " <code>pVideoSessionParametersInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkVideoEncodeSessionParametersGetInfoKHR\">VkVideoEncodeSessionParametersGetInfoKHR</a> structure"
},
{
"vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pFeedbackInfo-parameter",
"text": " If <code>pFeedbackInfo</code> is not <code>NULL</code>, <code>pFeedbackInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkVideoEncodeSessionParametersFeedbackInfoKHR\">VkVideoEncodeSessionParametersFeedbackInfoKHR</a> structure"
},
{
"vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-pDataSize-parameter",
"text": " <code>pDataSize</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>size_t</code> value"
},
{
"vuid": "VUID-vkGetEncodedVideoSessionParametersKHR-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"
}
]
},
"VkVideoEncodeSessionParametersGetInfoKHR": {
"(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
{
"vuid": "VUID-VkVideoEncodeSessionParametersGetInfoKHR-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR</code>"
},
{
"vuid": "VUID-VkVideoEncodeSessionParametersGetInfoKHR-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=\"#VkVideoEncodeH264SessionParametersGetInfoEXT\">VkVideoEncodeH264SessionParametersGetInfoEXT</a> or <a href=\"#VkVideoEncodeH265SessionParametersGetInfoEXT\">VkVideoEncodeH265SessionParametersGetInfoEXT</a>"
},
{
"vuid": "VUID-VkVideoEncodeSessionParametersGetInfoKHR-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-VkVideoEncodeSessionParametersGetInfoKHR-videoSessionParameters-parameter",
"text": " <code>videoSessionParameters</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoSessionParametersKHR\">VkVideoSessionParametersKHR</a> handle"
}
]
},
"VkVideoEncodeSessionParametersFeedbackInfoKHR": {
"(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
{
"vuid": "VUID-VkVideoEncodeSessionParametersFeedbackInfoKHR-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR</code>"
},
{
"vuid": "VUID-VkVideoEncodeSessionParametersFeedbackInfoKHR-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=\"#VkVideoEncodeH264SessionParametersFeedbackInfoEXT\">VkVideoEncodeH264SessionParametersFeedbackInfoEXT</a> or <a href=\"#VkVideoEncodeH265SessionParametersFeedbackInfoEXT\">VkVideoEncodeH265SessionParametersFeedbackInfoEXT</a>"
},
{
"vuid": "VUID-VkVideoEncodeSessionParametersFeedbackInfoKHR-sType-unique",
"text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
}
]
},
"vkCmdEncodeVideoKHR": {
"(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)": [
{
@@ -81526,7 +81752,7 @@
},
{
"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=\"#VkVideoEncodeH264VclFrameInfoEXT\">VkVideoEncodeH264VclFrameInfoEXT</a> or <a href=\"#VkVideoEncodeH265VclFrameInfoEXT\">VkVideoEncodeH265VclFrameInfoEXT</a>"
"text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeH264PictureInfoEXT\">VkVideoEncodeH264PictureInfoEXT</a> or <a href=\"#VkVideoEncodeH265PictureInfoEXT\">VkVideoEncodeH265PictureInfoEXT</a>"
},
{
"vuid": "VUID-VkVideoEncodeInfoKHR-sType-unique",
@@ -81579,6 +81805,14 @@
{
"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>"
},
{
"vuid": "VUID-VkVideoEncodeRateControlLayerInfoKHR-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=\"#VkVideoEncodeH264RateControlLayerInfoEXT\">VkVideoEncodeH264RateControlLayerInfoEXT</a> or <a href=\"#VkVideoEncodeH265RateControlLayerInfoEXT\">VkVideoEncodeH265RateControlLayerInfoEXT</a>"
},
{
"vuid": "VUID-VkVideoEncodeRateControlLayerInfoKHR-sType-unique",
"text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
}
]
},
@@ -81598,6 +81832,22 @@
}
]
},
"VkVideoEncodeH264QualityLevelPropertiesEXT": {
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
{
"vuid": "VUID-VkVideoEncodeH264QualityLevelPropertiesEXT-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_EXT</code>"
}
]
},
"VkVideoEncodeH264SessionCreateInfoEXT": {
"(VK_KHR_video_queue)+(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>"
}
]
},
"VkVideoEncodeH264SessionParametersCreateInfoEXT": {
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
{
@@ -81662,26 +81912,38 @@
}
]
},
"VkVideoEncodeH264VclFrameInfoEXT": {
"VkVideoEncodeH264SessionParametersGetInfoEXT": {
"(VK_KHR_video_queue)+(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-VkVideoEncodeH264SessionParametersGetInfoEXT-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_EXT</code>"
}
]
},
"VkVideoEncodeH264SessionParametersFeedbackInfoEXT": {
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
{
"vuid": "VUID-VkVideoEncodeH264SessionParametersFeedbackInfoEXT-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_EXT</code>"
}
]
},
"VkVideoEncodeH264PictureInfoEXT": {
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
{
"vuid": "VUID-VkVideoEncodeH264PictureInfoEXT-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_EXT</code>"
},
{
"vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-pStdReferenceFinalLists-parameter",
"text": " If <code>pStdReferenceFinalLists</code> is not <code>NULL</code>, <code>pStdReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264ReferenceListsInfo</code> value"
},
{
"vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-pNaluSliceEntries-parameter",
"vuid": "VUID-VkVideoEncodeH264PictureInfoEXT-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=\"#VkVideoEncodeH264NaluSliceInfoEXT\">VkVideoEncodeH264NaluSliceInfoEXT</a> structures"
},
{
"vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-pStdPictureInfo-parameter",
"vuid": "VUID-VkVideoEncodeH264PictureInfoEXT-pStdPictureInfo-parameter",
"text": " <code>pStdPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264PictureInfo</code> value"
},
{
"vuid": "VUID-VkVideoEncodeH264VclFrameInfoEXT-naluSliceEntryCount-arraylength",
"vuid": "VUID-VkVideoEncodeH264PictureInfoEXT-naluSliceEntryCount-arraylength",
"text": " <code>naluSliceEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
}
]
@@ -81696,10 +81958,6 @@
"vuid": "VUID-VkVideoEncodeH264NaluSliceInfoEXT-pNext-pNext",
"text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
},
{
"vuid": "VUID-VkVideoEncodeH264NaluSliceInfoEXT-pStdReferenceFinalLists-parameter",
"text": " If <code>pStdReferenceFinalLists</code> is not <code>NULL</code>, <code>pStdReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264ReferenceListsInfo</code> value"
},
{
"vuid": "VUID-VkVideoEncodeH264NaluSliceInfoEXT-pStdSliceHeader-parameter",
"text": " <code>pStdSliceHeader</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH264SliceHeader</code> value"
@@ -81725,29 +81983,21 @@
"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=\"#VkVideoEncodeH264RateControlStructureEXT\">VkVideoEncodeH264RateControlStructureEXT</a> value"
"vuid": "VUID-VkVideoEncodeH264RateControlInfoEXT-flags-parameter",
"text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeH264RateControlFlagBitsEXT\">VkVideoEncodeH264RateControlFlagBitsEXT</a> values"
},
{
"vuid": "VUID-VkVideoEncodeH264RateControlInfoEXT-flags-requiredbitmask",
"text": " <code>flags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
}
]
},
"VkVideoEncodeH264RateControlLayerInfoEXT": {
"(VK_KHR_video_queue)+(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_DISABLED_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_DISABLED_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"
@@ -81762,6 +82012,14 @@
}
]
},
"VkVideoEncodeH264GopRemainingFrameInfoEXT": {
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)": [
{
"vuid": "VUID-VkVideoEncodeH264GopRemainingFrameInfoEXT-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_EXT</code>"
}
]
},
"VkVideoEncodeH265ProfileInfoEXT": {
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
{
@@ -81778,6 +82036,22 @@
}
]
},
"VkVideoEncodeH265QualityLevelPropertiesEXT": {
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
{
"vuid": "VUID-VkVideoEncodeH265QualityLevelPropertiesEXT-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_EXT</code>"
}
]
},
"VkVideoEncodeH265SessionCreateInfoEXT": {
"(VK_KHR_video_queue)+(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>"
}
]
},
"VkVideoEncodeH265SessionParametersCreateInfoEXT": {
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
{
@@ -81854,26 +82128,38 @@
}
]
},
"VkVideoEncodeH265VclFrameInfoEXT": {
"VkVideoEncodeH265SessionParametersGetInfoEXT": {
"(VK_KHR_video_queue)+(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-VkVideoEncodeH265SessionParametersGetInfoEXT-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_EXT</code>"
}
]
},
"VkVideoEncodeH265SessionParametersFeedbackInfoEXT": {
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
{
"vuid": "VUID-VkVideoEncodeH265SessionParametersFeedbackInfoEXT-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_EXT</code>"
}
]
},
"VkVideoEncodeH265PictureInfoEXT": {
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
{
"vuid": "VUID-VkVideoEncodeH265PictureInfoEXT-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_EXT</code>"
},
{
"vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-pStdReferenceFinalLists-parameter",
"text": " If <code>pStdReferenceFinalLists</code> is not <code>NULL</code>, <code>pStdReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265ReferenceListsInfo</code> value"
},
{
"vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-pNaluSliceSegmentEntries-parameter",
"vuid": "VUID-VkVideoEncodeH265PictureInfoEXT-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=\"#VkVideoEncodeH265NaluSliceSegmentInfoEXT\">VkVideoEncodeH265NaluSliceSegmentInfoEXT</a> structures"
},
{
"vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-pStdPictureInfo-parameter",
"vuid": "VUID-VkVideoEncodeH265PictureInfoEXT-pStdPictureInfo-parameter",
"text": " <code>pStdPictureInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265PictureInfo</code> value"
},
{
"vuid": "VUID-VkVideoEncodeH265VclFrameInfoEXT-naluSliceSegmentEntryCount-arraylength",
"vuid": "VUID-VkVideoEncodeH265PictureInfoEXT-naluSliceSegmentEntryCount-arraylength",
"text": " <code>naluSliceSegmentEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
}
]
@@ -81888,10 +82174,6 @@
"vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pNext-pNext",
"text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
},
{
"vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pStdReferenceFinalLists-parameter",
"text": " If <code>pStdReferenceFinalLists</code> is not <code>NULL</code>, <code>pStdReferenceFinalLists</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265ReferenceListsInfo</code> value"
},
{
"vuid": "VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pStdSliceSegmentHeader-parameter",
"text": " <code>pStdSliceSegmentHeader</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>StdVideoEncodeH265SliceSegmentHeader</code> value"
@@ -81917,29 +82199,21 @@
"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=\"#VkVideoEncodeH265RateControlStructureEXT\">VkVideoEncodeH265RateControlStructureEXT</a> value"
"vuid": "VUID-VkVideoEncodeH265RateControlInfoEXT-flags-parameter",
"text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeH265RateControlFlagBitsEXT\">VkVideoEncodeH265RateControlFlagBitsEXT</a> values"
},
{
"vuid": "VUID-VkVideoEncodeH265RateControlInfoEXT-flags-requiredbitmask",
"text": " <code>flags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
}
]
},
"VkVideoEncodeH265RateControlLayerInfoEXT": {
"(VK_KHR_video_queue)+(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_DISABLED_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_DISABLED_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"
@@ -81954,6 +82228,14 @@
}
]
},
"VkVideoEncodeH265GopRemainingFrameInfoEXT": {
"(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)": [
{
"vuid": "VUID-VkVideoEncodeH265GopRemainingFrameInfoEXT-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_EXT</code>"
}
]
},
"vkGetPhysicalDeviceOpticalFlowImageFormatsNV": {
"(VK_NV_optical_flow)": [
{

View File

@@ -33,7 +33,7 @@ The current public version of video.xml is maintained in the default branch
<!-- vulkan_video_codec_h264std_encode.h macros -->
<type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.264 encode std specification version number
#define <name>VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_9</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 9)</type>
#define <name>VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_10</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 10)</type>
<!-- vulkan_video_codec_h265std_decode.h macros -->
<type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">
@@ -41,7 +41,7 @@ The current public version of video.xml is maintained in the default branch
<!-- vulkan_video_codec_h265std_encode.h macros -->
<type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.265 encode std specification version number
#define <name>VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_10</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 10)</type>
#define <name>VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_11</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 11)</type>
<!-- vulkan_video_codec_h264std.h enumerated types -->
<type name="StdVideoH264ChromaFormatIdc" category="enum"/>
@@ -225,7 +225,7 @@ The current public version of video.xml is maintained in the default branch
<type category="struct" name="StdVideoDecodeH264ReferenceInfoFlags">
<member><type>uint32_t</type> <name>top_field_flag</name> : 1<comment>Reference is used for top field reference.</comment></member>
<member><type>uint32_t</type> <name>bottom_field_flag</name> : 1<comment>Reference is used for bottom field reference.</comment></member>
<member><type>uint32_t</type> <name>used_for_long_term_reference</name> : 1<comment>: A picture that is marked as "used for long-term reference", derived binary value from clause 8.2.5.1 Sequence of operations for decoded reference picture marking process</comment></member>
<member><type>uint32_t</type> <name>used_for_long_term_reference</name> : 1<comment>A picture that is marked as "used for long-term reference", derived binary value from clause 8.2.5.1 Sequence of operations for decoded reference picture marking process</comment></member>
<member><type>uint32_t</type> <name>is_non_existing</name> : 1<comment>Must be handled in accordance with 8.2.5.2: Decoding process for gaps in frame_num</comment></member>
</type>
<type category="struct" name="StdVideoDecodeH264ReferenceInfo">
@@ -267,21 +267,24 @@ The current public version of video.xml is maintained in the default branch
<type category="struct" name="StdVideoEncodeH264SliceHeaderFlags">
<member><type>uint32_t</type> <name>direct_spatial_mv_pred_flag</name> : 1</member>
<member><type>uint32_t</type> <name>num_ref_idx_active_override_flag</name> : 1</member>
<member><type>uint32_t</type> <name>no_output_of_prior_pics_flag</name> : 1</member>
<member><type>uint32_t</type> <name>adaptive_ref_pic_marking_mode_flag</name> : 1</member>
<member><type>uint32_t</type> <name>no_prior_references_available_flag</name> : 1</member>
<member><type>uint32_t</type> <name>reserved</name> : 30</member>
</type>
<type category="struct" name="StdVideoEncodeH264PictureInfoFlags">
<member><type>uint32_t</type> <name>idr_flag</name> : 1</member>
<member><type>uint32_t</type> <name>is_reference_flag</name> : 1</member>
<member><type>uint32_t</type> <name>used_for_long_term_reference</name> : 1<comment>: A picture that is marked as "used for long-term reference", derived binary value from clause 8.2.5.1 Sequence of operations for decoded reference picture marking process</comment></member>
<member><type>uint32_t</type> <name>IdrPicFlag</name> : 1</member>
<member><type>uint32_t</type> <name>is_reference</name> : 1<comment>A reference picture, i.e. a picture with nal_ref_idc not equal to 0, as defined in clause 3.136</comment></member>
<member><type>uint32_t</type> <name>no_output_of_prior_pics_flag</name> : 1</member>
<member><type>uint32_t</type> <name>long_term_reference_flag</name> : 1</member>
<member><type>uint32_t</type> <name>adaptive_ref_pic_marking_mode_flag</name> : 1</member>
<member><type>uint32_t</type> <name>reserved</name> : 27</member>
</type>
<type category="struct" name="StdVideoEncodeH264ReferenceInfoFlags">
<member><type>uint32_t</type> <name>used_for_long_term_reference</name> : 1<comment>: A picture that is marked as "used for long-term reference", derived binary value from clause 8.2.5.1 Sequence of operations for decoded reference picture marking process</comment></member>
<member><type>uint32_t</type> <name>used_for_long_term_reference</name> : 1<comment>A picture that is marked as "used for long-term reference", derived binary value from clause 8.2.5.1 Sequence of operations for decoded reference picture marking process</comment></member>
<member><type>uint32_t</type> <name>reserved</name> : 31</member>
</type>
<type category="struct" name="StdVideoEncodeH264ReferenceListsInfoFlags">
<member><type>uint32_t</type> <name>ref_pic_list_modification_flag_l0</name> : 1</member>
<member><type>uint32_t</type> <name>ref_pic_list_modification_flag_l1</name> : 1</member>
<member><type>uint32_t</type> <name>reserved</name> : 30</member>
</type>
<type category="struct" name="StdVideoEncodeH264RefListModEntry">
<member><type>StdVideoH264ModificationOfPicNumsIdc</type> <name>modification_of_pic_nums_idc</name></member>
@@ -297,14 +300,14 @@ The current public version of video.xml is maintained in the default branch
</type>
<type category="struct" name="StdVideoEncodeH264ReferenceListsInfo">
<member><type>StdVideoEncodeH264ReferenceListsInfoFlags</type> <name>flags</name></member>
<member><type>uint8_t</type> <name>refPicList0EntryCount</name><comment>num_ref_idx_l0_active_minus1 plus one</comment></member>
<member><type>uint8_t</type> <name>refPicList1EntryCount</name><comment>num_ref_idx_l1_active_minus1 plus one</comment></member>
<member><type>uint8_t</type> <name>num_ref_idx_l0_active_minus1</name></member>
<member><type>uint8_t</type> <name>num_ref_idx_l1_active_minus1</name></member>
<member><type>uint8_t</type> <name>RefPicList0</name>[STD_VIDEO_H264_MAX_NUM_LIST_REF]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex</comment></member>
<member><type>uint8_t</type> <name>RefPicList1</name>[STD_VIDEO_H264_MAX_NUM_LIST_REF]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex</comment></member>
<member><type>uint8_t</type> <name>refList0ModOpCount</name></member>
<member><type>uint8_t</type> <name>refList1ModOpCount</name></member>
<member><type>uint8_t</type> <name>refPicMarkingOpCount</name></member>
<member><type>uint8_t</type> <name>reserved1</name>[7]<comment>Reserved for future use and must be initialized with 0.</comment></member>
<member>const <type>uint8_t</type>* <name>pRefPicList0Entries</name><comment>Must be a valid pointer to an array with size refPicList0EntryCount and contains the slotIndex values corresponding to the RefPicList0 as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex.</comment></member>
<member>const <type>uint8_t</type>* <name>pRefPicList1Entries</name><comment>Must be a valid pointer to an array with size refPicList1EntryCount and contains the slotIndex values corresponding to the RefPicList1 as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex.</comment></member>
<member>const <type>StdVideoEncodeH264RefListModEntry</type>* <name>pRefList0ModOperations</name><comment>Must be a valid pointer to an array with size refList0ModOpCount if ref_pic_list_modification_flag_l0 is set and contains the RefList0 modification parameters as defined in section 7.4.3.1</comment></member>
<member>const <type>StdVideoEncodeH264RefListModEntry</type>* <name>pRefList1ModOperations</name><comment>Must be a valid pointer to an array with size refList1ModOpCount if ref_pic_list_modification_flag_l1 is set and contains the RefList1 modification parameters as defined in section 7.4.3.1</comment></member>
<member>const <type>StdVideoEncodeH264RefPicMarkingEntry</type>* <name>pRefPicMarkingOperations</name><comment>Must be a valid pointer to an array with size refPicMarkingOpCount and contains the reference picture markings as defined in section 7.4.3.3</comment></member>
@@ -313,32 +316,32 @@ The current public version of video.xml is maintained in the default branch
<member><type>StdVideoEncodeH264PictureInfoFlags</type> <name>flags</name></member>
<member><type>uint8_t</type> <name>seq_parameter_set_id</name><comment>Selecting SPS id from the Sequence Parameters Set</comment></member>
<member><type>uint8_t</type> <name>pic_parameter_set_id</name><comment>Selecting PPS from the Picture Parameters for all StdVideoEncodeH264SliceHeader(s)</comment></member>
<member><type>uint16_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>StdVideoH264PictureType</type> <name>pictureType</name></member>
<member><type>uint16_t</type> <name>idr_pic_id</name></member>
<member><type>StdVideoH264PictureType</type> <name>primary_pic_type</name></member>
<member><type>uint32_t</type> <name>frame_num</name></member>
<member><type>int32_t</type> <name>PicOrderCnt</name></member>
<member><type>int32_t</type> <name>PicOrderCnt</name><comment>Picture order count, as defined in 8.2</comment></member>
<member><type>uint8_t</type> <name>temporal_id</name><comment>Temporal identifier of the picture, as defined in G.7.3.1.1 / G.7.4.1.1</comment></member>
<member><type>uint8_t</type> <name>reserved1</name>[3]<comment>Reserved for future use and must be initialized with 0.</comment></member>
<member>const <type>StdVideoEncodeH264ReferenceListsInfo</type>* <name>pRefLists</name></member>
</type>
<type category="struct" name="StdVideoEncodeH264ReferenceInfo">
<member><type>StdVideoEncodeH264ReferenceInfoFlags</type> <name>flags</name></member>
<member><type>StdVideoH264PictureType</type> <name>pictureType</name></member>
<member><type>uint32_t</type> <name>FrameNum</name></member>
<member><type>int32_t</type> <name>PicOrderCnt</name></member>
<member><type>StdVideoH264PictureType</type> <name>primary_pic_type</name></member>
<member><type>uint32_t</type> <name>FrameNum</name><comment>Frame number, as defined in 8.2</comment></member>
<member><type>int32_t</type> <name>PicOrderCnt</name><comment>Picture order count, as defined in 8.2</comment></member>
<member><type>uint16_t</type> <name>long_term_pic_num</name></member>
<member><type>uint16_t</type> <name>long_term_frame_idx</name></member>
<member><type>uint8_t</type> <name>temporal_id</name><comment>Temporal identifier of the picture, as defined in G.7.3.1.1 / G.7.4.1.1</comment></member>
</type>
<type category="struct" name="StdVideoEncodeH264SliceHeader">
<member><type>StdVideoEncodeH264SliceHeaderFlags</type> <name>flags</name></member>
<member><type>uint32_t</type> <name>first_mb_in_slice</name></member>
<member><type>StdVideoH264SliceType</type> <name>slice_type</name></member>
<member><type>uint16_t</type> <name>idr_pic_id</name></member>
<member><type>uint8_t</type> <name>num_ref_idx_l0_active_minus1</name></member>
<member><type>uint8_t</type> <name>num_ref_idx_l1_active_minus1</name></member>
<member><type>StdVideoH264CabacInitIdc</type> <name>cabac_init_idc</name></member>
<member><type>StdVideoH264DisableDeblockingFilterIdc</type> <name>disable_deblocking_filter_idc</name></member>
<member><type>int8_t</type> <name>slice_alpha_c0_offset_div2</name></member>
<member><type>int8_t</type> <name>slice_beta_offset_div2</name></member>
<member><type>uint16_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint32_t</type> <name>reserved2</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>StdVideoH264CabacInitIdc</type> <name>cabac_init_idc</name></member>
<member><type>StdVideoH264DisableDeblockingFilterIdc</type> <name>disable_deblocking_filter_idc</name></member>
<member>const <type>StdVideoEncodeH264WeightTable</type>* <name>pWeightTable</name><comment></comment></member>
</type>
@@ -740,11 +743,7 @@ The current public version of video.xml is maintained in the default branch
<type category="struct" name="StdVideoEncodeH265SliceSegmentHeaderFlags">
<member><type>uint32_t</type> <name>first_slice_segment_in_pic_flag</name> : 1</member>
<member><type>uint32_t</type> <name>no_output_of_prior_pics_flag</name> : 1</member>
<member><type>uint32_t</type> <name>dependent_slice_segment_flag</name> : 1</member>
<member><type>uint32_t</type> <name>pic_output_flag</name> : 1</member>
<member><type>uint32_t</type> <name>short_term_ref_pic_set_sps_flag</name> : 1</member>
<member><type>uint32_t</type> <name>slice_temporal_mvp_enable_flag</name> : 1</member>
<member><type>uint32_t</type> <name>slice_sao_luma_flag</name> : 1</member>
<member><type>uint32_t</type> <name>slice_sao_chroma_flag</name> : 1</member>
<member><type>uint32_t</type> <name>num_ref_idx_active_override_flag</name> : 1</member>
@@ -755,15 +754,13 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint32_t</type> <name>slice_deblocking_filter_disabled_flag</name> : 1</member>
<member><type>uint32_t</type> <name>collocated_from_l0_flag</name> : 1</member>
<member><type>uint32_t</type> <name>slice_loop_filter_across_slices_enabled_flag</name> : 1</member>
<member><type>uint32_t</type> <name>reserved</name> : 20</member>
</type>
<type category="struct" name="StdVideoEncodeH265SliceSegmentHeader">
<member><type>StdVideoEncodeH265SliceSegmentHeaderFlags</type> <name>flags</name></member>
<member><type>StdVideoH265SliceType</type> <name>slice_type</name></member>
<member><type>uint32_t</type> <name>slice_segment_address</name></member>
<member><type>uint8_t</type> <name>short_term_ref_pic_set_idx</name></member>
<member><type>uint8_t</type> <name>collocated_ref_idx</name></member>
<member><type>uint8_t</type> <name>num_ref_idx_l0_active_minus1</name><comment>[0, 14]</comment></member>
<member><type>uint8_t</type> <name>num_ref_idx_l1_active_minus1</name><comment>[0, 14]</comment></member>
<member><type>uint8_t</type> <name>MaxNumMergeCand</name></member>
<member><type>int8_t</type> <name>slice_cb_qp_offset</name><comment>[-12, 12]</comment></member>
<member><type>int8_t</type> <name>slice_cr_qp_offset</name><comment>[-12, 12]</comment></member>
@@ -772,50 +769,60 @@ The current public version of video.xml is maintained in the default branch
<member><type>int8_t</type> <name>slice_act_y_qp_offset</name></member>
<member><type>int8_t</type> <name>slice_act_cb_qp_offset</name></member>
<member><type>int8_t</type> <name>slice_act_cr_qp_offset</name></member>
<member>const <type>StdVideoH265ShortTermRefPicSet</type>*<name>pShortTermRefPicSet</name><comment>Must be a valid pointer if short_term_ref_pic_set_sps_flag is not set</comment></member>
<member>const <type>StdVideoEncodeH265SliceSegmentLongTermRefPics</type>*<name>pLongTermRefPics</name><comment>Must be a valid pointer if StdVideoH265SpsFlags:long_term_ref_pics_present_flag is set</comment></member>
<member><type>uint8_t</type> <name>reserved1</name>[3]<comment>Reserved for future use and must be initialized with 0.</comment></member>
<member>const <type>StdVideoEncodeH265WeightTable</type>* <name>pWeightTable</name><comment></comment></member>
</type>
<type category="struct" name="StdVideoEncodeH265ReferenceListsInfoFlags">
<member><type>uint32_t</type> <name>ref_pic_list_modification_flag_l0</name> : 1</member>
<member><type>uint32_t</type> <name>ref_pic_list_modification_flag_l1</name> : 1</member>
<member><type>uint32_t</type> <name>reserved</name> : 30</member>
</type>
<type category="struct" name="StdVideoEncodeH265ReferenceListsInfo">
<member><type>StdVideoEncodeH265ReferenceListsInfoFlags</type> <name>flags</name></member>
<member><type>uint8_t</type> <name>num_ref_idx_l0_active_minus1</name></member>
<member><type>uint8_t</type> <name>num_ref_idx_l1_active_minus1</name></member>
<member><type>uint16_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member>const <type>uint8_t</type>* <name>pRefPicList0Entries</name><comment>Must be a valid pointer to an array with size num_ref_idx_l0_active_minus1 plus 1 and contains the slotIndex values corresponding to the RefPicList0 as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex.</comment></member>
<member>const <type>uint8_t</type>* <name>pRefPicList1Entries</name><comment>Must be a valid pointer to an array with size num_ref_idx_l1_active_minus1 plus 1 and contains the slotIndex values corresponding to the RefPicList1 as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex.</comment></member>
<member>const <type>uint8_t</type>* <name>pRefList0Modifications</name><comment>Must be a valid pointer to an array with size num_ref_idx_l0_active_minus1 plus 1 if ref_pic_list_modification_flag_l0 is set and contains the elements of list_entry_l0.</comment></member>
<member>const <type>uint8_t</type>* <name>pRefList1Modifications</name><comment>Must be a valid pointer to an array with size num_ref_idx_l1_active_minus1 plus 1 if ref_pic_list_modification_flag_l1 is set and contains the elements of list_entry_l1.</comment></member>
<member><type>uint8_t</type> <name>RefPicList0</name>[STD_VIDEO_H265_MAX_NUM_LIST_REF]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex</comment></member>
<member><type>uint8_t</type> <name>RefPicList1</name>[STD_VIDEO_H265_MAX_NUM_LIST_REF]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures, 0xff for invalid slotIndex</comment></member>
<member><type>uint8_t</type> <name>list_entry_l0</name>[STD_VIDEO_H265_MAX_NUM_LIST_REF]</member>
<member><type>uint8_t</type> <name>list_entry_l1</name>[STD_VIDEO_H265_MAX_NUM_LIST_REF]</member>
</type>
<type category="struct" name="StdVideoEncodeH265PictureInfoFlags">
<member><type>uint32_t</type> <name>is_reference_flag</name> : 1</member>
<member><type>uint32_t</type> <name>IrapPicFlag</name> : 1</member>
<member><type>uint32_t</type> <name>long_term_flag</name> : 1</member>
<member><type>uint32_t</type> <name>is_reference</name> : 1<comment>A reference picture, as defined in clause 3.132</comment></member>
<member><type>uint32_t</type> <name>IrapPicFlag</name> : 1<comment>A reference picture, as defined in clause 3.73</comment></member>
<member><type>uint32_t</type> <name>used_for_long_term_reference</name> : 1<comment>A picture that is marked as "used for long-term reference", derived binary value from clause 8.3.2 Decoding process for reference picture set</comment></member>
<member><type>uint32_t</type> <name>discardable_flag</name> : 1</member>
<member><type>uint32_t</type> <name>cross_layer_bla_flag</name> : 1</member>
<member><type>uint32_t</type> <name>pic_output_flag</name> : 1</member>
<member><type>uint32_t</type> <name>no_output_of_prior_pics_flag</name> : 1</member>
<member><type>uint32_t</type> <name>short_term_ref_pic_set_sps_flag</name> : 1</member>
<member><type>uint32_t</type> <name>slice_temporal_mvp_enabled_flag</name> : 1</member>
<member><type>uint32_t</type> <name>reserved</name> : 23</member>
</type>
<type category="struct" name="StdVideoEncodeH265PictureInfo">
<member><type>StdVideoEncodeH265PictureInfoFlags</type> <name>flags</name></member>
<member><type>StdVideoH265PictureType</type> <name>PictureType</name></member>
<member><type>StdVideoH265PictureType</type> <name>pic_type</name></member>
<member><type>uint8_t</type> <name>sps_video_parameter_set_id</name><comment>Selecting VPS id from the Video Parameters Set</comment></member>
<member><type>uint8_t</type> <name>pps_seq_parameter_set_id</name><comment>Selecting SPS id from the Sequence Parameters Set</comment></member>
<member><type>uint8_t</type> <name>pps_pic_parameter_set_id</name><comment>Selecting PPS id from the Picture Parameters Set</comment></member>
<member><type>uint8_t</type> <name>TemporalId</name></member>
<member><type>int32_t</type> <name>PicOrderCntVal</name></member>
<member><type>uint8_t</type> <name>short_term_ref_pic_set_idx</name></member>
<member><type>int32_t</type> <name>PicOrderCntVal</name><comment>Picture order count derived as specified in 8.3.1</comment></member>
<member><type>uint8_t</type> <name>TemporalId</name><comment>Temporal ID, as defined in 7.4.2.2</comment></member>
<member><type>uint8_t</type> <name>reserved1</name>[7]<comment>Reserved for future use and must be initialized with 0.</comment></member>
<member>const <type>StdVideoEncodeH265ReferenceListsInfo</type>* <name>pRefLists</name></member>
<member>const <type>StdVideoH265ShortTermRefPicSet</type>*<name>pShortTermRefPicSet</name><comment>Must be a valid pointer if short_term_ref_pic_set_sps_flag is not set</comment></member>
<member>const <type>StdVideoEncodeH265SliceSegmentLongTermRefPics</type>*<name>pLongTermRefPics</name><comment>Must be a valid pointer if long_term_ref_pics_present_flag is set</comment></member>
</type>
<type category="struct" name="StdVideoEncodeH265ReferenceInfoFlags">
<member><type>uint32_t</type> <name>used_for_long_term_reference</name> : 1<comment>A picture that is marked as "used for long-term reference", derived binary value from clause 8.3.2 Decoding process for reference picture set</comment></member>
<member><type>uint32_t</type> <name>unused_for_reference</name> : 1<comment>A picture that is marked as "unused for reference", derived binary value from clause 8.3.2 Decoding process for reference picture set</comment></member>
<member><type>uint32_t</type> <name>reserved</name> : 30</member>
</type>
<type category="struct" name="StdVideoEncodeH265ReferenceInfo">
<member><type>StdVideoEncodeH265ReferenceInfoFlags</type> <name>flags</name></member>
<member><type>StdVideoH265PictureType</type> <name>PictureType</name></member>
<member><type>int32_t</type> <name>PicOrderCntVal</name></member>
<member><type>uint8_t</type> <name>TemporalId</name></member>
<member><type>StdVideoH265PictureType</type> <name>pic_type</name></member>
<member><type>int32_t</type> <name>PicOrderCntVal</name><comment>Picture order count derived as specified in 8.3.1</comment></member>
<member><type>uint8_t</type> <name>TemporalId</name><comment>Temporal ID, as defined in 7.4.2.2</comment></member>
</type>
</types>
@@ -1087,8 +1094,8 @@ The current public version of video.xml is maintained in the default branch
<require>
<type name="vk_video/vulkan_video_codec_h264std.h"/>
<type name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_9"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_9"/>
<type name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_10"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_10"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME" value="&quot;VK_STD_vulkan_video_codec_h264_encode&quot;"/>
<type name="StdVideoEncodeH264WeightTableFlags"/>
@@ -1174,8 +1181,8 @@ The current public version of video.xml is maintained in the default branch
<require>
<type name="vk_video/vulkan_video_codec_h265std.h"/>
<type name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_10"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_10"/>
<type name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_11"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_11"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME" value="&quot;VK_STD_vulkan_video_codec_h265_encode&quot;"/>
<type name="StdVideoEncodeH265WeightTableFlags"/>

File diff suppressed because it is too large Load Diff