Update for Vulkan-Docs 1.4.323
This commit is contained in:
parent
00a752019b
commit
088a00d81d
20 changed files with 5592 additions and 6971 deletions
|
|
@ -7,17 +7,22 @@
|
|||
import pickle
|
||||
import os
|
||||
import tempfile
|
||||
import copy
|
||||
from vulkan_object import (VulkanObject,
|
||||
Extension, Version, Deprecate, Handle, Param, Queues, CommandScope, Command,
|
||||
EnumField, Enum, Flag, Bitmask, ExternSync, Flags, Member, Struct,
|
||||
Constant, FormatComponent, FormatPlane, Format,
|
||||
SyncSupport, SyncEquivalent, SyncStage, SyncAccess, SyncPipelineStage, SyncPipeline,
|
||||
SpirvEnables, Spirv)
|
||||
SpirvEnables, Spirv,
|
||||
VideoCodec, VideoFormat, VideoProfiles, VideoProfileMember, VideoRequiredCapabilities,
|
||||
VideoStd, VideoStdHeader)
|
||||
|
||||
# These live in the Vulkan-Docs repo, but are pulled in via the
|
||||
# Vulkan-Headers/registry folder
|
||||
from generator import OutputGenerator, GeneratorOptions, write
|
||||
from vkconventions import VulkanConventions
|
||||
from reg import Registry
|
||||
from xml.etree import ElementTree
|
||||
|
||||
# An API style convention object
|
||||
vulkanConventions = VulkanConventions()
|
||||
|
|
@ -146,7 +151,8 @@ class BaseGeneratorOptions(GeneratorOptions):
|
|||
def __init__(self,
|
||||
customFileName = None,
|
||||
customDirectory = None,
|
||||
customApiName = None):
|
||||
customApiName = None,
|
||||
videoXmlPath = None):
|
||||
GeneratorOptions.__init__(self,
|
||||
conventions = vulkanConventions,
|
||||
filename = customFileName if customFileName else globalFileName,
|
||||
|
|
@ -163,6 +169,9 @@ class BaseGeneratorOptions(GeneratorOptions):
|
|||
self.apientryp = 'VKAPI_PTR *'
|
||||
self.alignFuncParam = 48
|
||||
|
||||
# This is used to provide the video.xml to the private video XML generator
|
||||
self.videoXmlPath = videoXmlPath
|
||||
|
||||
#
|
||||
# This object handles all the parsing from reg.py generator scripts in the Vulkan-Headers
|
||||
# It will grab all the data and form it into a single object the rest of the generators will use
|
||||
|
|
@ -235,6 +244,15 @@ class BaseGenerator(OutputGenerator):
|
|||
self.vk.queueBits[Queues.DECODE] = 'VK_QUEUE_VIDEO_DECODE_BIT_KHR'
|
||||
self.vk.queueBits[Queues.ENCODE] = 'VK_QUEUE_VIDEO_ENCODE_BIT_KHR'
|
||||
|
||||
# If the video.xml path is provided then we need to load and parse it using
|
||||
# the private video std generator
|
||||
if genOpts.videoXmlPath is not None:
|
||||
videoStdGenerator = _VideoStdGenerator()
|
||||
videoRegistry = Registry(videoStdGenerator, genOpts)
|
||||
videoRegistry.loadElementTree(ElementTree.parse(genOpts.videoXmlPath))
|
||||
videoRegistry.apiGen()
|
||||
self.vk.videoStd = videoStdGenerator.vk.videoStd
|
||||
|
||||
# This function should be overloaded
|
||||
def generate(self):
|
||||
print("WARNING: This should not be called from the child class")
|
||||
|
|
@ -404,31 +422,96 @@ class BaseGenerator(OutputGenerator):
|
|||
for key, value in self.handleAliasMap.items():
|
||||
self.vk.handles[self.dealias(value, self.handleAliasMap)].aliases.append(key)
|
||||
|
||||
|
||||
def addConstants(self):
|
||||
for constantName in [k for k,v in self.registry.enumvaluedict.items() if v == 'API Constants']:
|
||||
def addConstants(self, constantNames: list[str]):
|
||||
for constantName in constantNames:
|
||||
enumInfo = self.registry.enumdict[constantName]
|
||||
typeName = enumInfo.type
|
||||
valueStr = enumInfo.elem.get('value')
|
||||
# These values are represented in c-style
|
||||
if valueStr.upper().endswith('F'):
|
||||
isHex = valueStr.upper().startswith('0X')
|
||||
intBase = 16 if isHex else 10
|
||||
if valueStr.upper().endswith('F') and not isHex:
|
||||
value = float(valueStr[:-1])
|
||||
elif valueStr.upper().endswith('U)'):
|
||||
inner_number = int(valueStr.removeprefix("(~").removesuffix(")")[:-1])
|
||||
inner_number = int(valueStr.removeprefix("(~").removesuffix(")")[:-1], intBase)
|
||||
value = (~inner_number) & ((1 << 32) - 1)
|
||||
elif valueStr.upper().endswith('ULL)'):
|
||||
inner_number = int(valueStr.removeprefix("(~").removesuffix(")")[:-3])
|
||||
inner_number = int(valueStr.removeprefix("(~").removesuffix(")")[:-3], intBase)
|
||||
value = (~0) & ((1 << 64) - 1)
|
||||
else:
|
||||
value = int(valueStr)
|
||||
value = int(valueStr, intBase)
|
||||
self.vk.constants[constantName] = Constant(constantName, typeName, value, valueStr)
|
||||
|
||||
def addVideoCodecs(self):
|
||||
for xmlVideoCodec in self.registry.tree.findall('videocodecs/videocodec'):
|
||||
name = xmlVideoCodec.get('name')
|
||||
extend = xmlVideoCodec.get('extend')
|
||||
value = xmlVideoCodec.get('value')
|
||||
|
||||
profiles: dict[str, VideoProfiles] = {}
|
||||
capabilities: dict[str, str] = {}
|
||||
formats: dict[str, VideoFormat] = {}
|
||||
|
||||
if extend is not None:
|
||||
# Inherit base profiles, capabilities, and formats
|
||||
profiles = copy.deepcopy(self.vk.videoCodecs[extend].profiles)
|
||||
capabilities = copy.deepcopy(self.vk.videoCodecs[extend].capabilities)
|
||||
formats = copy.deepcopy(self.vk.videoCodecs[extend].formats)
|
||||
|
||||
for xmlVideoProfiles in xmlVideoCodec.findall('videoprofiles'):
|
||||
videoProfileStructName = xmlVideoProfiles.get('struct')
|
||||
videoProfileStructMembers : dict[str, VideoProfileMember] = {}
|
||||
|
||||
for xmlVideoProfileMember in xmlVideoProfiles.findall('videoprofilemember'):
|
||||
memberName = xmlVideoProfileMember.get('name')
|
||||
memberValues: dict[str, str] = {}
|
||||
|
||||
for xmlVideoProfile in xmlVideoProfileMember.findall('videoprofile'):
|
||||
memberValues[xmlVideoProfile.get('value')] = xmlVideoProfile.get('name')
|
||||
|
||||
videoProfileStructMembers[memberName] = VideoProfileMember(memberName, memberValues)
|
||||
|
||||
profiles[videoProfileStructName] = VideoProfiles(videoProfileStructName, videoProfileStructMembers)
|
||||
|
||||
for xmlVideoCapabilities in xmlVideoCodec.findall('videocapabilities'):
|
||||
capabilities[xmlVideoCapabilities.get('struct')] = xmlVideoCapabilities.get('struct')
|
||||
|
||||
for xmlVideoFormat in xmlVideoCodec.findall('videoformat'):
|
||||
videoFormatName = xmlVideoFormat.get('name')
|
||||
videoFormatExtend = xmlVideoFormat.get('extend')
|
||||
|
||||
videoFormatRequiredCaps: list[VideoRequiredCapabilities] = []
|
||||
videoFormatProps: dict[str, str] = {}
|
||||
|
||||
if videoFormatName is not None:
|
||||
# This is a new video format category
|
||||
videoFormatUsage = xmlVideoFormat.get('usage')
|
||||
videoFormat = VideoFormat(videoFormatName, videoFormatUsage, videoFormatRequiredCaps, videoFormatProps)
|
||||
formats[videoFormatName] = videoFormat
|
||||
else:
|
||||
# This is an extension to an already defined video format category
|
||||
videoFormat = formats[videoFormatExtend]
|
||||
videoFormatRequiredCaps = videoFormat.requiredCaps
|
||||
videoFormatProps = videoFormat.properties
|
||||
|
||||
for xmlVideoFormatRequiredCap in xmlVideoFormat.findall('videorequirecapabilities'):
|
||||
requiredCap = VideoRequiredCapabilities(xmlVideoFormatRequiredCap.get('struct'),
|
||||
xmlVideoFormatRequiredCap.get('member'),
|
||||
xmlVideoFormatRequiredCap.get('value'))
|
||||
videoFormatRequiredCaps.append(requiredCap)
|
||||
|
||||
for xmlVideoFormatProperties in xmlVideoFormat.findall('videoformatproperties'):
|
||||
videoFormatProps[xmlVideoFormatProperties.get('struct')] = xmlVideoFormatProperties.get('struct')
|
||||
|
||||
self.vk.videoCodecs[name] = VideoCodec(name, value, profiles, capabilities, formats)
|
||||
|
||||
def endFile(self):
|
||||
# This is the point were reg.py has ran, everything is collected
|
||||
# We do some post processing now
|
||||
self.applyExtensionDependency()
|
||||
|
||||
self.addConstants()
|
||||
self.addConstants([k for k,v in self.registry.enumvaluedict.items() if v == 'API Constants'])
|
||||
self.addVideoCodecs()
|
||||
|
||||
self.vk.headerVersionComplete = APISpecific.createHeaderVersion(self.targetApiName, self.vk)
|
||||
|
||||
|
|
@ -463,10 +546,6 @@ class BaseGenerator(OutputGenerator):
|
|||
handle.device = next_parent.name == 'VkDevice'
|
||||
next_parent = next_parent.parent
|
||||
|
||||
# This use to be Queues.ALL, but there is no real concept of "all"
|
||||
# Found this just needs to be something non-None
|
||||
maxSyncSupport.queues = Queues.TRANSFER
|
||||
|
||||
maxSyncSupport.stages = self.vk.bitmasks['VkPipelineStageFlagBits2'].flags
|
||||
maxSyncEquivalent.accesses = self.vk.bitmasks['VkAccessFlagBits2'].flags
|
||||
maxSyncEquivalent.stages = self.vk.bitmasks['VkPipelineStageFlagBits2'].flags
|
||||
|
|
@ -789,6 +868,9 @@ class BaseGenerator(OutputGenerator):
|
|||
if fixedSizeArray and not length:
|
||||
length = ','.join(fixedSizeArray)
|
||||
|
||||
# Handle C bit field members
|
||||
bitFieldWidth = int(cdecl.split(':')[1]) if ':' in cdecl else None
|
||||
|
||||
# if a pointer, this can be a something like:
|
||||
# optional="true,false" for ppGeometries
|
||||
# optional="false,true" for pPhysicalDeviceCount
|
||||
|
|
@ -801,7 +883,7 @@ class BaseGenerator(OutputGenerator):
|
|||
members.append(Member(name, type, fullType, noautovalidity, limittype,
|
||||
const, length, nullTerminated, pointer, fixedSizeArray,
|
||||
optional, optionalPointer,
|
||||
externSync, cdecl))
|
||||
externSync, cdecl, bitFieldWidth))
|
||||
|
||||
self.vk.structs[typeName] = Struct(typeName, [], extension, self.currentVersion, protect, members,
|
||||
union, returnedOnly, sType, allowDuplicate, extends, extendedBy)
|
||||
|
|
@ -975,3 +1057,119 @@ class BaseGenerator(OutputGenerator):
|
|||
stages.append(SyncPipelineStage(order, before, after, value))
|
||||
|
||||
self.vk.syncPipeline.append(SyncPipeline(name, depends, stages))
|
||||
|
||||
#
|
||||
# This object handles all the parsing from the video.xml (i.e. Video Std header definitions)
|
||||
# It will fill in video standard definitions into the VulkanObject
|
||||
class _VideoStdGenerator(BaseGenerator):
|
||||
def __init__(self):
|
||||
BaseGenerator.__init__(self)
|
||||
self.vk.videoStd = VideoStd()
|
||||
|
||||
# Track the current Video Std header we are processing
|
||||
self.currentVideoStdHeader = None
|
||||
|
||||
def write(self, data):
|
||||
# We do not write anything here
|
||||
return
|
||||
|
||||
def beginFile(self, genOpts):
|
||||
# We intentionally skip default BaseGenerator behavior
|
||||
OutputGenerator.beginFile(self, genOpts)
|
||||
|
||||
def endFile(self):
|
||||
# Move parsed definitions to the Video Std definitions
|
||||
self.vk.videoStd.enums = self.vk.enums
|
||||
self.vk.videoStd.structs = self.vk.structs
|
||||
self.vk.videoStd.constants = self.vk.constants
|
||||
|
||||
# We intentionally skip default BaseGenerator behavior
|
||||
OutputGenerator.endFile(self)
|
||||
|
||||
def beginFeature(self, interface, emit):
|
||||
# We intentionally skip default BaseGenerator behavior
|
||||
OutputGenerator.beginFeature(self, interface, emit)
|
||||
|
||||
# Only "extension" is possible in the video.xml, identifying the Video Std header
|
||||
assert interface.tag == 'extension'
|
||||
name = interface.get('name')
|
||||
version: (str | None) = None
|
||||
depends: list[str] = []
|
||||
|
||||
# Handle Video Std header version constant
|
||||
for enum in interface.findall('require/enum[@value]'):
|
||||
enumName = enum.get('name')
|
||||
if enumName.endswith('_SPEC_VERSION'):
|
||||
version = enum.get('value')
|
||||
|
||||
# Handle dependencies on other Video Std headers
|
||||
for type in interface.findall('require/type[@name]'):
|
||||
typeName = type.get('name')
|
||||
if typeName.startswith('vk_video/'):
|
||||
depends.append(typeName[len('vk_video/'):-len('.h')])
|
||||
|
||||
headerFile = f'vk_video/{name}.h'
|
||||
|
||||
self.vk.videoStd.headers[name] = VideoStdHeader(name, version, headerFile, depends)
|
||||
|
||||
self.currentVideoStdHeader = self.vk.videoStd.headers[name]
|
||||
|
||||
# Handle constants here as that seems the most straightforward
|
||||
constantNames = []
|
||||
for enum in interface.findall('require/enum[@type]'):
|
||||
constantNames.append(enum.get('name'))
|
||||
self.addConstants(constantNames)
|
||||
for constantName in constantNames:
|
||||
self.vk.constants[constantName].videoStdHeader = self.currentVideoStdHeader.name
|
||||
|
||||
def endFeature(self):
|
||||
self.currentVideoStdHeader = None
|
||||
|
||||
# We intentionally skip default BaseGenerator behavior
|
||||
OutputGenerator.endFeature(self)
|
||||
|
||||
def genCmd(self, cmdinfo, name, alias):
|
||||
# video.xml should not contain any commands
|
||||
assert False
|
||||
|
||||
def genGroup(self, groupinfo, groupName, alias):
|
||||
BaseGenerator.genGroup(self, groupinfo, groupName, alias)
|
||||
|
||||
# We are supposed to be inside a video std header
|
||||
assert self.currentVideoStdHeader is not None
|
||||
|
||||
# Mark the enum with the Video Std header it comes from
|
||||
if groupinfo.elem.get('type') == 'enum':
|
||||
assert alias is None
|
||||
self.vk.enums[groupName].videoStdHeader = self.currentVideoStdHeader.name
|
||||
|
||||
def genType(self, typeInfo, typeName, alias):
|
||||
BaseGenerator.genType(self, typeInfo, typeName, alias)
|
||||
|
||||
# We are supposed to be inside a video std header
|
||||
assert self.currentVideoStdHeader is not None
|
||||
|
||||
# Mark the struct with the Video Std header it comes from
|
||||
if typeInfo.elem.get('category') == 'struct':
|
||||
assert alias is None
|
||||
self.vk.structs[typeName].videoStdHeader = self.currentVideoStdHeader.name
|
||||
|
||||
def genSpirv(self, spirvinfo, spirvName, alias):
|
||||
# video.xml should not contain any SPIR-V info
|
||||
assert False
|
||||
|
||||
def genFormat(self, format, formatinfo, alias):
|
||||
# video.xml should not contain any format info
|
||||
assert False
|
||||
|
||||
def genSyncStage(self, sync):
|
||||
# video.xml should not contain any sync stage info
|
||||
assert False
|
||||
|
||||
def genSyncAccess(self, sync):
|
||||
# video.xml should not contain any sync access info
|
||||
assert False
|
||||
|
||||
def genSyncPipeline(self, sync):
|
||||
# video.xml should not contain any sync pipeline info
|
||||
assert False
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -123,7 +123,7 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>uint8_t</type> <name>chroma_sample_loc_type_top_field</name></member>
|
||||
<member><type>uint8_t</type> <name>chroma_sample_loc_type_bottom_field</name></member>
|
||||
<member><type>uint32_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
|
||||
<member>const <type>StdVideoH264HrdParameters</type>* <name>pHrdParameters</name><comment>must be a valid ptr to hrd_parameters, if nal_hrd_parameters_present_flag or vcl_hrd_parameters_present_flag are set</comment></member>
|
||||
<member optional="true">const <type>StdVideoH264HrdParameters</type>* <name>pHrdParameters</name><comment>must be a valid ptr to hrd_parameters, if nal_hrd_parameters_present_flag or vcl_hrd_parameters_present_flag are set</comment></member>
|
||||
</type>
|
||||
<type category="struct" name="StdVideoH264SpsFlags">
|
||||
<member><type>uint32_t</type> <name>constraint_set0_flag</name> : 1</member>
|
||||
|
|
@ -190,9 +190,9 @@ The current public version of video.xml is maintained in the default branch
|
|||
pOffsetForRefFrame is a pointer representing the offset_for_ref_frame array with num_ref_frames_in_pic_order_cnt_cycle number of elements.
|
||||
If pOffsetForRefFrame has nullptr value, then num_ref_frames_in_pic_order_cnt_cycle must also be "0".
|
||||
</comment>
|
||||
<member>const <type>int32_t</type>* <name>pOffsetForRefFrame</name></member>
|
||||
<member>const <type>StdVideoH264ScalingLists</type>* <name>pScalingLists</name><comment>Must be a valid pointer if seq_scaling_matrix_present_flag is set</comment></member>
|
||||
<member>const <type>StdVideoH264SequenceParameterSetVui</type>* <name>pSequenceParameterSetVui</name><comment>Must be a valid pointer if StdVideoH264SpsFlags:vui_parameters_present_flag is set</comment></member>
|
||||
<member len="num_ref_frames_in_pic_order_cnt_cycle">const <type>int32_t</type>* <name>pOffsetForRefFrame</name></member>
|
||||
<member optional="true">const <type>StdVideoH264ScalingLists</type>* <name>pScalingLists</name><comment>Must be a valid pointer if seq_scaling_matrix_present_flag is set</comment></member>
|
||||
<member optional="true">const <type>StdVideoH264SequenceParameterSetVui</type>* <name>pSequenceParameterSetVui</name><comment>Must be a valid pointer if StdVideoH264SpsFlags:vui_parameters_present_flag is set</comment></member>
|
||||
</type>
|
||||
<type category="struct" name="StdVideoH264PpsFlags">
|
||||
<member><type>uint32_t</type> <name>transform_8x8_mode_flag</name> : 1</member>
|
||||
|
|
@ -215,7 +215,7 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>int8_t</type> <name>pic_init_qs_minus26</name></member>
|
||||
<member><type>int8_t</type> <name>chroma_qp_index_offset</name></member>
|
||||
<member><type>int8_t</type> <name>second_chroma_qp_index_offset</name></member>
|
||||
<member>const <type>StdVideoH264ScalingLists</type>* <name>pScalingLists</name><comment>Must be a valid pointer if StdVideoH264PpsFlags::pic_scaling_matrix_present_flag is set.</comment></member>
|
||||
<member optional="true">const <type>StdVideoH264ScalingLists</type>* <name>pScalingLists</name><comment>Must be a valid pointer if StdVideoH264PpsFlags::pic_scaling_matrix_present_flag is set.</comment></member>
|
||||
</type>
|
||||
|
||||
<!-- vulkan_video_codec_h264std_decode.h enumerated types -->
|
||||
|
|
@ -329,9 +329,9 @@ The current public version of video.xml is maintained in the default branch
|
|||
<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>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>
|
||||
<member len="refList0ModOpCount">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 len="refList1ModOpCount">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 len="refPicMarkingOpCount">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>
|
||||
</type>
|
||||
<type category="struct" name="StdVideoEncodeH264PictureInfo">
|
||||
<member><type>StdVideoEncodeH264PictureInfoFlags</type> <name>flags</name></member>
|
||||
|
|
@ -343,7 +343,7 @@ The current public version of video.xml is maintained in the default branch
|
|||
<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>
|
||||
<member optional="true">const <type>StdVideoEncodeH264ReferenceListsInfo</type>* <name>pRefLists</name></member>
|
||||
</type>
|
||||
<type category="struct" name="StdVideoEncodeH264ReferenceInfo">
|
||||
<member><type>StdVideoEncodeH264ReferenceInfoFlags</type> <name>flags</name></member>
|
||||
|
|
@ -364,7 +364,7 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>uint8_t</type> <name>reserved1</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>
|
||||
<member optional="true">const <type>StdVideoEncodeH264WeightTable</type>* <name>pWeightTable</name><comment></comment></member>
|
||||
</type>
|
||||
|
||||
<!-- vulkan_video_codec_h265std.h enumerated types -->
|
||||
|
|
@ -423,8 +423,9 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>uint8_t</type> <name>cpb_cnt_minus1</name>[<enum>STD_VIDEO_H265_SUBLAYERS_LIST_SIZE</enum>]</member>
|
||||
<member><type>uint16_t</type> <name>elemental_duration_in_tc_minus1</name>[<enum>STD_VIDEO_H265_SUBLAYERS_LIST_SIZE</enum>]</member>
|
||||
<member><type>uint16_t</type> <name>reserved</name>[3]<comment>Reserved for future use and must be initialized with 0.</comment></member>
|
||||
<member>const <type>StdVideoH265SubLayerHrdParameters</type>* <name>pSubLayerHrdParametersNal</name><comment>if flags.nal_hrd_parameters_present_flag is set, then this must be a ptr to an array of StdVideoH265SubLayerHrdParameters with a size specified by sps_max_sub_layers_minus1 + 1 or vps_max_sub_layers_minus1 + 1, depending on whether the HRD parameters are part of the SPS or VPS, respectively.</comment></member>
|
||||
<member>const <type>StdVideoH265SubLayerHrdParameters</type>* <name>pSubLayerHrdParametersVcl</name><comment>if flags.vcl_hrd_parameters_present_flag is set, then this must be a ptr to an array of StdVideoH265SubLayerHrdParameters with a size specified by sps_max_sub_layers_minus1 + 1 or vps_max_sub_layers_minus1 + 1, depending on whether the HRD parameters are part of the SPS or VPS, respectively.</comment></member>
|
||||
<!-- NOTE: These arrays are sized according to parameters coming from their encompassing structures -->
|
||||
<member optional="true" len="sps_max_sub_layers_minus1 + 1,vps_max_sub_layers_minus1 + 1">const <type>StdVideoH265SubLayerHrdParameters</type>* <name>pSubLayerHrdParametersNal</name><comment>if flags.nal_hrd_parameters_present_flag is set, then this must be a ptr to an array of StdVideoH265SubLayerHrdParameters with a size specified by sps_max_sub_layers_minus1 + 1 or vps_max_sub_layers_minus1 + 1, depending on whether the HRD parameters are part of the SPS or VPS, respectively.</comment></member>
|
||||
<member optional="true" len="sps_max_sub_layers_minus1 + 1,vps_max_sub_layers_minus1 + 1">const <type>StdVideoH265SubLayerHrdParameters</type>* <name>pSubLayerHrdParametersVcl</name><comment>if flags.vcl_hrd_parameters_present_flag is set, then this must be a ptr to an array of StdVideoH265SubLayerHrdParameters with a size specified by sps_max_sub_layers_minus1 + 1 or vps_max_sub_layers_minus1 + 1, depending on whether the HRD parameters are part of the SPS or VPS, respectively.</comment></member>
|
||||
</type>
|
||||
<type category="struct" name="StdVideoH265VpsFlags">
|
||||
<member><type>uint32_t</type> <name>vps_temporal_id_nesting_flag</name> : 1</member>
|
||||
|
|
@ -442,9 +443,9 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>uint32_t</type> <name>vps_time_scale</name></member>
|
||||
<member><type>uint32_t</type> <name>vps_num_ticks_poc_diff_one_minus1</name></member>
|
||||
<member><type>uint32_t</type> <name>reserved3</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
|
||||
<member>const <type>StdVideoH265DecPicBufMgr</type>* <name>pDecPicBufMgr</name></member>
|
||||
<member>const <type>StdVideoH265HrdParameters</type>* <name>pHrdParameters</name></member>
|
||||
<member>const <type>StdVideoH265ProfileTierLevel</type>* <name>pProfileTierLevel</name></member>
|
||||
<member optional="true">const <type>StdVideoH265DecPicBufMgr</type>* <name>pDecPicBufMgr</name></member>
|
||||
<member optional="true">const <type>StdVideoH265HrdParameters</type>* <name>pHrdParameters</name></member>
|
||||
<member optional="true">const <type>StdVideoH265ProfileTierLevel</type>* <name>pProfileTierLevel</name></member>
|
||||
</type>
|
||||
<type category="struct" name="StdVideoH265ScalingLists">
|
||||
<member><type>uint8_t</type> <name>ScalingList4x4</name>[<enum>STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS</enum>][<enum>STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS</enum>]<comment>ScalingList[ 0 ][ MatrixID ][ i ] (sizeID = 0)</comment></member>
|
||||
|
|
@ -524,7 +525,7 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>uint8_t</type> <name>max_bits_per_min_cu_denom</name></member>
|
||||
<member><type>uint8_t</type> <name>log2_max_mv_length_horizontal</name></member>
|
||||
<member><type>uint8_t</type> <name>log2_max_mv_length_vertical</name></member>
|
||||
<member>const <type>StdVideoH265HrdParameters</type>* <name>pHrdParameters</name></member>
|
||||
<member optional="true">const <type>StdVideoH265HrdParameters</type>* <name>pHrdParameters</name></member>
|
||||
</type>
|
||||
<type category="struct" name="StdVideoH265PredictorPaletteEntries">
|
||||
<member><type>uint16_t</type> <name>PredictorPaletteEntries</name>[<enum>STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE</enum>][<enum>STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE</enum>]</member>
|
||||
|
|
@ -606,13 +607,13 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>uint32_t</type> <name>conf_win_right_offset</name></member>
|
||||
<member><type>uint32_t</type> <name>conf_win_top_offset</name></member>
|
||||
<member><type>uint32_t</type> <name>conf_win_bottom_offset</name></member>
|
||||
<member>const <type>StdVideoH265ProfileTierLevel</type>* <name>pProfileTierLevel</name></member>
|
||||
<member>const <type>StdVideoH265DecPicBufMgr</type>* <name>pDecPicBufMgr</name></member>
|
||||
<member>const <type>StdVideoH265ScalingLists</type>* <name>pScalingLists</name><comment>Must be a valid pointer if sps_scaling_list_data_present_flag is set</comment></member>
|
||||
<member>const <type>StdVideoH265ShortTermRefPicSet</type>* <name>pShortTermRefPicSet</name><comment>Must be a valid pointer to an array with size num_short_term_ref_pic_sets if num_short_term_ref_pic_sets is not 0.</comment></member>
|
||||
<member>const <type>StdVideoH265LongTermRefPicsSps</type>* <name>pLongTermRefPicsSps</name><comment>Must be a valid pointer if long_term_ref_pics_present_flag is set</comment></member>
|
||||
<member>const <type>StdVideoH265SequenceParameterSetVui</type>* <name>pSequenceParameterSetVui</name><comment>Must be a valid pointer if StdVideoH265SpsFlags:vui_parameters_present_flag is set palette_max_size</comment></member>
|
||||
<member>const <type>StdVideoH265PredictorPaletteEntries</type>* <name>pPredictorPaletteEntries</name><comment>Must be a valid pointer if sps_palette_predictor_initializer_present_flag is set</comment></member>
|
||||
<member optional="true">const <type>StdVideoH265ProfileTierLevel</type>* <name>pProfileTierLevel</name></member>
|
||||
<member optional="true">const <type>StdVideoH265DecPicBufMgr</type>* <name>pDecPicBufMgr</name></member>
|
||||
<member optional="true">const <type>StdVideoH265ScalingLists</type>* <name>pScalingLists</name><comment>Must be a valid pointer if sps_scaling_list_data_present_flag is set</comment></member>
|
||||
<member len="num_short_term_ref_pic_sets">const <type>StdVideoH265ShortTermRefPicSet</type>* <name>pShortTermRefPicSet</name><comment>Must be a valid pointer to an array with size num_short_term_ref_pic_sets if num_short_term_ref_pic_sets is not 0.</comment></member>
|
||||
<member optional="true">const <type>StdVideoH265LongTermRefPicsSps</type>* <name>pLongTermRefPicsSps</name><comment>Must be a valid pointer if long_term_ref_pics_present_flag is set</comment></member>
|
||||
<member optional="true">const <type>StdVideoH265SequenceParameterSetVui</type>* <name>pSequenceParameterSetVui</name><comment>Must be a valid pointer if StdVideoH265SpsFlags:vui_parameters_present_flag is set palette_max_size</comment></member>
|
||||
<member optional="true">const <type>StdVideoH265PredictorPaletteEntries</type>* <name>pPredictorPaletteEntries</name><comment>Must be a valid pointer if sps_palette_predictor_initializer_present_flag is set</comment></member>
|
||||
</type>
|
||||
<type category="struct" name="StdVideoH265PpsFlags">
|
||||
<member><type>uint32_t</type> <name>dependent_slice_segments_enabled_flag</name> : 1</member>
|
||||
|
|
@ -694,8 +695,8 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>uint16_t</type> <name>column_width_minus1</name>[<enum>STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE</enum>]</member>
|
||||
<member><type>uint16_t</type> <name>row_height_minus1</name>[<enum>STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE</enum>]</member>
|
||||
<member><type>uint32_t</type> <name>reserved3</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
|
||||
<member>const <type>StdVideoH265ScalingLists</type>* <name>pScalingLists</name><comment>Must be a valid pointer if pps_scaling_list_data_present_flag is set</comment></member>
|
||||
<member>const <type>StdVideoH265PredictorPaletteEntries</type>* <name>pPredictorPaletteEntries</name><comment>Must be a valid pointer if pps_palette_predictor_initializer_present_flag is set</comment></member>
|
||||
<member optional="true">const <type>StdVideoH265ScalingLists</type>* <name>pScalingLists</name><comment>Must be a valid pointer if pps_scaling_list_data_present_flag is set</comment></member>
|
||||
<member optional="true">const <type>StdVideoH265PredictorPaletteEntries</type>* <name>pPredictorPaletteEntries</name><comment>Must be a valid pointer if pps_palette_predictor_initializer_present_flag is set</comment></member>
|
||||
</type>
|
||||
|
||||
<!-- vulkan_video_codec_h265std_decode.h structs -->
|
||||
|
|
@ -793,7 +794,7 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>int8_t</type> <name>slice_act_cr_qp_offset</name></member>
|
||||
<member><type>int8_t</type> <name>slice_qp_delta</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>StdVideoEncodeH265WeightTable</type>* <name>pWeightTable</name><comment></comment></member>
|
||||
<member optional="true">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>
|
||||
|
|
@ -831,9 +832,9 @@ The current public version of video.xml is maintained in the default branch
|
|||
<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>StdVideoEncodeH265LongTermRefPics</type>* <name>pLongTermRefPics</name><comment>Must be a valid pointer if long_term_ref_pics_present_flag is set</comment></member>
|
||||
<member optional="true">const <type>StdVideoEncodeH265ReferenceListsInfo</type>* <name>pRefLists</name></member>
|
||||
<member optional="true">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 optional="true">const <type>StdVideoEncodeH265LongTermRefPics</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>
|
||||
|
|
@ -931,9 +932,9 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>uint8_t</type> <name>tile_cols_log2</name></member>
|
||||
<member><type>uint8_t</type> <name>tile_rows_log2</name></member>
|
||||
<member><type>uint16_t</type> <name>reserved1</name>[3]<comment>Reserved for future use and must be initialized with 0.</comment></member>
|
||||
<member>const <type>StdVideoVP9ColorConfig</type>* <name>pColorConfig</name></member>
|
||||
<member>const <type>StdVideoVP9LoopFilter</type>* <name>pLoopFilter</name></member>
|
||||
<member>const <type>StdVideoVP9Segmentation</type>* <name>pSegmentation</name></member>
|
||||
<member>const <type>StdVideoVP9ColorConfig</type>* <name>pColorConfig</name></member>
|
||||
<member>const <type>StdVideoVP9LoopFilter</type>* <name>pLoopFilter</name></member>
|
||||
<member optional="true">const <type>StdVideoVP9Segmentation</type>* <name>pSegmentation</name></member>
|
||||
</type>
|
||||
|
||||
<!-- vulkan_video_codec_av1std.h enumerated types -->
|
||||
|
|
@ -1018,8 +1019,8 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>uint8_t</type> <name>seq_force_integer_mv</name><comment>The final value of of seq_force_integer_mv per the value of seq_choose_integer_mv.</comment></member>
|
||||
<member><type>uint8_t</type> <name>seq_force_screen_content_tools</name><comment>The final value of of seq_force_screen_content_tools per the value of seq_choose_screen_content_tools.</comment></member>
|
||||
<member><type>uint8_t</type> <name>reserved1</name>[5]<comment>Reserved for future use and must be initialized with 0.</comment></member>
|
||||
<member>const <type>StdVideoAV1ColorConfig</type>* <name>pColorConfig</name></member>
|
||||
<member>const <type>StdVideoAV1TimingInfo</type>* <name>pTimingInfo</name></member>
|
||||
<member>const <type>StdVideoAV1ColorConfig</type>* <name>pColorConfig</name></member>
|
||||
<member optional="true">const <type>StdVideoAV1TimingInfo</type>* <name>pTimingInfo</name></member>
|
||||
</type>
|
||||
<type category="struct" name="StdVideoAV1LoopFilterFlags">
|
||||
<comment>Syntax defined in section 5.9.11, semantics defined in section 6.8.10</comment>
|
||||
|
|
@ -1074,10 +1075,10 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>uint16_t</type> <name>context_update_tile_id</name></member>
|
||||
<member><type>uint8_t</type> <name>tile_size_bytes_minus_1</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>uint16_t</type>* <name>pMiColStarts</name><comment>TileCols number of elements</comment></member>
|
||||
<member>const <type>uint16_t</type>* <name>pMiRowStarts</name><comment>TileRows number of elements</comment></member>
|
||||
<member>const <type>uint16_t</type>* <name>pWidthInSbsMinus1</name><comment>TileCols number of elements</comment></member>
|
||||
<member>const <type>uint16_t</type>* <name>pHeightInSbsMinus1</name><comment>TileRows number of elements</comment></member>
|
||||
<member len="TileCols">const <type>uint16_t</type>* <name>pMiColStarts</name><comment>TileCols number of elements</comment></member>
|
||||
<member len="TileRows">const <type>uint16_t</type>* <name>pMiRowStarts</name><comment>TileRows number of elements</comment></member>
|
||||
<member len="TileCols">const <type>uint16_t</type>* <name>pWidthInSbsMinus1</name><comment>TileCols number of elements</comment></member>
|
||||
<member len="TileRows">const <type>uint16_t</type>* <name>pHeightInSbsMinus1</name><comment>TileRows number of elements</comment></member>
|
||||
</type>
|
||||
<type category="struct" name="StdVideoAV1CDEF">
|
||||
<comment>Syntax defined in section 5.9.19, semantics defined in section 6.10.14</comment>
|
||||
|
|
@ -1185,14 +1186,14 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>uint8_t</type> <name>reserved2</name>[3]<comment>Reserved for future use and must be initialized with 0.</comment></member>
|
||||
<member><type>uint8_t</type> <name>OrderHints</name>[<enum>STD_VIDEO_AV1_NUM_REF_FRAMES</enum>]</member>
|
||||
<member><type>uint32_t</type> <name>expectedFrameId</name>[<enum>STD_VIDEO_AV1_NUM_REF_FRAMES</enum>]</member>
|
||||
<member>const <type>StdVideoAV1TileInfo</type>* <name>pTileInfo</name></member>
|
||||
<member>const <type>StdVideoAV1Quantization</type>* <name>pQuantization</name></member>
|
||||
<member>const <type>StdVideoAV1Segmentation</type>* <name>pSegmentation</name></member>
|
||||
<member>const <type>StdVideoAV1LoopFilter</type>* <name>pLoopFilter</name></member>
|
||||
<member>const <type>StdVideoAV1CDEF</type>* <name>pCDEF</name></member>
|
||||
<member>const <type>StdVideoAV1LoopRestoration</type>* <name>pLoopRestoration</name></member>
|
||||
<member>const <type>StdVideoAV1GlobalMotion</type>* <name>pGlobalMotion</name></member>
|
||||
<member>const <type>StdVideoAV1FilmGrain</type>* <name>pFilmGrain</name></member>
|
||||
<member>const <type>StdVideoAV1TileInfo</type>* <name>pTileInfo</name></member>
|
||||
<member>const <type>StdVideoAV1Quantization</type>* <name>pQuantization</name></member>
|
||||
<member optional="true">const <type>StdVideoAV1Segmentation</type>* <name>pSegmentation</name></member>
|
||||
<member>const <type>StdVideoAV1LoopFilter</type>* <name>pLoopFilter</name></member>
|
||||
<member optional="true">const <type>StdVideoAV1CDEF</type>* <name>pCDEF</name></member>
|
||||
<member optional="true">const <type>StdVideoAV1LoopRestoration</type>* <name>pLoopRestoration</name></member>
|
||||
<member>const <type>StdVideoAV1GlobalMotion</type>* <name>pGlobalMotion</name></member>
|
||||
<member optional="true">const <type>StdVideoAV1FilmGrain</type>* <name>pFilmGrain</name></member>
|
||||
</type>
|
||||
<type category="struct" name="StdVideoDecodeAV1ReferenceInfoFlags">
|
||||
<member><type>uint32_t</type> <name>disable_frame_end_update_cdf</name> : 1</member>
|
||||
|
|
@ -1286,15 +1287,15 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>int8_t</type> <name>ref_frame_idx</name>[<enum>STD_VIDEO_AV1_REFS_PER_FRAME</enum>]</member>
|
||||
<member><type>uint8_t</type> <name>reserved1</name>[3]<comment>Reserved for future use and must be initialized with 0.</comment></member>
|
||||
<member><type>uint32_t</type> <name>delta_frame_id_minus_1</name>[<enum>STD_VIDEO_AV1_REFS_PER_FRAME</enum>]</member>
|
||||
<member>const <type>StdVideoAV1TileInfo</type>* <name>pTileInfo</name></member>
|
||||
<member>const <type>StdVideoAV1Quantization</type>* <name>pQuantization</name></member>
|
||||
<member>const <type>StdVideoAV1Segmentation</type>* <name>pSegmentation</name></member>
|
||||
<member>const <type>StdVideoAV1LoopFilter</type>* <name>pLoopFilter</name></member>
|
||||
<member>const <type>StdVideoAV1CDEF</type>* <name>pCDEF</name></member>
|
||||
<member>const <type>StdVideoAV1LoopRestoration</type>* <name>pLoopRestoration</name></member>
|
||||
<member>const <type>StdVideoAV1GlobalMotion</type>* <name>pGlobalMotion</name></member>
|
||||
<member>const <type>StdVideoEncodeAV1ExtensionHeader</type>* <name>pExtensionHeader</name></member>
|
||||
<member>const <type>uint32_t</type>* <name>pBufferRemovalTimes</name></member>
|
||||
<member optional="true">const <type>StdVideoAV1TileInfo</type>* <name>pTileInfo</name></member>
|
||||
<member>const <type>StdVideoAV1Quantization</type>* <name>pQuantization</name></member>
|
||||
<member optional="true">const <type>StdVideoAV1Segmentation</type>* <name>pSegmentation</name></member>
|
||||
<member>const <type>StdVideoAV1LoopFilter</type>* <name>pLoopFilter</name></member>
|
||||
<member optional="true">const <type>StdVideoAV1CDEF</type>* <name>pCDEF</name></member>
|
||||
<member optional="true">const <type>StdVideoAV1LoopRestoration</type>* <name>pLoopRestoration</name></member>
|
||||
<member>const <type>StdVideoAV1GlobalMotion</type>* <name>pGlobalMotion</name></member>
|
||||
<member optional="true">const <type>StdVideoEncodeAV1ExtensionHeader</type>* <name>pExtensionHeader</name></member>
|
||||
<member optional="true">const <type>uint32_t</type>* <name>pBufferRemovalTimes</name></member>
|
||||
</type>
|
||||
<type category="struct" name="StdVideoEncodeAV1ReferenceInfoFlags">
|
||||
<!-- TODO: Are these needed? For now it is simply copied from AV1 decode -->
|
||||
|
|
@ -1308,7 +1309,7 @@ The current public version of video.xml is maintained in the default branch
|
|||
<member><type>StdVideoAV1FrameType</type> <name>frame_type</name></member>
|
||||
<member><type>uint8_t</type> <name>OrderHint</name></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>StdVideoEncodeAV1ExtensionHeader</type>* <name>pExtensionHeader</name></member>
|
||||
<member optional="true">const <type>StdVideoEncodeAV1ExtensionHeader</type>* <name>pExtensionHeader</name></member>
|
||||
</type>
|
||||
</types>
|
||||
|
||||
|
|
@ -1722,14 +1723,14 @@ The current public version of video.xml is maintained in the default branch
|
|||
<require>
|
||||
<type name="vk_video/vulkan_video_codecs_common.h"/>
|
||||
|
||||
<enum name="STD_VIDEO_H264_CPB_CNT_LIST_SIZE" value="32"/>
|
||||
<enum name="STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS" value="6"/>
|
||||
<enum name="STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS" value="16"/>
|
||||
<enum name="STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS" value="6"/>
|
||||
<enum name="STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS" value="64"/>
|
||||
<enum name="STD_VIDEO_H264_MAX_NUM_LIST_REF" value="32"/>
|
||||
<enum name="STD_VIDEO_H264_MAX_CHROMA_PLANES" value="2"/>
|
||||
<enum name="STD_VIDEO_H264_NO_REFERENCE_PICTURE" value="0xFF"/>
|
||||
<enum name="STD_VIDEO_H264_CPB_CNT_LIST_SIZE" value="32" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS" value="6" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS" value="16" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS" value="6" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS" value="64" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H264_MAX_NUM_LIST_REF" value="32" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H264_MAX_CHROMA_PLANES" value="2" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H264_NO_REFERENCE_PICTURE" value="0xFF" type="uint8_t"/>
|
||||
|
||||
<type name="StdVideoH264ChromaFormatIdc"/>
|
||||
<type name="StdVideoH264ProfileIdc"/>
|
||||
|
|
@ -1763,7 +1764,7 @@ The current public version of video.xml is maintained in the default branch
|
|||
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0"/>
|
||||
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME" value=""VK_STD_vulkan_video_codec_h264_decode""/>
|
||||
|
||||
<enum name="STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE" value="2"/>
|
||||
<enum name="STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE" value="2" type="uint32_t"/>
|
||||
|
||||
<type name="StdVideoDecodeH264FieldOrderCount"/>
|
||||
<type name="StdVideoDecodeH264PictureInfoFlags"/>
|
||||
|
|
@ -1798,29 +1799,29 @@ The current public version of video.xml is maintained in the default branch
|
|||
<require>
|
||||
<type name="vk_video/vulkan_video_codecs_common.h"/>
|
||||
|
||||
<enum name="STD_VIDEO_H265_CPB_CNT_LIST_SIZE" value="32"/>
|
||||
<enum name="STD_VIDEO_H265_SUBLAYERS_LIST_SIZE" value="7"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS" value="6"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS" value="16"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS" value="6"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS" value="64"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS" value="6"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS" value="64"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS" value="2"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS" value="64"/>
|
||||
<enum name="STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE" value="6"/>
|
||||
<enum name="STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE" value="19"/>
|
||||
<enum name="STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE" value="21"/>
|
||||
<enum name="STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE" value="3"/>
|
||||
<enum name="STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE" value="128"/>
|
||||
<enum name="STD_VIDEO_H265_MAX_NUM_LIST_REF" value="15"/>
|
||||
<enum name="STD_VIDEO_H265_MAX_CHROMA_PLANES" value="2"/>
|
||||
<enum name="STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS" value="64"/>
|
||||
<enum name="STD_VIDEO_H265_MAX_DPB_SIZE" value="16"/>
|
||||
<enum name="STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS" value="32"/>
|
||||
<enum name="STD_VIDEO_H265_MAX_LONG_TERM_PICS" value="16"/>
|
||||
<enum name="STD_VIDEO_H265_MAX_DELTA_POC" value="48"/>
|
||||
<enum name="STD_VIDEO_H265_NO_REFERENCE_PICTURE" value="0xFF"/>
|
||||
<enum name="STD_VIDEO_H265_CPB_CNT_LIST_SIZE" value="32" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_SUBLAYERS_LIST_SIZE" value="7" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS" value="6" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS" value="16" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS" value="6" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS" value="64" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS" value="6" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS" value="64" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS" value="2" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS" value="64" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE" value="6" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE" value="19" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE" value="21" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE" value="3" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE" value="128" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_MAX_NUM_LIST_REF" value="15" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_MAX_CHROMA_PLANES" value="2" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS" value="64" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_MAX_DPB_SIZE" value="16" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS" value="32" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_MAX_LONG_TERM_PICS" value="16" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_MAX_DELTA_POC" value="48" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_H265_NO_REFERENCE_PICTURE" value="0xFF" type="uint8_t"/>
|
||||
|
||||
<type name="StdVideoH265ChromaFormatIdc"/>
|
||||
<type name="StdVideoH265ProfileIdc"/>
|
||||
|
|
@ -1857,7 +1858,7 @@ The current public version of video.xml is maintained in the default branch
|
|||
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0"/>
|
||||
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME" value=""VK_STD_vulkan_video_codec_h265_decode""/>
|
||||
|
||||
<enum name="STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE" value="8"/>
|
||||
<enum name="STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE" value="8" type="uint32_t"/>
|
||||
|
||||
<type name="StdVideoDecodeH265PictureInfoFlags"/>
|
||||
<type name="StdVideoDecodeH265PictureInfo"/>
|
||||
|
|
@ -1890,14 +1891,14 @@ The current public version of video.xml is maintained in the default branch
|
|||
<require>
|
||||
<type name="vk_video/vulkan_video_codecs_common.h"/>
|
||||
|
||||
<enum name="STD_VIDEO_VP9_NUM_REF_FRAMES" value="8"/>
|
||||
<enum name="STD_VIDEO_VP9_REFS_PER_FRAME" value="3"/>
|
||||
<enum name="STD_VIDEO_VP9_MAX_REF_FRAMES" value="4"/>
|
||||
<enum name="STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS" value="2"/>
|
||||
<enum name="STD_VIDEO_VP9_MAX_SEGMENTS" value="8"/>
|
||||
<enum name="STD_VIDEO_VP9_SEG_LVL_MAX" value="4"/>
|
||||
<enum name="STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS" value="7"/>
|
||||
<enum name="STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB" value="3"/>
|
||||
<enum name="STD_VIDEO_VP9_NUM_REF_FRAMES" value="8" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_VP9_REFS_PER_FRAME" value="3" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_VP9_MAX_REF_FRAMES" value="4" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS" value="2" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_VP9_MAX_SEGMENTS" value="8" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_VP9_SEG_LVL_MAX" value="4" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS" value="7" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB" value="3" type="uint32_t"/>
|
||||
|
||||
<type name="StdVideoVP9Profile"/>
|
||||
<type name="StdVideoVP9Level"/>
|
||||
|
|
@ -1929,27 +1930,27 @@ The current public version of video.xml is maintained in the default branch
|
|||
<require>
|
||||
<type name="vk_video/vulkan_video_codecs_common.h"/>
|
||||
|
||||
<enum name="STD_VIDEO_AV1_NUM_REF_FRAMES" value="8"/>
|
||||
<enum name="STD_VIDEO_AV1_REFS_PER_FRAME" value="7"/>
|
||||
<enum name="STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME" value="8"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_TILE_COLS" value="64"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_TILE_ROWS" value="64"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_SEGMENTS" value="8"/>
|
||||
<enum name="STD_VIDEO_AV1_SEG_LVL_MAX" value="8"/>
|
||||
<enum name="STD_VIDEO_AV1_PRIMARY_REF_NONE" value="7"/>
|
||||
<enum name="STD_VIDEO_AV1_SELECT_INTEGER_MV" value="2"/>
|
||||
<enum name="STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS" value="2"/>
|
||||
<enum name="STD_VIDEO_AV1_SKIP_MODE_FRAMES" value="2"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS" value="4"/>
|
||||
<enum name="STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS" value="2"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS" value="8"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_NUM_PLANES" value="3"/>
|
||||
<enum name="STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS" value="6"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_NUM_Y_POINTS" value="14"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_NUM_CB_POINTS" value="10"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_NUM_CR_POINTS" value="10"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_NUM_POS_LUMA" value="24"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_NUM_POS_CHROMA" value="25"/>
|
||||
<enum name="STD_VIDEO_AV1_NUM_REF_FRAMES" value="8" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_REFS_PER_FRAME" value="7" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME" value="8" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_TILE_COLS" value="64" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_TILE_ROWS" value="64" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_SEGMENTS" value="8" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_SEG_LVL_MAX" value="8" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_PRIMARY_REF_NONE" value="7" type="uint8_t"/>
|
||||
<enum name="STD_VIDEO_AV1_SELECT_INTEGER_MV" value="2" type="uint8_t"/>
|
||||
<enum name="STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS" value="2" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_SKIP_MODE_FRAMES" value="2" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS" value="4" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS" value="2" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS" value="8" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_NUM_PLANES" value="3" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS" value="6" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_NUM_Y_POINTS" value="14" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_NUM_CB_POINTS" value="10" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_NUM_CR_POINTS" value="10" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_NUM_POS_LUMA" value="24" type="uint32_t"/>
|
||||
<enum name="STD_VIDEO_AV1_MAX_NUM_POS_CHROMA" value="25" type="uint32_t"/>
|
||||
|
||||
<type name="StdVideoAV1Profile"/>
|
||||
<type name="StdVideoAV1Level"/>
|
||||
|
|
|
|||
1153
registry/vk.xml
1153
registry/vk.xml
File diff suppressed because it is too large
Load diff
|
|
@ -234,6 +234,8 @@ class Member:
|
|||
# - VkStructureType sType
|
||||
cDeclaration: str
|
||||
|
||||
bitFieldWidth: (int | None) # bit width (only for bit field struct members)
|
||||
|
||||
def __lt__(self, other):
|
||||
return self.name < other.name
|
||||
|
||||
|
|
@ -260,6 +262,9 @@ class Struct:
|
|||
extends: list[str] # Struct names that this struct extends
|
||||
extendedBy: list[str] # Struct names that can be extended by this struct
|
||||
|
||||
# This field is only set for enum definitions coming from Video Std headers
|
||||
videoStdHeader: (str | None) = None
|
||||
|
||||
def __lt__(self, other):
|
||||
return self.name < other.name
|
||||
|
||||
|
|
@ -298,6 +303,9 @@ class Enum:
|
|||
# Unique list of all extension that are involved in 'fields' (superset of 'extensions')
|
||||
fieldExtensions: list[str]
|
||||
|
||||
# This field is only set for enum definitions coming from Video Std headers
|
||||
videoStdHeader: (str | None) = None
|
||||
|
||||
def __lt__(self, other):
|
||||
return self.name < other.name
|
||||
|
||||
|
|
@ -366,6 +374,9 @@ class Constant:
|
|||
value: (int | float)
|
||||
valueStr: str # value as shown in spec (ex. "(~0U)", "256U", etc)
|
||||
|
||||
# This field is only set for enum definitions coming from Video Std headers
|
||||
videoStdHeader: (str | None) = None
|
||||
|
||||
@dataclass
|
||||
class FormatComponent:
|
||||
"""<format/component>"""
|
||||
|
|
@ -461,6 +472,75 @@ class Spirv:
|
|||
capability: bool
|
||||
enable: list[SpirvEnables]
|
||||
|
||||
@dataclass
|
||||
class VideoRequiredCapabilities:
|
||||
"""<videorequirecapabilities>"""
|
||||
struct: str # ex) VkVideoEncodeCapabilitiesKHR
|
||||
member: str # ex) flags
|
||||
value: str # ex) VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR
|
||||
# may contain XML boolean expressions ("+" means AND, "," means OR)
|
||||
|
||||
@dataclass
|
||||
class VideoFormat:
|
||||
"""<videoformat>"""
|
||||
name: str # ex) Decode Output
|
||||
usage: str # ex) VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR
|
||||
# may contain XML boolean expressions ("+" means AND, "," means OR)
|
||||
|
||||
requiredCaps: list[VideoRequiredCapabilities]
|
||||
properties: dict[str, str]
|
||||
|
||||
def __lt__(self, other):
|
||||
return self.name < other.name
|
||||
|
||||
@dataclass
|
||||
class VideoProfileMember:
|
||||
"""<videoprofilemember> and <videoprofile>"""
|
||||
name: str
|
||||
# Video profile struct member (value attribute of <videoprofile>) value as key,
|
||||
# profile name substring (name attribute of <videoprofile>) as value
|
||||
values: dict[str, str]
|
||||
|
||||
@dataclass
|
||||
class VideoProfiles:
|
||||
"""<videoprofiles>"""
|
||||
name: str
|
||||
members: dict[str, VideoProfileMember]
|
||||
|
||||
@dataclass
|
||||
class VideoCodec:
|
||||
"""<videocodec>"""
|
||||
name: str # ex) H.264 Decode
|
||||
value: (str | None) # If no video codec operation flag bit is associated with the codec
|
||||
# then it is a codec category (e.g. decode, encode), not a specific codec
|
||||
|
||||
profiles: dict[str, VideoProfiles]
|
||||
capabilities: dict[str, str]
|
||||
formats: dict[str, VideoFormat]
|
||||
|
||||
def __lt__(self, other):
|
||||
return self.name < other.name
|
||||
|
||||
@dataclass
|
||||
class VideoStdHeader:
|
||||
"""<extension> in video.xml"""
|
||||
name: str # ex) vulkan_video_codec_h264std_decode
|
||||
version: (str | None) # ex) VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0
|
||||
# None if it is a shared common Video Std header
|
||||
|
||||
headerFile: str # ex) vk_video/vulkan_video_codec_h264std_decode.h
|
||||
|
||||
# Other Video Std headers that this one depends on
|
||||
depends: list[str]
|
||||
|
||||
@dataclass
|
||||
class VideoStd:
|
||||
headers: dict[str, VideoStdHeader] = field(default_factory=dict, init=False)
|
||||
|
||||
enums: dict[str, Enum] = field(default_factory=dict, init=False)
|
||||
structs: dict[str, Struct] = field(default_factory=dict, init=False)
|
||||
constants: dict[str, Constant] = field(default_factory=dict, init=False)
|
||||
|
||||
# This is the global Vulkan Object that holds all the information from parsing the XML
|
||||
# This class is designed so all generator scripts can use this to obtain data
|
||||
@dataclass
|
||||
|
|
@ -492,3 +572,9 @@ class VulkanObject():
|
|||
vendorTags: list[str] = field(default_factory=list, init=False)
|
||||
# ex) [ Queues.COMPUTE : VK_QUEUE_COMPUTE_BIT ]
|
||||
queueBits: dict[IntFlag, str] = field(default_factory=dict, init=False)
|
||||
|
||||
# Video codec information from the vk.xml
|
||||
videoCodecs: dict[str, VideoCodec] = field(default_factory=dict, init=False)
|
||||
|
||||
# Video Std header information from the video.xml
|
||||
videoStd: (VideoStd | None) = None
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue