diff options
Diffstat (limited to 'registry')
-rw-r--r-- | registry/generator.py | 22 | ||||
-rwxr-xr-x | registry/genvk.py | 55 | ||||
-rw-r--r-- | registry/validusage.json | 496 | ||||
-rw-r--r-- | registry/vk.xml | 539 | ||||
-rw-r--r-- | registry/vkconventions.py | 6 |
5 files changed, 787 insertions, 331 deletions
diff --git a/registry/generator.py b/registry/generator.py index f458d09..c939f9a 100644 --- a/registry/generator.py +++ b/registry/generator.py @@ -119,6 +119,7 @@ class GeneratorOptions: conventions=None, filename=None, directory='.', + genpath=None, apiname=None, profile=None, versions='.*', @@ -136,7 +137,8 @@ class GeneratorOptions: - conventions - may be mandatory for some generators: an object that implements ConventionsBase - filename - basename of file to generate, or None to write to stdout. - - directory - directory in which to generate filename + - directory - directory in which to generate files + - genpath - path to previously generated files, such as api.py - apiname - string matching `<api>` 'apiname' attribute, e.g. 'gl'. - profile - string specifying API profile , e.g. 'core', or None. - versions - regex matching API versions to process interfaces for. @@ -176,6 +178,9 @@ class GeneratorOptions: self.filename = filename "basename of file to generate, or None to write to stdout." + self.genpath = genpath + """path to previously generated files, such as api.py""" + self.directory = directory "directory in which to generate filename" @@ -273,6 +278,10 @@ class OutputGenerator: self.extBlockSize = 1000 self.madeDirs = {} + # API dictionary, which may be loaded by the beginFile method of + # derived generators. + self.apidict = None + def logMsg(self, level, *args): """Write a message of different categories to different destinations. @@ -575,6 +584,17 @@ class OutputGenerator: self.should_insert_may_alias_macro = \ self.genOpts.conventions.should_insert_may_alias_macro(self.genOpts) + # Try to import the API dictionary, api.py, if it exists. Nothing in + # api.py cannot be extracted directly from the XML, and in the + # future we should do that. + if self.genOpts.genpath is not None: + try: + sys.path.insert(0, self.genOpts.genpath) + import api + self.apidict = api + except ImportError: + self.apidict = None + self.conventions = genOpts.conventions # Open a temporary file for accumulating output. diff --git a/registry/genvk.py b/registry/genvk.py index c7ef75d..8ba1757 100755 --- a/registry/genvk.py +++ b/registry/genvk.py @@ -92,6 +92,9 @@ def makeGenOpts(args): # Output target directory directory = args.directory + # Path to generated files, particularly api.py + genpath = args.genpath + # Descriptive names for various regexp patterns used to select # versions and extensions allFeatures = allExtensions = r'.*' @@ -150,6 +153,7 @@ def makeGenOpts(args): conventions = conventions, filename = 'timeMarker', directory = directory, + genpath = genpath, apiname = 'vulkan', profile = None, versions = featuresPat, @@ -174,6 +178,7 @@ def makeGenOpts(args): conventions = conventions, filename = 'api.py', directory = directory, + genpath = None, apiname = 'vulkan', profile = None, versions = featuresPat, @@ -192,6 +197,7 @@ def makeGenOpts(args): conventions = conventions, filename = 'timeMarker', directory = directory, + genpath = None, apiname = 'vulkan', profile = None, versions = featuresPat, @@ -209,6 +215,7 @@ def makeGenOpts(args): conventions = conventions, filename = 'timeMarker', directory = directory, + genpath = None, apiname = 'vulkan', profile = None, versions = featuresPat, @@ -230,6 +237,7 @@ def makeGenOpts(args): conventions = conventions, filename = 'timeMarker', directory = directory, + genpath = None, apiname = 'vulkan', profile = None, versions = featuresPat, @@ -248,6 +256,7 @@ def makeGenOpts(args): conventions = conventions, filename = 'timeMarker', directory = directory, + genpath = None, apiname = 'vulkan', profile = None, versions = featuresPat, @@ -323,6 +332,7 @@ def makeGenOpts(args): conventions = conventions, filename = headername, directory = directory, + genpath = None, apiname = 'vulkan', profile = None, versions = featuresPat, @@ -361,6 +371,7 @@ def makeGenOpts(args): conventions = conventions, filename = 'vulkan_core.h', directory = directory, + genpath = None, apiname = 'vulkan', profile = None, versions = featuresPat, @@ -392,14 +403,47 @@ def makeGenOpts(args): conventions = conventions, filename = 'vulkan10.h', directory = directory, + genpath = None, apiname = 'vulkan', profile = None, versions = 'VK_VERSION_1_0', emitversions = 'VK_VERSION_1_0', - defaultExtensions = defaultExtensions, + defaultExtensions = None, addExtensions = None, - removeExtensions = removeExtensionsPat, - emitExtensions = emitExtensionsPat, + removeExtensions = None, + emitExtensions = None, + prefixText = prefixStrings + vkPrefixStrings, + genFuncPointers = True, + protectFile = protectFile, + protectFeature = False, + protectProto = '#ifndef', + protectProtoStr = 'VK_NO_PROTOTYPES', + apicall = 'VKAPI_ATTR ', + apientry = 'VKAPI_CALL ', + apientryp = 'VKAPI_PTR *', + alignFuncParam = 48) + ] + + # Unused - vulkan11.h target. + # It is possible to generate a header with just the Vulkan 1.0 + + # extension interfaces defined, but since the promoted KHR extensions + # are now defined in terms of the 1.1 interfaces, such a header is very + # similar to vulkan_core.h. + genOpts['vulkan11.h'] = [ + COutputGenerator, + CGeneratorOptions( + conventions = conventions, + filename = 'vulkan11.h', + directory = directory, + genpath = None, + apiname = 'vulkan', + profile = None, + versions = '^VK_VERSION_1_[01]$', + emitversions = '^VK_VERSION_1_[01]$', + defaultExtensions = None, + addExtensions = None, + removeExtensions = None, + emitExtensions = None, prefixText = prefixStrings + vkPrefixStrings, genFuncPointers = True, protectFile = protectFile, @@ -418,6 +462,7 @@ def makeGenOpts(args): conventions = conventions, filename = 'alias.h', directory = directory, + genpath = None, apiname = 'vulkan', profile = None, versions = featuresPat, @@ -519,7 +564,9 @@ if __name__ == '__main__': parser.add_argument('-time', action='store_true', help='Enable timing') parser.add_argument('-validate', action='store_true', - help='Enable group validation') + help='Enable XML group validation') + parser.add_argument('-genpath', action='store', default='gen', + help='Path to generated files') parser.add_argument('-o', action='store', dest='directory', default='.', help='Create target and related files in specified directory') diff --git a/registry/validusage.json b/registry/validusage.json index ba31c97..9c704a2 100644 --- a/registry/validusage.json +++ b/registry/validusage.json @@ -1,9 +1,9 @@ { "version info": { "schema version": 2, - "api version": "1.2.141", - "comment": "from git branch: github-master commit: 8bd1271c25ec56248494389b0cc2b6741cb28164", - "date": "2020-05-15 09:13:21Z" + "api version": "1.2.142", + "comment": "from git branch: github-master commit: dd7b521af03ed3ce13b7d2a54c4542f5af7cf370", + "date": "2020-06-01 11:06:45Z" }, "validation": { "vkGetInstanceProcAddr": { @@ -510,11 +510,11 @@ }, { "vuid": "VUID-VkDeviceCreateInfo-pNext-pNext", - "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesNV\">VkPhysicalDeviceComputeShaderDerivativesFeaturesNV</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesEXT\">VkPhysicalDeviceIndexTypeUint8FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeaturesEXT\">VkPhysicalDeviceInlineUniformBlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesEXT\">VkPhysicalDeviceLineRasterizationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT\">VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceRayTracingFeaturesKHR\">VkPhysicalDeviceRayTracingFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeaturesEXT\">VkPhysicalDeviceSubgroupSizeControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT\">VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT\">VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, or <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>" + "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkDevicePrivateDataCreateInfoEXT\">VkDevicePrivateDataCreateInfoEXT</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesNV\">VkPhysicalDeviceComputeShaderDerivativesFeaturesNV</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesEXT\">VkPhysicalDeviceIndexTypeUint8FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeaturesEXT\">VkPhysicalDeviceInlineUniformBlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesEXT\">VkPhysicalDeviceLineRasterizationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT\">VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceRayTracingFeaturesKHR\">VkPhysicalDeviceRayTracingFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeaturesEXT\">VkPhysicalDeviceSubgroupSizeControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT\">VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT\">VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, or <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>" }, { "vuid": "VUID-VkDeviceCreateInfo-sType-unique", - "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique" + "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique, with the exception of structures of type <a href=\"#VkDevicePrivateDataCreateInfoEXT\">VkDevicePrivateDataCreateInfoEXT</a>" }, { "vuid": "VUID-VkDeviceCreateInfo-flags-zerobitmask", @@ -595,10 +595,6 @@ { "vuid": "VUID-VkDevicePrivateDataCreateInfoEXT-sType-sType", "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT</code>" - }, - { - "vuid": "VUID-VkDevicePrivateDataCreateInfoEXT-pNext-pNext", - "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" } ] }, @@ -2897,6 +2893,30 @@ "vkCmdWaitEvents": { "core": [ { + "vuid": "VUID-vkCmdWaitEvents-srcAccessMask-02815", + "text": " The <code>srcAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>" + }, + { + "vuid": "VUID-vkCmdWaitEvents-dstAccessMask-02816", + "text": " The <code>dstAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>" + }, + { + "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817", + "text": " For any element of <code>pBufferMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>srcQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>srcAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>" + }, + { + "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818", + "text": " For any element of <code>pBufferMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>dstQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>dstAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>" + }, + { + "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819", + "text": " For any element of <code>pImageMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>srcQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>srcAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>" + }, + { + "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820", + "text": " For any element of <code>pImageMemoryBarriers</code>, if its <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members are equal, or if its <code>dstQueueFamilyIndex</code> is the queue family index that was used to create the command pool that <code>commandBuffer</code> was allocated from, then its <code>dstAccessMask</code> member <strong class=\"purple\">must</strong> only contain access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>" + }, + { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01158", "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be the bitwise OR of the <code>stageMask</code> parameter used in previous calls to <code>vkCmdSetEvent</code> with any of the members of <code>pEvents</code> and <code>VK_PIPELINE_STAGE_HOST_BIT</code> if any of the members of <code>pEvents</code> was set using <code>vkSetEvent</code>" }, @@ -2925,42 +2945,10 @@ "text": " Any pipeline stage included in <code>srcStageMask</code> or <code>dstStageMask</code> <strong class=\"purple\">must</strong> be supported by the capabilities of the queue family specified by the <code>queueFamilyIndex</code> member of the <a href=\"#VkCommandPoolCreateInfo\">VkCommandPoolCreateInfo</a> structure that was used to create the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from, as specified in the <a href=\"#synchronization-pipeline-stages-supported\">table of supported pipeline stages</a>" }, { - "vuid": "VUID-vkCmdWaitEvents-pMemoryBarriers-01165", - "text": " Each element of <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code> or <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> not have any access flag included in its <code>srcAccessMask</code> member if that bit is not supported by any of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>" - }, - { - "vuid": "VUID-vkCmdWaitEvents-pMemoryBarriers-01166", - "text": " Each element of <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code> or <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> not have any access flag included in its <code>dstAccessMask</code> member if that bit is not supported by any of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>" - }, - { "vuid": "VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803", "text": " The <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members of any element of <code>pBufferMemoryBarriers</code> or <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal" }, { - "vuid": "VUID-vkCmdWaitEvents-srcAccessMask-02809", - "text": " The <code>srcAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstAccessMask-02810", - "text": " The <code>dstAccessMask</code> member of each element of <code>pMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>" - }, - { - "vuid": "VUID-vkCmdWaitEvents-srcAccessMask-02811", - "text": " The <code>srcAccessMask</code> member of each element of <code>pBufferMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstAccessMask-02812", - "text": " The <code>dstAccessMask</code> member of each element of <code>pBufferMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>" - }, - { - "vuid": "VUID-vkCmdWaitEvents-srcAccessMask-02813", - "text": " The <code>srcAccessMask</code> member of each element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>srcStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstAccessMask-02814", - "text": " The <code>dstAccessMask</code> member of any element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> only include access flags that are supported by one or more of the pipeline stages in <code>dstStageMask</code>, as specified in the <a href=\"#synchronization-access-types-supported\">table of supported access types</a>" - }, - { "vuid": "VUID-vkCmdWaitEvents-commandBuffer-parameter", "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle" }, @@ -3041,36 +3029,40 @@ "vkCmdPipelineBarrier": { "core": [ { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-01168", - "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + "vuid": "VUID-vkCmdPipelineBarrier-pDependencies-02285", + "text": " If fname:{refpage} is called within a render pass instance, the render pass <strong class=\"purple\">must</strong> have been created with at least one <a href=\"#VkSubpassDependency\">VkSubpassDependency</a> instance in <code>VkRenderPassCreateInfo</code>::<code>pDependencies</code> that expresses a dependency from the current subpass to itself, with <a href=\"#synchronization-dependencies-scopes\">synchronization scopes</a> and <a href=\"#synchronization-dependencies-access-scopes\">access scopes</a> that are all supersets of the scopes defined in this command" }, { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-01169", - "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + "vuid": "VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178", + "text": " If fname:{refpage} is called within a render pass instance, it <strong class=\"purple\">must</strong> not include any buffer memory barriers" }, { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-01170", - "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>" + "vuid": "VUID-vkCmdPipelineBarrier-image-04073", + "text": " If fname:{refpage} is called within a render pass instance, the <code>image</code> member of any image memory barrier included in this command <strong class=\"purple\">must</strong> be an attachment used in the current subpass both as an input attachment, and as either a color or depth/stencil attachment" }, { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-01171", - "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>" + "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-01181", + "text": " If fname:{refpage} is called within a render pass instance, the <code>oldLayout</code> and <code>newLayout</code> members of any image memory barrier included in this command <strong class=\"purple\">must</strong> be equal" }, { - "vuid": "VUID-vkCmdPipelineBarrier-pDependencies-02285", - "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the render pass <strong class=\"purple\">must</strong> have been created with at least one <code>VkSubpassDependency</code> instance in <a href=\"#VkRenderPassCreateInfo\">VkRenderPassCreateInfo</a>::<code>pDependencies</code> that expresses a dependency from the current subpass to itself, and for which <code>srcStageMask</code> contains a subset of the bit values in <code>VkSubpassDependency</code>::<code>srcStageMask</code>, <code>dstStageMask</code> contains a subset of the bit values in <code>VkSubpassDependency</code>::<code>dstStageMask</code>, <code>dependencyFlags</code> is equal to <code>VkSubpassDependency</code>::<code>dependencyFlags</code>, <code>srcAccessMask</code> member of each element of <code>pMemoryBarriers</code> and <code>pImageMemoryBarriers</code> contains a subset of the bit values in <code>VkSubpassDependency</code>::<code>srcAccessMask</code>, and <code>dstAccessMask</code> member of each element of <code>pMemoryBarriers</code> and <code>pImageMemoryBarriers</code> contains a subset of the bit values in <code>VkSubpassDependency</code>::<code>dstAccessMask</code>" + "vuid": "VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182", + "text": " If fname:{refpage} is called within a render pass instance, the <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members of any image memory barrier included in this command <strong class=\"purple\">must</strong> be equal" }, { - "vuid": "VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178", - "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, <code>bufferMemoryBarrierCount</code> <strong class=\"purple\">must</strong> be <code>0</code>" + "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-01168", + "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" }, { - "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-01181", - "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>oldLayout</code> and <code>newLayout</code> members of an element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal" + "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-01169", + "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" }, { - "vuid": "VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182", - "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> members of any element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>" + "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-01170", + "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-01171", + "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-01183", @@ -3145,30 +3137,10 @@ "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support transfer, graphics, or compute operations" } ], - "(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [ - { - "vuid": "VUID-vkCmdPipelineBarrier-image-02635", - "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>image</code> member of any element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal to one of the elements of <code>pAttachments</code> that the current <code>framebuffer</code> was created with, that is also referred to by one of the elements of the <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code> members of the <code>VkSubpassDescription</code> instance or by the <code>pDepthStencilResolveAttachment</code> member of the <code>VkSubpassDescriptionDepthStencilResolve</code> structure that the current subpass was created with" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-02636", - "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>oldLayout</code> and <code>newLayout</code> members of any element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal to the <code>layout</code> member of an element of the <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code> members of the <code>VkSubpassDescription</code> instance or by the <code>pDepthStencilResolveAttachment</code> member of the <code>VkSubpassDescriptionDepthStencilResolve</code> structure that the current subpass was created with, that refers to the same <code>image</code>" - } - ], - "!(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [ - { - "vuid": "VUID-vkCmdPipelineBarrier-image-02637", - "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>image</code> member of any element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal to one of the elements of <code>pAttachments</code> that the current <code>framebuffer</code> was created with, that is also referred to by one of the elements of the <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code> members of the <code>VkSubpassDescription</code> instance that the current subpass was created with" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-02638", - "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>oldLayout</code> and <code>newLayout</code> members of any element of <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> be equal to the <code>layout</code> member of an element of the <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code> members of the <code>VkSubpassDescription</code> instance that the current subpass was created with, that refers to the same <code>image</code>" - } - ], "(VK_VERSION_1_1,VK_KHR_multiview)": [ { "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-01186", - "text": " If <code>vkCmdPipelineBarrier</code> is called outside of a render pass instance, <code>dependencyFlags</code> <strong class=\"purple\">must</strong> not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>" + "text": " If fname:{refpage} is called outside of a render pass instance, <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code> <strong class=\"purple\">must</strong> not be included in the dependency flags" } ], "(VK_NV_mesh_shader)": [ @@ -3281,18 +3253,6 @@ "VkImageMemoryBarrier": { "core": [ { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01197", - "text": " <code>oldLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or the current layout of the image subresources affected by the barrier" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-newLayout-01198", - "text": " <code>newLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-image-01205", - "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not <code>VK_QUEUE_FAMILY_IGNORED</code>, at least one of them <strong class=\"purple\">must</strong> be the same as the family of the queue that will execute this barrier" - }, - { "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01486", "text": " <code>subresourceRange.baseMipLevel</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created" }, @@ -3309,32 +3269,44 @@ "text": " If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <span class=\"eq\"><code>subresourceRange.baseArrayLayer</code> + <code>subresourceRange.layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created" }, { + "vuid": "VUID-VkImageMemoryBarrier-image-01932", + "text": " If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object" + }, + { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01208", - "text": " If either <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> set" + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> set" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01209", - "text": " If either <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set" + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01210", - "text": " If either <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set" + "text": "" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04064", + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01211", - "text": " If either <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> set" + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SAMPLED_BIT</code> or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> set" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01212", - "text": " If either <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> set" + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> set" }, { "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01213", - "text": " If either <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> set" + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> set" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-01932", - "text": " If <code>image</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object" + "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01197", + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>oldLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or the current layout of the image subresources affected by the barrier" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-newLayout-01198", + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, <code>newLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>" }, { "vuid": "VUID-VkImageMemoryBarrier-sType-sType", @@ -3365,64 +3337,50 @@ "text": " <code>subresourceRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageSubresourceRange\">VkImageSubresourceRange</a> structure" } ], - "!(VK_VERSION_1_1,VK_KHR_external_memory)": [ + "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ { - "vuid": "VUID-VkImageMemoryBarrier-image-01199", - "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be <code>VK_QUEUE_FAMILY_IGNORED</code>" + "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01658", + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-01200", - "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> either both be <code>VK_QUEUE_FAMILY_IGNORED</code>, or both be a valid queue family (see <a href=\"#devsandqueues-queueprops\">Queue Family Properties</a>)" + "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01659", + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set" } ], - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkImageMemoryBarrier-image-01381", - "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, at least one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-image-01766", - "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is <code>VK_QUEUE_FAMILY_IGNORED</code>, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code> or a special queue family reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>" - }, + "(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)": [ { - "vuid": "VUID-VkImageMemoryBarrier-image-01201", - "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code> and <code>srcQueueFamilyIndex</code> is <code>VK_QUEUE_FAMILY_IGNORED</code>, <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> also be <code>VK_QUEUE_FAMILY_IGNORED</code>" + "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04065", + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> set" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-01767", - "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code> and <code>srcQueueFamilyIndex</code> is not <code>VK_QUEUE_FAMILY_IGNORED</code>, it <strong class=\"purple\">must</strong> be a valid queue family or a special queue family reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>" + "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04066", + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-01768", - "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code> and <code>dstQueueFamilyIndex</code> is not <code>VK_QUEUE_FAMILY_IGNORED</code>, it <strong class=\"purple\">must</strong> be a valid queue family or a special queue family reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>" - } - ], - "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ - { - "vuid": "VUID-VkImageMemoryBarrier-image-03319", - "text": " If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\">separateDepthStencilLayouts</a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>" + "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04067", + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with at least one of <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, or <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code> set" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-03320", - "text": " If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\">separateDepthStencilLayouts</a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>" + "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04068", + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set" } ], - "!(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ + "(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-VkImageMemoryBarrier-image-01207", - "text": " If <code>image</code> has a depth/stencil format with both depth and stencil components, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>" + "vuid": "VUID-VkImageMemoryBarrier-oldLayout-02088", + "text": " If <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> define a <a href=\"#synchronization-queue-transfers\">queue family ownership transfer</a> or <code>oldLayout</code> and <code>newLayout</code> define a <a href=\"#synchronization-image-layout-transitions\">image layout transition</a>, and <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code> set" } ], "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { "vuid": "VUID-VkImageMemoryBarrier-image-02902", - "text": " If <code>image</code> has a color format, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> only include <code>VK_IMAGE_ASPECT_COLOR_BIT</code>" + "text": " If <code>image</code> has a color format, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>" } ], "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { "vuid": "VUID-VkImageMemoryBarrier-image-01671", - "text": " If <code>image</code> has a color format and either the format is single-plane or the image is not disjoint then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> only include <code>VK_IMAGE_ASPECT_COLOR_BIT</code>" + "text": " If <code>image</code> has a single-plane color format or is not <em>disjoint</em>, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>" }, { "vuid": "VUID-VkImageMemoryBarrier-image-01672", @@ -3433,20 +3391,48 @@ "text": " If <code>image</code> has a multi-planar format with only two planes, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code>" } ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ + "!(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01658", - "text": " If either <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set" + "vuid": "VUID-VkImageMemoryBarrier-image-01207", + "text": " If <code>image</code> has a depth/stencil format with both depth and stencil components, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>" + } + ], + "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ + { + "vuid": "VUID-VkImageMemoryBarrier-image-03319", + "text": " If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\">separateDepthStencilLayouts</a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>" }, { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01659", - "text": " If either <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set" + "vuid": "VUID-VkImageMemoryBarrier-image-03320", + "text": " If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\">separateDepthStencilLayouts</a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>" } ], - "(VK_NV_shading_rate_image)": [ + "!(VK_VERSION_1_1,VK_KHR_external_memory)": [ { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-02088", - "text": " If either <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code> set" + "vuid": "VUID-VkImageMemoryBarrier-image-04069", + "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be valid queue families" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-image-01199", + "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be <code>VK_QUEUE_FAMILY_IGNORED</code>" + } + ], + "(VK_VERSION_1_1,VK_KHR_external_memory)": [ + { + "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070", + "text": " If <code>srcQueueFamilyIndex</code> is not equal to <code>dstQueueFamilyIndex</code>, at least one <strong class=\"purple\">must</strong> not be a special queue family reserved for external memory ownership transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-image-04071", + "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is a special queue family values reserved for external memory transfers, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-image-04072", + "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, and <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> are not equal, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-image-01381", + "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, at least one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code>" } ] }, @@ -6713,6 +6699,24 @@ "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code>, and the <code>viewportWScalingEnable</code> member of a <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> structure, included in the <code>pNext</code> chain of <code>pViewportState</code>, is <code>VK_TRUE</code>, the <code>pViewportWScalings</code> member of the <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a> <strong class=\"purple\">must</strong> be a pointer to an array of <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> valid <a href=\"#VkViewportWScalingNV\">VkViewportWScalingNV</a> structures" } ], + "(VK_NV_scissor_exclusive)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056", + "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code>, and if <code>pViewportState->pNext</code> chain includes a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure, and if its <code>exclusiveScissorCount</code> member is not <code>0</code>, then its <code>pExclusiveScissors</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>exclusiveScissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures" + } + ], + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057", + "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code>, and if <code>pViewportState->pNext</code> chain includes a <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a> structure, then its <code>pShadingRatePalettes</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkShadingRatePaletteNV\">VkShadingRatePaletteNV</a> structures" + } + ], + "(VK_EXT_discard_rectangles)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058", + "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code>, and if <code>pNext</code> chain includes a <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a> structure, and if its <code>discardRectangleCount</code> member is not <code>0</code>, then its <code>pDiscardRectangles</code> member <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>discardRectangleCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures" + } + ], "(VK_EXT_transform_feedback)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02317", @@ -8288,7 +8292,7 @@ }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-02386", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the Android hardware buffer’s <code>AHardwareBuffer</code>::<code>usage</code> <strong class=\"purple\">must</strong> include at least one of <code>AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT</code> or <code>AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE</code>" + "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes a <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the Android hardware buffer’s <code>AHardwareBuffer</code>::<code>usage</code> <strong class=\"purple\">must</strong> include at least one of <code>AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER</code> or <code>AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE</code>" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-02387", @@ -9552,13 +9556,17 @@ }, { "vuid": "VUID-VkBufferViewCreateInfo-range-00930", - "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, <code>range</code> divided by the texel block size of <code>format</code>, multiplied by the number of texels per texel block for that format (as defined in the <a href=\"#formats-compatibility\">Compatible Formats</a> table), <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTexelBufferElements</code>" + "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, the number of texel buffer elements given by <span class=\"eq\">({lfloor}<code>range</code> / (texel block size){rfloor} {times} (texels per block))</span> where texel block size and texels per block are as defined in the <a href=\"#formats-compatibility\">Compatible Formats</a> table for <code>format</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTexelBufferElements</code>" }, { "vuid": "VUID-VkBufferViewCreateInfo-offset-00931", "text": " If <code>range</code> is not equal to <code>VK_WHOLE_SIZE</code>, the sum of <code>offset</code> and <code>range</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>buffer</code>" }, { + "vuid": "VUID-VkBufferViewCreateInfo-range-04059", + "text": " If <code>range</code> is equal to <code>VK_WHOLE_SIZE</code>, the number of texel buffer elements given by <span class=\"eq\">({lfloor}(size - <code>offset</code>) / (texel block size){rfloor} {times} (texels per block))</span> where size is the size of <code>buffer</code>, and texel block size and texels per block are as defined in the <a href=\"#formats-compatibility\">Compatible Formats</a> table for <code>format</code>, <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxTexelBufferElements</code>" + }, + { "vuid": "VUID-VkBufferViewCreateInfo-buffer-00932", "text": " <code>buffer</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing at least one of <code>VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT</code> or <code>VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT</code>" }, @@ -11899,10 +11907,6 @@ "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV</code> then the <code>geometryType</code> member of each geometry in <code>pGeometries</code> <strong class=\"purple\">must</strong> be the same" }, { - "vuid": "VUID-VkAccelerationStructureInfoNV-flags-03486", - "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBuildAccelerationStructureFlagBitsNV\">VkBuildAccelerationStructureFlagBitsNV</a> values" - }, - { "vuid": "VUID-VkAccelerationStructureInfoNV-flags-02592", "text": " If <code>flags</code> has the <code>VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV</code> bit set, then it <strong class=\"purple\">must</strong> not have the <code>VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV</code> bit set" }, @@ -11927,8 +11931,8 @@ "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeNV\">VkAccelerationStructureTypeNV</a> value" }, { - "vuid": "VUID-VkAccelerationStructureInfoNV-flags-zerobitmask", - "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>" + "vuid": "VUID-VkAccelerationStructureInfoNV-flags-parameter", + "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBuildAccelerationStructureFlagBitsNV\">VkBuildAccelerationStructureFlagBitsNV</a> values" }, { "vuid": "VUID-VkAccelerationStructureInfoNV-pGeometries-parameter", @@ -12731,18 +12735,18 @@ "VkSamplerYcbcrConversionCreateInfo": { "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01649", - "text": " <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01653", - "text": " If an external format conversion is not being created, <code>format</code> <strong class=\"purple\">must</strong> represent unsigned normalized values (i.e. the format must be a <code>UNORM</code> format)" + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-04060", + "text": " <code>format</code> <strong class=\"purple\">must</strong> represent unsigned normalized values (i.e. the format must be a <code>UNORM</code> format)" } ], "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01904", - "text": " If an external format conversion is being created, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>, otherwise it <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>" + "text": " If an external format conversion is being created, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>" + }, + { + "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-04061", + "text": " If an external format conversion is not being created, <code>format</code> <strong class=\"purple\">must</strong> represent unsigned normalized values (i.e. the format must be a <code>UNORM</code> format)" } ], "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ @@ -15269,6 +15273,18 @@ "vkCmdWriteTimestamp": { "core": [ { + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04074", + "text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> be a <a href=\"#synchronization-pipeline-stages-supported\">valid stage</a> for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from" + }, + { + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04075", + "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + }, + { + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04076", + "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>" + }, + { "vuid": "VUID-vkCmdWriteTimestamp-queryPool-01416", "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> of <code>VK_QUERY_TYPE_TIMESTAMP</code>" }, @@ -15305,6 +15321,36 @@ "text": " Both of <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>" } ], + "(VK_EXT_conditional_rendering)": [ + { + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04077", + "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>" + } + ], + "(VK_EXT_fragment_density_map)": [ + { + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04078", + "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>" + } + ], + "(VK_EXT_transform_feedback)": [ + { + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04079", + "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>" + } + ], + "(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04080", + "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code> or <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>" + } + ], + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04081", + "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>" + } + ], "(VK_VERSION_1_1,VK_KHR_multiview)": [ { "vuid": "VUID-vkCmdWriteTimestamp-None-00830", @@ -15411,16 +15457,8 @@ "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceValueTypeINTEL\">VkPerformanceValueTypeINTEL</a> value" }, { - "vuid": "VUID-VkPerformanceValueINTEL-data-parameter", - "text": " <code>data</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPerformanceValueDataINTEL\">VkPerformanceValueDataINTEL</a> union" - } - ] - }, - "VkPerformanceValueDataINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-VkPerformanceValueDataINTEL-valueString-parameter", - "text": " <code>valueString</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string" + "vuid": "VUID-VkPerformanceValueINTEL-valueString-parameter", + "text": " If <code>type</code> is <code>VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL</code>, the <code>valueString</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a null-terminated UTF-8 string" } ] }, @@ -16685,6 +16723,14 @@ "text": " The <code>imageOffset</code> and <code>imageExtent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>’s command pool’s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>" }, { + "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-04052", + "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>" + }, + { + "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-04053", + "text": " If <code>dstImage</code> has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>" + }, + { "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-parameter", "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle" }, @@ -16815,6 +16861,14 @@ "text": " The <code>imageOffset</code> and <code>imageExtent</code> members of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> respect the image transfer granularity requirements of <code>commandBuffer</code>’s command pool’s queue family, as described in <a href=\"#VkQueueFamilyProperties\">VkQueueFamilyProperties</a>" }, { + "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-04054", + "text": " If the queue family used to create the <a href=\"#VkCommandPool\">VkCommandPool</a> which <code>commandBuffer</code> was allocated from does not support <code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>" + }, + { + "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-04055", + "text": " If <code>srcImage</code> has a depth/stencil format, the <code>bufferOffset</code> member of any element of <code>pRegions</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>" + }, + { "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter", "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle" }, @@ -16973,10 +17027,6 @@ ], "core": [ { - "vuid": "VUID-VkBufferImageCopy-bufferOffset-00194", - "text": " <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>" - }, - { "vuid": "VUID-VkBufferImageCopy-bufferRowLength-00195", "text": " <code>bufferRowLength</code> <strong class=\"purple\">must</strong> be <code>0</code>, or greater than or equal to the <code>width</code> member of <code>imageExtent</code>" }, @@ -17515,6 +17565,18 @@ "vkCmdWriteBufferMarkerAMD": { "(VK_AMD_buffer_marker)": [ { + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04074", + "text": " <code>pipelineStage</code> <strong class=\"purple\">must</strong> be a <a href=\"#synchronization-pipeline-stages-supported\">valid stage</a> for the queue family that was used to create the command pool that <code>commandBuffer</code> was allocated from" + }, + { + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04075", + "text": " If the <a href=\"#features-geometryShader\">geometry shaders</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + }, + { + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04076", + "text": " If the <a href=\"#features-tessellationShader\">tessellation shaders</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code> or <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>" + }, + { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798", "text": " <code>dstOffset</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>dstBuffer</code> minus <code>4</code>" }, @@ -17554,6 +17616,36 @@ "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commonparent", "text": " Both of <code>commandBuffer</code>, and <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>" } + ], + "(VK_AMD_buffer_marker)+(VK_EXT_conditional_rendering)": [ + { + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04077", + "text": " If the <a href=\"#features-conditionalRendering\">conditional rendering</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT</code>" + } + ], + "(VK_AMD_buffer_marker)+(VK_EXT_fragment_density_map)": [ + { + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04078", + "text": " If the <a href=\"#features-fragmentDensityMap\">fragment density map</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT</code>" + } + ], + "(VK_AMD_buffer_marker)+(VK_EXT_transform_feedback)": [ + { + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04079", + "text": " If the <a href=\"#features-transformFeedback\">transform feedback</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT</code>" + } + ], + "(VK_AMD_buffer_marker)+(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04080", + "text": " If the <a href=\"#features-meshShader\">mesh shaders</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code> or <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>" + } + ], + "(VK_AMD_buffer_marker)+(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04081", + "text": " If the <a href=\"#features-shadingRateImage\">shading rate image</a> feature is not enabled, <code>pipelineStage</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV</code>" + } ] }, "VkPipelineInputAssemblyStateCreateInfo": { @@ -20491,16 +20583,12 @@ "text": " If <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, <code>viewportCount</code> <strong class=\"purple\">must</strong> be equal to the <code>viewportCount</code> member of <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>" }, { - "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-pDynamicStates-02057", - "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code>, <code>pShadingRatePalettes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> <code>VkShadingRatePaletteNV</code> structures" - }, - { "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-sType-sType", "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV</code>" }, { - "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-pShadingRatePalettes-parameter", - "text": " If <code>viewportCount</code> is not <code>0</code>, and <code>pShadingRatePalettes</code> is not <code>NULL</code>, <code>pShadingRatePalettes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <a href=\"#VkShadingRatePaletteNV\">VkShadingRatePaletteNV</a> structures" + "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-arraylength", + "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" } ] }, @@ -20971,16 +21059,8 @@ "text": " <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or identical to the <code>viewportCount</code> member of <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>" }, { - "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-pDynamicStates-02030", - "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> and <code>exclusiveScissorCount</code> is not <code>0</code>, <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>exclusiveScissorCount</code> <code>VkRect2D</code> structures" - }, - { "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-sType-sType", "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV</code>" - }, - { - "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-pExclusiveScissors-parameter", - "text": " If <code>exclusiveScissorCount</code> is not <code>0</code>, and <code>pExclusiveScissors</code> is not <code>NULL</code>, <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>exclusiveScissorCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures" } ] }, @@ -25456,6 +25536,34 @@ } ] }, + "vkDestroyPrivateDataSlotEXT": { + "(VK_EXT_private_data)": [ + { + "vuid": "VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-04062", + "text": " If <code>VkAllocationCallbacks</code> were provided when <code>privateDataSlot</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here" + }, + { + "vuid": "VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-04063", + "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>privateDataSlot</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + }, + { + "vuid": "VUID-vkDestroyPrivateDataSlotEXT-device-parameter", + "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle" + }, + { + "vuid": "VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-parameter", + "text": " If <code>privateDataSlot</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>privateDataSlot</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPrivateDataSlotEXT\">VkPrivateDataSlotEXT</a> handle" + }, + { + "vuid": "VUID-vkDestroyPrivateDataSlotEXT-pAllocator-parameter", + "text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure" + }, + { + "vuid": "VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-parent", + "text": " If <code>privateDataSlot</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>" + } + ] + }, "vkSetPrivateDataEXT": { "(VK_EXT_private_data)": [ { @@ -26641,28 +26749,20 @@ "text": " <code>geometryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryTypeKHR\">VkGeometryTypeKHR</a> value" }, { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometry-parameter", - "text": " <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryDataKHR\">VkAccelerationStructureGeometryDataKHR</a> union" + "vuid": "VUID-VkAccelerationStructureGeometryKHR-triangles-parameter", + "text": " If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_TRIANGLES_KHR</code>, the <code>triangles</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a> structure" }, { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-flags-parameter", - "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryFlagBitsKHR\">VkGeometryFlagBitsKHR</a> values" - } - ] - }, - "VkAccelerationStructureGeometryDataKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing)+(VK_KHR_ray_tracing)": [ - { - "vuid": "VUID-VkAccelerationStructureGeometryDataKHR-triangles-parameter", - "text": " <code>triangles</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryTrianglesDataKHR\">VkAccelerationStructureGeometryTrianglesDataKHR</a> structure" + "vuid": "VUID-VkAccelerationStructureGeometryKHR-aabbs-parameter", + "text": " If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_AABBS_KHR</code>, the <code>aabbs</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryAabbsDataKHR\">VkAccelerationStructureGeometryAabbsDataKHR</a> structure" }, { - "vuid": "VUID-VkAccelerationStructureGeometryDataKHR-aabbs-parameter", - "text": " <code>aabbs</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryAabbsDataKHR\">VkAccelerationStructureGeometryAabbsDataKHR</a> structure" + "vuid": "VUID-VkAccelerationStructureGeometryKHR-instances-parameter", + "text": " If <code>geometryType</code> is <code>VK_GEOMETRY_TYPE_INSTANCES_KHR</code>, the <code>instances</code> member of <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryInstancesDataKHR\">VkAccelerationStructureGeometryInstancesDataKHR</a> structure" }, { - "vuid": "VUID-VkAccelerationStructureGeometryDataKHR-instances-parameter", - "text": " <code>instances</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureGeometryInstancesDataKHR\">VkAccelerationStructureGeometryInstancesDataKHR</a> structure" + "vuid": "VUID-VkAccelerationStructureGeometryKHR-flags-parameter", + "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryFlagBitsKHR\">VkGeometryFlagBitsKHR</a> values" } ] }, diff --git a/registry/vk.xml b/registry/vk.xml index cbc430a..c580579 100644 --- a/registry/vk.xml +++ b/registry/vk.xml @@ -143,7 +143,7 @@ server. <type requires="ggp_c/vulkan_types.h" name="GgpFrameToken"/> <type category="define">#define <name>VK_MAKE_VERSION</name>(major, minor, patch) \ - (((major) << 22) | ((minor) << 12) | (patch))</type> + ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))</type> <type category="define">#define <name>VK_VERSION_MAJOR</name>(version) ((uint32_t)(version) >> 22)</type> <type category="define">#define <name>VK_VERSION_MINOR</name>(version) (((uint32_t)(version) >> 12) & 0x3ff)</type> <type category="define">#define <name>VK_VERSION_PATCH</name>(version) ((uint32_t)(version) & 0xfff)</type> @@ -157,7 +157,7 @@ server. <type category="define">// Vulkan 1.2 version number #define <name>VK_API_VERSION_1_2</name> <type>VK_MAKE_VERSION</type>(1, 2, 0)// Patch version should always be set to 0</type> <type category="define">// Version of this file -#define <name>VK_HEADER_VERSION</name> 141</type> +#define <name>VK_HEADER_VERSION</name> 142</type> <type category="define" requires="VK_HEADER_VERSION">// Complete version of this file #define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_VERSION</type>(1, 2, VK_HEADER_VERSION)</type> @@ -246,10 +246,10 @@ typedef void <name>CAMetalLayer</name>; <type requires="VkQueryResultFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueryResultFlags</name>;</type> <type requires="VkShaderModuleCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkShaderModuleCreateFlags</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkEventCreateFlags</name>;</type> - <type requires="VkCommandPoolCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolCreateFlags</name>;</type> - <type requires="VkCommandPoolResetFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolResetFlags</name>;</type> - <type requires="VkCommandBufferResetFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandBufferResetFlags</name>;</type> - <type requires="VkCommandBufferUsageFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandBufferUsageFlags</name>;</type> + <type requires="VkCommandPoolCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolCreateFlags</name>;</type> + <type requires="VkCommandPoolResetFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolResetFlags</name>;</type> + <type requires="VkCommandBufferResetFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandBufferResetFlags</name>;</type> + <type requires="VkCommandBufferUsageFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandBufferUsageFlags</name>;</type> <type requires="VkQueryPipelineStatisticFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueryPipelineStatisticFlags</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryMapFlags</name>;</type> <type requires="VkImageAspectFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkImageAspectFlags</name>;</type> @@ -265,20 +265,20 @@ typedef void <name>CAMetalLayer</name>; <type category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorPoolResetFlags</name>;</type> <type requires="VkDependencyFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkDependencyFlags</name>;</type> <type requires="VkSubgroupFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSubgroupFeatureFlags</name>;</type> - <type requires="VkIndirectCommandsLayoutUsageFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkIndirectCommandsLayoutUsageFlagsNV</name>;</type> - <type requires="VkIndirectStateFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkIndirectStateFlagsNV</name>;</type> - <type requires="VkGeometryFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkGeometryFlagsKHR</name>;</type> - <type category="bitmask" name="VkGeometryFlagsNV" alias="VkGeometryFlagsKHR"/> - <type requires="VkGeometryInstanceFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkGeometryInstanceFlagsKHR</name>;</type> - <type category="bitmask" name="VkGeometryInstanceFlagsNV" alias="VkGeometryInstanceFlagsKHR"/> + <type requires="VkIndirectCommandsLayoutUsageFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkIndirectCommandsLayoutUsageFlagsNV</name>;</type> + <type requires="VkIndirectStateFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkIndirectStateFlagsNV</name>;</type> + <type requires="VkGeometryFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkGeometryFlagsKHR</name>;</type> + <type category="bitmask" name="VkGeometryFlagsNV" alias="VkGeometryFlagsKHR"/> + <type requires="VkGeometryInstanceFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkGeometryInstanceFlagsKHR</name>;</type> + <type category="bitmask" name="VkGeometryInstanceFlagsNV" alias="VkGeometryInstanceFlagsKHR"/> <type requires="VkBuildAccelerationStructureFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkBuildAccelerationStructureFlagsKHR</name>;</type> - <type category="bitmask" name="VkBuildAccelerationStructureFlagsNV" alias="VkBuildAccelerationStructureFlagsKHR"/> + <type category="bitmask" name="VkBuildAccelerationStructureFlagsNV" alias="VkBuildAccelerationStructureFlagsKHR"/> <type requires="VkPrivateDataSlotCreateFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkPrivateDataSlotCreateFlagsEXT</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorUpdateTemplateCreateFlags</name>;</type> <type category="bitmask" name="VkDescriptorUpdateTemplateCreateFlagsKHR" alias="VkDescriptorUpdateTemplateCreateFlags"/> <type requires="VkPipelineCreationFeedbackFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCreationFeedbackFlagsEXT</name>;</type> <type requires="VkPerformanceCounterDescriptionFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkPerformanceCounterDescriptionFlagsKHR</name>;</type> - <type requires="VkAcquireProfilingLockFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkAcquireProfilingLockFlagsKHR</name>;</type> + <type requires="VkAcquireProfilingLockFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkAcquireProfilingLockFlagsKHR</name>;</type> <type requires="VkSemaphoreWaitFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSemaphoreWaitFlags</name>;</type> <type category="bitmask" name="VkSemaphoreWaitFlagsKHR" alias="VkSemaphoreWaitFlags"/> <type requires="VkPipelineCompilerControlFlagBitsAMD" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCompilerControlFlagsAMD</name>;</type> @@ -304,20 +304,20 @@ typedef void <name>CAMetalLayer</name>; <type category="bitmask">typedef <type>VkFlags</type> <name>VkImagePipeSurfaceCreateFlagsFUCHSIA</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkStreamDescriptorSurfaceCreateFlagsGGP</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkHeadlessSurfaceCreateFlagsEXT</name>;</type> - <type requires="VkPeerMemoryFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPeerMemoryFeatureFlags</name>;</type> + <type requires="VkPeerMemoryFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPeerMemoryFeatureFlags</name>;</type> <type category="bitmask" name="VkPeerMemoryFeatureFlagsKHR" alias="VkPeerMemoryFeatureFlags"/> - <type requires="VkMemoryAllocateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryAllocateFlags</name>;</type> + <type requires="VkMemoryAllocateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryAllocateFlags</name>;</type> <type category="bitmask" name="VkMemoryAllocateFlagsKHR" alias="VkMemoryAllocateFlags"/> <type requires="VkDeviceGroupPresentModeFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkDeviceGroupPresentModeFlagsKHR</name>;</type> - <type requires="VkDebugReportFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDebugReportFlagsEXT</name>;</type> + <type requires="VkDebugReportFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDebugReportFlagsEXT</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolTrimFlags</name>;</type> <type category="bitmask" name="VkCommandPoolTrimFlagsKHR" alias="VkCommandPoolTrimFlags"/> <type requires="VkExternalMemoryHandleTypeFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalMemoryHandleTypeFlagsNV</name>;</type> <type requires="VkExternalMemoryFeatureFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalMemoryFeatureFlagsNV</name>;</type> <type requires="VkExternalMemoryHandleTypeFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalMemoryHandleTypeFlags</name>;</type> <type category="bitmask" name="VkExternalMemoryHandleTypeFlagsKHR" alias="VkExternalMemoryHandleTypeFlags"/> - <type requires="VkExternalMemoryFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalMemoryFeatureFlags</name>;</type> + <type requires="VkExternalMemoryFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalMemoryFeatureFlags</name>;</type> <type category="bitmask" name="VkExternalMemoryFeatureFlagsKHR" alias="VkExternalMemoryFeatureFlags"/> <type requires="VkExternalSemaphoreHandleTypeFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalSemaphoreHandleTypeFlags</name>;</type> <type category="bitmask" name="VkExternalSemaphoreHandleTypeFlagsKHR" alias="VkExternalSemaphoreHandleTypeFlags"/> @@ -327,9 +327,9 @@ typedef void <name>CAMetalLayer</name>; <type category="bitmask" name="VkSemaphoreImportFlagsKHR" alias="VkSemaphoreImportFlags"/> <type requires="VkExternalFenceHandleTypeFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalFenceHandleTypeFlags</name>;</type> <type category="bitmask" name="VkExternalFenceHandleTypeFlagsKHR" alias="VkExternalFenceHandleTypeFlags"/> - <type requires="VkExternalFenceFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalFenceFeatureFlags</name>;</type> + <type requires="VkExternalFenceFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalFenceFeatureFlags</name>;</type> <type category="bitmask" name="VkExternalFenceFeatureFlagsKHR" alias="VkExternalFenceFeatureFlags"/> - <type requires="VkFenceImportFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkFenceImportFlags</name>;</type> + <type requires="VkFenceImportFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkFenceImportFlags</name>;</type> <type category="bitmask" name="VkFenceImportFlagsKHR" alias="VkFenceImportFlags"/> <type requires="VkSurfaceCounterFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkSurfaceCounterFlagsEXT</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineViewportSwizzleStateCreateFlagsNV</name>;</type> @@ -338,14 +338,14 @@ typedef void <name>CAMetalLayer</name>; <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCoverageModulationStateCreateFlagsNV</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCoverageReductionStateCreateFlagsNV</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkValidationCacheCreateFlagsEXT</name>;</type> - <type requires="VkDebugUtilsMessageSeverityFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessageSeverityFlagsEXT</name>;</type> - <type requires="VkDebugUtilsMessageTypeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessageTypeFlagsEXT</name>;</type> + <type requires="VkDebugUtilsMessageSeverityFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessageSeverityFlagsEXT</name>;</type> + <type requires="VkDebugUtilsMessageTypeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessageTypeFlagsEXT</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessengerCreateFlagsEXT</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessengerCallbackDataFlagsEXT</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationConservativeStateCreateFlagsEXT</name>;</type> <type requires="VkDescriptorBindingFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorBindingFlags</name>;</type> <type category="bitmask" name="VkDescriptorBindingFlagsEXT" alias="VkDescriptorBindingFlags"/> - <type requires="VkConditionalRenderingFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkConditionalRenderingFlagsEXT</name>;</type> + <type requires="VkConditionalRenderingFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkConditionalRenderingFlagsEXT</name>;</type> <type requires="VkResolveModeFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkResolveModeFlags</name>;</type> <type category="bitmask" name="VkResolveModeFlagsKHR" alias="VkResolveModeFlags"/> <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationStateStreamCreateFlagsEXT</name>;</type> @@ -410,20 +410,9 @@ typedef void <name>CAMetalLayer</name>; <type name="VkRenderPassCreateFlagBits" category="enum"/> <type name="VkSamplerCreateFlagBits" category="enum"/> <type name="VkPipelineCacheHeaderVersion" category="enum"/> - <type name="VkPipelineLayoutCreateFlagBits" category="enum"/> <type name="VkPipelineCacheCreateFlagBits" category="enum"/> - <type name="VkPipelineDepthStencilStateCreateFlagBits" category="enum"/> - <type name="VkPipelineDynamicStateCreateFlagBits" category="enum"/> - <type name="VkPipelineColorBlendStateCreateFlagBits" category="enum"/> - <type name="VkPipelineMultisampleStateCreateFlagBits" category="enum"/> - <type name="VkPipelineRasterizationStateCreateFlagBits" category="enum"/> - <type name="VkPipelineViewportStateCreateFlagBits" category="enum"/> - <type name="VkPipelineTessellationStateCreateFlagBits" category="enum"/> - <type name="VkPipelineInputAssemblyStateCreateFlagBits" category="enum"/> - <type name="VkPipelineVertexInputStateCreateFlagBits" category="enum"/> <type name="VkPipelineShaderStageCreateFlagBits" category="enum"/> <type name="VkDescriptorSetLayoutCreateFlagBits" category="enum"/> - <type name="VkBufferViewCreateFlagBits" category="enum"/> <type name="VkInstanceCreateFlagBits" category="enum"/> <type name="VkDeviceQueueCreateFlagBits" category="enum"/> <type name="VkBufferCreateFlagBits" category="enum"/> @@ -516,19 +505,19 @@ typedef void <name>CAMetalLayer</name>; <type name="VkSemaphoreType" category="enum"/> <type category="enum" name="VkSemaphoreTypeKHR" alias="VkSemaphoreType"/> <type name="VkGeometryFlagBitsKHR" category="enum"/> - <type category="enum" name="VkGeometryFlagBitsNV" alias="VkGeometryFlagBitsKHR"/> + <type category="enum" name="VkGeometryFlagBitsNV" alias="VkGeometryFlagBitsKHR"/> <type name="VkGeometryInstanceFlagBitsKHR" category="enum"/> - <type category="enum" name="VkGeometryInstanceFlagBitsNV" alias="VkGeometryInstanceFlagBitsKHR"/> + <type category="enum" name="VkGeometryInstanceFlagBitsNV" alias="VkGeometryInstanceFlagBitsKHR"/> <type name="VkBuildAccelerationStructureFlagBitsKHR" category="enum"/> - <type category="enum" name="VkBuildAccelerationStructureFlagBitsNV" alias="VkBuildAccelerationStructureFlagBitsKHR"/> + <type category="enum" name="VkBuildAccelerationStructureFlagBitsNV" alias="VkBuildAccelerationStructureFlagBitsKHR"/> <type name="VkCopyAccelerationStructureModeKHR" category="enum"/> - <type category="enum" name="VkCopyAccelerationStructureModeNV" alias="VkCopyAccelerationStructureModeKHR"/> + <type category="enum" name="VkCopyAccelerationStructureModeNV" alias="VkCopyAccelerationStructureModeKHR"/> <type name="VkAccelerationStructureTypeKHR" category="enum"/> - <type category="enum" name="VkAccelerationStructureTypeNV" alias="VkAccelerationStructureTypeKHR"/> + <type category="enum" name="VkAccelerationStructureTypeNV" alias="VkAccelerationStructureTypeKHR"/> <type name="VkGeometryTypeKHR" category="enum"/> - <type category="enum" name="VkGeometryTypeNV" alias="VkGeometryTypeKHR"/> + <type category="enum" name="VkGeometryTypeNV" alias="VkGeometryTypeKHR"/> <type name="VkRayTracingShaderGroupTypeKHR" category="enum"/> - <type category="enum" name="VkRayTracingShaderGroupTypeNV" alias="VkRayTracingShaderGroupTypeKHR"/> + <type category="enum" name="VkRayTracingShaderGroupTypeNV" alias="VkRayTracingShaderGroupTypeKHR"/> <type name="VkAccelerationStructureMemoryRequirementsTypeKHR" category="enum"/> <type category="enum" name="VkAccelerationStructureMemoryRequirementsTypeNV" alias="VkAccelerationStructureMemoryRequirementsTypeKHR"/> <type name="VkAccelerationStructureBuildTypeKHR" category="enum"/> @@ -1919,7 +1908,7 @@ typedef void <name>CAMetalLayer</name>; <member noautovalidity="true"><type>void</type>* <name>pNext</name></member> <member><type>VkBool32</type> <name>deviceGeneratedCommands</name></member> </type> - <type category="struct" name="VkDevicePrivateDataCreateInfoEXT" allowduplicate="true"> + <type category="struct" name="VkDevicePrivateDataCreateInfoEXT" allowduplicate="true" structextends="VkDeviceCreateInfo"> <member values="VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> <member><type>uint32_t</type> <name>privateDataSlotRequestCount</name></member> @@ -2680,11 +2669,11 @@ typedef void <name>CAMetalLayer</name>; </type> <type category="struct" name="VkPipelineDiscardRectangleStateCreateInfoEXT" structextends="VkGraphicsPipelineCreateInfo"> <member values="VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> - <member>const <type>void</type>* <name>pNext</name></member> - <member optional="true"><type>VkPipelineDiscardRectangleStateCreateFlagsEXT</type> <name>flags</name></member> - <member><type>VkDiscardRectangleModeEXT</type> <name>discardRectangleMode</name></member> - <member optional="true"><type>uint32_t</type> <name>discardRectangleCount</name></member> - <member noautovalidity="true" optional="true" len="discardRectangleCount">const <type>VkRect2D</type>* <name>pDiscardRectangles</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member optional="true"><type>VkPipelineDiscardRectangleStateCreateFlagsEXT</type> <name>flags</name></member> + <member><type>VkDiscardRectangleModeEXT</type> <name>discardRectangleMode</name></member> + <member optional="true"><type>uint32_t</type> <name>discardRectangleCount</name></member> + <member noautovalidity="true" len="discardRectangleCount">const <type>VkRect2D</type>* <name>pDiscardRectangles</name></member> </type> <type category="struct" name="VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX" returnedonly="true" structextends="VkPhysicalDeviceProperties2"> <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"><type>VkStructureType</type> <name>sType</name></member> @@ -3640,9 +3629,9 @@ typedef void <name>CAMetalLayer</name>; </type> <type category="struct" name="VkPipelineViewportExclusiveScissorStateCreateInfoNV" structextends="VkPipelineViewportStateCreateInfo"> <member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> - <member>const <type>void</type>* <name>pNext</name></member> - <member optional="true"><type>uint32_t</type> <name>exclusiveScissorCount</name></member> - <member len="exclusiveScissorCount" optional="true">const <type>VkRect2D</type>* <name>pExclusiveScissors</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member optional="true"><type>uint32_t</type> <name>exclusiveScissorCount</name></member> + <member noautovalidity="true" len="exclusiveScissorCount">const <type>VkRect2D</type>* <name>pExclusiveScissors</name></member> </type> <type category="struct" name="VkPhysicalDeviceCornerSampledImageFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member> @@ -3676,10 +3665,10 @@ typedef void <name>CAMetalLayer</name>; </type> <type category="struct" name="VkPipelineViewportShadingRateImageStateCreateInfoNV" structextends="VkPipelineViewportStateCreateInfo"> <member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> - <member>const <type>void</type>* <name>pNext</name></member> - <member><type>VkBool32</type> <name>shadingRateImageEnable</name></member> - <member optional="true"><type>uint32_t</type> <name>viewportCount</name></member> - <member len="viewportCount" optional="true">const <type>VkShadingRatePaletteNV</type>* <name>pShadingRatePalettes</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>shadingRateImageEnable</name></member> + <member noautovalidity="true"><type>uint32_t</type> <name>viewportCount</name></member> + <member noautovalidity="true" len="viewportCount">const <type>VkShadingRatePaletteNV</type>* <name>pShadingRatePalettes</name></member> </type> <type category="struct" name="VkPhysicalDeviceShadingRateImageFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member> @@ -3824,7 +3813,7 @@ typedef void <name>CAMetalLayer</name>; <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> <member><type>VkAccelerationStructureTypeNV</type> <name>type</name></member> - <member noautovalidity="true" optional="true"><type>VkBuildAccelerationStructureFlagsNV</type><name>flags</name></member> + <member optional="true"><type>VkBuildAccelerationStructureFlagsNV</type><name>flags</name></member> <member optional="true"><type>uint32_t</type> <name>instanceCount</name></member> <member optional="true"><type>uint32_t</type> <name>geometryCount</name></member> <member len="geometryCount">const <type>VkGeometryNV</type>* <name>pGeometries</name></member> @@ -3844,14 +3833,14 @@ typedef void <name>CAMetalLayer</name>; <member optional="true"><type>uint32_t</type> <name>deviceIndexCount</name></member> <member len="deviceIndexCount">const <type>uint32_t</type>* <name>pDeviceIndices</name></member> </type> - <type category="struct" name="VkBindAccelerationStructureMemoryInfoNV" alias="VkBindAccelerationStructureMemoryInfoKHR"/> + <type category="struct" name="VkBindAccelerationStructureMemoryInfoNV" alias="VkBindAccelerationStructureMemoryInfoKHR"/> <type category="struct" name="VkWriteDescriptorSetAccelerationStructureKHR" structextends="VkWriteDescriptorSet"> <member values="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> <member><type>uint32_t</type> <name>accelerationStructureCount</name></member> <member len="accelerationStructureCount">const <type>VkAccelerationStructureKHR</type>* <name>pAccelerationStructures</name></member> </type> - <type category="struct" name="VkWriteDescriptorSetAccelerationStructureNV" alias="VkWriteDescriptorSetAccelerationStructureKHR"/> + <type category="struct" name="VkWriteDescriptorSetAccelerationStructureNV" alias="VkWriteDescriptorSetAccelerationStructureKHR"/> <type category="struct" name="VkAccelerationStructureMemoryRequirementsInfoKHR"> <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> @@ -4261,15 +4250,15 @@ typedef void <name>CAMetalLayer</name>; <member><type>VkBool32</type> <name>shaderIntegerFunctions2</name></member> </type> <type category="union" name="VkPerformanceValueDataINTEL"> - <member><type>uint32_t</type> <name>value32</name></member> - <member><type>uint64_t</type> <name>value64</name></member> - <member><type>float</type> <name>valueFloat</name></member> - <member><type>VkBool32</type> <name>valueBool</name></member> - <member len="null-terminated">const <type>char</type>* <name>valueString</name></member> + <member selection="VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL"><type>uint32_t</type> <name>value32</name></member> + <member selection="VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL"><type>uint64_t</type> <name>value64</name></member> + <member selection="VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL"><type>float</type> <name>valueFloat</name></member> + <member selection="VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL"><type>VkBool32</type> <name>valueBool</name></member> + <member selection="VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL" len="null-terminated">const <type>char</type>* <name>valueString</name></member> </type> <type category="struct" name="VkPerformanceValueINTEL"> <member><type>VkPerformanceValueTypeINTEL</type> <name>type</name></member> - <member><type>VkPerformanceValueDataINTEL</type> <name>data</name></member> + <member selector="type"><type>VkPerformanceValueDataINTEL</type> <name>data</name></member> </type> <type category="struct" name="VkInitializePerformanceApiInfoINTEL" > <member values="VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL"><type>VkStructureType</type> <name>sType</name></member> @@ -4281,7 +4270,7 @@ typedef void <name>CAMetalLayer</name>; <member>const <type>void</type>* <name>pNext</name></member> <member><type>VkQueryPoolSamplingModeINTEL</type> <name>performanceCountersSampling</name></member> </type> - <type category="struct" name="VkQueryPoolCreateInfoINTEL" alias="VkQueryPoolPerformanceQueryCreateInfoINTEL"/> + <type category="struct" name="VkQueryPoolCreateInfoINTEL" alias="VkQueryPoolPerformanceQueryCreateInfoINTEL"/> <type category="struct" name="VkPerformanceMarkerInfoINTEL"> <member values="VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> @@ -4377,10 +4366,10 @@ typedef void <name>CAMetalLayer</name>; <member><type>uint32_t</type> <name>executableIndex</name></member> </type> <type category="union" name="VkPipelineExecutableStatisticValueKHR" returnedonly="true"> - <member><type>VkBool32</type> <name>b32</name></member> - <member><type>int64_t</type> <name>i64</name></member> - <member><type>uint64_t</type> <name>u64</name></member> - <member><type>double</type> <name>f64</name></member> + <member selection="VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR"><type>VkBool32</type> <name>b32</name></member> + <member selection="VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR"><type>int64_t</type> <name>i64</name></member> + <member selection="VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR"><type>uint64_t</type> <name>u64</name></member> + <member selection="VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR"><type>double</type> <name>f64</name></member> </type> <type category="struct" name="VkPipelineExecutableStatisticKHR" returnedonly="true"> <member values="VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR"><type>VkStructureType</type> <name>sType</name></member> @@ -4388,7 +4377,7 @@ typedef void <name>CAMetalLayer</name>; <member><type>char</type> <name>name</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member> <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member> <member><type>VkPipelineExecutableStatisticFormatKHR</type> <name>format</name></member> - <member><type>VkPipelineExecutableStatisticValueKHR</type> <name>value</name></member> + <member selector="format"><type>VkPipelineExecutableStatisticValueKHR</type> <name>value</name></member> </type> <type category="struct" name="VkPipelineExecutableInternalRepresentationKHR" returnedonly="true"> <member values="VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR"><type>VkStructureType</type> <name>sType</name></member> @@ -4685,15 +4674,15 @@ typedef void <name>CAMetalLayer</name>; <member><type>VkDeviceOrHostAddressConstKHR</type> <name>data</name></member> </type> <type category="union" name="VkAccelerationStructureGeometryDataKHR"> - <member><type>VkAccelerationStructureGeometryTrianglesDataKHR</type> <name>triangles</name></member> - <member><type>VkAccelerationStructureGeometryAabbsDataKHR</type> <name>aabbs</name></member> - <member><type>VkAccelerationStructureGeometryInstancesDataKHR</type> <name>instances</name></member> + <member selection="VK_GEOMETRY_TYPE_TRIANGLES_KHR"><type>VkAccelerationStructureGeometryTrianglesDataKHR</type> <name>triangles</name></member> + <member selection="VK_GEOMETRY_TYPE_AABBS_KHR"><type>VkAccelerationStructureGeometryAabbsDataKHR</type> <name>aabbs</name></member> + <member selection="VK_GEOMETRY_TYPE_INSTANCES_KHR"><type>VkAccelerationStructureGeometryInstancesDataKHR</type> <name>instances</name></member> </type> <type category="struct" name="VkAccelerationStructureGeometryKHR"> <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> <member><type>VkGeometryTypeKHR</type> <name>geometryType</name></member> - <member><type>VkAccelerationStructureGeometryDataKHR</type> <name>geometry</name></member> + <member selector="geometryType"><type>VkAccelerationStructureGeometryDataKHR</type> <name>geometry</name></member> <member optional="true"><type>VkGeometryFlagsKHR</type> <name>flags</name></member> </type> <type category="struct" name="VkAccelerationStructureBuildGeometryInfoKHR"> @@ -4743,11 +4732,11 @@ typedef void <name>CAMetalLayer</name>; <member><type>float</type> <name>maxY</name></member> <member><type>float</type> <name>maxZ</name></member> </type> - <type category="struct" name="VkAabbPositionsNV" alias="VkAabbPositionsKHR"/> + <type category="struct" name="VkAabbPositionsNV" alias="VkAabbPositionsKHR"/> <type category="struct" name="VkTransformMatrixKHR"> <member><type>float</type> <name>matrix</name>[3][4]</member> </type> - <type category="struct" name="VkTransformMatrixNV" alias="VkTransformMatrixKHR"/> + <type category="struct" name="VkTransformMatrixNV" alias="VkTransformMatrixKHR"/> <type category="struct" name="VkAccelerationStructureInstanceKHR"> <comment>The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout.</comment> <member><type>VkTransformMatrixKHR</type> <name>transform</name></member> @@ -4757,7 +4746,7 @@ typedef void <name>CAMetalLayer</name>; <member optional="true"><type>VkGeometryInstanceFlagsKHR</type> <name>flags</name>:8</member> <member><type>uint64_t</type> <name>accelerationStructureReference</name></member> </type> - <type category="struct" name="VkAccelerationStructureInstanceNV" alias="VkAccelerationStructureInstanceKHR"/> + <type category="struct" name="VkAccelerationStructureInstanceNV" alias="VkAccelerationStructureInstanceKHR"/> <type category="struct" name="VkAccelerationStructureDeviceAddressInfoKHR"> <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> @@ -7410,16 +7399,16 @@ typedef void <name>CAMetalLayer</name>; </command> <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdDebugMarkerBeginEXT</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkDebugMarkerMarkerInfoEXT</type>* <name>pMarkerInfo</name></param> </command> <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdDebugMarkerEndEXT</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> </command> <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdDebugMarkerInsertEXT</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkDebugMarkerMarkerInfoEXT</type>* <name>pMarkerInfo</name></param> </command> <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_FORMAT_NOT_SUPPORTED"> @@ -8058,16 +8047,16 @@ typedef void <name>CAMetalLayer</name>; </command> <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdBeginDebugUtilsLabelEXT</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkDebugUtilsLabelEXT</type>* <name>pLabelInfo</name></param> </command> <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdEndDebugUtilsLabelEXT</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> </command> <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdInsertDebugUtilsLabelEXT</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkDebugUtilsLabelEXT</type>* <name>pLabelInfo</name></param> </command> <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY"> @@ -8191,7 +8180,7 @@ typedef void <name>CAMetalLayer</name>; <command name="vkCmdDrawIndexedIndirectCountAMD" alias="vkCmdDrawIndexedIndirectCount"/> <command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdSetCheckpointNV</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param noautovalidity="true">const <type>void</type>* <name>pCheckpointMarker</name></param> </command> <command> @@ -8342,14 +8331,14 @@ typedef void <name>CAMetalLayer</name>; <command name="vkBindAccelerationStructureMemoryNV" alias="vkBindAccelerationStructureMemoryKHR"/> <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdCopyAccelerationStructureNV</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkAccelerationStructureKHR</type> <name>dst</name></param> <param><type>VkAccelerationStructureKHR</type> <name>src</name></param> <param><type>VkCopyAccelerationStructureModeKHR</type> <name>mode</name></param> </command> <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdCopyAccelerationStructureKHR</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkCopyAccelerationStructureInfoKHR</type>* <name>pInfo</name></param> </command> <command successcodes="VK_SUCCESS,VK_OPERATION_DEFERRED_KHR,VK_OPERATION_NOT_DEFERRED_KHR" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY"> @@ -8359,7 +8348,7 @@ typedef void <name>CAMetalLayer</name>; </command> <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdCopyAccelerationStructureToMemoryKHR</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkCopyAccelerationStructureToMemoryInfoKHR</type>* <name>pInfo</name></param> </command> <command successcodes="VK_SUCCESS,VK_OPERATION_DEFERRED_KHR,VK_OPERATION_NOT_DEFERRED_KHR" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY"> @@ -8369,7 +8358,7 @@ typedef void <name>CAMetalLayer</name>; </command> <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdCopyMemoryToAccelerationStructureKHR</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkCopyMemoryToAccelerationStructureInfoKHR</type>* <name>pInfo</name></param> </command> <command successcodes="VK_SUCCESS,VK_OPERATION_DEFERRED_KHR,VK_OPERATION_NOT_DEFERRED_KHR" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY"> @@ -8379,7 +8368,7 @@ typedef void <name>CAMetalLayer</name>; </command> <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdWriteAccelerationStructuresPropertiesKHR</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>uint32_t</type> <name>accelerationStructureCount</name></param> <param len="accelerationStructureCount">const <type>VkAccelerationStructureKHR</type>* <name>pAccelerationStructures</name></param> <param><type>VkQueryType</type> <name>queryType</name></param> @@ -8389,7 +8378,7 @@ typedef void <name>CAMetalLayer</name>; <command name="vkCmdWriteAccelerationStructuresPropertiesNV" alias="vkCmdWriteAccelerationStructuresPropertiesKHR"/> <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdBuildAccelerationStructureNV</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkAccelerationStructureInfoNV</type>* <name>pInfo</name></param> <param optional="true"><type>VkBuffer</type> <name>instanceData</name></param> <param><type>VkDeviceSize</type> <name>instanceOffset</name></param> @@ -8411,7 +8400,7 @@ typedef void <name>CAMetalLayer</name>; </command> <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdTraceRaysKHR</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkStridedBufferRegionKHR</type>* <name>pRaygenShaderBindingTable</name></param> <param>const <type>VkStridedBufferRegionKHR</type>* <name>pMissShaderBindingTable</name></param> <param>const <type>VkStridedBufferRegionKHR</type>* <name>pHitShaderBindingTable</name></param> @@ -8422,7 +8411,7 @@ typedef void <name>CAMetalLayer</name>; </command> <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdTraceRaysNV</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>VkBuffer</type> <name>raygenShaderBindingTableBuffer</name></param> <param><type>VkDeviceSize</type> <name>raygenShaderBindingOffset</name></param> <param optional="true"><type>VkBuffer</type> <name>missShaderBindingTableBuffer</name></param> @@ -8490,7 +8479,7 @@ typedef void <name>CAMetalLayer</name>; </command> <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdTraceRaysIndirectKHR</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkStridedBufferRegionKHR</type>* <name>pRaygenShaderBindingTable</name></param> <param>const <type>VkStridedBufferRegionKHR</type>* <name>pMissShaderBindingTable</name></param> <param>const <type>VkStridedBufferRegionKHR</type>* <name>pHitShaderBindingTable</name></param> @@ -8603,17 +8592,17 @@ typedef void <name>CAMetalLayer</name>; </command> <command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary" successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY"> <proto><type>VkResult</type> <name>vkCmdSetPerformanceMarkerINTEL</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkPerformanceMarkerInfoINTEL</type>* <name>pMarkerInfo</name></param> </command> <command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary" successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY"> <proto><type>VkResult</type> <name>vkCmdSetPerformanceStreamMarkerINTEL</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkPerformanceStreamMarkerInfoINTEL</type>* <name>pMarkerInfo</name></param> </command> <command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary" successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY"> <proto><type>VkResult</type> <name>vkCmdSetPerformanceOverrideINTEL</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkPerformanceOverrideInfoINTEL</type>* <name>pOverrideInfo</name></param> </command> <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY"> @@ -8686,14 +8675,14 @@ typedef void <name>CAMetalLayer</name>; </command> <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdBuildAccelerationStructureKHR</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param><type>uint32_t</type> <name>infoCount</name></param> <param len="infoCount">const <type>VkAccelerationStructureBuildGeometryInfoKHR</type>* <name>pInfos</name></param> <param len="infoCount">const <type>VkAccelerationStructureBuildOffsetInfoKHR</type>* const* <name>ppOffsetInfos</name></param> </command> <command queues="compute" renderpass="outside" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdBuildAccelerationStructureIndirectKHR</name></proto> - <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param>const <type>VkAccelerationStructureBuildGeometryInfoKHR</type>* <name>pInfo</name></param> <param><type>VkBuffer</type> <name>indirectBuffer</name></param> <param><type>VkDeviceSize</type> <name>indirectOffset</name></param> @@ -8772,30 +8761,101 @@ typedef void <name>CAMetalLayer</name>; <feature api="vulkan" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions"> <require comment="Header boilerplate"> <type name="vk_platform"/> + <type name="VK_DEFINE_HANDLE"/> + <type name="VK_DEFINE_NON_DISPATCHABLE_HANDLE"/> + </require> + <require comment="Fundamental types used by many commands and structures"> + <type name="VkBool32"/> + <type name="VkDeviceAddress"/> + <type name="VkDeviceSize"/> + <type name="VkExtent2D"/> + <type name="VkExtent3D"/> + <type name="VkFlags"/> + <type name="VkOffset2D"/> + <type name="VkOffset3D"/> + <type name="VkRect2D"/> + <type name="VkResult"/> + <type name="VkStructureType"/> </require> - <require comment="API version"> + <require comment="These types are part of the API, though not directly used in API commands or data structures"> + <type name="VkBaseInStructure"/> + <type name="VkBaseOutStructure"/> + <type name="VkBufferMemoryBarrier"/> + <type name="VkDispatchIndirectCommand"/> + <type name="VkDrawIndexedIndirectCommand"/> + <type name="VkDrawIndirectCommand"/> + <type name="VkImageMemoryBarrier"/> + <type name="VkMemoryBarrier"/> + <type name="VkObjectType"/> + <type name="VkVendorId"/> + </require> + <require comment="API version macros"> <type name="VK_API_VERSION"/> <type name="VK_API_VERSION_1_0"/> + <type name="VK_HEADER_VERSION"/> + <type name="VK_HEADER_VERSION_COMPLETE"/> + <type name="VK_MAKE_VERSION"/> <type name="VK_VERSION_MAJOR"/> <type name="VK_VERSION_MINOR"/> <type name="VK_VERSION_PATCH"/> - <type name="VK_HEADER_VERSION"/> - <type name="VK_HEADER_VERSION_COMPLETE"/> </require> <require comment="API constants"> - <enum name="VK_LOD_CLAMP_NONE"/> - <enum name="VK_REMAINING_MIP_LEVELS"/> - <enum name="VK_REMAINING_ARRAY_LAYERS"/> - <enum name="VK_WHOLE_SIZE"/> <enum name="VK_ATTACHMENT_UNUSED"/> - <enum name="VK_TRUE"/> <enum name="VK_FALSE"/> - <type name="VK_NULL_HANDLE"/> + <enum name="VK_LOD_CLAMP_NONE"/> <enum name="VK_QUEUE_FAMILY_IGNORED"/> + <enum name="VK_REMAINING_ARRAY_LAYERS"/> + <enum name="VK_REMAINING_MIP_LEVELS"/> <enum name="VK_SUBPASS_EXTERNAL"/> + <enum name="VK_TRUE"/> + <enum name="VK_WHOLE_SIZE"/> + <type name="VK_NULL_HANDLE"/> <type name="VkPipelineCacheHeaderVersion"/> </require> <require comment="Device initialization"> + <type name="PFN_vkAllocationFunction"/> + <type name="PFN_vkFreeFunction"/> + <type name="PFN_vkInternalAllocationNotification"/> + <type name="PFN_vkInternalFreeNotification"/> + <type name="PFN_vkReallocationFunction"/> + <type name="PFN_vkVoidFunction"/> + <type name="VkAllocationCallbacks"/> + <type name="VkApplicationInfo"/> + <type name="VkFormat"/> + <type name="VkFormatFeatureFlagBits"/> + <type name="VkFormatFeatureFlags"/> + <type name="VkFormatProperties"/> + <type name="VkImageCreateFlagBits"/> + <type name="VkImageCreateFlags"/> + <type name="VkImageFormatProperties"/> + <type name="VkImageTiling"/> + <type name="VkImageType"/> + <type name="VkImageUsageFlagBits"/> + <type name="VkImageUsageFlags"/> + <type name="VkInstance"/> + <type name="VkInstanceCreateFlags"/> + <type name="VkInstanceCreateInfo"/> + <type name="VkInternalAllocationType"/> + <type name="VkMemoryHeap"/> + <type name="VkMemoryHeapFlagBits"/> + <type name="VkMemoryHeapFlags"/> + <type name="VkMemoryPropertyFlagBits"/> + <type name="VkMemoryPropertyFlags"/> + <type name="VkMemoryType"/> + <type name="VkPhysicalDevice"/> + <type name="VkPhysicalDeviceFeatures"/> + <type name="VkPhysicalDeviceLimits"/> + <type name="VkPhysicalDeviceMemoryProperties"/> + <type name="VkPhysicalDeviceProperties"/> + <type name="VkPhysicalDeviceSparseProperties"/> + <type name="VkPhysicalDeviceType"/> + <type name="VkQueueFamilyProperties"/> + <type name="VkQueueFlagBits"/> + <type name="VkQueueFlags"/> + <type name="VkSampleCountFlagBits"/> + <type name="VkSampleCountFlags"/> + <type name="VkStructureType"/> + <type name="VkSystemAllocationScope"/> <command name="vkCreateInstance"/> <command name="vkDestroyInstance"/> <command name="vkEnumeratePhysicalDevices"/> @@ -8809,24 +8869,39 @@ typedef void <name>CAMetalLayer</name>; <command name="vkGetDeviceProcAddr"/> </require> <require comment="Device commands"> + <type name="VkDevice"/> + <type name="VkDeviceCreateFlags"/> + <type name="VkDeviceCreateInfo"/> + <type name="VkDeviceQueueCreateFlagBits"/> + <type name="VkDeviceQueueCreateFlags"/> + <type name="VkDeviceQueueCreateInfo"/> <command name="vkCreateDevice"/> <command name="vkDestroyDevice"/> </require> <require comment="Extension discovery commands"> + <type name="VkExtensionProperties"/> <command name="vkEnumerateInstanceExtensionProperties"/> <command name="vkEnumerateDeviceExtensionProperties"/> </require> <require comment="Layer discovery commands"> + <type name="VkLayerProperties"/> <command name="vkEnumerateInstanceLayerProperties"/> <command name="vkEnumerateDeviceLayerProperties"/> </require> - <require comment="queue commands"> + <require comment="Queue commands"> + <type name="VkPipelineStageFlagBits"/> + <type name="VkPipelineStageFlags"/> + <type name="VkQueue"/> + <type name="VkSubmitInfo"/> <command name="vkGetDeviceQueue"/> <command name="vkQueueSubmit"/> <command name="vkQueueWaitIdle"/> <command name="vkDeviceWaitIdle"/> </require> <require comment="Memory commands"> + <type name="VkMappedMemoryRange"/> + <type name="VkMemoryAllocateInfo"/> + <type name="VkMemoryMapFlags"/> <command name="vkAllocateMemory"/> <command name="vkFreeMemory"/> <command name="vkMapMemory"/> @@ -8836,17 +8911,38 @@ typedef void <name>CAMetalLayer</name>; <command name="vkGetDeviceMemoryCommitment"/> </require> <require comment="Memory management API commands"> + <type name="VkDeviceMemory"/> + <type name="VkMemoryRequirements"/> <command name="vkBindBufferMemory"/> <command name="vkBindImageMemory"/> <command name="vkGetBufferMemoryRequirements"/> <command name="vkGetImageMemoryRequirements"/> </require> <require comment="Sparse resource memory management API commands"> + <type name="VkBindSparseInfo"/> + <type name="VkImageAspectFlagBits"/> + <type name="VkImageAspectFlags"/> + <type name="VkImageSubresource"/> + <type name="VkSparseBufferMemoryBindInfo"/> + <type name="VkSparseImageFormatFlagBits"/> + <type name="VkSparseImageFormatFlags"/> + <type name="VkSparseImageFormatProperties"/> + <type name="VkSparseImageMemoryBind"/> + <type name="VkSparseImageMemoryBindInfo"/> + <type name="VkSparseImageMemoryRequirements"/> + <type name="VkSparseImageOpaqueMemoryBindInfo"/> + <type name="VkSparseMemoryBind"/> + <type name="VkSparseMemoryBindFlagBits"/> + <type name="VkSparseMemoryBindFlags"/> <command name="vkGetImageSparseMemoryRequirements"/> <command name="vkGetPhysicalDeviceSparseImageFormatProperties"/> <command name="vkQueueBindSparse"/> </require> <require comment="Fence commands"> + <type name="VkFence"/> + <type name="VkFenceCreateFlagBits"/> + <type name="VkFenceCreateFlags"/> + <type name="VkFenceCreateInfo"/> <command name="vkCreateFence"/> <command name="vkDestroyFence"/> <command name="vkResetFences"/> @@ -8854,10 +8950,16 @@ typedef void <name>CAMetalLayer</name>; <command name="vkWaitForFences"/> </require> <require comment="Queue semaphore commands"> + <type name="VkSemaphore"/> + <type name="VkSemaphoreCreateFlags"/> + <type name="VkSemaphoreCreateInfo"/> <command name="vkCreateSemaphore"/> <command name="vkDestroySemaphore"/> </require> <require comment="Event commands"> + <type name="VkEvent"/> + <type name="VkEventCreateFlags"/> + <type name="VkEventCreateInfo"/> <command name="vkCreateEvent"/> <command name="vkDestroyEvent"/> <command name="vkGetEventStatus"/> @@ -8865,51 +8967,169 @@ typedef void <name>CAMetalLayer</name>; <command name="vkResetEvent"/> </require> <require comment="Query commands"> + <type name="VkQueryPipelineStatisticFlagBits"/> + <type name="VkQueryPipelineStatisticFlags"/> + <type name="VkQueryPool"/> + <type name="VkQueryPoolCreateFlags"/> + <type name="VkQueryPoolCreateInfo"/> + <type name="VkQueryResultFlagBits"/> + <type name="VkQueryResultFlags"/> + <type name="VkQueryType"/> <command name="vkCreateQueryPool"/> <command name="vkDestroyQueryPool"/> <command name="vkGetQueryPoolResults"/> </require> <require comment="Buffer commands"> + <type name="VkBuffer"/> + <type name="VkBufferCreateFlagBits"/> + <type name="VkBufferCreateFlags"/> + <type name="VkBufferCreateInfo"/> + <type name="VkBufferUsageFlagBits"/> + <type name="VkBufferUsageFlags"/> + <type name="VkSharingMode"/> <command name="vkCreateBuffer"/> <command name="vkDestroyBuffer"/> </require> <require comment="Buffer view commands"> + <type name="VkBufferView"/> + <type name="VkBufferViewCreateFlags" comment="Will need FlagBits type eventually"/> + <type name="VkBufferViewCreateInfo"/> <command name="vkCreateBufferView"/> <command name="vkDestroyBufferView"/> </require> <require comment="Image commands"> + <type name="VkImage"/> + <type name="VkImageCreateInfo"/> + <type name="VkImageLayout"/> + <type name="VkSubresourceLayout"/> <command name="vkCreateImage"/> <command name="vkDestroyImage"/> <command name="vkGetImageSubresourceLayout"/> </require> <require comment="Image view commands"> + <type name="VkComponentMapping"/> + <type name="VkComponentSwizzle"/> + <type name="VkImageSubresourceRange"/> + <type name="VkImageView"/> + <type name="VkImageViewCreateFlagBits"/> + <type name="VkImageViewCreateFlags"/> + <type name="VkImageViewCreateInfo"/> + <type name="VkImageViewType"/> <command name="vkCreateImageView"/> <command name="vkDestroyImageView"/> </require> <require comment="Shader commands"> + <type name="VkShaderModule"/> + <type name="VkShaderModuleCreateFlagBits"/> + <type name="VkShaderModuleCreateFlags"/> + <type name="VkShaderModuleCreateInfo"/> <command name="vkCreateShaderModule"/> <command name="vkDestroyShaderModule"/> </require> <require comment="Pipeline Cache commands"> + <type name="VkPipelineCache"/> + <type name="VkPipelineCacheCreateFlagBits"/> + <type name="VkPipelineCacheCreateFlags"/> + <type name="VkPipelineCacheCreateInfo"/> <command name="vkCreatePipelineCache"/> <command name="vkDestroyPipelineCache"/> <command name="vkGetPipelineCacheData"/> <command name="vkMergePipelineCaches"/> </require> <require comment="Pipeline commands"> + <type name="VkBlendFactor"/> + <type name="VkBlendOp"/> + <type name="VkColorComponentFlagBits"/> + <type name="VkColorComponentFlags"/> + <type name="VkCompareOp"/> + <type name="VkComputePipelineCreateInfo"/> + <type name="VkCullModeFlagBits"/> + <type name="VkCullModeFlags"/> + <type name="VkDynamicState"/> + <type name="VkFrontFace"/> + <type name="VkGraphicsPipelineCreateInfo"/> + <type name="VkLogicOp"/> + <type name="VkPipeline"/> + <type name="VkPipelineColorBlendAttachmentState"/> + <type name="VkPipelineColorBlendStateCreateFlags" comment="Will need FlagBits type eventually"/> + <type name="VkPipelineColorBlendStateCreateInfo"/> + <type name="VkPipelineCreateFlagBits"/> + <type name="VkPipelineCreateFlags"/> + <type name="VkPipelineDepthStencilStateCreateFlags" comment="Will need FlagBits type eventually"/> + <type name="VkPipelineDepthStencilStateCreateInfo"/> + <type name="VkPipelineDynamicStateCreateFlags" comment="Will need FlagBits type eventually"/> + <type name="VkPipelineDynamicStateCreateInfo"/> + <type name="VkPipelineInputAssemblyStateCreateFlags" comment="Will need FlagBits type eventually"/> + <type name="VkPipelineInputAssemblyStateCreateInfo"/> + <type name="VkPipelineLayoutCreateFlags" comment="Will need FlagBits type eventually"/> + <type name="VkPipelineMultisampleStateCreateFlags" comment="Will need FlagBits type eventually"/> + <type name="VkPipelineMultisampleStateCreateInfo"/> + <type name="VkPipelineRasterizationStateCreateFlags" comment="Will need FlagBits type eventually"/> + <type name="VkPipelineRasterizationStateCreateInfo"/> + <type name="VkPipelineShaderStageCreateFlagBits"/> + <type name="VkPipelineShaderStageCreateFlags"/> + <type name="VkPipelineShaderStageCreateInfo"/> + <type name="VkPipelineTessellationStateCreateFlags" comment="Will need FlagBits type eventually"/> + <type name="VkPipelineTessellationStateCreateInfo"/> + <type name="VkPipelineVertexInputStateCreateFlags" comment="Will need FlagBits type eventually"/> + <type name="VkPipelineVertexInputStateCreateInfo"/> + <type name="VkPipelineViewportStateCreateFlags" comment="Will need FlagBits type eventually"/> + <type name="VkPipelineViewportStateCreateInfo"/> + <type name="VkPolygonMode"/> + <type name="VkPrimitiveTopology"/> + <type name="VkSampleMask"/> + <type name="VkShaderStageFlagBits"/> + <type name="VkShaderStageFlags"/> + <type name="VkSpecializationInfo"/> + <type name="VkSpecializationMapEntry"/> + <type name="VkStencilOp"/> + <type name="VkStencilOpState"/> + <type name="VkVertexInputAttributeDescription"/> + <type name="VkVertexInputBindingDescription"/> + <type name="VkVertexInputRate"/> + <type name="VkViewport"/> <command name="vkCreateGraphicsPipelines"/> <command name="vkCreateComputePipelines"/> <command name="vkDestroyPipeline"/> </require> <require comment="Pipeline layout commands"> + <type name="VkPipelineLayout"/> + <type name="VkPipelineLayoutCreateInfo"/> + <type name="VkPushConstantRange"/> <command name="vkCreatePipelineLayout"/> <command name="vkDestroyPipelineLayout"/> </require> <require comment="Sampler commands"> + <type name="VkBorderColor"/> + <type name="VkFilter"/> + <type name="VkSampler"/> + <type name="VkSamplerAddressMode"/> + <type name="VkSamplerCreateFlagBits"/> + <type name="VkSamplerCreateFlags"/> + <type name="VkSamplerCreateInfo"/> + <type name="VkSamplerMipmapMode"/> <command name="vkCreateSampler"/> <command name="vkDestroySampler"/> </require> <require comment="Descriptor set commands"> + <type name="VkCopyDescriptorSet"/> + <type name="VkDescriptorBufferInfo"/> + <type name="VkDescriptorImageInfo"/> + <type name="VkDescriptorPool"/> + <type name="VkDescriptorPoolCreateFlagBits"/> + <type name="VkDescriptorPoolCreateFlags"/> + <type name="VkDescriptorPoolCreateInfo"/> + <type name="VkDescriptorPoolResetFlags"/> + <type name="VkDescriptorPoolSize"/> + <type name="VkDescriptorSet"/> + <type name="VkDescriptorSetAllocateInfo"/> + <type name="VkDescriptorSetLayout"/> + <type name="VkDescriptorSetLayoutBinding"/> + <type name="VkDescriptorSetLayoutCreateFlagBits"/> + <type name="VkDescriptorSetLayoutCreateFlags"/> + <type name="VkDescriptorSetLayoutCreateInfo"/> + <type name="VkDescriptorType"/> + <type name="VkWriteDescriptorSet"/> <command name="vkCreateDescriptorSetLayout"/> <command name="vkDestroyDescriptorSetLayout"/> <command name="vkCreateDescriptorPool"/> @@ -8920,6 +9140,29 @@ typedef void <name>CAMetalLayer</name>; <command name="vkUpdateDescriptorSets"/> </require> <require comment="Pass commands"> + <type name="VkAccessFlagBits"/> + <type name="VkAccessFlags"/> + <type name="VkAttachmentDescription"/> + <type name="VkAttachmentDescriptionFlagBits"/> + <type name="VkAttachmentDescriptionFlags"/> + <type name="VkAttachmentLoadOp"/> + <type name="VkAttachmentReference"/> + <type name="VkAttachmentStoreOp"/> + <type name="VkDependencyFlagBits"/> + <type name="VkDependencyFlags"/> + <type name="VkFramebuffer"/> + <type name="VkFramebufferCreateFlagBits"/> + <type name="VkFramebufferCreateFlags"/> + <type name="VkFramebufferCreateInfo"/> + <type name="VkPipelineBindPoint"/> + <type name="VkRenderPass"/> + <type name="VkRenderPassCreateFlagBits"/> + <type name="VkRenderPassCreateFlags"/> + <type name="VkRenderPassCreateInfo"/> + <type name="VkSubpassDependency"/> + <type name="VkSubpassDescription"/> + <type name="VkSubpassDescriptionFlagBits"/> + <type name="VkSubpassDescriptionFlags"/> <command name="vkCreateFramebuffer"/> <command name="vkDestroyFramebuffer"/> <command name="vkCreateRenderPass"/> @@ -8927,11 +9170,28 @@ typedef void <name>CAMetalLayer</name>; <command name="vkGetRenderAreaGranularity"/> </require> <require comment="Command pool commands"> + <type name="VkCommandPool"/> + <type name="VkCommandPoolCreateFlagBits"/> + <type name="VkCommandPoolCreateFlags"/> + <type name="VkCommandPoolCreateInfo"/> + <type name="VkCommandPoolResetFlagBits"/> + <type name="VkCommandPoolResetFlags"/> <command name="vkCreateCommandPool"/> <command name="vkDestroyCommandPool"/> <command name="vkResetCommandPool"/> </require> <require comment="Command buffer commands"> + <type name="VkCommandBuffer"/> + <type name="VkCommandBufferAllocateInfo"/> + <type name="VkCommandBufferBeginInfo"/> + <type name="VkCommandBufferInheritanceInfo"/> + <type name="VkCommandBufferLevel"/> + <type name="VkCommandBufferResetFlagBits"/> + <type name="VkCommandBufferResetFlags"/> + <type name="VkCommandBufferUsageFlagBits"/> + <type name="VkCommandBufferUsageFlags"/> + <type name="VkQueryControlFlagBits"/> + <type name="VkQueryControlFlags"/> <command name="vkAllocateCommandBuffers"/> <command name="vkFreeCommandBuffers"/> <command name="vkBeginCommandBuffer"/> @@ -8939,6 +9199,22 @@ typedef void <name>CAMetalLayer</name>; <command name="vkResetCommandBuffer"/> </require> <require comment="Command buffer building commands"> + <type name="VkBufferCopy"/> + <type name="VkBufferImageCopy"/> + <type name="VkClearAttachment"/> + <type name="VkClearColorValue"/> + <type name="VkClearDepthStencilValue"/> + <type name="VkClearRect"/> + <type name="VkClearValue"/> + <type name="VkImageBlit"/> + <type name="VkImageCopy"/> + <type name="VkImageResolve"/> + <type name="VkImageSubresourceLayers"/> + <type name="VkIndexType"/> + <type name="VkRenderPassBeginInfo"/> + <type name="VkStencilFaceFlagBits"/> + <type name="VkStencilFaceFlags"/> + <type name="VkSubpassContents"/> <command name="vkCmdBindPipeline"/> <command name="vkCmdSetViewport"/> <command name="vkCmdSetScissor"/> @@ -8984,18 +9260,6 @@ typedef void <name>CAMetalLayer</name>; <command name="vkCmdEndRenderPass"/> <command name="vkCmdExecuteCommands"/> </require> - <require comment="These types are part of the API and should always be defined, even when no enabled features require them."> - <type name="VkBufferMemoryBarrier"/> - <type name="VkDispatchIndirectCommand"/> - <type name="VkDrawIndexedIndirectCommand"/> - <type name="VkDrawIndirectCommand"/> - <type name="VkImageMemoryBarrier"/> - <type name="VkMemoryBarrier"/> - <type name="VkObjectType"/> - <type name="VkBaseOutStructure"/> - <type name="VkBaseInStructure"/> - <type name="VkVendorId"/> - </require> </feature> <feature api="vulkan" name="VK_VERSION_1_1" number="1.1" comment="Vulkan 1.1 core API interface definitions."> <require> @@ -9081,7 +9345,6 @@ typedef void <name>CAMetalLayer</name>; <type name="VkBufferMemoryRequirementsInfo2"/> <type name="VkImageMemoryRequirementsInfo2"/> <type name="VkImageSparseMemoryRequirementsInfo2"/> - <type name="VkMemoryRequirements2KHR"/> <type name="VkMemoryRequirements2"/> <type name="VkSparseImageMemoryRequirements2"/> <command name="vkGetImageMemoryRequirements2"/> @@ -9397,6 +9660,7 @@ typedef void <name>CAMetalLayer</name>; <require comment="Promoted from VK_KHR_shader_float_controls (extension 198)"> <enum offset="0" extends="VkStructureType" extnumber="198" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES"/> <type name="VkPhysicalDeviceFloatControlsProperties"/> + <type name="VkShaderFloatControlsIndependence"/> </require> <require comment="Promoted from VK_EXT_descriptor_indexing (extension 162)"> <enum offset="0" extends="VkStructureType" extnumber="162" name="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO"/> @@ -9448,6 +9712,7 @@ typedef void <name>CAMetalLayer</name>; <require comment="Promoted from VK_KHR_imageless_framebuffer (extension 109)"> <type name="VkPhysicalDeviceImagelessFramebufferFeatures"/> <type name="VkFramebufferAttachmentsCreateInfo"/> + <type name="VkFramebufferAttachmentImageInfo"/> <type name="VkRenderPassAttachmentBeginInfo"/> <enum offset="0" extends="VkStructureType" extnumber="109" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES"/> <enum offset="1" extends="VkStructureType" extnumber="109" name="VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO"/> @@ -9537,6 +9802,7 @@ typedef void <name>CAMetalLayer</name>; <type name="VkPresentModeKHR"/> <type name="VkColorSpaceKHR"/> <type name="VkCompositeAlphaFlagBitsKHR"/> + <type name="VkCompositeAlphaFlagsKHR"/> <type name="VkSurfaceCapabilitiesKHR"/> <type name="VkSurfaceFormatKHR"/> <command name="vkDestroySurfaceKHR"/> @@ -9600,16 +9866,19 @@ typedef void <name>CAMetalLayer</name>; <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_DISPLAY_KHR" comment="VkDisplayKHR"/> <enum offset="1" extends="VkObjectType" name="VK_OBJECT_TYPE_DISPLAY_MODE_KHR" comment="VkDisplayModeKHR"/> <type name="VkDisplayKHR"/> + <type name="VkDisplayModeCreateFlagsKHR"/> + <type name="VkDisplayModeCreateInfoKHR"/> <type name="VkDisplayModeKHR"/> - <type name="VkDisplayPlaneAlphaFlagsKHR"/> - <type name="VkDisplayPlaneAlphaFlagBitsKHR"/> - <type name="VkDisplayPropertiesKHR"/> <type name="VkDisplayModeParametersKHR"/> <type name="VkDisplayModePropertiesKHR"/> - <type name="VkDisplayModeCreateInfoKHR"/> + <type name="VkDisplayPlaneAlphaFlagBitsKHR"/> + <type name="VkDisplayPlaneAlphaFlagsKHR"/> <type name="VkDisplayPlaneCapabilitiesKHR"/> <type name="VkDisplayPlanePropertiesKHR"/> + <type name="VkDisplayPropertiesKHR"/> + <type name="VkDisplaySurfaceCreateFlagsKHR"/> <type name="VkDisplaySurfaceCreateInfoKHR"/> + <type name="VkSurfaceTransformFlagsKHR"/> <command name="vkGetPhysicalDeviceDisplayPropertiesKHR"/> <command name="vkGetPhysicalDeviceDisplayPlanePropertiesKHR"/> <command name="vkGetDisplayPlaneSupportedDisplaysKHR"/> @@ -11085,13 +11354,19 @@ typedef void <name>CAMetalLayer</name>; <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"/> <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"/> <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT" comment="VkDebugUtilsMessengerEXT"/> - <type name="VkDebugUtilsMessengerEXT"/> <type name="PFN_vkDebugUtilsMessengerCallbackEXT"/> - <type name="VkDebugUtilsObjectNameInfoEXT"/> - <type name="VkDebugUtilsObjectTagInfoEXT"/> <type name="VkDebugUtilsLabelEXT"/> + <type name="VkDebugUtilsMessageSeverityFlagBitsEXT"/> + <type name="VkDebugUtilsMessageSeverityFlagsEXT"/> + <type name="VkDebugUtilsMessageTypeFlagBitsEXT"/> + <type name="VkDebugUtilsMessageTypeFlagsEXT"/> <type name="VkDebugUtilsMessengerCallbackDataEXT"/> + <type name="VkDebugUtilsMessengerCallbackDataFlagsEXT"/> + <type name="VkDebugUtilsMessengerCreateFlagsEXT"/> <type name="VkDebugUtilsMessengerCreateInfoEXT"/> + <type name="VkDebugUtilsMessengerEXT"/> + <type name="VkDebugUtilsObjectNameInfoEXT"/> + <type name="VkDebugUtilsObjectTagInfoEXT"/> <command name="vkSetDebugUtilsObjectNameEXT"/> <command name="vkSetDebugUtilsObjectTagEXT"/> <command name="vkQueueBeginDebugUtilsLabelEXT"/> @@ -11124,6 +11399,7 @@ typedef void <name>CAMetalLayer</name>; <type name="VkExternalFormatANDROID"/> <command name="vkGetAndroidHardwareBufferPropertiesANDROID"/> <command name="vkGetMemoryAndroidHardwareBufferANDROID"/> + <type name="AHardwareBuffer"/> </require> </extension> <extension name="VK_EXT_sampler_filter_minmax" number="131" type="device" author="NV" requires="VK_KHR_get_physical_device_properties2" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_2"> @@ -12345,6 +12621,7 @@ typedef void <name>CAMetalLayer</name>; <type name="VkMetalSurfaceCreateFlagsEXT"/> <type name="VkMetalSurfaceCreateInfoEXT"/> <command name="vkCreateMetalSurfaceEXT"/> + <type name="CAMetalLayer"/> </require> </extension> <extension name="VK_EXT_fragment_density_map" number="219" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Matthew Netsch @mnetsch" supported="vulkan"> @@ -12817,7 +13094,7 @@ typedef void <name>CAMetalLayer</name>; </extension> <extension name="VK_KHR_deferred_host_operations" number="269" type="device" author="KHR" contact="Josh Barczak @jbarczak" platform="provisional" supported="vulkan" provisional="true"> <require> - <enum value="2" name="VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION"/> + <enum value="3" name="VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION"/> <enum value=""VK_KHR_deferred_host_operations"" name="VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME"/> <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR"/> <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR"/> @@ -13411,5 +13688,11 @@ typedef void <name>CAMetalLayer</name>; <enum value=""VK_ARM_extension_345"" name="VK_ARM_EXTENSION_345_EXTENSION_NAME"/> </require> </extension> + <extension name="VK_NV_extension_346" number="346" author="NV" contact="Jeff Juliano @jjuliano" supported="disabled"> + <require> + <enum value="0" name="VK_NV_EXTENSION_346_SPEC_VERSION"/> + <enum value=""VK_NV_extension_346"" name="VK_NV_EXTENSION_346_EXTENSION_NAME"/> + </require> + </extension> </extensions> </registry> diff --git a/registry/vkconventions.py b/registry/vkconventions.py index f69dfc1..517f070 100644 --- a/registry/vkconventions.py +++ b/registry/vkconventions.py @@ -188,6 +188,12 @@ class VulkanConventions(ConventionsBase): return '{generated}/meta' @property + def special_use_section_anchor(self): + """Return asciidoctor anchor name in the API Specification of the + section describing extension special uses in detail.""" + return 'extendingvulkan-compatibility-specialuse' + + @property def extra_refpage_headers(self): """Return any extra text to add to refpage headers.""" return 'include::{config}/attribs.txt[]' |