Update for Vulkan-Docs 1.4.317

This commit is contained in:
Jon Leech 2025-06-06 13:47:45 +01:00 committed by Jon Leech
parent b11eecd68f
commit 2642d51e1e
23 changed files with 12386 additions and 834 deletions

View file

@ -8,7 +8,7 @@ import pickle
import os
import tempfile
from vulkan_object import (VulkanObject,
Extension, Version, Handle, Param, Queues, CommandScope, Command,
Extension, Version, Deprecate, Handle, Param, Queues, CommandScope, Command,
EnumField, Enum, Flag, Bitmask, Flags, Member, Struct,
FormatComponent, FormatPlane, Format,
SyncSupport, SyncEquivalent, SyncStage, SyncAccess, SyncPipelineStage, SyncPipeline,
@ -171,7 +171,6 @@ class BaseGenerator(OutputGenerator):
if data is not None and data != "":
write(data, file=self.outFile)
def beginFile(self, genOpts):
OutputGenerator.beginFile(self, genOpts)
self.filename = genOpts.filename
@ -342,11 +341,12 @@ class BaseGenerator(OutputGenerator):
for member in command.params:
if member.type in self.structAliasMap:
member.type = self.dealias(member.type, self.structAliasMap)
# Replace string with Version class now we have all version created
if command.deprecate and command.deprecate.version:
command.deprecate.version = self.vk.versions[command.deprecate.version]
# Could build up a reverse lookup map, but since these are not too large of list, just do here
# (Need to be done after we have found all the aliases)
for key, value in self.structAliasMap.items():
self.vk.structs[self.dealias(value, self.structAliasMap)].aliases.append(key)
for key, value in self.enumFieldAliasMap.items():
@ -537,6 +537,12 @@ class BaseGenerator(OutputGenerator):
cPrototype = decls[0]
cFunctionPointer = decls[1]
deprecate = None
if cmdinfo.deprecatedlink:
deprecate = Deprecate(cmdinfo.deprecatedlink,
cmdinfo.deprecatedbyversion, # is just the string, will update to class later
cmdinfo.deprecatedbyextensions)
protect = self.currentExtension.protect if self.currentExtension is not None else None
# These coammds have no way from the XML to detect they would be an instance command
@ -551,7 +557,7 @@ class BaseGenerator(OutputGenerator):
returnType, params, instance, device,
tasks, queues, successcodes, errorcodes,
primary, secondary, renderpass, videocoding,
implicitExternSyncParams, cPrototype, cFunctionPointer)
implicitExternSyncParams, deprecate, cPrototype, cFunctionPointer)
#
# List the enum for the commands

View file

@ -1273,30 +1273,30 @@ class Registry:
for typeElem in deprecation.findall('type'):
type = self.lookupElementInfo(typeElem.get('name'), self.typedict)
if type:
if versionmatch is not None:
if versionmatch is not False:
type.deprecatedbyversion = featurename
else:
type.deprecatedbyextensions += featurename
type.deprecatedbyextensions.append(featurename)
type.deprecatedlink = deprecation.get('explanationlink')
else:
self.gen.logMsg('error', typeElem.get('name'), ' is tagged for deprecation but not present in registry')
for enumElem in deprecation.findall('enum'):
enum = self.lookupElementInfo(enumElem.get('name'), self.enumdict)
if enum:
if versionmatch is not None:
if versionmatch is not False:
enum.deprecatedbyversion = featurename
else:
enum.deprecatedbyextensions += featurename
enum.deprecatedbyextensions.append(featurename)
enum.deprecatedlink = deprecation.get('explanationlink')
else:
self.gen.logMsg('error', enumElem.get('name'), ' is tagged for deprecation but not present in registry')
for cmdElem in deprecation.findall('command'):
cmd = self.lookupElementInfo(cmdElem.get('name'), self.cmddict)
if cmd:
if versionmatch is not None:
if versionmatch is not False:
cmd.deprecatedbyversion = featurename
else:
cmd.deprecatedbyextensions += featurename
cmd.deprecatedbyextensions.append(featurename)
cmd.deprecatedlink = deprecation.get('explanationlink')
else:
self.gen.logMsg('error', cmdElem.get('name'), ' is tagged for deprecation but not present in registry')

File diff suppressed because one or more lines are too long

View file

@ -29,6 +29,7 @@ The current public version of video.xml is maintained in the default branch
<type category="include" name="vk_video/vulkan_video_codecs_common.h">#include "vulkan_video_codecs_common.h"</type>
<type category="include" name="vk_video/vulkan_video_codec_h264std.h">#include "vulkan_video_codec_h264std.h"</type>
<type category="include" name="vk_video/vulkan_video_codec_h265std.h">#include "vulkan_video_codec_h265std.h"</type>
<type category="include" name="vk_video/vulkan_video_codec_vp9std.h">#include "vulkan_video_codec_vp9std.h"</type>
<type category="include" name="vk_video/vulkan_video_codec_av1std.h">#include "vulkan_video_codec_av1std.h"</type>
<!-- vulkan_video_codecs_common macros -->
@ -51,6 +52,10 @@ The current public version of video.xml is maintained in the default branch
<type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">
#define <name>VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(1, 0, 0)</type>
<!-- vulkan_video_codec_vp9std_decode.h macros -->
<type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">
#define <name>VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_API_VERSION_1_0_0</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(1, 0, 0)</type>
<!-- vulkan_video_codec_av1std_decode.h macros -->
<type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">
#define <name>VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(1, 0, 0)</type>
@ -843,6 +848,94 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint8_t</type> <name>TemporalId</name><comment>Temporal ID, as defined in 7.4.2.2</comment></member>
</type>
<!-- vulkan_video_codec_vp9std.h enumerated types -->
<type name="StdVideoVP9Profile" category="enum"/>
<type name="StdVideoVP9Level" category="enum"/>
<type name="StdVideoVP9FrameType" category="enum"/>
<type name="StdVideoVP9ReferenceName" category="enum"/>
<type name="StdVideoVP9InterpolationFilter" category="enum"/>
<type name="StdVideoVP9ColorSpace" category="enum"/>
<type category="struct" name="StdVideoVP9ColorConfigFlags">
<comment>Syntax defined in section 6.2.2, semantics defined in section 7.2.2</comment>
<member><type>uint32_t</type> <name>color_range</name> : 1</member>
<member><type>uint32_t</type> <name>reserved</name> : 31</member>
</type>
<type category="struct" name="StdVideoVP9ColorConfig">
<comment>Syntax defined in section 6.2.2, semantics defined in section 7.2.2</comment>
<member><type>StdVideoVP9ColorConfigFlags</type> <name>flags</name></member>
<member><type>uint8_t</type> <name>BitDepth</name></member>
<member><type>uint8_t</type> <name>subsampling_x</name></member>
<member><type>uint8_t</type> <name>subsampling_y</name></member>
<member><type>uint8_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>StdVideoVP9ColorSpace</type> <name>color_space</name></member>
</type>
<type category="struct" name="StdVideoVP9LoopFilterFlags">
<comment>Syntax defined in section 6.2.8, semantics defined in section 7.2.8</comment>
<member><type>uint32_t</type> <name>loop_filter_delta_enabled</name> : 1</member>
<member><type>uint32_t</type> <name>loop_filter_delta_update</name> : 1</member>
<member><type>uint32_t</type> <name>reserved</name> : 30</member>
</type>
<type category="struct" name="StdVideoVP9LoopFilter">
<comment>Syntax defined in section 6.2.8, semantics defined in section 7.2.8</comment>
<member><type>StdVideoVP9LoopFilterFlags</type> <name>flags</name></member>
<member><type>uint8_t</type> <name>loop_filter_level</name></member>
<member><type>uint8_t</type> <name>loop_filter_sharpness</name></member>
<member><type>uint8_t</type> <name>update_ref_delta</name></member>
<member><type>int8_t</type> <name>loop_filter_ref_deltas</name>[<enum>STD_VIDEO_VP9_MAX_REF_FRAMES</enum>]</member>
<member><type>uint8_t</type> <name>update_mode_delta</name></member>
<member><type>int8_t</type> <name>loop_filter_mode_deltas</name>[<enum>STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS</enum>]</member>
</type>
<type category="struct" name="StdVideoVP9SegmentationFlags">
<comment>Syntax defined in section 6.2.11, semantics defined in section 7.2.10</comment>
<member><type>uint32_t</type> <name>segmentation_update_map</name> : 1</member>
<member><type>uint32_t</type> <name>segmentation_temporal_update</name> : 1</member>
<member><type>uint32_t</type> <name>segmentation_update_data</name> : 1</member>
<member><type>uint32_t</type> <name>segmentation_abs_or_delta_update</name> : 1</member>
<member><type>uint32_t</type> <name>reserved</name> : 28</member>
</type>
<type category="struct" name="StdVideoVP9Segmentation">
<comment>Syntax defined in section 6.2.11, semantics defined in section 7.2.10</comment>
<member><type>StdVideoVP9SegmentationFlags</type> <name>flags</name></member>
<member><type>uint8_t</type> <name>segmentation_tree_probs</name>[<enum>STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS</enum>]</member>
<member><type>uint8_t</type> <name>segmentation_pred_prob</name>[<enum>STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB</enum>]</member>
<member><type>uint8_t</type> <name>FeatureEnabled</name>[<enum>STD_VIDEO_VP9_MAX_SEGMENTS</enum>]</member><comment>Each element contains 4 (SEG_LVL_MAX) bits, one bit for each feature within the segment</comment>
<member><type>int16_t</type> <name>FeatureData</name>[<enum>STD_VIDEO_VP9_MAX_SEGMENTS</enum>][<enum>STD_VIDEO_VP9_SEG_LVL_MAX</enum>]</member>
</type>
<type category="struct" name="StdVideoDecodeVP9PictureInfoFlags">
<comment>Syntax defined in section 6.2, semantics defined in section 7.2</comment>
<member><type>uint32_t</type> <name>error_resilient_mode</name> : 1</member>
<member><type>uint32_t</type> <name>intra_only</name> : 1</member>
<member><type>uint32_t</type> <name>allow_high_precision_mv</name> : 1</member>
<member><type>uint32_t</type> <name>refresh_frame_context</name> : 1</member>
<member><type>uint32_t</type> <name>frame_parallel_decoding_mode</name> : 1</member>
<member><type>uint32_t</type> <name>segmentation_enabled</name> : 1</member>
<member><type>uint32_t</type> <name>show_frame</name> : 1</member>
<member><type>uint32_t</type> <name>UsePrevFrameMvs</name> : 1</member>
<member><type>uint32_t</type> <name>reserved</name> : 24</member>
</type>
<type category="struct" name="StdVideoDecodeVP9PictureInfo">
<comment>Syntax defined in section 6.2, semantics defined in section 7.2</comment>
<member><type>StdVideoDecodeVP9PictureInfoFlags</type> <name>flags</name></member>
<member><type>StdVideoVP9Profile</type> <name>profile</name></member><comment></comment>
<member><type>StdVideoVP9FrameType</type> <name>frame_type</name></member>
<member><type>uint8_t</type> <name>frame_context_idx</name></member>
<member><type>uint8_t</type> <name>reset_frame_context</name></member>
<member><type>uint8_t</type> <name>refresh_frame_flags</name></member>
<member><type>uint8_t</type> <name>ref_frame_sign_bias_mask</name></member>
<member><type>StdVideoVP9InterpolationFilter</type> <name>interpolation_filter</name></member>
<member><type>uint8_t</type> <name>base_q_idx</name></member>
<member><type>int8_t</type> <name>delta_q_y_dc</name></member>
<member><type>int8_t</type> <name>delta_q_uv_dc</name></member>
<member><type>int8_t</type> <name>delta_q_uv_ac</name></member>
<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>
</type>
<!-- vulkan_video_codec_av1std.h enumerated types -->
<type name="StdVideoAV1Profile" category="enum"/>
<type name="StdVideoAV1Level" category="enum"/>
@ -1424,7 +1517,64 @@ The current public version of video.xml is maintained in the default branch
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID" value="0x7FFFFFFF"/>
</enums>
<!-- vulkan_video_codec_av1std.h enums -->
<!-- vulkan_video_codec_vp9std.h enums -->
<enums name="StdVideoVP9Profile" type="enum">
<enum name="STD_VIDEO_VP9_PROFILE_0" value="0"/>
<enum name="STD_VIDEO_VP9_PROFILE_1" value="1"/>
<enum name="STD_VIDEO_VP9_PROFILE_2" value="2"/>
<enum name="STD_VIDEO_VP9_PROFILE_3" value="3"/>
<enum name="STD_VIDEO_VP9_PROFILE_INVALID" value="0x7FFFFFFF"/>
</enums>
<enums name="StdVideoVP9Level" type="enum">
<enum name="STD_VIDEO_VP9_LEVEL_1_0" value="0"/>
<enum name="STD_VIDEO_VP9_LEVEL_1_1" value="1"/>
<enum name="STD_VIDEO_VP9_LEVEL_2_0" value="2"/>
<enum name="STD_VIDEO_VP9_LEVEL_2_1" value="3"/>
<enum name="STD_VIDEO_VP9_LEVEL_3_0" value="4"/>
<enum name="STD_VIDEO_VP9_LEVEL_3_1" value="5"/>
<enum name="STD_VIDEO_VP9_LEVEL_4_0" value="6"/>
<enum name="STD_VIDEO_VP9_LEVEL_4_1" value="7"/>
<enum name="STD_VIDEO_VP9_LEVEL_5_0" value="8"/>
<enum name="STD_VIDEO_VP9_LEVEL_5_1" value="9"/>
<enum name="STD_VIDEO_VP9_LEVEL_5_2" value="10"/>
<enum name="STD_VIDEO_VP9_LEVEL_6_0" value="11"/>
<enum name="STD_VIDEO_VP9_LEVEL_6_1" value="12"/>
<enum name="STD_VIDEO_VP9_LEVEL_6_2" value="13"/>
<enum name="STD_VIDEO_VP9_LEVEL_INVALID" value="0x7FFFFFFF"/>
</enums>
<enums name="StdVideoVP9FrameType" type="enum">
<enum name="STD_VIDEO_VP9_FRAME_TYPE_KEY" value="0"/>
<enum name="STD_VIDEO_VP9_FRAME_TYPE_NON_KEY" value="1"/>
<enum name="STD_VIDEO_VP9_FRAME_TYPE_INVALID" value="0x7FFFFFFF"/>
</enums>
<enums name="StdVideoVP9ReferenceName" type="enum">
<enum name="STD_VIDEO_VP9_REFERENCE_NAME_INTRA_FRAME" value="0"/>
<enum name="STD_VIDEO_VP9_REFERENCE_NAME_LAST_FRAME" value="1"/>
<enum name="STD_VIDEO_VP9_REFERENCE_NAME_GOLDEN_FRAME" value="2"/>
<enum name="STD_VIDEO_VP9_REFERENCE_NAME_ALTREF_FRAME" value="3"/>
<enum name="STD_VIDEO_VP9_REFERENCE_NAME_INVALID" value="0x7FFFFFFF"/>
</enums>
<enums name="StdVideoVP9InterpolationFilter" type="enum">
<enum name="STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP" value="0"/>
<enum name="STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH" value="1"/>
<enum name="STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP_SHARP" value="2"/>
<enum name="STD_VIDEO_VP9_INTERPOLATION_FILTER_BILINEAR" value="3"/>
<enum name="STD_VIDEO_VP9_INTERPOLATION_FILTER_SWITCHABLE" value="4"/>
<enum name="STD_VIDEO_VP9_INTERPOLATION_FILTER_INVALID" value="0x7FFFFFFF"/>
</enums>
<enums name="StdVideoVP9ColorSpace" type="enum">
<enum name="STD_VIDEO_VP9_COLOR_SPACE_UNKNOWN" value="0"/>
<enum name="STD_VIDEO_VP9_COLOR_SPACE_BT_601" value="1"/>
<enum name="STD_VIDEO_VP9_COLOR_SPACE_BT_709" value="2"/>
<enum name="STD_VIDEO_VP9_COLOR_SPACE_SMPTE_170" value="3"/>
<enum name="STD_VIDEO_VP9_COLOR_SPACE_SMPTE_240" value="4"/>
<enum name="STD_VIDEO_VP9_COLOR_SPACE_BT_2020" value="5"/>
<enum name="STD_VIDEO_VP9_COLOR_SPACE_RESERVED" value="6"/>
<enum name="STD_VIDEO_VP9_COLOR_SPACE_RGB" value="7"/>
<enum name="STD_VIDEO_VP9_COLOR_SPACE_INVALID" value="0x7FFFFFFF"/>
</enums>
<!-- vulkan_video_codec_av1std.h enums -->
<enums name="StdVideoAV1Profile" type="enum">
<enum name="STD_VIDEO_AV1_PROFILE_MAIN" value="0"/>
<enum name="STD_VIDEO_AV1_PROFILE_HIGH" value="1"/>
@ -1736,6 +1886,45 @@ The current public version of video.xml is maintained in the default branch
<type name="StdVideoEncodeH265ReferenceInfo"/>
</require>
</extension>
<extension name="vulkan_video_codec_vp9std" number="11" comment="protect with VULKAN_VIDEO_CODEC_VP9STD_H_" supported="vulkan">
<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"/>
<type name="StdVideoVP9Profile"/>
<type name="StdVideoVP9Level"/>
<type name="StdVideoVP9FrameType"/>
<type name="StdVideoVP9ReferenceName"/>
<type name="StdVideoVP9InterpolationFilter"/>
<type name="StdVideoVP9ColorSpace"/>
<type name="StdVideoVP9ColorConfigFlags"/>
<type name="StdVideoVP9ColorConfig"/>
<type name="StdVideoVP9LoopFilterFlags"/>
<type name="StdVideoVP9LoopFilter"/>
<type name="StdVideoVP9SegmentationFlags"/>
<type name="StdVideoVP9Segmentation"/>
</require>
</extension>
<extension name="vulkan_video_codec_vp9std_decode" number="12" comment="protect with VULKAN_VIDEO_CODEC_VP9STD_DECODE_H_" supported="vulkan">
<require>
<type name="vk_video/vulkan_video_codec_vp9std.h"/>
<type name="VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_API_VERSION_1_0_0"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_API_VERSION_1_0_0"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_EXTENSION_NAME" value="&quot;VK_STD_vulkan_video_codec_vp9_decode&quot;"/>
<type name="StdVideoDecodeVP9PictureInfoFlags"/>
<type name="StdVideoDecodeVP9PictureInfo"/>
</require>
</extension>
<extension name="vulkan_video_codec_av1std" number="8" comment="protect with VULKAN_VIDEO_CODEC_AV1STD_H_" supported="vulkan">
<require>
<type name="vk_video/vulkan_video_codecs_common.h"/>

File diff suppressed because it is too large Load diff

View file

@ -29,6 +29,7 @@ SPECIAL_WORDS = set((
'D3D12', # VkD3D12FenceSubmitInfoKHR
'Float16', # VkPhysicalDeviceShaderFloat16Int8FeaturesKHR
'Bfloat16', # VkPhysicalDeviceShaderBfloat16FeaturesKHR
'Float8', # VkPhysicalDeviceShaderFloat8FeaturesEXT
'ImagePipe', # VkImagePipeSurfaceCreateInfoFUCHSIA
'Int64', # VkPhysicalDeviceShaderAtomicInt64FeaturesKHR
'Int8', # VkPhysicalDeviceShaderFloat16Int8FeaturesKHR
@ -120,6 +121,7 @@ class VulkanConventions(ConventionsBase):
# The simple-minded rules need modification for some structure names
subpats = [
[ r'_H_(26[45])_', r'_H\1_' ],
[ r'_VP_9_', r'_VP9_' ],
[ r'_AV_1_', r'_AV1_' ],
[ r'_VULKAN_([0-9])([0-9])_', r'_VULKAN_\1_\2_' ],
[ r'_VULKAN_SC_([0-9])([0-9])_',r'_VULKAN_SC_\1_\2_' ],

View file

@ -51,6 +51,13 @@ class Version:
nameString: str # ex) "VK_VERSION_1_1" (no marco, so has quotes)
nameApi: str # ex) VK_API_VERSION_1_1
@dataclass
class Deprecate:
"""<deprecate>"""
link: (str | None) # Spec URL Anchor - ex) deprecation-dynamicrendering
version: (Version | None)
extensions: list[str]
@dataclass
class Handle:
"""<type> which represents a dispatch handle"""
@ -163,6 +170,8 @@ class Command:
implicitExternSyncParams: list[str]
deprecate: (Deprecate | None)
# C prototype string - ex:
# VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
# const VkInstanceCreateInfo* pCreateInfo,