From 53f5565510acae64b34c66e900491632c4433a9f Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Mon, 12 Dec 2016 09:44:34 -0700 Subject: 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 --- scripts/generator.py | 3 +- scripts/lvl_genvk.py | 16 +- scripts/vk.xml | 428 ++++++++++++++++++++++++++++++++++++++++++++------- scripts/vulkan.py | 61 ++++++++ 4 files changed, 448 insertions(+), 60 deletions(-) (limited to 'scripts') 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. // Vulkan 1.0 version number #define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0) // Version of this file -#define VK_HEADER_VERSION 34 +#define VK_HEADER_VERSION 37 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; @@ -195,6 +195,10 @@ maintained in the master branch of the Khronos Vulkan GitHub project. typedef VkFlags VkDescriptorPoolCreateFlags; typedef VkFlags VkDescriptorPoolResetFlags; typedef VkFlags VkDependencyFlags; + + typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX; + typedef VkFlags VkObjectEntryUsageFlagsNVX; + typedef VkFlags VkCompositeAlphaFlagsKHR; typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; @@ -239,6 +243,8 @@ maintained in the master branch of the Khronos Vulkan GitHub project. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) @@ -334,6 +340,10 @@ maintained in the master branch of the Khronos Vulkan GitHub project. + + + + @@ -1444,21 +1454,21 @@ maintained in the master branch of the Khronos Vulkan GitHub project. VkStructureType sType const void* pNext VkAndroidSurfaceCreateFlagsKHR flags - ANativeWindow* window + ANativeWindow* window VkStructureType sType const void* pNext VkMirSurfaceCreateFlagsKHR flags - MirConnection* connection - MirSurface* mirSurface + MirConnection* connection + MirSurface* mirSurface VkStructureType sType const void* pNext VkWaylandSurfaceCreateFlagsKHR flags - struct wl_display* display - struct wl_surface* surface + struct wl_display* display + struct wl_surface* surface VkStructureType sType @@ -1471,14 +1481,14 @@ maintained in the master branch of the Khronos Vulkan GitHub project. VkStructureType sType const void* pNext VkXlibSurfaceCreateFlagsKHR flags - Display* dpy + Display* dpy Window window VkStructureType sType const void* pNext VkXcbSurfaceCreateFlagsKHR flags - xcb_connection_t* connection + xcb_connection_t* connection xcb_window_t window @@ -1571,33 +1581,33 @@ maintained in the master branch of the Khronos Vulkan GitHub project. VkImage image VkBuffer buffer - + VkImageFormatProperties imageFormatProperties - VkExternalMemoryFeatureFlagsNV externalMemoryFeatures - VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes - VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes + VkExternalMemoryFeatureFlagsNV externalMemoryFeatures + VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes + VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes VkStructureType sType const void* pNext - VkExternalMemoryHandleTypeFlagsNV handleTypes + VkExternalMemoryHandleTypeFlagsNV handleTypes VkStructureType sType const void* pNext - VkExternalMemoryHandleTypeFlagsNV handleTypes + VkExternalMemoryHandleTypeFlagsNV handleTypes VkStructureType sType const void* pNext VkExternalMemoryHandleTypeFlagsNV handleType - HANDLE handle + HANDLE handle VkStructureType sType const void* pNext - const SECURITY_ATTRIBUTES* pAttributes - DWORD dwAccess + const SECURITY_ATTRIBUTES* pAttributes + DWORD dwAccess VkStructureType sType @@ -1610,6 +1620,106 @@ maintained in the master branch of the Khronos Vulkan GitHub project. const VkDeviceMemory* pReleaseSyncs const uint64_t* pReleaseKeys + + + VkStructureType sType + const void* pNext + VkBool32 computeBindingPointSupport + + + VkStructureType sType + const void* pNext + uint32_t maxIndirectCommandsLayoutTokenCount + uint32_t maxObjectEntryCounts + uint32_t minSequenceCountBufferOffsetAlignment + uint32_t minSequenceIndexBufferOffsetAlignment + uint32_t minCommandsTokenBufferOffsetAlignment + + + VkIndirectCommandsTokenTypeNVX tokenType + VkBuffer buffer + VkDeviceSize offset + + + VkIndirectCommandsTokenTypeNVX tokenType + uint32_t bindingUnit + uint32_t dynamicCount + uint32_t divisor + + + VkStructureType sType + const void* pNext + VkPipelineBindPoint pipelineBindPoint + VkIndirectCommandsLayoutUsageFlagsNVX flags + uint32_t tokenCount + const VkIndirectCommandsLayoutTokenNVX* pTokens + + + VkStructureType sType + const void* pNext + VkObjectTableNVX objectTable + VkIndirectCommandsLayoutNVX indirectCommandsLayout + uint32_t indirectCommandsTokenCount + const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens + uint32_t maxSequencesCount + VkCommandBuffer targetCommandBuffer + VkBuffer sequencesCountBuffer + VkDeviceSize sequencesCountOffset + VkBuffer sequencesIndexBuffer + VkDeviceSize sequencesIndexOffset + + + VkStructureType sType + const void* pNext + VkObjectTableNVX objectTable + VkIndirectCommandsLayoutNVX indirectCommandsLayout + uint32_t maxSequencesCount + + + VkStructureType sType + const void* pNext + uint32_t objectCount + const VkObjectEntryTypeNVX* pObjectEntryTypes + const uint32_t* pObjectEntryCounts + const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags + + uint32_t maxUniformBuffersPerDescriptor + uint32_t maxStorageBuffersPerDescriptor + uint32_t maxStorageImagesPerDescriptor + uint32_t maxSampledImagesPerDescriptor + uint32_t maxPipelineLayouts + + + VkObjectEntryTypeNVX type + VkObjectEntryUsageFlagsNVX flags + + + VkObjectEntryTypeNVX type + VkObjectEntryUsageFlagsNVX flags + VkPipeline pipeline + + + VkObjectEntryTypeNVX type + VkObjectEntryUsageFlagsNVX flags + VkPipelineLayout pipelineLayout + VkDescriptorSet descriptorSet + + + VkObjectEntryTypeNVX type + VkObjectEntryUsageFlagsNVX flags + VkBuffer buffer + + + VkObjectEntryTypeNVX type + VkObjectEntryUsageFlagsNVX flags + VkBuffer buffer + + + VkObjectEntryTypeNVX type + VkObjectEntryUsageFlagsNVX flags + VkPipelineLayout pipelineLayout + VkShaderStageFlags stageFlags + @@ -2410,6 +2520,10 @@ maintained in the master branch of the Khronos Vulkan GitHub project. + + + + @@ -2434,7 +2548,33 @@ maintained in the master branch of the Khronos Vulkan GitHub project. - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3131,7 +3271,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. const VkBuffer* pBuffers const VkDeviceSize* pOffsets - + void vkCmdDraw VkCommandBuffer commandBuffer uint32_t vertexCount @@ -3139,7 +3279,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint32_t firstVertex uint32_t firstInstance - + void vkCmdDrawIndexed VkCommandBuffer commandBuffer uint32_t indexCount @@ -3148,7 +3288,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. int32_t vertexOffset uint32_t firstInstance - + void vkCmdDrawIndirect VkCommandBuffer commandBuffer VkBuffer buffer @@ -3156,7 +3296,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint32_t drawCount uint32_t stride - + void vkCmdDrawIndexedIndirect VkCommandBuffer commandBuffer VkBuffer buffer @@ -3164,20 +3304,20 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint32_t drawCount uint32_t stride - + void vkCmdDispatch VkCommandBuffer commandBuffer uint32_t x uint32_t y uint32_t z - + void vkCmdDispatchIndirect VkCommandBuffer commandBuffer VkBuffer buffer VkDeviceSize offset - + void vkCmdCopyBuffer VkCommandBuffer commandBuffer VkBuffer srcBuffer @@ -3185,7 +3325,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint32_t regionCount const VkBufferCopy* pRegions - + void vkCmdCopyImage VkCommandBuffer commandBuffer VkImage srcImage @@ -3195,7 +3335,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint32_t regionCount const VkImageCopy* pRegions - + void vkCmdBlitImage VkCommandBuffer commandBuffer VkImage srcImage @@ -3206,7 +3346,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. const VkImageBlit* pRegions VkFilter filter - + void vkCmdCopyBufferToImage VkCommandBuffer commandBuffer VkBuffer srcBuffer @@ -3215,7 +3355,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint32_t regionCount const VkBufferImageCopy* pRegions - + void vkCmdCopyImageToBuffer VkCommandBuffer commandBuffer VkImage srcImage @@ -3224,7 +3364,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint32_t regionCount const VkBufferImageCopy* pRegions - + void vkCmdUpdateBuffer VkCommandBuffer commandBuffer VkBuffer dstBuffer @@ -3232,7 +3372,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. VkDeviceSize dataSize const void* pData - + void vkCmdFillBuffer VkCommandBuffer commandBuffer VkBuffer dstBuffer @@ -3240,7 +3380,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. VkDeviceSize size uint32_t data - + void vkCmdClearColorImage VkCommandBuffer commandBuffer VkImage image @@ -3249,7 +3389,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint32_t rangeCount const VkImageSubresourceRange* pRanges - + void vkCmdClearDepthStencilImage VkCommandBuffer commandBuffer VkImage image @@ -3258,7 +3398,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint32_t rangeCount const VkImageSubresourceRange* pRanges - + void vkCmdClearAttachments VkCommandBuffer commandBuffer uint32_t attachmentCount @@ -3266,7 +3406,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint32_t rectCount const VkClearRect* pRects - + void vkCmdResolveImage VkCommandBuffer commandBuffer VkImage srcImage @@ -3335,14 +3475,14 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint32_t firstQuery uint32_t queryCount - + void vkCmdWriteTimestamp VkCommandBuffer commandBuffer VkPipelineStageFlagBits pipelineStage VkQueryPool queryPool uint32_t query - + void vkCmdCopyQueryPoolResults VkCommandBuffer commandBuffer VkQueryPool queryPool @@ -3362,18 +3502,18 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint32_t size const void* pValues - + void vkCmdBeginRenderPass VkCommandBuffer commandBuffer const VkRenderPassBeginInfo* pRenderPassBegin VkSubpassContents contents - + void vkCmdNextSubpass VkCommandBuffer commandBuffer VkSubpassContents contents - + void vkCmdEndRenderPass VkCommandBuffer commandBuffer @@ -3600,8 +3740,8 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint64_t object size_t location int32_t messageCode - const char* pLayerPrefix - const char* pMessage + const char* pLayerPrefix + const char* pMessage VkResult vkDebugMarkerSetObjectNameEXT @@ -3634,8 +3774,8 @@ maintained in the master branch of the Khronos Vulkan GitHub project. VkImageType type VkImageTiling tiling VkImageUsageFlags usage - VkImageCreateFlags flags - VkExternalMemoryHandleTypeFlagsNV externalHandleType + VkImageCreateFlags flags + VkExternalMemoryHandleTypeFlagsNV externalHandleType VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties @@ -3645,7 +3785,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. VkExternalMemoryHandleTypeFlagsNV handleType HANDLE* pHandle - + void vkCmdDrawIndirectCountAMD VkCommandBuffer commandBuffer VkBuffer buffer @@ -3655,7 +3795,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint32_t maxDrawCount uint32_t stride - + void vkCmdDrawIndexedIndirectCountAMD VkCommandBuffer commandBuffer VkBuffer buffer @@ -3665,6 +3805,64 @@ maintained in the master branch of the Khronos Vulkan GitHub project. uint32_t maxDrawCount uint32_t stride + + void vkCmdProcessCommandsNVX + VkCommandBuffer commandBuffer + const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo + + + void vkCmdReserveSpaceForCommandsNVX + VkCommandBuffer commandBuffer + const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo + + + VkResult vkCreateIndirectCommandsLayoutNVX + VkDevice device + const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout + + + void vkDestroyIndirectCommandsLayoutNVX + VkDevice device + VkIndirectCommandsLayoutNVX indirectCommandsLayout + const VkAllocationCallbacks* pAllocator + + + VkResult vkCreateObjectTableNVX + VkDevice device + const VkObjectTableCreateInfoNVX* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkObjectTableNVX* pObjectTable + + + void vkDestroyObjectTableNVX + VkDevice device + VkObjectTableNVX objectTable + const VkAllocationCallbacks* pAllocator + + + VkResult vkRegisterObjectsNVX + VkDevice device + VkObjectTableNVX objectTable + uint32_t objectCount + const VkObjectTableEntryNVX* const* ppObjectTableEntries + const uint32_t* pObjectIndices + + + VkResult vkUnregisterObjectsNVX + VkDevice device + VkObjectTableNVX objectTable + uint32_t objectCount + const VkObjectEntryTypeNVX* pObjectEntryTypes + const uint32_t* pObjectIndices + + + void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX + VkPhysicalDevice physicalDevice + VkDeviceGeneratedCommandsFeaturesNVX* pFeatures + VkDeviceGeneratedCommandsLimitsNVX* pLimits + @@ -4037,7 +4235,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project. - + @@ -4547,12 +4745,52 @@ maintained in the master branch of the Khronos Vulkan GitHub project. - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4577,5 +4815,89 @@ maintained in the master branch of the Khronos Vulkan GitHub project. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 -- cgit v1.2.3