Update for Vulkan-Docs 1.4.329
This commit is contained in:
parent
f5fad0a209
commit
33d7f51258
17 changed files with 1775 additions and 1395 deletions
|
|
@ -9,7 +9,7 @@ import os
|
|||
import tempfile
|
||||
import copy
|
||||
from vulkan_object import (VulkanObject,
|
||||
Extension, Version, Deprecate, Handle, Param, Queues, CommandScope, Command,
|
||||
Extension, Version, Deprecate, Handle, Param, CommandScope, Command,
|
||||
EnumField, Enum, Flag, Bitmask, ExternSync, Flags, Member, Struct,
|
||||
Constant, FormatComponent, FormatPlane, Format, FeatureRequirement,
|
||||
SyncSupport, SyncEquivalent, SyncStage, SyncAccess, SyncPipelineStage, SyncPipeline,
|
||||
|
|
@ -63,29 +63,6 @@ def externSyncGet(elem):
|
|||
return (ExternSync.SUBTYPE_MAYBE, value.removeprefix('maybe:'))
|
||||
return (ExternSync.SUBTYPE, value)
|
||||
|
||||
|
||||
def getQueues(elem) -> Queues:
|
||||
queuemap = {
|
||||
'VK_QUEUE_COMPUTE_BIT': Queues.COMPUTE,
|
||||
'VK_QUEUE_DATA_GRAPH_BIT_ARM': Queues.DATA_GRAPH,
|
||||
'VK_QUEUE_GRAPHICS_BIT': Queues.GRAPHICS,
|
||||
'VK_QUEUE_OPTICAL_FLOW_BIT_NV': Queues.OPTICAL_FLOW,
|
||||
'VK_QUEUE_PROTECTED_BIT': Queues.PROTECTED,
|
||||
'VK_QUEUE_SPARSE_BINDING_BIT': Queues.SPARSE_BINDING,
|
||||
'VK_QUEUE_TRANSFER_BIT': Queues.TRANSFER,
|
||||
'VK_QUEUE_VIDEO_DECODE_BIT_KHR': Queues.DECODE,
|
||||
'VK_QUEUE_VIDEO_ENCODE_BIT_KHR': Queues.ENCODE,
|
||||
}
|
||||
|
||||
queues = 0
|
||||
queues_list = splitIfGet(elem, 'queues')
|
||||
|
||||
for queue in queues_list:
|
||||
if queue in queuemap:
|
||||
queues |= queuemap[queue]
|
||||
|
||||
return queues
|
||||
|
||||
# Shared object used by Sync elements that do not have ones
|
||||
maxSyncSupport = SyncSupport(None, None, True)
|
||||
maxSyncEquivalent = SyncEquivalent(None, None, True)
|
||||
|
|
@ -241,17 +218,6 @@ class BaseGenerator(OutputGenerator):
|
|||
for tag in tags.findall('tag'):
|
||||
self.vk.vendorTags.append(tag.get('name'))
|
||||
|
||||
# No way known to get this from the XML
|
||||
self.vk.queueBits[Queues.TRANSFER] = 'VK_QUEUE_TRANSFER_BIT'
|
||||
self.vk.queueBits[Queues.GRAPHICS] = 'VK_QUEUE_GRAPHICS_BIT'
|
||||
self.vk.queueBits[Queues.COMPUTE] = 'VK_QUEUE_COMPUTE_BIT'
|
||||
self.vk.queueBits[Queues.PROTECTED] = 'VK_QUEUE_PROTECTED_BIT'
|
||||
self.vk.queueBits[Queues.SPARSE_BINDING] = 'VK_QUEUE_SPARSE_BINDING_BIT'
|
||||
self.vk.queueBits[Queues.OPTICAL_FLOW] = 'VK_QUEUE_OPTICAL_FLOW_BIT_NV'
|
||||
self.vk.queueBits[Queues.DECODE] = 'VK_QUEUE_VIDEO_DECODE_BIT_KHR'
|
||||
self.vk.queueBits[Queues.ENCODE] = 'VK_QUEUE_VIDEO_ENCODE_BIT_KHR'
|
||||
self.vk.queueBits[Queues.DATA_GRAPH] = 'VK_QUEUE_DATA_GRAPH_BIT_ARM'
|
||||
|
||||
# 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:
|
||||
|
|
@ -400,6 +366,7 @@ class BaseGenerator(OutputGenerator):
|
|||
if structName in self.vk.structs:
|
||||
struct = self.vk.structs[structName]
|
||||
struct.extensions.extend([extension.name] if extension.name not in struct.extensions else [])
|
||||
extension.structs.extend([struct] if struct not in extension.structs else [])
|
||||
|
||||
# While we update struct alias inside other structs, the command itself might have the struct as a first level param.
|
||||
# We use this time to update params to have the promoted name
|
||||
|
|
@ -619,7 +586,7 @@ class BaseGenerator(OutputGenerator):
|
|||
instance = interface.get('type') == 'instance'
|
||||
device = not instance
|
||||
depends = interface.get('depends')
|
||||
vendorTag = interface.get('author')
|
||||
vendorTag = name.split('_')[1]
|
||||
platform = interface.get('platform')
|
||||
provisional = boolGet(interface, 'provisional')
|
||||
promotedto = interface.get('promotedto')
|
||||
|
|
@ -701,7 +668,7 @@ class BaseGenerator(OutputGenerator):
|
|||
alias = attrib.get('alias')
|
||||
tasks = splitIfGet(attrib, 'tasks')
|
||||
|
||||
queues = getQueues(attrib)
|
||||
queues = splitIfGet(attrib, 'queues')
|
||||
allowNoQueues = boolGet(attrib, 'allownoqueues')
|
||||
successcodes = splitIfGet(attrib, 'successcodes')
|
||||
errorcodes = splitIfGet(attrib, 'errorcodes')
|
||||
|
|
@ -735,7 +702,7 @@ class BaseGenerator(OutputGenerator):
|
|||
device = not instance
|
||||
|
||||
implicitElem = cmdinfo.elem.find('implicitexternsyncparams')
|
||||
implicitExternSyncParams = [x.text for x in implicitElem.findall('param')] if implicitElem else []
|
||||
implicitExternSyncParams = [x.text for x in implicitElem.findall('param')] if implicitElem is not None else []
|
||||
|
||||
self.vk.commands[name] = Command(name, alias, protect, [], self.currentVersion,
|
||||
returnType, params, instance, device,
|
||||
|
|
@ -1018,7 +985,7 @@ class BaseGenerator(OutputGenerator):
|
|||
support = maxSyncSupport
|
||||
supportElem = syncElem.find('syncsupport')
|
||||
if supportElem is not None:
|
||||
queues = getQueues(supportElem)
|
||||
queues = splitIfGet(supportElem, 'queues')
|
||||
stageNames = splitIfGet(supportElem, 'stage')
|
||||
stages = [x for x in self.vk.bitmasks['VkPipelineStageFlagBits2'].flags if x.name in stageNames] if len(stageNames) > 0 else None
|
||||
support = SyncSupport(queues, stages, False)
|
||||
|
|
@ -1045,7 +1012,7 @@ class BaseGenerator(OutputGenerator):
|
|||
support = maxSyncSupport
|
||||
supportElem = syncElem.find('syncsupport')
|
||||
if supportElem is not None:
|
||||
queues = getQueues(supportElem)
|
||||
queues = splitIfGet(supportElem, 'queues')
|
||||
stageNames = splitIfGet(supportElem, 'stage')
|
||||
stages = [x for x in self.vk.bitmasks['VkPipelineStageFlagBits2'].flags if x.name in stageNames] if len(stageNames) > 0 else None
|
||||
support = SyncSupport(queues, stages, False)
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -183,7 +183,7 @@ branch of the member gitlab server.
|
|||
#define <name>VKSC_API_VERSION_1_0</name> <type>VK_MAKE_API_VERSION</type>(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0</type>
|
||||
|
||||
<type api="vulkan" category="define">// Version of this file
|
||||
#define <name>VK_HEADER_VERSION</name> 328</type>
|
||||
#define <name>VK_HEADER_VERSION</name> 329</type>
|
||||
<type api="vulkan" category="define" requires="VK_HEADER_VERSION">// Complete version of this file
|
||||
#define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 4, VK_HEADER_VERSION)</type>
|
||||
<type api="vulkansc" category="define">// Version of this file
|
||||
|
|
@ -1494,7 +1494,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
|||
<member><type>VkExtent3D</type> <name>imageExtent</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member>
|
||||
</type>
|
||||
<type category="struct" name="VkStridedDeviceAddressRangeKHR">
|
||||
<member><type>VkDeviceAddress</type> <name>address</name></member>
|
||||
<member optional="true"><type>VkDeviceAddress</type> <name>address</name></member>
|
||||
<member><type>VkDeviceSize</type> <name>size</name></member>
|
||||
<member><type>VkDeviceSize</type> <name>stride</name></member>
|
||||
</type>
|
||||
|
|
@ -8617,6 +8617,13 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
|||
<member optional="true"><type>void</type>* <name>pNext</name></member>
|
||||
<member limittype="max"><type>VkBool32</type> <name>triStripVertexOrderIndependentOfProvokingVertex</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPhysicalDeviceShaderFmaFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true"><type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkBool32</type> <name>shaderFmaFloat16</name></member>
|
||||
<member><type>VkBool32</type> <name>shaderFmaFloat32</name></member>
|
||||
<member><type>VkBool32</type> <name>shaderFmaFloat64</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPhysicalDeviceRayTracingMotionBlurFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
|
||||
|
|
@ -22806,6 +22813,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
|||
<require>
|
||||
<enum value="0" name="VK_KHR_EXTENSION_209_SPEC_VERSION"/>
|
||||
<enum value=""VK_KHR_extension_209"" name="VK_KHR_EXTENSION_209_EXTENSION_NAME"/>
|
||||
<enum bitpos="9" extends="VkSwapchainCreateFlagBitsKHR" name="VK_SWAPCHAIN_CREATE_RESERVED_9_BIT_EXT"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_INTEL_shader_integer_functions2" number="210" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="INTEL" contact="Ian Romanick @ianromanick" supported="vulkan">
|
||||
|
|
@ -26112,15 +26120,10 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
|||
<feature name="nestedCommandBuffer" struct="VkPhysicalDeviceNestedCommandBufferFeaturesEXT"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_ARM_extension_453" number="453" author="Arm" contact="Kevin Petit @kpet" supported="disabled">
|
||||
<extension name="VK_HUAWEI_extension_453" number="453" author="HUAWEI" contact="Bill Hollings @billhollings" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_ARM_EXTENSION_453_SPEC_VERSION"/>
|
||||
<enum value=""VK_ARM_extension_453"" name="VK_ARM_EXTENSION_453_EXTENSION_NAME"/>
|
||||
<enum bitpos="11" extends="VkQueueFlagBits" name="VK_QUEUE_RESERVED_11_BIT_ARM"/>
|
||||
<enum bitpos="43" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_RESERVED_43_BIT_ARM"/>
|
||||
<enum bitpos="49" extends="VkAccessFlagBits2" name="VK_ACCESS_2_RESERVED_49_BIT_ARM"/>
|
||||
<enum bitpos="50" extends="VkAccessFlagBits2" name="VK_ACCESS_2_RESERVED_50_BIT_ARM"/>
|
||||
<enum bitpos="47" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_RESERVED_47_BIT_ARM"/>
|
||||
<enum value="0" name="VK_HUAWEI_EXTENSION_453_SPEC_VERSION"/>
|
||||
<enum value=""VK_HUAWEI_extension_453"" name="VK_HUAWEI_EXTENSION_453_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_EXT_external_memory_acquire_unmodified" number="454" type="device" depends="VK_KHR_external_memory,VK_VERSION_1_1" author="EXT" contact="Lina Versace @linyaa-kiwi" supported="vulkan" ratified="vulkan" nofeatures="true">
|
||||
|
|
@ -28309,10 +28312,13 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
|||
<enum bitpos="9" extends="VkShaderCreateFlagBitsEXT" name="VK_SHADER_CREATE_RESERVED_9_BIT_EXT"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_EXT_extension_580" number="580" author="EXT" contact="Graeme Leese @gnl21" supported="disabled">
|
||||
<extension name="VK_KHR_shader_fma" number="580" type="device" author="KHR" contact="Graeme Leese @gnl21" supported="vulkan" ratified="vulkan">
|
||||
<require>
|
||||
<enum value="0" name="VK_EXT_EXTENSION_580_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_extension_580"" name="VK_EXT_EXTENSION_580_EXTENSION_NAME"/>
|
||||
<enum value="1" name="VK_KHR_SHADER_FMA_SPEC_VERSION"/>
|
||||
<enum value=""VK_KHR_shader_fma"" name="VK_KHR_SHADER_FMA_EXTENSION_NAME"/>
|
||||
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR"/>
|
||||
<type name="VkPhysicalDeviceShaderFmaFeaturesKHR"/>
|
||||
<feature name="shaderFmaFloat32" struct="VkPhysicalDeviceShaderFmaFeaturesKHR"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_NV_extension_581" number="581" author="NV" contact="Piers Daniell @pdaniell-nv" supported="disabled">
|
||||
|
|
@ -28971,6 +28977,17 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
|||
<enum bitpos="18" extends="VkShaderCreateFlagBitsEXT" name="VK_SHADER_CREATE_RESERVED_18_BIT_KHR" />
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_ARM_extension_659" number="659" author="Arm" contact="Kevin Petit @kpet" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_ARM_EXTENSION_659_SPEC_VERSION"/>
|
||||
<enum value=""VK_ARM_extension_659"" name="VK_ARM_EXTENSION_659_EXTENSION_NAME"/>
|
||||
<enum bitpos="11" extends="VkQueueFlagBits" name="VK_QUEUE_RESERVED_11_BIT_ARM"/>
|
||||
<enum bitpos="43" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_RESERVED_43_BIT_ARM"/>
|
||||
<enum bitpos="49" extends="VkAccessFlagBits2" name="VK_ACCESS_2_RESERVED_49_BIT_ARM"/>
|
||||
<enum bitpos="50" extends="VkAccessFlagBits2" name="VK_ACCESS_2_RESERVED_50_BIT_ARM"/>
|
||||
<enum bitpos="47" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_RESERVED_47_BIT_ARM"/>
|
||||
</require>
|
||||
</extension>
|
||||
</extensions>
|
||||
<formats>
|
||||
<format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8">
|
||||
|
|
@ -30682,6 +30699,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
|||
<enable version="VK_VERSION_1_4"/>
|
||||
<enable extension="VK_KHR_shader_float_controls2"/>
|
||||
</spirvextension>
|
||||
<spirvextension name="SPV_KHR_fma">
|
||||
<enable extension="VK_KHR_shader_fma"/>
|
||||
</spirvextension>
|
||||
<spirvextension name="SPV_KHR_quad_control">
|
||||
<enable extension="VK_KHR_shader_quad_control"/>
|
||||
</spirvextension>
|
||||
|
|
@ -31314,6 +31334,11 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
|||
<spirvcapability name="UntypedPointersKHR">
|
||||
<enable struct="VkPhysicalDeviceShaderUntypedPointersFeaturesKHR" feature="shaderUntypedPointers" requires="VK_KHR_shader_untyped_pointers"/>
|
||||
</spirvcapability>
|
||||
<spirvcapability name="FMAKHR">
|
||||
<enable struct="VkPhysicalDeviceShaderFmaFeaturesKHR" feature="shaderFmaFloat16" requires="VK_KHR_shader_fma"/>
|
||||
<enable struct="VkPhysicalDeviceShaderFmaFeaturesKHR" feature="shaderFmaFloat32" requires="VK_KHR_shader_fma"/>
|
||||
<enable struct="VkPhysicalDeviceShaderFmaFeaturesKHR" feature="shaderFmaFloat64" requires="VK_KHR_shader_fma"/>
|
||||
</spirvcapability>
|
||||
</spirvcapabilities>
|
||||
<sync comment="Machine readable representation of the synchronization objects and their mappings">
|
||||
<syncstage name="VK_PIPELINE_STAGE_2_NONE" alias="VK_PIPELINE_STAGE_NONE">
|
||||
|
|
|
|||
|
|
@ -41,8 +41,9 @@ class Extension:
|
|||
# These are here to allow for easy reverse lookups
|
||||
# To prevent infinite recursion, other classes reference a string back to the Extension class
|
||||
# Quotes allow us to forward declare the dataclass
|
||||
handles: list['Handle'] = field(default_factory=list, init=False)
|
||||
handles: list['Handle'] = field(default_factory=list, init=False)
|
||||
commands: list['Command'] = field(default_factory=list, init=False)
|
||||
structs: list['Struct'] = field(default_factory=list, init=False)
|
||||
enums: list['Enum'] = field(default_factory=list, init=False)
|
||||
bitmasks: list['Bitmask'] = field(default_factory=list, init=False)
|
||||
flags: dict[str, list['Flags']] = field(default_factory=dict, init=False)
|
||||
|
|
@ -141,17 +142,6 @@ class Param:
|
|||
def __lt__(self, other):
|
||||
return self.name < other.name
|
||||
|
||||
class Queues(IntFlag):
|
||||
TRANSFER = auto() # VK_QUEUE_TRANSFER_BIT
|
||||
GRAPHICS = auto() # VK_QUEUE_GRAPHICS_BIT
|
||||
COMPUTE = auto() # VK_QUEUE_COMPUTE_BIT
|
||||
PROTECTED = auto() # VK_QUEUE_PROTECTED_BIT
|
||||
SPARSE_BINDING = auto() # VK_QUEUE_SPARSE_BINDING_BIT
|
||||
OPTICAL_FLOW = auto() # VK_QUEUE_OPTICAL_FLOW_BIT_NV
|
||||
DECODE = auto() # VK_QUEUE_VIDEO_DECODE_BIT_KHR
|
||||
ENCODE = auto() # VK_QUEUE_VIDEO_ENCODE_BIT_KHR
|
||||
DATA_GRAPH = auto() # VK_QUEUE_DATA_GRAPH_BIT_ARM
|
||||
|
||||
class CommandScope(Enum):
|
||||
NONE = auto()
|
||||
INSIDE = auto()
|
||||
|
|
@ -177,7 +167,7 @@ class Command:
|
|||
device: bool
|
||||
|
||||
tasks: list[str] # ex) [ action, state, synchronization ]
|
||||
queues: Queues # zero == No Queues found (represents restriction which queue type can be used)
|
||||
queues: list[str] # ex) [ VK_QUEUE_GRAPHICS_BIT, VK_QUEUE_COMPUTE_BIT ]
|
||||
allowNoQueues: bool # VK_KHR_maintenance9 allows some calls to be done with zero queues
|
||||
successCodes: list[str] # ex) [ VK_SUCCESS, VK_INCOMPLETE ]
|
||||
errorCodes: list[str] # ex) [ VK_ERROR_OUT_OF_HOST_MEMORY ]
|
||||
|
|
@ -422,7 +412,7 @@ class Format:
|
|||
@dataclass
|
||||
class SyncSupport:
|
||||
"""<syncsupport>"""
|
||||
queues: Queues
|
||||
queues: list[str] # ex) [ VK_QUEUE_GRAPHICS_BIT, VK_QUEUE_COMPUTE_BIT ]
|
||||
stages: list[Flag] # VkPipelineStageFlagBits2
|
||||
max: bool # If this supports max values
|
||||
|
||||
|
|
@ -581,8 +571,6 @@ class VulkanObject():
|
|||
platforms: dict[str, str] = field(default_factory=dict, init=False)
|
||||
# list of all vendor Suffix names (KHR, EXT, etc. )
|
||||
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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue