diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2016-12-12 09:44:34 -0700 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2016-12-12 13:45:53 -0700 |
| commit | 53f5565510acae64b34c66e900491632c4433a9f (patch) | |
| tree | 177ef5ad5e4c0855de2c69f908db762c977ba2f0 /scripts | |
| parent | 3a635f75ff30aec1f9b39817ba698e3665c91340 (diff) | |
| download | usermoji-53f5565510acae64b34c66e900491632c4433a9f.tar.xz | |
header: Update to Vulkan version 1.0.37
- header: Updated vulkan.h
- scripts: Updated generator.py
- scripts: Updated vk.xml
- scripts: Merged recent genvk.py changes into lvl_genvk.py
- layers: Updated json files
- loader: Updated SOVERSION to 37
- header: Rebuilt and updated vulkan.hpp
- layers: Updated thread_checker for new functions
- scripts: Fix up vk_helper.py overzealous count detection
Change-Id: Ia10f5fc759166a09999f01e68bbcadb30ddf67f7
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/generator.py | 3 | ||||
| -rw-r--r-- | scripts/lvl_genvk.py | 16 | ||||
| -rw-r--r-- | scripts/vk.xml | 428 | ||||
| -rw-r--r-- | scripts/vulkan.py | 61 |
4 files changed, 448 insertions, 60 deletions
diff --git a/scripts/generator.py b/scripts/generator.py index 043121cd..3c5cc0a1 100755 --- a/scripts/generator.py +++ b/scripts/generator.py @@ -318,7 +318,8 @@ class OutputGenerator: # Open specified output file. Not done in constructor since a # Generator can be used without writing to a file. if (self.genOpts.filename != None): - self.outFile = open(self.genOpts.directory + '/' + self.genOpts.filename, 'w') + filename = self.genOpts.directory + '/' + self.genOpts.filename + self.outFile = open(filename, 'w', encoding='utf-8') else: self.outFile = sys.stdout def endFile(self): diff --git a/scripts/lvl_genvk.py b/scripts/lvl_genvk.py index 63b8bab8..07a7bcd7 100644 --- a/scripts/lvl_genvk.py +++ b/scripts/lvl_genvk.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 # # Copyright (c) 2013-2016 The Khronos Group Inc. # @@ -50,7 +50,7 @@ def makeREstring(list): # extensions - list of extension names to include. # protect - True if re-inclusion protection should be added to headers # directory - path to directory in which to generate the target(s) -def makeGenOpts(extensions = [], protect = True, directory = '.'): +def makeGenOpts(extensions = [], removeExtensions = [], protect = True, directory = '.'): global genOpts genOpts = {} @@ -60,7 +60,7 @@ def makeGenOpts(extensions = [], protect = True, directory = '.'): noVersions = noExtensions = None addExtensions = makeREstring(extensions) - removeExtensions = makeREstring([]) + removeExtensions = makeREstring(removeExtensions) # Copyright text prefixing all headers (list of strings). prefixStrings = [ @@ -199,6 +199,7 @@ def genTarget(args): # Create generator options with specified parameters makeGenOpts(extensions = args.extension, + removeExtensions = args.removeExtension, protect = args.protect, directory = args.directory) @@ -228,6 +229,9 @@ if __name__ == '__main__': parser.add_argument('-extension', action='append', default=[], help='Specify an extension or extensions to add to targets') + parser.add_argument('-removeExtension', action='append', + default=[], + help='Specify an extension or extensions to remove from targets') parser.add_argument('-debug', action='store_true', help='Enable debugging') parser.add_argument('-dump', action='store_true', @@ -276,16 +280,16 @@ if __name__ == '__main__': if (args.dump): write('* Dumping registry to regdump.txt', file=sys.stderr) - reg.dumpReg(filehandle = open('regdump.txt','w')) + reg.dumpReg(filehandle = open('regdump.txt','w', encoding='utf-8')) # create error/warning & diagnostic files if (args.errfile): - errWarn = open(args.errfile, 'w') + errWarn = open(args.errfile, 'w', encoding='utf-8') else: errWarn = sys.stderr if (args.diagfile): - diag = open(args.diagfile, 'w') + diag = open(args.diagfile, 'w', encoding='utf-8') else: diag = None diff --git a/scripts/vk.xml b/scripts/vk.xml index ed30fcda..869e1279 100644 --- a/scripts/vk.xml +++ b/scripts/vk.xml @@ -104,7 +104,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <type category="define">// Vulkan 1.0 version number #define <name>VK_API_VERSION_1_0</name> <type>VK_MAKE_VERSION</type>(1, 0, 0)</type> <!-- The patch version here should never be set to anything other than 0 --> <type category="define">// Version of this file -#define <name>VK_HEADER_VERSION</name> 34</type> +#define <name>VK_HEADER_VERSION</name> 37</type> <type category="define"> #define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type> @@ -195,6 +195,10 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <type requires="VkDescriptorPoolCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorPoolCreateFlags</name>;</type> <!-- Descriptor pool creation flags --> <type category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorPoolResetFlags</name>;</type> <!-- Descriptor pool reset flags --> <type requires="VkDependencyFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkDependencyFlags</name>;</type> <!-- Pipeline barrier and subpass dependency flags --> + + <type requires="VkIndirectCommandsLayoutUsageFlagBitsNVX" category="bitmask">typedef <type>VkFlags</type> <name>VkIndirectCommandsLayoutUsageFlagsNVX</name>;</type> <!-- Device generated commands usage flags --> + <type requires="VkObjectEntryUsageFlagBitsNVX" category="bitmask">typedef <type>VkFlags</type> <name>VkObjectEntryUsageFlagsNVX</name>;</type> <!-- Object usage flags --> + <!-- WSI extensions --> <type requires="VkCompositeAlphaFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkCompositeAlphaFlagsKHR</name>;</type> <type requires="VkDisplayPlaneAlphaFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkDisplayPlaneAlphaFlagsKHR</name>;</type> @@ -239,6 +243,8 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkFramebuffer</name>)</type> <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkRenderPass</name>)</type> <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkPipelineCache</name>)</type> + <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkObjectTableNVX</name>)</type> + <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkIndirectCommandsLayoutNVX</name>)</type> <!-- WSI extensions --> <type category="handle"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDisplayKHR</name>)</type> @@ -334,6 +340,10 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <type name="VkAttachmentDescriptionFlagBits" category="enum"/> <type name="VkDescriptorPoolCreateFlagBits" category="enum"/> <type name="VkDependencyFlagBits" category="enum"/> + <type name="VkIndirectCommandsLayoutUsageFlagBitsNVX" category="enum"/> + <type name="VkIndirectCommandsTokenTypeNVX" category="enum"/> + <type name="VkObjectEntryUsageFlagBitsNVX" category="enum"/> + <type name="VkObjectEntryTypeNVX" category="enum"/> <!-- WSI extensions --> <type name="VkColorSpaceKHR" category="enum"/> <type name="VkCompositeAlphaFlagBitsKHR" category="enum"/> @@ -1444,21 +1454,21 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <member values="VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure --> <member optional="true"><type>VkAndroidSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved --> - <member><type>ANativeWindow</type>* <name>window</name></member> + <member noautovalidity="true"><type>ANativeWindow</type>* <name>window</name></member> </type> <type category="struct" name="VkMirSurfaceCreateInfoKHR"> <member values="VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure --> <member optional="true"><type>VkMirSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved --> - <member><type>MirConnection</type>* <name>connection</name></member> - <member><type>MirSurface</type>* <name>mirSurface</name></member> + <member noautovalidity="true"><type>MirConnection</type>* <name>connection</name></member> + <member noautovalidity="true"><type>MirSurface</type>* <name>mirSurface</name></member> </type> <type category="struct" name="VkWaylandSurfaceCreateInfoKHR"> <member values="VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure --> <member optional="true"><type>VkWaylandSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved --> - <member>struct <type>wl_display</type>* <name>display</name></member> - <member>struct <type>wl_surface</type>* <name>surface</name></member> + <member noautovalidity="true">struct <type>wl_display</type>* <name>display</name></member> + <member noautovalidity="true">struct <type>wl_surface</type>* <name>surface</name></member> </type> <type category="struct" name="VkWin32SurfaceCreateInfoKHR"> <member values="VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> @@ -1471,14 +1481,14 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <member values="VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure --> <member optional="true"><type>VkXlibSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved --> - <member><type>Display</type>* <name>dpy</name></member> + <member noautovalidity="true"><type>Display</type>* <name>dpy</name></member> <member><type>Window</type> <name>window</name></member> </type> <type category="struct" name="VkXcbSurfaceCreateInfoKHR"> <member values="VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure --> <member optional="true"><type>VkXcbSurfaceCreateFlagsKHR</type> <name>flags</name></member> <!-- Reserved --> - <member><type>xcb_connection_t</type>* <name>connection</name></member> + <member noautovalidity="true"><type>xcb_connection_t</type>* <name>connection</name></member> <member><type>xcb_window_t</type> <name>window</name></member> </type> <type category="struct" name="VkSurfaceFormatKHR" returnedonly="true"> @@ -1571,33 +1581,33 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <member optional="true"><type>VkImage</type> <name>image</name></member> <!-- Image that this allocation will be bound to --> <member optional="true"><type>VkBuffer</type> <name>buffer</name></member> <!-- Buffer that this allocation will be bound to --> </type> - <type category="struct" name="VkExternalImageFormatPropertiesNV"> + <type category="struct" name="VkExternalImageFormatPropertiesNV" returnedonly="true"> <member><type>VkImageFormatProperties</type> <name>imageFormatProperties</name></member> - <member><type>VkExternalMemoryFeatureFlagsNV</type> <name>externalMemoryFeatures</name></member> - <member><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>exportFromImportedHandleTypes</name></member> - <member><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>compatibleHandleTypes</name></member> + <member optional="true"><type>VkExternalMemoryFeatureFlagsNV</type> <name>externalMemoryFeatures</name></member> + <member optional="true"><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>exportFromImportedHandleTypes</name></member> + <member optional="true"><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>compatibleHandleTypes</name></member> </type> <type category="struct" name="VkExternalMemoryImageCreateInfoNV"> <member values="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> - <member><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>handleTypes</name></member> + <member optional="true"><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>handleTypes</name></member> </type> <type category="struct" name="VkExportMemoryAllocateInfoNV"> <member values="VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> - <member><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>handleTypes</name></member> + <member optional="true"><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>handleTypes</name></member> </type> <type category="struct" name="VkImportMemoryWin32HandleInfoNV"> <member values="VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> <member optional="true"><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>handleType</name></member> - <member><type>HANDLE</type> <name>handle</name></member> + <member optional="true"><type>HANDLE</type> <name>handle</name></member> </type> <type category="struct" name="VkExportMemoryWin32HandleInfoNV"> <member values="VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> - <member>const <type>SECURITY_ATTRIBUTES</type>* <name>pAttributes</name></member> - <member><type>DWORD</type> <name>dwAccess</name></member> + <member optional="true">const <type>SECURITY_ATTRIBUTES</type>* <name>pAttributes</name></member> + <member optional="true"><type>DWORD</type> <name>dwAccess</name></member> </type> <type category="struct" name="VkWin32KeyedMutexAcquireReleaseInfoNV"> <member values="VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> @@ -1610,6 +1620,106 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <member len="releaseCount">const <type>VkDeviceMemory</type>* <name>pReleaseSyncs</name></member> <member len="releaseCount">const <type>uint64_t</type>* <name>pReleaseKeys</name></member> </type> + + <type category="struct" name="VkDeviceGeneratedCommandsFeaturesNVX"> + <member values="VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>computeBindingPointSupport</name></member> + </type> + <type category="struct" name="VkDeviceGeneratedCommandsLimitsNVX"> + <member values="VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>uint32_t</type> <name>maxIndirectCommandsLayoutTokenCount</name></member> + <member><type>uint32_t</type> <name>maxObjectEntryCounts</name></member> + <member><type>uint32_t</type> <name>minSequenceCountBufferOffsetAlignment</name></member> + <member><type>uint32_t</type> <name>minSequenceIndexBufferOffsetAlignment</name></member> + <member><type>uint32_t</type> <name>minCommandsTokenBufferOffsetAlignment</name></member> + </type> + <type category="struct" name="VkIndirectCommandsTokenNVX"> + <member><type>VkIndirectCommandsTokenTypeNVX</type> <name>tokenType</name></member> + <member><type>VkBuffer</type> <name>buffer</name></member> <!-- buffer containing tableEntries and additional data for indirectCommands --> + <member><type>VkDeviceSize</type> <name>offset</name></member> <!-- offset from the base address of the buffer --> + </type> + <type category="struct" name="VkIndirectCommandsLayoutTokenNVX"> + <member><type>VkIndirectCommandsTokenTypeNVX</type> <name>tokenType</name></member> + <member><type>uint32_t</type> <name>bindingUnit</name></member> <!-- Binding unit for vertex attribute / descriptor set, offset for pushconstants --> + <member><type>uint32_t</type> <name>dynamicCount</name></member> <!-- Number of variable dynamic values for descriptor set / push constants --> + <member><type>uint32_t</type> <name>divisor</name></member> <!-- Rate the which the array is advanced per element (must be power of 2, minimum 1) --> + </type> + <type category="struct" name="VkIndirectCommandsLayoutCreateInfoNVX"> + <member values="VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></member> + <member><type>VkIndirectCommandsLayoutUsageFlagsNVX</type> <name>flags</name></member> + <member><type>uint32_t</type> <name>tokenCount</name></member> + <member len="tokenCount">const <type>VkIndirectCommandsLayoutTokenNVX</type>* <name>pTokens</name></member> + </type> + <type category="struct" name="VkCmdProcessCommandsInfoNVX"> + <member values="VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member externsync="true"><type>VkObjectTableNVX</type> <name>objectTable</name></member> + <member><type>VkIndirectCommandsLayoutNVX</type> <name>indirectCommandsLayout</name></member> + <member><type>uint32_t</type> <name>indirectCommandsTokenCount</name></member> + <member len="indirectCommandsTokenCount">const <type>VkIndirectCommandsTokenNVX</type>* <name>pIndirectCommandsTokens</name></member> + <member><type>uint32_t</type> <name>maxSequencesCount</name></member> + <member optional="true" externsync="true"><type>VkCommandBuffer</type> <name>targetCommandBuffer</name></member> + <member optional="true"><type>VkBuffer</type> <name>sequencesCountBuffer</name></member> + <member optional="true"><type>VkDeviceSize</type> <name>sequencesCountOffset</name></member> + <member optional="true"><type>VkBuffer</type> <name>sequencesIndexBuffer</name></member> + <member optional="true"><type>VkDeviceSize</type> <name>sequencesIndexOffset</name></member> + </type> + <type category="struct" name="VkCmdReserveSpaceForCommandsInfoNVX"> + <member values="VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member externsync="true"><type>VkObjectTableNVX</type> <name>objectTable</name></member> + <member><type>VkIndirectCommandsLayoutNVX</type> <name>indirectCommandsLayout</name></member> + <member><type>uint32_t</type> <name>maxSequencesCount</name></member> + </type> + <type category="struct" name="VkObjectTableCreateInfoNVX"> + <member values="VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>uint32_t</type> <name>objectCount</name></member> + <member len="objectCount">const <type>VkObjectEntryTypeNVX</type>* <name>pObjectEntryTypes</name></member> + <member len="objectCount">const <type>uint32_t</type>* <name>pObjectEntryCounts</name></member> + <member len="objectCount">const <type>VkObjectEntryUsageFlagsNVX</type>* <name>pObjectEntryUsageFlags</name></member> + + <member><type>uint32_t</type> <name>maxUniformBuffersPerDescriptor</name></member> + <member><type>uint32_t</type> <name>maxStorageBuffersPerDescriptor</name></member> + <member><type>uint32_t</type> <name>maxStorageImagesPerDescriptor</name></member> + <member><type>uint32_t</type> <name>maxSampledImagesPerDescriptor</name></member> + <member><type>uint32_t</type> <name>maxPipelineLayouts</name></member> + </type> + <type category="struct" name="VkObjectTableEntryNVX"> + <member><type>VkObjectEntryTypeNVX</type> <name>type</name></member> + <member><type>VkObjectEntryUsageFlagsNVX</type> <name>flags</name></member> + </type> + <type category="struct" name="VkObjectTablePipelineEntryNVX"> + <member><type>VkObjectEntryTypeNVX</type> <name>type</name></member> + <member><type>VkObjectEntryUsageFlagsNVX</type> <name>flags</name></member> + <member><type>VkPipeline</type> <name>pipeline</name></member> + </type> + <type category="struct" name="VkObjectTableDescriptorSetEntryNVX"> + <member><type>VkObjectEntryTypeNVX</type> <name>type</name></member> + <member><type>VkObjectEntryUsageFlagsNVX</type> <name>flags</name></member> + <member><type>VkPipelineLayout</type> <name>pipelineLayout</name></member> + <member><type>VkDescriptorSet</type> <name>descriptorSet</name></member> + </type> + <type category="struct" name="VkObjectTableVertexBufferEntryNVX"> + <member><type>VkObjectEntryTypeNVX</type> <name>type</name></member> + <member><type>VkObjectEntryUsageFlagsNVX</type> <name>flags</name></member> + <member><type>VkBuffer</type> <name>buffer</name></member> + </type> + <type category="struct" name="VkObjectTableIndexBufferEntryNVX"> + <member><type>VkObjectEntryTypeNVX</type> <name>type</name></member> + <member><type>VkObjectEntryUsageFlagsNVX</type> <name>flags</name></member> + <member><type>VkBuffer</type> <name>buffer</name></member> + </type> + <type category="struct" name="VkObjectTablePushConstantEntryNVX"> + <member><type>VkObjectEntryTypeNVX</type> <name>type</name></member> + <member><type>VkObjectEntryUsageFlagsNVX</type> <name>flags</name></member> + <member><type>VkPipelineLayout</type> <name>pipelineLayout</name></member> + <member><type>VkShaderStageFlags</type> <name>stageFlags</name></member> + </type> </types> <!-- SECTION: Vulkan enumerant (token) definitions. --> @@ -2410,6 +2520,10 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <enum value="26" name="VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT"/> <enum value="27" name="VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"/> <enum value="28" name="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT"/> + <enum value="29" name="VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT"/> + <enum value="30" name="VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT"/> + <enum value="31" name="VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT"/> + <enum value="32" name="VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT"/> </enums> <enums name="VkDebugReportErrorEXT" type="enum"> <enum value="0" name="VK_DEBUG_REPORT_ERROR_NONE_EXT"/> <!-- Used for INFO & other non-error messages --> @@ -2434,7 +2548,33 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <enum value="0" name="VK_VALIDATION_CHECK_ALL_EXT"/> <!-- Placeholder for validation enums to be defined for VK_EXT_Validation_flags extension --> </enums> - + <enums name="VkIndirectCommandsLayoutUsageFlagBitsNVX" type="bitmask"> + <enum bitpos="0" name="VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX"/> <!-- sequences can be processed in implementation-dependent order --> + <enum bitpos="1" name="VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX"/> <!-- likely generated with a high difference in actual sequencesCount and maxSequencesCount --> + <enum bitpos="2" name="VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX"/> <!-- likely to contain draw/dispatch calls that are zero-sized --> + <enum bitpos="3" name="VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX"/> <!-- custom sequence index permutation (32-bit) is provided --> + </enums> + <enums name="VkObjectEntryUsageFlagBitsNVX" type="bitmask"> + <enum bitpos="0" name="VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX"/> + <enum bitpos="1" name="VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX"/> + </enums> + <enums name="VkIndirectCommandsTokenTypeNVX" type="enum"> + <enum value="0" name="VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX"/> <!-- array of 32bit tableEntry in the object table --> + <enum value="1" name="VK_INDIRECT_COMMANDS_TOKEN_DESCRIPTOR_SET_NVX"/> <!-- array of (32 bit tableEntry + variable count 32bit offsets) --> + <enum value="2" name="VK_INDIRECT_COMMANDS_TOKEN_INDEX_BUFFER_NVX"/> <!-- array of (32 bit tableEntry + optional 32bit offset) --> + <enum value="3" name="VK_INDIRECT_COMMANDS_TOKEN_VERTEX_BUFFER_NVX"/> <!-- array of (32 bit tableEntry + optional 32bit offset) --> + <enum value="4" name="VK_INDIRECT_COMMANDS_TOKEN_PUSH_CONSTANT_NVX"/> <!-- array of (32 bit tableEntry + variable count 32bit values ) --> + <enum value="5" name="VK_INDIRECT_COMMANDS_TOKEN_DRAW_INDEXED_NVX"/> <!-- array of VkDrawIndexedIndirectCommand --> + <enum value="6" name="VK_INDIRECT_COMMANDS_TOKEN_DRAW_NVX"/> <!-- array of VkDrawIndirectCommand --> + <enum value="7" name="VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX"/> <!-- array of VkDispatchIndirectCommand --> + </enums> + <enums name="VkObjectEntryTypeNVX" type="enum"> + <enum value="0" name="VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX"/> + <enum value="1" name="VK_OBJECT_ENTRY_PIPELINE_NVX"/> + <enum value="2" name="VK_OBJECT_ENTRY_INDEX_BUFFER_NVX"/> + <enum value="3" name="VK_OBJECT_ENTRY_VERTEX_BUFFER_NVX"/> + <enum value="4" name="VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX"/> + </enums> <!-- SECTION: Vulkan command definitions --> <commands> <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_LAYER_NOT_PRESENT,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INCOMPATIBLE_DRIVER"> @@ -3131,7 +3271,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param len="bindingCount">const <type>VkBuffer</type>* <name>pBuffers</name></param> <param len="bindingCount">const <type>VkDeviceSize</type>* <name>pOffsets</name></param> </command> - <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary"> + <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" pipeline="graphics"> <proto><type>void</type> <name>vkCmdDraw</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>uint32_t</type> <name>vertexCount</name></param> @@ -3139,7 +3279,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint32_t</type> <name>firstVertex</name></param> <param><type>uint32_t</type> <name>firstInstance</name></param> </command> - <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary"> + <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" pipeline="graphics"> <proto><type>void</type> <name>vkCmdDrawIndexed</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>uint32_t</type> <name>indexCount</name></param> @@ -3148,7 +3288,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>int32_t</type> <name>vertexOffset</name></param> <param><type>uint32_t</type> <name>firstInstance</name></param> </command> - <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary"> + <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" pipeline="graphics"> <proto><type>void</type> <name>vkCmdDrawIndirect</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkBuffer</type> <name>buffer</name></param> @@ -3156,7 +3296,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint32_t</type> <name>drawCount</name></param> <param><type>uint32_t</type> <name>stride</name></param> </command> - <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary"> + <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" pipeline="graphics"> <proto><type>void</type> <name>vkCmdDrawIndexedIndirect</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkBuffer</type> <name>buffer</name></param> @@ -3164,20 +3304,20 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint32_t</type> <name>drawCount</name></param> <param><type>uint32_t</type> <name>stride</name></param> </command> - <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary"> + <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary" pipeline="compute"> <proto><type>void</type> <name>vkCmdDispatch</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>uint32_t</type> <name>x</name></param> <param><type>uint32_t</type> <name>y</name></param> <param><type>uint32_t</type> <name>z</name></param> </command> - <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary"> + <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary" pipeline="compute"> <proto><type>void</type> <name>vkCmdDispatchIndirect</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <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"> + <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary" pipeline="transfer"> <proto><type>void</type> <name>vkCmdCopyBuffer</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkBuffer</type> <name>srcBuffer</name></param> @@ -3185,7 +3325,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint32_t</type> <name>regionCount</name></param> <param len="regionCount">const <type>VkBufferCopy</type>* <name>pRegions</name></param> </command> - <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary"> + <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary" pipeline="transfer"> <proto><type>void</type> <name>vkCmdCopyImage</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkImage</type> <name>srcImage</name></param> @@ -3195,7 +3335,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint32_t</type> <name>regionCount</name></param> <param len="regionCount">const <type>VkImageCopy</type>* <name>pRegions</name></param> </command> - <command queues="graphics" renderpass="outside" cmdbufferlevel="primary,secondary"> + <command queues="graphics" renderpass="outside" cmdbufferlevel="primary,secondary" pipeline="transfer"> <proto><type>void</type> <name>vkCmdBlitImage</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkImage</type> <name>srcImage</name></param> @@ -3206,7 +3346,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param len="regionCount">const <type>VkImageBlit</type>* <name>pRegions</name></param> <param><type>VkFilter</type> <name>filter</name></param> </command> - <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary"> + <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary" pipeline="transfer"> <proto><type>void</type> <name>vkCmdCopyBufferToImage</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkBuffer</type> <name>srcBuffer</name></param> @@ -3215,7 +3355,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint32_t</type> <name>regionCount</name></param> <param len="regionCount">const <type>VkBufferImageCopy</type>* <name>pRegions</name></param> </command> - <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary"> + <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary" pipeline="transfer"> <proto><type>void</type> <name>vkCmdCopyImageToBuffer</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkImage</type> <name>srcImage</name></param> @@ -3224,7 +3364,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint32_t</type> <name>regionCount</name></param> <param len="regionCount">const <type>VkBufferImageCopy</type>* <name>pRegions</name></param> </command> - <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary"> + <command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary" pipeline="transfer"> <proto><type>void</type> <name>vkCmdUpdateBuffer</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkBuffer</type> <name>dstBuffer</name></param> @@ -3232,7 +3372,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>VkDeviceSize</type> <name>dataSize</name></param> <param len="dataSize">const <type>void</type>* <name>pData</name></param> </command> - <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary"> + <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary" pipeline="transfer"> <proto><type>void</type> <name>vkCmdFillBuffer</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkBuffer</type> <name>dstBuffer</name></param> @@ -3240,7 +3380,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>VkDeviceSize</type> <name>size</name></param> <param><type>uint32_t</type> <name>data</name></param> </command> - <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary"> + <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary" pipeline="transfer"> <proto><type>void</type> <name>vkCmdClearColorImage</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkImage</type> <name>image</name></param> @@ -3249,7 +3389,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint32_t</type> <name>rangeCount</name></param> <param len="rangeCount">const <type>VkImageSubresourceRange</type>* <name>pRanges</name></param> </command> - <command queues="graphics" renderpass="outside" cmdbufferlevel="primary,secondary"> + <command queues="graphics" renderpass="outside" cmdbufferlevel="primary,secondary" pipeline="transfer"> <proto><type>void</type> <name>vkCmdClearDepthStencilImage</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkImage</type> <name>image</name></param> @@ -3258,7 +3398,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint32_t</type> <name>rangeCount</name></param> <param len="rangeCount">const <type>VkImageSubresourceRange</type>* <name>pRanges</name></param> </command> - <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary"> + <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" pipeline="graphics"> <proto><type>void</type> <name>vkCmdClearAttachments</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>uint32_t</type> <name>attachmentCount</name></param> @@ -3266,7 +3406,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint32_t</type> <name>rectCount</name></param> <param len="rectCount">const <type>VkClearRect</type>* <name>pRects</name></param> </command> - <command queues="graphics" renderpass="outside" cmdbufferlevel="primary,secondary"> + <command queues="graphics" renderpass="outside" cmdbufferlevel="primary,secondary" pipeline="transfer"> <proto><type>void</type> <name>vkCmdResolveImage</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkImage</type> <name>srcImage</name></param> @@ -3335,14 +3475,14 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint32_t</type> <name>firstQuery</name></param> <param><type>uint32_t</type> <name>queryCount</name></param> </command> - <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"> + <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary" pipeline="transfer"> <proto><type>void</type> <name>vkCmdWriteTimestamp</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkPipelineStageFlagBits</type> <name>pipelineStage</name></param> <param><type>VkQueryPool</type> <name>queryPool</name></param> <param><type>uint32_t</type> <name>query</name></param> </command> - <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary"> + <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary" pipeline="transfer"> <proto><type>void</type> <name>vkCmdCopyQueryPoolResults</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkQueryPool</type> <name>queryPool</name></param> @@ -3362,18 +3502,18 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint32_t</type> <name>size</name></param> <param len="size">const <type>void</type>* <name>pValues</name></param> </command> - <command queues="graphics" renderpass="outside" cmdbufferlevel="primary"> + <command queues="graphics" renderpass="outside" cmdbufferlevel="primary" pipeline="graphics"> <proto><type>void</type> <name>vkCmdBeginRenderPass</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkRenderPassBeginInfo</type>* <name>pRenderPassBegin</name></param> <param><type>VkSubpassContents</type> <name>contents</name></param> </command> - <command queues="graphics" renderpass="inside" cmdbufferlevel="primary"> + <command queues="graphics" renderpass="inside" cmdbufferlevel="primary" pipeline="graphics"> <proto><type>void</type> <name>vkCmdNextSubpass</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkSubpassContents</type> <name>contents</name></param> </command> - <command queues="graphics" renderpass="inside" cmdbufferlevel="primary"> + <command queues="graphics" renderpass="inside" cmdbufferlevel="primary" pipeline="graphics"> <proto><type>void</type> <name>vkCmdEndRenderPass</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> </command> @@ -3600,8 +3740,8 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint64_t</type> <name>object</name></param> <param><type>size_t</type> <name>location</name></param> <param><type>int32_t</type> <name>messageCode</name></param> - <param>const <type>char</type>* <name>pLayerPrefix</name></param> - <param>const <type>char</type>* <name>pMessage</name></param> + <param len="null-terminated">const <type>char</type>* <name>pLayerPrefix</name></param> + <param len="null-terminated">const <type>char</type>* <name>pMessage</name></param> </command> <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY"> <proto><type>VkResult</type> <name>vkDebugMarkerSetObjectNameEXT</name></proto> @@ -3634,8 +3774,8 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>VkImageType</type> <name>type</name></param> <param><type>VkImageTiling</type> <name>tiling</name></param> <param><type>VkImageUsageFlags</type> <name>usage</name></param> - <param><type>VkImageCreateFlags</type> <name>flags</name></param> - <param><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>externalHandleType</name></param> + <param optional="true"><type>VkImageCreateFlags</type> <name>flags</name></param> + <param optional="true"><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>externalHandleType</name></param> <param><type>VkExternalImageFormatPropertiesNV</type>* <name>pExternalImageFormatProperties</name></param> </command> <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY"> @@ -3645,7 +3785,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>VkExternalMemoryHandleTypeFlagsNV</type> <name>handleType</name></param> <param><type>HANDLE</type>* <name>pHandle</name></param> </command> - <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary"> + <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" pipeline="graphics"> <proto><type>void</type> <name>vkCmdDrawIndirectCountAMD</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkBuffer</type> <name>buffer</name></param> @@ -3655,7 +3795,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint32_t</type> <name>maxDrawCount</name></param> <param><type>uint32_t</type> <name>stride</name></param> </command> - <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary"> + <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" pipeline="graphics"> <proto><type>void</type> <name>vkCmdDrawIndexedIndirectCountAMD</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkBuffer</type> <name>buffer</name></param> @@ -3665,6 +3805,64 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <param><type>uint32_t</type> <name>maxDrawCount</name></param> <param><type>uint32_t</type> <name>stride</name></param> </command> + <command queues="graphics,compute" renderpass="inside" cmdbufferlevel="primary,secondary"> + <proto><type>void</type> <name>vkCmdProcessCommandsNVX</name></proto> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param>const <type>VkCmdProcessCommandsInfoNVX</type>* <name>pProcessCommandsInfo</name></param> + </command> + <command queues="graphics,compute" renderpass="inside" cmdbufferlevel="secondary"> + <proto><type>void</type> <name>vkCmdReserveSpaceForCommandsNVX</name></proto> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param>const <type>VkCmdReserveSpaceForCommandsInfoNVX</type>* <name>pReserveSpaceInfo</name></param> + </command> + <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY"> + <proto><type>VkResult</type> <name>vkCreateIndirectCommandsLayoutNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param>const <type>VkIndirectCommandsLayoutCreateInfoNVX</type>* <name>pCreateInfo</name></param> + <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> + <param><type>VkIndirectCommandsLayoutNVX</type>* <name>pIndirectCommandsLayout</name></param> + </command> + <command> + <proto><type>void</type> <name>vkDestroyIndirectCommandsLayoutNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param><type>VkIndirectCommandsLayoutNVX</type> <name>indirectCommandsLayout</name></param> + <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> + </command> + <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY"> + <proto><type>VkResult</type> <name>vkCreateObjectTableNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param>const <type>VkObjectTableCreateInfoNVX</type>* <name>pCreateInfo</name></param> + <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> + <param><type>VkObjectTableNVX</type>* <name>pObjectTable</name></param> + </command> + <command> + <proto><type>void</type> <name>vkDestroyObjectTableNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param externsync="true"><type>VkObjectTableNVX</type> <name>objectTable</name></param> + <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> + </command> + <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY"> + <proto><type>VkResult</type> <name>vkRegisterObjectsNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param externsync="true"><type>VkObjectTableNVX</type> <name>objectTable</name></param> + <param><type>uint32_t</type> <name>objectCount</name></param> + <param len="objectCount">const <type>VkObjectTableEntryNVX</type>* const* <name>ppObjectTableEntries</name></param> + <param len="objectCount">const <type>uint32_t</type>* <name>pObjectIndices</name></param> + </command> + <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY"> + <proto><type>VkResult</type> <name>vkUnregisterObjectsNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param externsync="true"><type>VkObjectTableNVX</type> <name>objectTable</name></param> + <param><type>uint32_t</type> <name>objectCount</name></param> + <param len="objectCount">const <type>VkObjectEntryTypeNVX</type>* <name>pObjectEntryTypes</name></param> + <param len="objectCount">const <type>uint32_t</type>* <name>pObjectIndices</name></param> + </command> + <command> + <proto><type>void</type> <name>vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX</name></proto> + <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param> + <param><type>VkDeviceGeneratedCommandsFeaturesNVX</type>* <name>pFeatures</name></param> + <param><type>VkDeviceGeneratedCommandsLimitsNVX</type>* <name>pLimits</name></param> + </command> </commands> <!-- SECTION: Vulkan API interface definitions --> @@ -4037,7 +4235,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. </extension> <extension name="VK_EXT_debug_report" number="12" type="instance" author="Google, Inc." contact="Courtney Goeltzenleuchter @courtney" supported="vulkan"> <require> - <enum value="3" name="VK_EXT_DEBUG_REPORT_SPEC_VERSION"/> + <enum value="4" name="VK_EXT_DEBUG_REPORT_SPEC_VERSION"/> <enum value=""VK_EXT_debug_report"" name="VK_EXT_DEBUG_REPORT_EXTENSION_NAME"/> <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"/> <enum offset="1" dir="-" extends="VkResult" name="VK_ERROR_VALIDATION_FAILED_EXT"/> @@ -4547,12 +4745,52 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <enum value=""VK_KHR_extension_86"" name="VK_KHR_EXTENSION_86_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_NV_extension_87" number="87" author="NVIDIA" contact="Christoph Kubisch @pixeljetstream" supported="disabled"> - <require> - <enum value="0" name="VK_NV_EXTENSION_87_SPEC_VERSION"/> - <enum value=""VK_NV_extension_87"" name="VK_NV_EXTENSION_87_EXTENSION_NAME"/> - </require> - </extension> + <extension name="VK_NVX_device_generated_commands" number="87" type="device" author="NVIDIA" contact="Christoph Kubisch @pixeljetstream" supported="vulkan"> + <require> + <enum value="1" name="VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION"/> + <enum value=""VK_NVX_device_generated_commands"" name="VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX"/> + <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX"/> + <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX"/> + <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX"/> + <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX"/> + <enum bitpos="17" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX"/> + <enum bitpos="17" extends="VkAccessFlagBits" name="VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX"/> + <enum bitpos="18" extends="VkAccessFlagBits" name="VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX"/> + <type name="VkObjectTableNVX"/> + <type name="VkIndirectCommandsLayoutNVX"/> + <type name="VkIndirectCommandsLayoutUsageFlagsNVX"/> + <type name="VkObjectEntryUsageFlagsNVX"/> + <type name="VkIndirectCommandsLayoutUsageFlagBitsNVX"/> + <type name="VkIndirectCommandsTokenTypeNVX"/> + <type name="VkObjectEntryUsageFlagBitsNVX"/> + <type name="VkObjectEntryTypeNVX"/> + <type name="VkDeviceGeneratedCommandsFeaturesNVX"/> + <type name="VkDeviceGeneratedCommandsLimitsNVX"/> + <type name="VkIndirectCommandsTokenNVX"/> + <type name="VkIndirectCommandsLayoutTokenNVX"/> + <type name="VkIndirectCommandsLayoutCreateInfoNVX"/> + <type name="VkCmdProcessCommandsInfoNVX"/> + <type name="VkCmdReserveSpaceForCommandsInfoNVX"/> + <type name="VkObjectTableCreateInfoNVX"/> + <type name="VkObjectTableEntryNVX"/> + <type name="VkObjectTablePipelineEntryNVX"/> + <type name="VkObjectTableDescriptorSetEntryNVX"/> + <type name="VkObjectTableVertexBufferEntryNVX"/> + <type name="VkObjectTableIndexBufferEntryNVX"/> + <type name="VkObjectTablePushConstantEntryNVX"/> + <command name="vkCmdProcessCommandsNVX"/> + <command name="vkCmdReserveSpaceForCommandsNVX"/> + <command name="vkCreateIndirectCommandsLayoutNVX"/> + <command name="vkDestroyIndirectCommandsLayoutNVX"/> + <command name="vkCreateObjectTableNVX"/> + <command name="vkDestroyObjectTableNVX"/> + <command name="vkRegisterObjectsNVX"/> + <command name="vkUnregisterObjectsNVX"/> + <command name="vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"/> + </require> + </extension> <extension name="VK_KHR_extension_88" number="88" author="NV" contact="Eric Werness @ewerness" supported="disabled"> <require> <enum value="0" name="VK_KHR_EXTENSION_88_SPEC_VERSION"/> @@ -4577,5 +4815,89 @@ maintained in the master branch of the Khronos Vulkan GitHub project. <enum value=""VK_EXT_extension_91"" name="VK_EXT_EXTENSION_91_EXTENSION_NAME"/> </require> </extension> + <extension name="VK_EXT_extension_92" number="92" author="NV" contact="James Jones @cubanismo" supported="disabled"> + <require> + <enum value="0" name="VK_EXT_EXTENSION_92_SPEC_VERSION"/> + <enum value=""VK_EXT_extension_92"" name="VK_EXT_EXTENSION_92_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_KHR_extension_93" number="93" author="GOOGLE" contact="Ian Elliott @ianelliott" supported="disabled"> + <require> + <enum value="0" name="VK_GOOGLE_EXTENSION_93_SPEC_VERSION"/> + <enum value=""VK_GOOGLE_extension_93"" name="VK_GOOGLE_EXTENSION_93_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_KHR_extension_94" number="94" author="Codeplay" contact="Neil Henning @neil_henning" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_94_SPEC_VERSION"/> + <enum value=""VK_KHR_extension_94"" name="VK_KHR_EXTENSION_94_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_NV_extension_95" number="95" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled"> + <require> + <enum value="0" name="VK_NV_EXTENSION_95_SPEC_VERSION"/> + <enum value=""VK_NV_extension_95"" name="VK_NV_EXTENSION_95_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_NV_extension_96" number="96" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled"> + <require> + <enum value="0" name="VK_NV_EXTENSION_96_SPEC_VERSION"/> + <enum value=""VK_NV_extension_96"" name="VK_NV_EXTENSION_96_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_NV_extension_97" number="97" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled"> + <require> + <enum value="0" name="VK_NV_EXTENSION_97_SPEC_VERSION"/> + <enum value=""VK_NV_extension_97"" name="VK_NV_EXTENSION_97_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_NV_extension_98" number="98" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled"> + <require> + <enum value="0" name="VK_NV_EXTENSION_98_SPEC_VERSION"/> + <enum value=""VK_NV_extension_98"" name="VK_NV_EXTENSION_98_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_NV_extension_99" number="99" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled"> + <require> + <enum value="0" name="VK_NV_EXTENSION_99_SPEC_VERSION"/> + <enum value=""VK_NV_extension_99"" name="VK_NV_EXTENSION_99_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_NV_extension_100" number="100" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled"> + <require> + <enum value="0" name="VK_NV_EXTENSION_100_SPEC_VERSION"/> + <enum value=""VK_NV_extension_100"" name="VK_NV_EXTENSION_100_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_NV_extension_101" number="101" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled"> + <require> + <enum value="0" name="VK_NV_EXTENSION_101_SPEC_VERSION"/> + <enum value=""VK_NV_extension_101"" name="VK_NV_EXTENSION_101_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_NV_extension_102" number="102" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled"> + <require> + <enum value="0" name="VK_NV_EXTENSION_102_SPEC_VERSION"/> + <enum value=""VK_NV_extension_102"" name="VK_NV_EXTENSION_102_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_NV_extension_103" number="103" author="NVIDIA" contact="Daniel Koch @dgkoch" supported="disabled"> + <require> + <enum value="0" name="VK_NV_EXTENSION_103_SPEC_VERSION"/> + <enum value=""VK_NV_extension_103"" name="VK_NV_EXTENSION_103_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_NV_extension_104" number="104" author="NVIDIA" contact="Mathias Schott @mschott" supported="disabled"> + <require> + <enum value="0" name="VK_NV_EXTENSION_104_SPEC_VERSION"/> + <enum value=""VK_NV_extension_104"" name="VK_NV_EXTENSION_104_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_EXT_extension_105" number="105" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtneygo" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_105_SPEC_VERSION"/> + <enum value=""VK_EXT_extension_105"" name="VK_KHR_EXTENSION_105_EXTENSION_NAME"/> + </require> + </extension> </extensions> </registry> diff --git a/scripts/vulkan.py b/scripts/vulkan.py index 5d71f52f..65728c7b 100644 --- a/scripts/vulkan.py +++ b/scripts/vulkan.py @@ -1344,6 +1344,66 @@ VK_EXT_debug_marker = Extension( ], ) +VK_NVX_device_generated_commands = Extension( + name="VK_EXT_debug_marker", + headers=["vulkan/vulkan.h"], + objects=[ + "VkObjectTableNVX", + "VkIndirectCommandsLayoutNVX", + ], + protos=[ + Proto("void", "CmdProcessCommandsNVX", + [Param("VkCommandBuffer", "commandBuffer"), + Param("VkCmdProcessCommandsInfoNVX*", "pProcessCommandsInfo")]), + + Proto("void", "CmdReserveSpaceForCommandsNV", + [Param("VkCommandBuffer", "commandBuffer"), + Param("VkCmdReserveSpaceForCommandsInfoNVX*", "pReserveSpaceInfo")]), + + Proto("VkResult", "CreateIndirectCommandsLayoutNVX", + [Param("VkDevice", "device"), + Param("VkIndirectCommandsLayoutCreateInfoNVX*", "pCreateInfo"), + Param("VkAllocationCallbacks*", "pAllocator"), + Param("VkIndirectCommandsLayoutNVX*", "pIndirectCommandsLayout")]), + + Proto("void", "DestroyIndirectCommandsLayoutNVX", + [Param("VkDevice", "device"), + Param("VkIndirectCommandsLayoutNVX", "indirectCommandsLayout"), + Param("VkAllocationCallbacks*", "pAllocator")]), + + Proto("VkResult", "CreateObjectTableNVX)", + [Param("VkDevice", "device"), + Param("VkObjectTableCreateInfoNVX*", "pCreateInfo"), + Param("VkAllocationCallbacks*", "pAllocator"), + Param("VkObjectTableNVX*", "pObjectTable")]), + + Proto("void", "DestroyObjectTableNVX", + [Param("VkDevice", "device"), + Param("VkObjectTableNVX", "objectTable"), + Param("VkAllocationCallbacks*", "pAllocator")]), + + Proto("VkResult", "RegisterObjectsNVX", + [Param("VkDevice", "device"), + Param("VkObjectTableNVX", "objectTable"), + Param("uint32_t", "objectCount"), + Param("VkObjectTableEntryNVX**", "ppObjectTableEntries"), + Param("uint32_t*", "pObjectIndices")]), + + Proto("VkResult", "UnregisterObjectsNVX)", + [Param("VkDevice", "device"), + Param("VkObjectTableNVX*", "objectTable"), + Param("uint32_t*", "objectCount"), + Param("VkObjectEntryTypeNVX*", "pObjectEntryTypes"), + Param("uint32_t*", "pObjectIndices")]), + + Proto("void", "GetPhysicalDeviceGeneratedCommandsPropertiesNVX", + [Param("VkPhysicalDevice", "physicalDevice"), + Param("VkDeviceGeneratedCommandsFeaturesNVX*", "pFeatures"), + Param("VkDeviceGeneratedCommandsLimitsNVX*", "pLimits")]), + ], +) + + import sys wsi_linux = ['Xcb', 'Xlib', 'Wayland', 'Mir', 'Display'] @@ -1398,6 +1458,7 @@ non_exported_exts = [VK_NV_external_memory_capabilities, # VK_AMD_gpu_shader_half_float, # VK_AMD_shader_ballot, # VK_IMG_format_pvrtc, +# VK_NVX_device_generated_commands, ] extensions = common_exts |
