Update for Vulkan-Docs 1.3.258

This commit is contained in:
Jon Leech 2023-07-21 03:40:13 -07:00 committed by Jon Leech
parent 6eee20744f
commit 9c37439a79
28 changed files with 7208 additions and 538 deletions

View file

@ -166,6 +166,7 @@ class GeneratorOptions:
reparentEnums=True,
sortProcedure=regSortFeatures,
requireCommandAliases=False,
requireDepends=True,
):
"""Constructor.
@ -208,6 +209,11 @@ class GeneratorOptions:
or <extension> being complete. Defaults to True.
- sortProcedure - takes a list of FeatureInfo objects and sorts
them in place to a preferred order in the generated output.
- requireCommandAliases - if True, treat command aliases
as required dependencies.
- requireDepends - whether to follow API dependencies when emitting
APIs.
Default is
- core API versions
- Khronos (ARB/KHR/OES) extensions
@ -295,6 +301,9 @@ class GeneratorOptions:
"""True if alias= attributes of <command> tags are transitively
required."""
self.requireDepends = requireDepends
"""True if dependencies of API tags are transitively required."""
def emptyRegex(self, pat):
"""Substitute a regular expression which matches no version
or extension names for None or the empty string."""

View file

@ -836,8 +836,9 @@ def makeGenOpts(args):
]
# Video extension 'Std' interfaces, each in its own header files
# These are not Vulkan extensions, or a part of the Vulkan API at all,
# but are treated in a similar fashion for generation purposes.
# These are not Vulkan extensions, or a part of the Vulkan API at all.
# They are treated in a similar fashion for generation purposes, but
# all required APIs for each interface must be explicitly required.
#
# Each element of the videoStd[] array is an extension name defining an
# interface, and is also the basis for the generated header file name.
@ -852,7 +853,8 @@ def makeGenOpts(args):
'vulkan_video_codec_h265std_encode',
]
addExtensionRE = makeREstring(videoStd)
# Unused at present
# addExtensionRE = makeREstring(videoStd)
for codec in videoStd:
headername = f'{codec}.h'
@ -869,10 +871,11 @@ def makeGenOpts(args):
profile = None,
versions = None,
emitversions = None,
defaultExtensions = defaultAPIName,
addExtensions = addExtensionRE,
defaultExtensions = None,
addExtensions = emitExtensionRE,
removeExtensions = None,
emitExtensions = emitExtensionRE,
requireDepends = False,
prefixText = prefixStrings + vkPrefixStrings,
genFuncPointers = False,
protectFile = protectFile,

View file

@ -1241,15 +1241,23 @@ class Registry:
if v.get('struct'):
self.typedict[v.get('struct')].removedValidity.append(copy.deepcopy(v))
def generateFeature(self, fname, ftype, dictionary):
def generateFeature(self, fname, ftype, dictionary, explicit=False):
"""Generate a single type / enum group / enum / command,
and all its dependencies as needed.
- fname - name of feature (`<type>`/`<enum>`/`<command>`)
- ftype - type of feature, 'type' | 'enum' | 'command'
- dictionary - of *Info objects - self.{type|enum|cmd}dict"""
- dictionary - of *Info objects - self.{type|enum|cmd}dict
- explicit - True if this is explicitly required by the top-level
XML <require> tag, False if it is a dependency of an explicit
requirement."""
self.gen.logMsg('diag', 'generateFeature: generating', ftype, fname)
if not (explicit or self.genOpts.requireDepends):
self.gen.logMsg('diag', 'generateFeature: NOT generating', ftype, fname, 'because generator does not require dependencies')
return
f = self.lookupElementInfo(fname, dictionary)
if f is None:
# No such feature. This is an error, but reported earlier
@ -1426,16 +1434,16 @@ class Registry:
# Loop over all features inside all <require> tags.
for features in interface.findall('require'):
for t in features.findall('type'):
self.generateFeature(t.get('name'), 'type', self.typedict)
self.generateFeature(t.get('name'), 'type', self.typedict, explicit=True)
for e in features.findall('enum'):
# If this is an enum extending an enumerated type, do not
# generate it - this has already been done in reg.parseTree,
# by copying this element into the enumerated type.
enumextends = e.get('extends')
if not enumextends:
self.generateFeature(e.get('name'), 'enum', self.enumdict)
self.generateFeature(e.get('name'), 'enum', self.enumdict, explicit=True)
for c in features.findall('command'):
self.generateFeature(c.get('name'), 'command', self.cmddict)
self.generateFeature(c.get('name'), 'command', self.cmddict, explicit=True)
def generateSpirv(self, spirv, dictionary):
if spirv is None:

View file

@ -1,5 +1,5 @@
"""Utility functions not closely tied to other spec_tools types."""
# Copyright 2018-2019 Collabora, Ltd.
# Copyright (c) 2018-2019 Collabora, Ltd.
# Copyright 2013-2023 The Khronos Group Inc.
#
# SPDX-License-Identifier: Apache-2.0

File diff suppressed because one or more lines are too long

View file

@ -16,13 +16,19 @@ The current public version of video.xml is maintained in the default branch
<types comment="Video type definitions">
<!-- base types -->
<type name="stdint" category="include">#include &lt;stdint.h&gt;</type>
<type name="stdint" category="include">#if !defined(VK_NO_STDINT_H)
#include &lt;stdint.h&gt;
#endif</type>
<type name="uint32_t" requires="stdint"/>
<type name="uint16_t" requires="stdint"/>
<type name="uint8_t" requires="stdint"/>
<type name="int32_t" requires="stdint"/>
<type name="int8_t" requires="stdint"/>
<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>
<!-- vulkan_video_codecs_common macros -->
<type category="define">#define <name>VK_MAKE_VIDEO_STD_VERSION</name>(major, minor, patch) \
((((uint32_t)(major)) &lt;&lt; 22) | (((uint32_t)(minor)) &lt;&lt; 12) | ((uint32_t)(patch)))</type>
@ -1035,6 +1041,7 @@ The current public version of video.xml is maintained in the default branch
<extension name="vulkan_video_codecs_common" comment="protect with VULKAN_VIDEO_CODEC_COMMON_H_" supported="vulkan">
<require>
<type name="VK_MAKE_VIDEO_STD_VERSION"/>
<type name="stdint"/>
</require>
</extension>
<extension name="vulkan_video_codec_h264std" comment="protect with VULKAN_VIDEO_CODEC_H264STD_H_" supported="vulkan">
@ -1104,9 +1111,9 @@ The current public version of video.xml is maintained in the default branch
<type name="StdVideoEncodeH264PictureInfoFlags"/>
<type name="StdVideoEncodeH264ReferenceInfoFlags"/>
<type name="StdVideoEncodeH264ReferenceListsInfoFlags"/>
<type name="StdVideoEncodeH264ReferenceListsInfo"/>
<type name="StdVideoEncodeH264RefListModEntry"/>
<type name="StdVideoEncodeH264RefPicMarkingEntry"/>
<type name="StdVideoEncodeH264ReferenceListsInfo"/>
<type name="StdVideoEncodeH264PictureInfo"/>
<type name="StdVideoEncodeH264ReferenceInfo"/>
<type name="StdVideoEncodeH264SliceHeader"/>
@ -1150,12 +1157,18 @@ The current public version of video.xml is maintained in the default branch
<type name="StdVideoH265HrdFlags"/>
<type name="StdVideoH265HrdParameters"/>
<type name="StdVideoH265VpsFlags"/>
<type name="StdVideoH265ProfileTierLevelFlags"/>
<type name="StdVideoH265ProfileTierLevel"/>
<type name="StdVideoH265VideoParameterSet"/>
<type name="StdVideoH265ScalingLists"/>
<type name="StdVideoH265SpsVuiFlags"/>
<type name="StdVideoH265SequenceParameterSetVui"/>
<type name="StdVideoH265PredictorPaletteEntries"/>
<type name="StdVideoH265SpsFlags"/>
<type name="StdVideoH265ShortTermRefPicSetFlags"/>
<type name="StdVideoH265ShortTermRefPicSet"/>
<type name="StdVideoH265ShortTermRefPicsSps"/>
<type name="StdVideoH265LongTermRefPicsSps"/>
<type name="StdVideoH265SequenceParameterSet"/>
<type name="StdVideoH265PpsFlags"/>
<type name="StdVideoH265PictureParameterSet"/>
@ -1192,6 +1205,7 @@ The current public version of video.xml is maintained in the default branch
<type name="StdVideoEncodeH265ReferenceListsInfoFlags"/>
<type name="StdVideoEncodeH265ReferenceListsInfo"/>
<type name="StdVideoEncodeH265PictureInfoFlags"/>
<type name="StdVideoEncodeH265SliceSegmentLongTermRefPics"/>
<type name="StdVideoEncodeH265PictureInfo"/>
<type name="StdVideoEncodeH265ReferenceInfoFlags"/>
<type name="StdVideoEncodeH265ReferenceInfo"/>

View file

@ -175,7 +175,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> 257</type>
#define <name>VK_HEADER_VERSION</name> 258</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, 3, VK_HEADER_VERSION)</type>
<type api="vulkansc" category="define">// Version of this file
@ -465,6 +465,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type requires="VkSubmitFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSubmitFlags</name>;</type>
<type category="bitmask" name="VkSubmitFlagsKHR" alias="VkSubmitFlags"/>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkImageFormatConstraintsFlagsFUCHSIA</name>;</type>
<type requires="VkHostImageCopyFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkHostImageCopyFlagsEXT</name>;</type>
<type requires="VkImageConstraintsInfoFlagBitsFUCHSIA" category="bitmask">typedef <type>VkFlags</type> <name>VkImageConstraintsInfoFlagsFUCHSIA</name>;</type>
<type requires="VkGraphicsPipelineLibraryFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkGraphicsPipelineLibraryFlagsEXT</name>;</type>
<type requires="VkImageCompressionFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkImageCompressionFlagsEXT</name>;</type>
@ -749,6 +750,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkProvokingVertexModeEXT" category="enum"/>
<type name="VkPipelineCacheValidationVersion" category="enum"/>
<type name="VkImageFormatConstraintsFlagBitsFUCHSIA" category="enum"/>
<type name="VkHostImageCopyFlagBitsEXT" category="enum"/>
<type name="VkImageConstraintsInfoFlagBitsFUCHSIA" category="enum"/>
<type name="VkFormatFeatureFlagBits2" category="enum"/>
<type category="enum" name="VkFormatFeatureFlagBits2KHR" alias="VkFormatFeatureFlagBits2"/>
@ -1441,6 +1443,13 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member noautovalidity="true" optional="true"><type>VkPipeline</type> <name>basePipelineHandle</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of</comment></member>
<member><type>int32_t</type> <name>basePipelineIndex</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of</comment></member>
</type>
<type category="struct" name="VkComputePipelineIndirectBufferInfoNV">
<member values="VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkDeviceAddress</type> <name>deviceAddress</name></member>
<member><type>VkDeviceSize</type> <name>size</name></member>
<member><type>VkDeviceAddress</type> <name>pipelineDeviceAddressCaptureReplay</name></member>
</type>
<type category="struct" name="VkVertexInputBindingDescription">
<member><type>uint32_t</type> <name>binding</name><comment>Vertex buffer binding id</comment></member>
<member><type>uint32_t</type> <name>stride</name><comment>Distance between vertices in bytes (0 = no advancement)</comment></member>
@ -2327,6 +2336,13 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>deviceGeneratedCommands</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>deviceGeneratedCompute</name></member>
<member><type>VkBool32</type> <name>deviceGeneratedComputePipelines</name></member>
<member><type>VkBool32</type> <name>deviceGeneratedComputeCaptureReplay</name></member>
</type>
<type category="struct" name="VkDevicePrivateDataCreateInfo" allowduplicate="true" structextends="VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
@ -2447,10 +2463,19 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member values="VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></member>
<member><type>VkPipeline</type> <name>pipeline</name></member>
<member optional="true"><type>VkPipeline</type> <name>pipeline</name></member>
<member><type>VkIndirectCommandsLayoutNV</type> <name>indirectCommandsLayout</name></member>
<member><type>uint32_t</type> <name>maxSequencesCount</name></member>
</type>
<type category="struct" name="VkPipelineIndirectDeviceAddressInfoNV">
<member values="VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></member>
<member><type>VkPipeline</type> <name>pipeline</name></member>
</type>
<type category="struct" name="VkBindPipelineIndirectCommandNV">
<member><type>VkDeviceAddress</type> <name>pipelineAddress</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceFeatures2" structextends="VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
@ -6292,6 +6317,89 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member><type>VkBool32</type> <name>synchronization2</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceSynchronization2FeaturesKHR" alias="VkPhysicalDeviceSynchronization2Features"/>
<type category="struct" name="VkPhysicalDeviceHostImageCopyFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>hostImageCopy</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceHostImageCopyPropertiesEXT" structextends="VkPhysicalDeviceProperties2">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member optional="true" limittype="noauto"><type>uint32_t</type> <name>copySrcLayoutCount</name></member>
<member optional="true" limittype="noauto" len="copySrcLayoutCount"><type>VkImageLayout</type>* <name>pCopySrcLayouts</name></member>
<member optional="true" limittype="noauto"><type>uint32_t</type> <name>copyDstLayoutCount</name></member>
<member optional="true" limittype="noauto" len="copyDstLayoutCount"><type>VkImageLayout</type>* <name>pCopyDstLayouts</name></member>
<member optional="true" limittype="noauto"><type>uint8_t</type> <name>optimalTilingLayoutUUID</name>[<enum>VK_UUID_SIZE</enum>]</member>
<member limittype="bitmask"><type>VkBool32</type> <name>identicalMemoryTypeRequirements</name></member>
</type>
<type category="struct" name="VkMemoryToImageCopyEXT">
<member values="VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>pHostPointer</name></member>
<member><type>uint32_t</type> <name>memoryRowLength</name><comment>Specified in texels</comment></member>
<member><type>uint32_t</type> <name>memoryImageHeight</name></member>
<member><type>VkImageSubresourceLayers</type> <name>imageSubresource</name></member>
<member><type>VkOffset3D</type> <name>imageOffset</name></member>
<member><type>VkExtent3D</type> <name>imageExtent</name></member>
</type>
<type category="struct" name="VkImageToMemoryCopyEXT">
<member values="VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>void</type>* <name>pHostPointer</name></member>
<member><type>uint32_t</type> <name>memoryRowLength</name><comment>Specified in texels</comment></member>
<member><type>uint32_t</type> <name>memoryImageHeight</name></member>
<member><type>VkImageSubresourceLayers</type> <name>imageSubresource</name></member>
<member><type>VkOffset3D</type> <name>imageOffset</name></member>
<member><type>VkExtent3D</type> <name>imageExtent</name></member>
</type>
<type category="struct" name="VkCopyMemoryToImageInfoEXT">
<member values="VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkHostImageCopyFlagsEXT</type> <name>flags</name></member>
<member><type>VkImage</type> <name>dstImage</name></member>
<member><type>VkImageLayout</type> <name>dstImageLayout</name></member>
<member><type>uint32_t</type> <name>regionCount</name></member>
<member len="regionCount">const <type>VkMemoryToImageCopyEXT</type>* <name>pRegions</name></member>
</type>
<type category="struct" name="VkCopyImageToMemoryInfoEXT">
<member values="VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkHostImageCopyFlagsEXT</type> <name>flags</name></member>
<member><type>VkImage</type> <name>srcImage</name></member>
<member><type>VkImageLayout</type> <name>srcImageLayout</name></member>
<member><type>uint32_t</type> <name>regionCount</name></member>
<member len="regionCount">const <type>VkImageToMemoryCopyEXT</type>* <name>pRegions</name></member>
</type>
<type category="struct" name="VkCopyImageToImageInfoEXT">
<member values="VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkHostImageCopyFlagsEXT</type> <name>flags</name></member>
<member><type>VkImage</type> <name>srcImage</name></member>
<member><type>VkImageLayout</type> <name>srcImageLayout</name></member>
<member><type>VkImage</type> <name>dstImage</name></member>
<member><type>VkImageLayout</type> <name>dstImageLayout</name></member>
<member><type>uint32_t</type> <name>regionCount</name></member>
<member len="regionCount">const <type>VkImageCopy2</type>* <name>pRegions</name></member>
</type>
<type category="struct" name="VkHostImageLayoutTransitionInfoEXT">
<member values="VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkImage</type> <name>image</name></member>
<member><type>VkImageLayout</type> <name>oldLayout</name></member>
<member><type>VkImageLayout</type> <name>newLayout</name></member>
<member><type>VkImageSubresourceRange</type> <name>subresourceRange</name></member>
</type>
<type category="struct" name="VkSubresourceHostMemcpySizeEXT" returnedonly="true" structextends="VkSubresourceLayout2EXT">
<member values="VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member>
</type>
<type category="struct" name="VkHostImageCopyDevicePerformanceQueryEXT" returnedonly="true" structextends="VkImageFormatProperties2">
<member values="VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>optimalDeviceAccess</name><comment>Specifies if device access is optimal</comment></member>
<member><type>VkBool32</type> <name>identicalMemoryLayout</name><comment>Specifies if memory layout is identical</comment></member>
</type>
<type category="struct" name="VkPhysicalDeviceVulkanSC10Properties" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
@ -10143,6 +10251,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="3" name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_EXT"/>
<enum bitpos="4" name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_EXT"/>
</enums>
<enums name="VkHostImageCopyFlagBitsEXT" type="bitmask">
<enum bitpos="0" name="VK_HOST_IMAGE_COPY_MEMCPY_EXT"/>
</enums>
<enums name="VkImageFormatConstraintsFlagBitsFUCHSIA" type="bitmask">
</enums>
<enums name="VkImageConstraintsInfoFlagBitsFUCHSIA" type="bitmask">
@ -11291,6 +11402,12 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param><type>VkBuffer</type> <name>buffer</name></param>
<param><type>VkDeviceSize</type> <name>offset</name></param>
</command>
<command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary" tasks="action">
<proto><type>void</type> <name>vkCmdUpdatePipelineIndirectBuffer</name></proto>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
<param><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></param>
<param><type>VkPipeline</type> <name>pipeline</name></param>
</command>
<command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary" tasks="action">
<proto><type>void</type> <name>vkCmdCopyBuffer</name></proto>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
@ -13357,6 +13474,17 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param><type>VkDevice</type> <name>device</name></param>
<param><type>VkDeferredOperationKHR</type> <name>operation</name></param>
</command>
<command>
<proto><type>void</type> <name>vkGetPipelineIndirectMemoryRequirementsNV</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param>const <type>VkComputePipelineCreateInfo</type>* <name>pCreateInfo</name></param>
<param><type>VkMemoryRequirements2</type>* <name>pMemoryRequirements</name></param>
</command>
<command>
<proto><type>VkDeviceAddress</type> <name>vkGetPipelineIndirectDeviceAddressNV</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param>const <type>VkPipelineIndirectDeviceAddressInfoNV</type>* <name>pInfo</name></param>
</command>
<command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
<proto><type>void</type> <name>vkCmdSetCullMode</name></proto>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
@ -13813,6 +13941,27 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param optional="false,true"><type>uint32_t</type>* <name>pCheckpointDataCount</name></param>
<param optional="true" len="pCheckpointDataCount"><type>VkCheckpointData2NV</type>* <name>pCheckpointData</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_MEMORY_MAP_FAILED">
<proto><type>VkResult</type> <name>vkCopyMemoryToImageEXT</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param>const <type>VkCopyMemoryToImageInfoEXT</type>* <name>pCopyMemoryToImageInfo</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_MEMORY_MAP_FAILED">
<proto><type>VkResult</type> <name>vkCopyImageToMemoryEXT</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param>const <type>VkCopyImageToMemoryInfoEXT</type>* <name>pCopyImageToMemoryInfo</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_MEMORY_MAP_FAILED">
<proto><type>VkResult</type> <name>vkCopyImageToImageEXT</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param>const <type>VkCopyImageToImageInfoEXT</type>* <name>pCopyImageToImageInfo</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_MEMORY_MAP_FAILED">
<proto><type>VkResult</type> <name>vkTransitionImageLayoutEXT</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param><type>uint32_t</type> <name>transitionCount</name></param>
<param len="transitionCount">const <type>VkHostImageLayoutTransitionInfoEXT</type>* <name>pTransitions</name></param>
</command>
<command>
<proto><type>void</type> <name>vkGetCommandPoolMemoryConsumption</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
@ -19555,12 +19704,42 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkGetPipelineExecutableInternalRepresentationsKHR"/>
</require>
</extension>
<extension name="VK_INTEL_extension_271" number="271" type="device" author="INTEL" contact="Faith Ekstrand @gfxstrand" supported="disabled">
<extension name="VK_EXT_host_image_copy" number="271" type="device" depends="VK_KHR_get_physical_device_properties2+VK_KHR_copy_commands2+VK_KHR_format_feature_flags2" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="vulkan">
<require>
<enum value="0" name="VK_INTEL_EXTENSION_271_SPEC_VERSION"/>
<enum value="&quot;VK_INTEL_extension_271&quot;" name="VK_INTEL_EXTENSION_271_EXTENSION_NAME"/>
<enum bitpos="22" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_RESERVED_22_BIT_EXT"/>
<enum bitpos="46" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_RESERVED_46_BIT_EXT"/>
<enum value="1" name="VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_host_image_copy&quot;" name="VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT"/>
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT"/>
<enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT"/>
<enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT"/>
<enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT"/>
<enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT"/>
<enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT"/>
<enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT"/>
<enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT"/>
<enum bitpos="22" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT" comment="Can be used with host image copies"/>
<enum bitpos="46" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT" comment="Host image copies are supported"/>
<type name="VkPhysicalDeviceHostImageCopyFeaturesEXT"/>
<type name="VkPhysicalDeviceHostImageCopyPropertiesEXT"/>
<type name="VkHostImageCopyFlagBitsEXT"/>
<type name="VkHostImageCopyFlagsEXT"/>
<type name="VkMemoryToImageCopyEXT"/>
<type name="VkImageToMemoryCopyEXT"/>
<type name="VkCopyMemoryToImageInfoEXT"/>
<type name="VkCopyImageToMemoryInfoEXT"/>
<type name="VkCopyImageToImageInfoEXT"/>
<type name="VkHostImageLayoutTransitionInfoEXT"/>
<type name="VkSubresourceHostMemcpySizeEXT"/>
<type name="VkHostImageCopyDevicePerformanceQueryEXT"/>
<command name="vkCopyMemoryToImageEXT"/>
<command name="vkCopyImageToMemoryEXT"/>
<command name="vkCopyImageToImageEXT"/>
<command name="vkTransitionImageLayoutEXT"/>
<type name="VkSubresourceLayout2EXT"/>
<type name="VkImageSubresource2EXT"/>
<command name="vkGetImageSubresourceLayout2EXT" comment="Taken from VK_EXT_image_compression_control. VkStructureType enums defined in that extension"/>
</require>
</extension>
<extension name="VK_KHR_map_memory2" number="272" type="device" author="KHR" contact="Faith Ekstrand @gfxstrand" supported="vulkan" ratified="vulkan">
@ -21246,9 +21425,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkGetMicromapBuildSizesEXT"/>
</require>
</extension>
<extension name="VK_NV_displacement_micromap" number="398" type="device" depends="VK_EXT_opacity_micromap" author="NV" contact="Christoph Kubisch @pixeljetstream, Eric Werness" supported="vulkan" provisional="true" platform="provisional">
<extension name="VK_NV_displacement_micromap" number="398" type="device" depends="VK_EXT_opacity_micromap" author="NV" contact="Christoph Kubisch @pixeljetstream, Eric Werness @ewerness-nv" supported="vulkan" provisional="true" platform="provisional">
<require>
<enum value="1" name="VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION"/>
<enum value="2" name="VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION"/>
<enum value="&quot;VK_NV_displacement_micromap&quot;" name="VK_NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV" protect="VK_ENABLE_BETA_EXTENSIONS"/>
@ -21517,10 +21696,23 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkCmdDecompressMemoryIndirectCountNV"/>
</require>
</extension>
<extension name="VK_NV_extension_429" number="429" author="NV" contact="Vikram Kushwaha @vkushwaha-nv" supported="disabled">
<extension name="VK_NV_device_generated_commands_compute" number="429" type="device" depends="VK_NV_device_generated_commands" author="NV" contact="Vikram Kushwaha @vkushwaha-nv" supported="vulkan">
<require>
<enum value="0" name="VK_NV_EXTENSION_429_SPEC_VERSION"/>
<enum value="&quot;VK_NV_extension_429&quot;" name="VK_NV_EXTENSION_429_EXTENSION_NAME"/>
<enum value="1" name="VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION"/>
<enum value="&quot;VK_NV_device_generated_commands_compute&quot;" name="VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV"/>
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV"/>
<enum offset="3" extends="VkIndirectCommandsTokenTypeNV" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV"/>
<enum offset="4" extends="VkIndirectCommandsTokenTypeNV" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV"/>
<enum bitpos="7" extends="VkDescriptorSetLayoutCreateFlagBits" name="VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV"/>
<type name="VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV"/>
<type name="VkComputePipelineIndirectBufferInfoNV"/>
<type name="VkPipelineIndirectDeviceAddressInfoNV"/>
<type name="VkBindPipelineIndirectCommandNV"/>
<command name="vkGetPipelineIndirectMemoryRequirementsNV"/>
<command name="vkCmdUpdatePipelineIndirectBuffer"/>
<command name="vkGetPipelineIndirectDeviceAddressNV"/>
</require>
</extension>
<extension name="VK_NV_extension_430" number="430" author="NV" contact="Vikram Kushwaha @vkushwaha-nv" supported="disabled">
@ -22599,6 +22791,12 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_EXT_extension_543&quot;" name="VK_EXT_EXTENSION_543_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_KHR_extension_544" number="544" author="KHR" contact="Daniel Rakos @aqnuep" supported="disabled">
<require>
<enum value="0" name="VK_KHR_EXTENSION_544_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_extension_544&quot;" name="VK_KHR_EXTENSION_544_EXTENSION_NAME"/>
</require>
</extension>
</extensions>
<formats>
<format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8">
@ -24128,21 +24326,21 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enable extension="VK_EXT_fragment_shader_interlock"/>
</spirvextension>
<spirvextension name="SPV_EXT_demote_to_helper_invocation">
<enable version="VK_API_VERSION_1_3"/>
<enable version="VK_VERSION_1_3"/>
<enable extension="VK_EXT_shader_demote_to_helper_invocation"/>
</spirvextension>
<spirvextension name="SPV_KHR_fragment_shading_rate">
<enable extension="VK_KHR_fragment_shading_rate"/>
</spirvextension>
<spirvextension name="SPV_KHR_non_semantic_info">
<enable version="VK_API_VERSION_1_3"/>
<enable version="VK_VERSION_1_3"/>
<enable extension="VK_KHR_shader_non_semantic_info"/>
</spirvextension>
<spirvextension name="SPV_EXT_shader_image_int64">
<enable extension="VK_EXT_shader_image_atomic_int64"/>
</spirvextension>
<spirvextension name="SPV_KHR_terminate_invocation">
<enable version="VK_API_VERSION_1_3"/>
<enable version="VK_VERSION_1_3"/>
<enable extension="VK_KHR_shader_terminate_invocation"/>
</spirvextension>
<spirvextension name="SPV_KHR_multiview">
@ -24159,7 +24357,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enable extension="VK_KHR_fragment_shader_barycentric"/>
</spirvextension>
<spirvextension name="SPV_KHR_subgroup_uniform_control_flow">
<enable version="VK_API_VERSION_1_3"/>
<enable version="VK_VERSION_1_3"/>
<enable extension="VK_KHR_shader_subgroup_uniform_control_flow"/>
</spirvextension>
<spirvextension name="SPV_EXT_shader_atomic_float_min_max">
@ -24172,14 +24370,14 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enable extension="VK_EXT_conservative_rasterization"/>
</spirvextension>
<spirvextension name="SPV_KHR_integer_dot_product">
<enable version="VK_API_VERSION_1_3"/>
<enable version="VK_VERSION_1_3"/>
<enable extension="VK_KHR_shader_integer_dot_product"/>
</spirvextension>
<spirvextension name="SPV_INTEL_shader_integer_functions2">
<enable extension="VK_INTEL_shader_integer_functions2"/>
</spirvextension>
<spirvextension name="SPV_KHR_device_group">
<enable version="VK_API_VERSION_1_1"/>
<enable version="VK_VERSION_1_1"/>
<enable extension="VK_KHR_device_group"/>
</spirvextension>
<spirvextension name="SPV_QCOM_image_processing">
@ -24337,12 +24535,12 @@ typedef void* <name>MTLSharedEvent_id</name>;
</spirvcapability>
<spirvcapability name="StorageImageReadWithoutFormat">
<enable struct="VkPhysicalDeviceFeatures" feature="shaderStorageImageReadWithoutFormat" requires="VK_VERSION_1_0"/>
<enable version="VK_API_VERSION_1_3"/>
<enable version="VK_VERSION_1_3"/>
<enable extension="VK_KHR_format_feature_flags2"/>
</spirvcapability>
<spirvcapability name="StorageImageWriteWithoutFormat">
<enable struct="VkPhysicalDeviceFeatures" feature="shaderStorageImageWriteWithoutFormat" requires="VK_VERSION_1_0"/>
<enable version="VK_API_VERSION_1_3"/>
<enable version="VK_VERSION_1_3"/>
<enable extension="VK_KHR_format_feature_flags2"/>
</spirvcapability>
<spirvcapability name="MultiViewport">