diff options
Diffstat (limited to 'registry/validusage.json')
-rw-r--r-- | registry/validusage.json | 1080 |
1 files changed, 756 insertions, 324 deletions
diff --git a/registry/validusage.json b/registry/validusage.json index d99804d..34287d4 100644 --- a/registry/validusage.json +++ b/registry/validusage.json @@ -1,9 +1,9 @@ { "version info": { "schema version": 2, - "api version": "1.1.90", - "comment": "from git branch: master commit: 894211de5fe395af42ce6f2ce1d97ff70e212380", - "date": "2018-10-29 20:26:11Z" + "api version": "1.1.91", + "comment": "from git branch: master commit: c2ef675dac74b77abdaf4c3de679381f2e3b276c", + "date": "2018-11-05 17:16:43Z" }, "validation": { "vkGetInstanceProcAddr": { @@ -198,7 +198,7 @@ }, { "vuid": "VUID-VkPhysicalDeviceProperties2-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=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingPropertiesEXT\">VkPhysicalDeviceDescriptorIndexingPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDriverPropertiesKHR\">VkPhysicalDeviceDriverPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockPropertiesEXT\">VkPhysicalDeviceInlineUniformBlockPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDevicePCIBusInfoPropertiesEXT\">VkPhysicalDevicePCIBusInfoPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRaytracingPropertiesNVX\">VkPhysicalDeviceRaytracingPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT\">VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>, or <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</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=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingPropertiesEXT\">VkPhysicalDeviceDescriptorIndexingPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDriverPropertiesKHR\">VkPhysicalDeviceDriverPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockPropertiesEXT\">VkPhysicalDeviceInlineUniformBlockPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDevicePCIBusInfoPropertiesEXT\">VkPhysicalDevicePCIBusInfoPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT\">VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>, or <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</a>" }, { "vuid": "VUID-VkPhysicalDeviceProperties2-sType-unique", @@ -334,7 +334,7 @@ }, { "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=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice8BitStorageFeaturesKHR\">VkPhysicalDevice8BitStorageFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesNV\">VkPhysicalDeviceComputeShaderDerivativesFeaturesNV</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeaturesEXT\">VkPhysicalDeviceDescriptorIndexingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeaturesEXT\">VkPhysicalDeviceInlineUniformBlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64FeaturesKHR\">VkPhysicalDeviceShaderAtomicInt64FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderDrawParameterFeatures\">VkPhysicalDeviceShaderDrawParameterFeatures</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVariablePointerFeatures\">VkPhysicalDeviceVariablePointerFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT\">VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeaturesKHR\">VkPhysicalDeviceVulkanMemoryModelFeaturesKHR</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=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice8BitStorageFeaturesKHR\">VkPhysicalDevice8BitStorageFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesNV\">VkPhysicalDeviceComputeShaderDerivativesFeaturesNV</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeaturesEXT\">VkPhysicalDeviceDescriptorIndexingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeaturesEXT\">VkPhysicalDeviceInlineUniformBlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64FeaturesKHR\">VkPhysicalDeviceShaderAtomicInt64FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderDrawParameterFeatures\">VkPhysicalDeviceShaderDrawParameterFeatures</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVariablePointerFeatures\">VkPhysicalDeviceVariablePointerFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT\">VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeaturesKHR\">VkPhysicalDeviceVulkanMemoryModelFeaturesKHR</a>" }, { "vuid": "VUID-VkDeviceCreateInfo-sType-unique", @@ -408,6 +408,18 @@ } ] }, + "VkDeviceMemoryOverallocationCreateInfoAMD": { + "(VK_AMD_memory_overallocation_behavior)": [ + { + "vuid": "VUID-VkDeviceMemoryOverallocationCreateInfoAMD-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD</code>" + }, + { + "vuid": "VUID-VkDeviceMemoryOverallocationCreateInfoAMD-overallocationBehavior-parameter", + "text": " <code>overallocationBehavior</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkMemoryOverallocationBehaviorAMD\">VkMemoryOverallocationBehaviorAMD</a> value" + } + ] + }, "vkDestroyDevice": { "core": [ { @@ -2536,7 +2548,7 @@ }, { "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 <code>VkRenderPassCreateInfo</code>::<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 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>" + "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 <code>VkRenderPassCreateInfo</code>::<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-bufferMemoryBarrierCount-01178", @@ -5564,6 +5576,16 @@ "vuid": "VUID-vkCmdBindPipeline-None-02323", "text": " This command <strong class=\"purple\">must</strong> not be recorded when transform feedback is active" } + ], + "(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-02391", + "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code>, the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations" + }, + { + "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-02392", + "text": " If <code>pipelineBindPoint</code> is <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code>, the <code>pipeline</code> <strong class=\"purple\">must</strong> be a ray tracing pipeline" + } ] }, "vkGetShaderInfoAMD": { @@ -5598,118 +5620,214 @@ } ] }, - "vkCreateRaytracingPipelinesNVX": { - "(VK_NVX_raytracing)": [ + "vkCreateRayTracingPipelinesNV": { + "(VK_NV_ray_tracing)": [ { - "vuid": "VUID-vkCreateRaytracingPipelinesNVX-device-parameter", + "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-02402", + "text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and the <code>basePipelineIndex</code> member of that same element is not <code>-1</code>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be less than the index into <code>pCreateInfos</code> that corresponds to that element" + }, + { + "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-02403", + "text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, the base pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT</code> flag set" + }, + { + "vuid": "VUID-vkCreateRayTracingPipelinesNV-device-parameter", "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" }, { - "vuid": "VUID-vkCreateRaytracingPipelinesNVX-pipelineCache-parameter", + "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parameter", "text": " If <code>pipelineCache</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineCache</code> <strong class=\"purple\">must</strong> be a valid <code>VkPipelineCache</code> handle" }, { - "vuid": "VUID-vkCreateRaytracingPipelinesNVX-pCreateInfos-parameter", - "text": " <code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <code>VkRaytracingPipelineCreateInfoNVX</code> structures" + "vuid": "VUID-vkCreateRayTracingPipelinesNV-pCreateInfos-parameter", + "text": " <code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <code>VkRayTracingPipelineCreateInfoNV</code> structures" }, { - "vuid": "VUID-vkCreateRaytracingPipelinesNVX-pAllocator-parameter", + "vuid": "VUID-vkCreateRayTracingPipelinesNV-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 <code>VkAllocationCallbacks</code> structure" }, { - "vuid": "VUID-vkCreateRaytracingPipelinesNVX-pPipelines-parameter", + "vuid": "VUID-vkCreateRayTracingPipelinesNV-pPipelines-parameter", "text": " <code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <code>VkPipeline</code> handles" }, { - "vuid": "VUID-vkCreateRaytracingPipelinesNVX-createInfoCount-arraylength", + "vuid": "VUID-vkCreateRayTracingPipelinesNV-createInfoCount-arraylength", "text": " <code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" }, { - "vuid": "VUID-vkCreateRaytracingPipelinesNVX-pipelineCache-parent", + "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parent", "text": " If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>" } ] }, - "VkRaytracingPipelineCreateInfoNVX": { - "(VK_NVX_raytracing)": [ + "VkRayTracingPipelineCreateInfoNV": { + "(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02404", + "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid handle to a ray tracing <code>VkPipeline</code>" + }, + { + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02405", + "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be a valid index into the calling command’s <code>pCreateInfos</code> parameter" + }, + { + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02406", + "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is not -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>" + }, + { + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02407", + "text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineHandle</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be -1" + }, + { + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stage-02408", + "text": " The <code>stage</code> member of one element of <code>pStages</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_RAYGEN_BIT_NV</code>" + }, + { + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-02409", + "text": " The shader code for the entry points identified by <code>pStages</code>, and the rest of the state identified by this structure <strong class=\"purple\">must</strong> adhere to the pipeline linking rules described in the <a href=\"#interfaces\">Shader Interfaces</a> chapter" + }, { - "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-sType-sType", - "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAYTRACING_PIPELINE_CREATE_INFO_NVX</code>" + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-02410", + "text": " <code>layout</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-pipelinelayout-consistency\">consistent</a> with all shaders specified in <code>pStages</code>" }, { - "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-pNext-pNext", + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-02411", + "text": " The number of resources in <code>layout</code> accessible to each shader stage that is used by the pipeline <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxPerStageResources</code>" + }, + { + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-maxRecursionDepth-02412", + "text": " <code>maxRecursionDepth</code> <strong class=\"purple\">must</strong> be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::<code>maxRecursionDepth</code>" + }, + { + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV</code>" + }, + { + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNext", "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" }, { - "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-flags-parameter", + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-parameter", "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values" }, { - "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-pStages-parameter", + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-parameter", "text": " <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <code>VkPipelineShaderStageCreateInfo</code> structures" }, { - "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-pGroupNumbers-parameter", - "text": " <code>pGroupNumbers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> <code>uint32_t</code> values" + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pGroups-parameter", + "text": " <code>pGroups</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>groupCount</code> valid <code>VkRayTracingShaderGroupCreateInfoNV</code> structures" }, { - "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-layout-parameter", + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-parameter", "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <code>VkPipelineLayout</code> handle" }, { - "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-stageCount-arraylength", + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stageCount-arraylength", "text": " <code>stageCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" }, { - "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-commonparent", + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-groupCount-arraylength", + "text": " <code>groupCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + }, + { + "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-commonparent", "text": " Both of <code>basePipelineHandle</code>, and <code>layout</code> that are valid handles <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" } ] }, - "vkGetRaytracingShaderHandlesNVX": { - "(VK_NVX_raytracing)": [ + "VkRayTracingShaderGroupCreateInfoNV": { + "(VK_NV_ray_tracing)": [ { - "vuid": "VUID-vkGetRaytracingShaderHandlesNVX-device-parameter", + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02413", + "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV</code> then <code>generalShader</code> <strong class=\"purple\">must</strong> be a valid index into <code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_RAYGEN_BIT_NV</code>, <code>VK_SHADER_STAGE_MISS_BIT_NV</code>, or <code>VK_SHADER_STAGE_CALLABLE_BIT_NV</code>." + }, + { + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02414", + "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV</code> then <code>closestHitShader</code>, <code>anyHitShader</code>, and <code>intersectionShader</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_UNUSED_NV</code>." + }, + { + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02415", + "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV</code> then <code>intersectionShader</code> <strong class=\"purple\">must</strong> be a valid index into <code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_INTERSECTION_BIT_NV</code>." + }, + { + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02416", + "text": " If <code>type</code> is <code>VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV</code> then <code>intersectionShader</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_UNUSED_NV</code>." + }, + { + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-closestHitShader-02417", + "text": " <code>closestHitShader</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_UNUSED_NV</code> or a valid index into <code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV</code>." + }, + { + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-anyHitShader-02418", + "text": " <code>anyHitShader</code> <strong class=\"purple\">must</strong> be either <code>VK_SHADER_UNUSED_NV</code> or a valid index into <code>pStages</code> referring to a shader of <code>VK_SHADER_STAGE_ANY_HIT_BIT_NV</code>." + }, + { + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV</code>" + }, + { + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + }, + { + "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-parameter", + "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkRayTracingShaderGroupTypeNV\">VkRayTracingShaderGroupTypeNV</a> value" + } + ] + }, + "vkGetRayTracingShaderGroupHandlesNV": { + "(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesNV-firstGroup-02419", + "text": " The sum of <code>firstGroup</code> and <code>groupCount</code> <strong class=\"purple\">must</strong> be less than the number of shader groups in <code>pipeline</code>." + }, + { + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesNV-dataSize-02420", + "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be at least <span class=\"eq\"><code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupHandleSize</code> {times} <code>groupCount</code></span>" + }, + { + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesNV-device-parameter", "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" }, { - "vuid": "VUID-vkGetRaytracingShaderHandlesNVX-pipeline-parameter", + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesNV-pipeline-parameter", "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <code>VkPipeline</code> handle" }, { - "vuid": "VUID-vkGetRaytracingShaderHandlesNVX-pData-parameter", + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesNV-pData-parameter", "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes" }, { - "vuid": "VUID-vkGetRaytracingShaderHandlesNVX-dataSize-arraylength", + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesNV-dataSize-arraylength", "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" }, { - "vuid": "VUID-vkGetRaytracingShaderHandlesNVX-pipeline-parent", + "vuid": "VUID-vkGetRayTracingShaderGroupHandlesNV-pipeline-parent", "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>" } ] }, - "vkCompileDeferredNVX": { - "(VK_NVX_raytracing)": [ + "vkCompileDeferredNV": { + "(VK_NV_ray_tracing)": [ { - "vuid": "VUID-vkCompileDeferredNVX-pipeline-02237", - "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NVX." + "vuid": "VUID-vkCompileDeferredNV-pipeline-02237", + "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV</code>." }, { - "vuid": "VUID-vkCompileDeferredNVX-shader-02238", + "vuid": "VUID-vkCompileDeferredNV-shader-02238", "text": " <code>shader</code> <strong class=\"purple\">must</strong> not have been called as a deferred compile before." }, { - "vuid": "VUID-vkCompileDeferredNVX-device-parameter", + "vuid": "VUID-vkCompileDeferredNV-device-parameter", "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" }, { - "vuid": "VUID-vkCompileDeferredNVX-pipeline-parameter", + "vuid": "VUID-vkCompileDeferredNV-pipeline-parameter", "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <code>VkPipeline</code> handle" }, { - "vuid": "VUID-vkCompileDeferredNVX-pipeline-parent", + "vuid": "VUID-vkCompileDeferredNV-pipeline-parent", "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>" } ] @@ -5879,16 +5997,40 @@ ], "(VK_ANDROID_external_memory_android_hardware_buffer)": [ { - "vuid": "VUID-VkMemoryAllocateInfo-None-01873", - "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>:" + "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-02383", + "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>allocationSize</code> <strong class=\"purple\">must</strong> be the size returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for the Android hardware buffer." + }, + { + "vuid": "VUID-VkMemoryAllocateInfo-pNext-02384", + "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, and the <code>pNext</code> chain does not contain an instance of <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> or <code>VkMemoryDedicatedAllocateInfo</code>::<code>image</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the Android hardware buffer <strong class=\"purple\">must</strong> have a <code>AHardwareBuffer_Desc</code>::<code>format</code> of <code>AHARDWAREBUFFER_FORMAT_BLOB</code> and a <code>AHardwareBuffer_Desc</code>::<code>usage</code> that includes <code>AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER</code>." + }, + { + "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-02385", + "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for the Android hardware buffer." }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-01874", "text": " If the parameters do not define an import operation, and the <code>pNext</code> chain contains an instance of <code>VkExportMemoryAllocateInfo</code> with <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> included in its <code>handleTypes</code> member, and the <code>pNext</code> contains an instance of <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then <code>allocationSize</code> <strong class=\"purple\">must</strong> be <code>0</code>, otherwise <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>." }, { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-01875", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes an instance of <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>:" + "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 an instance of <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>." + }, + { + "vuid": "VUID-VkMemoryAllocateInfo-pNext-02387", + "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes an instance of <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the format of <code>image</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code> or the format returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>format</code> for the Android hardware buffer." + }, + { + "vuid": "VUID-VkMemoryAllocateInfo-pNext-02388", + "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes an instance of <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the width, height, and array layer dimensions of <code>image</code> and the Android hardware buffer’s <code>AHardwareBuffer_Desc</code> <strong class=\"purple\">must</strong> be identical." + }, + { + "vuid": "VUID-VkMemoryAllocateInfo-pNext-02389", + "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes an instance of <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the Android hardware buffer’s <code>AHardwareBuffer</code>::<code>usage</code> includes <code>AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE</code>, the <code>image</code> <strong class=\"purple\">must</strong> either have a complete mipmap chain, or it <strong class=\"purple\">must</strong> have exactly <code>1</code> mip level." + }, + { + "vuid": "VUID-VkMemoryAllocateInfo-pNext-02390", + "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the <code>pNext</code> chain includes an instance of <a href=\"#VkMemoryDedicatedAllocateInfo\">VkMemoryDedicatedAllocateInfo</a> with <code>image</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, each bit set in the usage of <code>image</code> <strong class=\"purple\">must</strong> be listed in <a href=\"#memory-external-android-hardware-buffer-usage\">AHardwareBuffer Usage Equivalence</a>, and if there is a corresponding <code>AHARDWAREBUFFER_USAGE</code> bit listed that bit <strong class=\"purple\">must</strong> be included in the Android hardware buffer’s <code>AHardwareBuffer_Desc</code>::<code>usage</code>." } ], "core": [ @@ -6362,7 +6504,7 @@ }, { "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01881", - "text": " If <code>buffer</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> be a valid Android hardware buffer object with format and usage compatible with Vulkan as described by <a href=\"#VkExternalMemoryHandleTypeFlagBits\">VkExternalMemoryHandleTypeFlagBits</a>." + "text": " If <code>buffer</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> be a valid Android hardware buffer object with <code>AHardwareBuffer_Desc</code>::<code>format</code> and <code>AHardwareBuffer_Desc</code>::<code>usage</code> compatible with Vulkan as described in <a href=\"#memory-external-android-hardware-buffer\">Android Hardware Buffers</a>." }, { "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-sType-sType", @@ -6406,7 +6548,7 @@ "(VK_ANDROID_external_memory_android_hardware_buffer)": [ { "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-01884", - "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid Android hardware buffer object with at least one of the <code>AHARDWAREBUFFER_USAGE_GPU_</code>* usage flags." + "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid Android hardware buffer object with at least one of the <code>AHARDWAREBUFFER_USAGE_GPU_</code>* flags in its <code>AHardwareBuffer_Desc</code>::<code>usage</code>" }, { "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter", @@ -7285,12 +7427,28 @@ "text": " If the <code>pNext</code> chain does not contain an instance of <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, or does and its member <code>externalFormat</code> is <code>0</code> the <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>." }, { - "vuid": "VUID-VkImageCreateInfo-pNext-01892", - "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure whose <code>handleTypes</code> member includes <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>:" + "vuid": "VUID-VkImageCreateInfo-pNext-02393", + "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure whose <code>handleTypes</code> member includes <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>." }, { - "vuid": "VUID-VkImageCreateInfo-pNext-01893", - "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>:" + "vuid": "VUID-VkImageCreateInfo-pNext-02394", + "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure whose <code>handleTypes</code> member includes <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>mipLevels</code> <strong class=\"purple\">must</strong> either be <code>1</code> or equal to the number of levels in the complete mipmap chain based on <span class=\"eq\"><code>extent.width</code></span>, <span class=\"eq\"><code>extent.height</code></span>, and <span class=\"eq\"><code>extent.depth</code></span>." + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-02395", + "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a> structure whose <code>handleTypes</code> member includes <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, and <code>format</code> is <code>VK_FORMAT_UNDEFINED</code>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>." + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-02396", + "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT</code>." + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-02397", + "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>usage</code> <strong class=\"purple\">must</strong> not include any usages except <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>." + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-02398", + "text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure whose <code>externalFormat</code> member is not <code>0</code>, <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_OPTIMAL</code>." } ], "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ @@ -7927,8 +8085,16 @@ ], "(VK_ANDROID_external_memory_android_hardware_buffer)": [ { - "vuid": "VUID-VkImageViewCreateInfo-image-01896", - "text": " If <code>image</code> has an <a href=\"#memory-external-android-hardware-buffer-external-formats\">external format</a>:" + "vuid": "VUID-VkImageViewCreateInfo-image-02399", + "text": " If <code>image</code> has an <a href=\"#memory-external-android-hardware-buffer-external-formats\">external format</a>, <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>." + }, + { + "vuid": "VUID-VkImageViewCreateInfo-image-02400", + "text": " If <code>image</code> has an <a href=\"#memory-external-android-hardware-buffer-external-formats\">external format</a>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> contain an instance of <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a> with a <code>conversion</code> object created with the same external format as <code>image</code>." + }, + { + "vuid": "VUID-VkImageViewCreateInfo-image-02401", + "text": " If <code>image</code> has an <a href=\"#memory-external-android-hardware-buffer-external-formats\">external format</a>, all members of <code>components</code> <strong class=\"purple\">must</strong> be <code>VK_COMPONENT_SWIZZLE_IDENTITY</code>." } ] }, @@ -8776,278 +8942,414 @@ } ] }, - "vkCreateAccelerationStructureNVX": { - "(VK_NVX_raytracing)": [ + "vkCreateAccelerationStructureNV": { + "(VK_NV_ray_tracing)": [ { - "vuid": "VUID-vkCreateAccelerationStructureNVX-device-parameter", + "vuid": "VUID-vkCreateAccelerationStructureNV-device-parameter", "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" }, { - "vuid": "VUID-vkCreateAccelerationStructureNVX-pCreateInfo-parameter", - "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkAccelerationStructureCreateInfoNVX</code> structure" + "vuid": "VUID-vkCreateAccelerationStructureNV-pCreateInfo-parameter", + "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkAccelerationStructureCreateInfoNV</code> structure" }, { - "vuid": "VUID-vkCreateAccelerationStructureNVX-pAllocator-parameter", + "vuid": "VUID-vkCreateAccelerationStructureNV-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 <code>VkAllocationCallbacks</code> structure" }, { - "vuid": "VUID-vkCreateAccelerationStructureNVX-pAccelerationStructure-parameter", - "text": " <code>pAccelerationStructure</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>VkAccelerationStructureNVX</code> handle" + "vuid": "VUID-vkCreateAccelerationStructureNV-pAccelerationStructure-parameter", + "text": " <code>pAccelerationStructure</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>VkAccelerationStructureNV</code> handle" } ] }, - "VkAccelerationStructureCreateInfoNVX": { - "(VK_NVX_raytracing)": [ + "VkAccelerationStructureCreateInfoNV": { + "(VK_NV_ray_tracing)": [ { - "vuid": "VUID-VkAccelerationStructureCreateInfoNVX-geometryCount-02239", - "text": " <code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRaytracingPropertiesNVX</code>::<code>maxGeometryCount</code>" + "vuid": "VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421", + "text": " If <code>compactedSize</code> is not <code>0</code> then both <code>info</code>::<code>geometryCount</code> and <code>info</code>::<code>instanceCount</code> <strong class=\"purple\">must</strong> be <code>0</code>" }, { - "vuid": "VUID-VkAccelerationStructureCreateInfoNVX-sType-sType", - "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NVX</code>" + "vuid": "VUID-VkAccelerationStructureCreateInfoNV-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV</code>" }, { - "vuid": "VUID-VkAccelerationStructureCreateInfoNVX-pNext-pNext", + "vuid": "VUID-VkAccelerationStructureCreateInfoNV-pNext-pNext", "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" }, { - "vuid": "VUID-VkAccelerationStructureCreateInfoNVX-type-parameter", - "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeNVX\">VkAccelerationStructureTypeNVX</a> value" + "vuid": "VUID-VkAccelerationStructureCreateInfoNV-info-parameter", + "text": " <code>info</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureInfoNV</code> structure" + } + ] + }, + "VkAccelerationStructureInfoNV": { + "(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkAccelerationStructureInfoNV-geometryCount-02422", + "text": " <code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxGeometryCount</code>" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-instanceCount-02423", + "text": " <code>instanceCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxInstanceCount</code>" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-maxTriangleCount-02424", + "text": " The total number of triangles in all geometries <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxTriangleCount</code>" }, { - "vuid": "VUID-VkAccelerationStructureCreateInfoNVX-flags-parameter", - "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBuildAccelerationStructureFlagBitsNVX\">VkBuildAccelerationStructureFlagBitsNVX</a> values" + "vuid": "VUID-VkAccelerationStructureInfoNV-type-02425", + "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV</code> then <code>geometryCount</code> <strong class=\"purple\">must</strong> be <code>0</code>." }, { - "vuid": "VUID-VkAccelerationStructureCreateInfoNVX-pGeometries-parameter", - "text": " If <code>geometryCount</code> is not <code>0</code>, <code>pGeometries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>geometryCount</code> valid <code>VkGeometryNVX</code> structures" + "vuid": "VUID-VkAccelerationStructureInfoNV-type-02426", + "text": " If <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV</code> then <code>instanceCount</code> <strong class=\"purple\">must</strong> be <code>0</code>." + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-compactedSize-02427", + "text": " If <code>compactedSize</code> is not <code>0</code> then both <code>geometryCount</code> and <code>instanceCount</code> <strong class=\"purple\">must</strong> be <code>0</code>" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV</code>" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + }, + { + "vuid": "VUID-VkAccelerationStructureInfoNV-type-parameter", + "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeNV\">VkAccelerationStructureTypeNV</a> value" + }, + { + "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", + "text": " If <code>geometryCount</code> is not <code>0</code>, <code>pGeometries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>geometryCount</code> valid <code>VkGeometryNV</code> structures" } ] }, - "VkGeometryNVX": { - "(VK_NVX_raytracing)": [ + "VkGeometryNV": { + "(VK_NV_ray_tracing)": [ { - "vuid": "VUID-VkGeometryNVX-sType-sType", - "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_NVX</code>" + "vuid": "VUID-VkGeometryNV-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_NV</code>" }, { - "vuid": "VUID-VkGeometryNVX-pNext-pNext", + "vuid": "VUID-VkGeometryNV-pNext-pNext", "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" }, { - "vuid": "VUID-VkGeometryNVX-geometryType-parameter", - "text": " <code>geometryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryTypeNVX\">VkGeometryTypeNVX</a> value" + "vuid": "VUID-VkGeometryNV-geometryType-parameter", + "text": " <code>geometryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryTypeNV\">VkGeometryTypeNV</a> value" }, { - "vuid": "VUID-VkGeometryNVX-geometry-parameter", - "text": " <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <code>VkGeometryDataNVX</code> structure" + "vuid": "VUID-VkGeometryNV-geometry-parameter", + "text": " <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <code>VkGeometryDataNV</code> structure" }, { - "vuid": "VUID-VkGeometryNVX-flags-parameter", - "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryFlagBitsNVX\">VkGeometryFlagBitsNVX</a> values" + "vuid": "VUID-VkGeometryNV-flags-parameter", + "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryFlagBitsNV\">VkGeometryFlagBitsNV</a> values" } ] }, - "VkGeometryDataNVX": { - "(VK_NVX_raytracing)": [ + "VkGeometryDataNV": { + "(VK_NV_ray_tracing)": [ { - "vuid": "VUID-VkGeometryDataNVX-triangles-parameter", - "text": " <code>triangles</code> <strong class=\"purple\">must</strong> be a valid <code>VkGeometryTrianglesNVX</code> structure" + "vuid": "VUID-VkGeometryDataNV-triangles-parameter", + "text": " <code>triangles</code> <strong class=\"purple\">must</strong> be a valid <code>VkGeometryTrianglesNV</code> structure" }, { - "vuid": "VUID-VkGeometryDataNVX-aabbs-parameter", - "text": " <code>aabbs</code> <strong class=\"purple\">must</strong> be a valid <code>VkGeometryAABBNVX</code> structure" + "vuid": "VUID-VkGeometryDataNV-aabbs-parameter", + "text": " <code>aabbs</code> <strong class=\"purple\">must</strong> be a valid <code>VkGeometryAABBNV</code> structure" } ] }, - "VkGeometryTrianglesNVX": { - "(VK_NVX_raytracing)": [ + "VkGeometryTrianglesNV": { + "(VK_NV_ray_tracing)": [ { - "vuid": "VUID-VkGeometryTrianglesNVX-sType-sType", - "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NVX</code>" + "vuid": "VUID-VkGeometryTrianglesNV-vertexOffset-02428", + "text": " <code>vertexOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>vertexData</code>" }, { - "vuid": "VUID-VkGeometryTrianglesNVX-pNext-pNext", + "vuid": "VUID-VkGeometryTrianglesNV-vertexOffset-02429", + "text": " <code>vertexOffset</code> <strong class=\"purple\">must</strong> be a multiple of the component size of <code>vertexFormat</code>." + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-vertexFormat-02430", + "text": " <code>vertexFormat</code> <strong class=\"purple\">must</strong> be one of <code>VK_FORMAT_R32G32B32_SFLOAT</code>, <code>VK_FORMAT_R32G32_SFLOAT</code>, <code>VK_FORMAT_R16G16B16_SFLOAT</code>, <code>VK_FORMAT_R16G16_SFLOAT</code>, <code>VK_FORMAT_R16G16_SNORM</code>, or <code>VK_FORMAT_R16G16B16_SNORM</code>" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-indexOffset-02431", + "text": " <code>indexOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>indexData</code>" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-indexOffset-02432", + "text": " <code>indexOffset</code> <strong class=\"purple\">must</strong> be a multiple of the element size of <code>indexType</code>" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-indexType-02433", + "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be <code>VK_INDEX_TYPE_UINT16</code>, <code>VK_INDEX_TYPE_UINT32</code>, or <code>VK_INDEX_TYPE_NONE_NV</code>" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-indexData-02434", + "text": " <code>indexData</code> <strong class=\"purple\">must</strong> be <code>VK_NULL_HANDLE</code> if <code>indexType</code> is <code>VK_INDEX_TYPE_NONE_NV</code>" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-indexData-02435", + "text": " <code>indexData</code> <strong class=\"purple\">must</strong> be a valid handle if <code>indexType</code> is not <code>VK_INDEX_TYPE_NONE_NV</code>" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-indexCount-02436", + "text": " <code>indexCount</code> <strong class=\"purple\">must</strong> be 0 if <code>indexType</code> is <code>VK_INDEX_TYPE_NONE_NV</code>" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-transformOffset-02437", + "text": " <code>transformOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>transformData</code>" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-transformOffset-02438", + "text": " <code>transformOffset</code> <strong class=\"purple\">must</strong> be a multiple of 16" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV</code>" + }, + { + "vuid": "VUID-VkGeometryTrianglesNV-pNext-pNext", "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" }, { - "vuid": "VUID-VkGeometryTrianglesNVX-vertexData-parameter", + "vuid": "VUID-VkGeometryTrianglesNV-vertexData-parameter", "text": " If <code>vertexData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>vertexData</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" }, { - "vuid": "VUID-VkGeometryTrianglesNVX-vertexFormat-parameter", + "vuid": "VUID-VkGeometryTrianglesNV-vertexFormat-parameter", "text": " <code>vertexFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value" }, { - "vuid": "VUID-VkGeometryTrianglesNVX-indexData-parameter", + "vuid": "VUID-VkGeometryTrianglesNV-indexData-parameter", "text": " If <code>indexData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>indexData</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" }, { - "vuid": "VUID-VkGeometryTrianglesNVX-indexType-parameter", + "vuid": "VUID-VkGeometryTrianglesNV-indexType-parameter", "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value" }, { - "vuid": "VUID-VkGeometryTrianglesNVX-transformData-parameter", + "vuid": "VUID-VkGeometryTrianglesNV-transformData-parameter", "text": " If <code>transformData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>transformData</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" }, { - "vuid": "VUID-VkGeometryTrianglesNVX-commonparent", + "vuid": "VUID-VkGeometryTrianglesNV-commonparent", "text": " Each of <code>indexData</code>, <code>transformData</code>, and <code>vertexData</code> that are valid handles <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" } ] }, - "VkGeometryAABBNVX": { - "(VK_NVX_raytracing)": [ + "VkGeometryAABBNV": { + "(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkGeometryAABBNV-offset-02439", + "text": " <code>offset</code> <strong class=\"purple\">must</strong> be less than the size of <code>aabbData</code>" + }, + { + "vuid": "VUID-VkGeometryAABBNV-offset-02440", + "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of 8." + }, { - "vuid": "VUID-VkGeometryAABBNVX-sType-sType", - "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_AABB_NVX</code>" + "vuid": "VUID-VkGeometryAABBNV-stride-02441", + "text": " <code>stride</code> <strong class=\"purple\">must</strong> be a multiple of 8." }, { - "vuid": "VUID-VkGeometryAABBNVX-pNext-pNext", + "vuid": "VUID-VkGeometryAABBNV-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV</code>" + }, + { + "vuid": "VUID-VkGeometryAABBNV-pNext-pNext", "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" }, { - "vuid": "VUID-VkGeometryAABBNVX-aabbData-parameter", + "vuid": "VUID-VkGeometryAABBNV-aabbData-parameter", "text": " If <code>aabbData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>aabbData</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" } ] }, - "vkDestroyAccelerationStructureNVX": { - "(VK_NVX_raytracing)": [ + "vkDestroyAccelerationStructureNV": { + "(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-02442", + "text": " All submitted commands that refer to <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have completed execution" + }, + { + "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-02443", + "text": " If <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here" + }, { - "vuid": "VUID-vkDestroyAccelerationStructureNVX-device-parameter", + "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-02444", + "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + }, + { + "vuid": "VUID-vkDestroyAccelerationStructureNV-device-parameter", "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" }, { - "vuid": "VUID-vkDestroyAccelerationStructureNVX-accelerationStructure-parameter", - "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parameter", + "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNV</code> handle" }, { - "vuid": "VUID-vkDestroyAccelerationStructureNVX-pAllocator-parameter", + "vuid": "VUID-vkDestroyAccelerationStructureNV-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 <code>VkAllocationCallbacks</code> structure" }, { - "vuid": "VUID-vkDestroyAccelerationStructureNVX-accelerationStructure-parent", + "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parent", "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>" } ] }, - "vkGetAccelerationStructureMemoryRequirementsNVX": { - "(VK_NVX_raytracing)": [ + "vkGetAccelerationStructureMemoryRequirementsNV": { + "(VK_NV_ray_tracing)": [ { - "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNVX-device-parameter", + "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter", "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" }, { - "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNVX-pInfo-parameter", - "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkAccelerationStructureMemoryRequirementsInfoNVX</code> structure" + "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-pInfo-parameter", + "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkAccelerationStructureMemoryRequirementsInfoNV</code> structure" }, { - "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNVX-pMemoryRequirements-parameter", + "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-pMemoryRequirements-parameter", "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>VkMemoryRequirements2KHR</code> structure" } ] }, - "vkGetAccelerationStructureScratchMemoryRequirementsNVX": { - "(VK_NVX_raytracing)": [ + "VkAccelerationStructureMemoryRequirementsInfoNV": { + "(VK_NV_ray_tracing)": [ { - "vuid": "VUID-vkGetAccelerationStructureScratchMemoryRequirementsNVX-device-parameter", - "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV</code>" }, { - "vuid": "VUID-vkGetAccelerationStructureScratchMemoryRequirementsNVX-pInfo-parameter", - "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkAccelerationStructureMemoryRequirementsInfoNVX</code> structure" + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" }, { - "vuid": "VUID-vkGetAccelerationStructureScratchMemoryRequirementsNVX-pMemoryRequirements-parameter", - "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>VkMemoryRequirements2KHR</code> structure" + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-type-parameter", + "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureMemoryRequirementsTypeNV\">VkAccelerationStructureMemoryRequirementsTypeNV</a> value" + }, + { + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-accelerationStructure-parameter", + "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNV</code> handle" } ] }, - "VkAccelerationStructureMemoryRequirementsInfoNVX": { - "(VK_NVX_raytracing)": [ + "vkBindAccelerationStructureMemoryNV": { + "(VK_NV_ray_tracing)": [ { - "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNVX-sType-sType", - "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NVX</code>" + "vuid": "VUID-vkBindAccelerationStructureMemoryNV-accelerationStructure-02445", + "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> not already be backed by a memory object" }, { - "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNVX-pNext-pNext", - "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + "vuid": "VUID-vkBindAccelerationStructureMemoryNV-memoryOffset-02446", + "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>" }, { - "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNVX-accelerationStructure-parameter", - "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" - } - ] - }, - "vkBindAccelerationStructureMemoryNVX": { - "(VK_NVX_raytracing)": [ + "vuid": "VUID-vkBindAccelerationStructureMemoryNV-memory-02447", + "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetAccelerationStructureMemoryRequirementsNV</code> with <code>accelerationStructure</code> and <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV</code>" + }, { - "vuid": "VUID-vkBindAccelerationStructureMemoryNVX-device-parameter", + "vuid": "VUID-vkBindAccelerationStructureMemoryNV-memoryOffset-02448", + "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetAccelerationStructureMemoryRequirementsNV</code> with <code>accelerationStructure</code> and <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV</code>" + }, + { + "vuid": "VUID-vkBindAccelerationStructureMemoryNV-size-02449", + "text": " The <code>size</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetImageMemoryRequirements</code> with <code>accelerationStructure</code> and <code>type</code> of <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>" + }, + { + "vuid": "VUID-vkBindAccelerationStructureMemoryNV-device-parameter", "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" }, { - "vuid": "VUID-vkBindAccelerationStructureMemoryNVX-pBindInfos-parameter", - "text": " <code>pBindInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <code>VkBindAccelerationStructureMemoryInfoNVX</code> structures" + "vuid": "VUID-vkBindAccelerationStructureMemoryNV-pBindInfos-parameter", + "text": " <code>pBindInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <code>VkBindAccelerationStructureMemoryInfoNV</code> structures" }, { - "vuid": "VUID-vkBindAccelerationStructureMemoryNVX-bindInfoCount-arraylength", + "vuid": "VUID-vkBindAccelerationStructureMemoryNV-bindInfoCount-arraylength", "text": " <code>bindInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" } ] }, - "VkBindAccelerationStructureMemoryInfoNVX": { - "(VK_NVX_raytracing)": [ + "VkBindAccelerationStructureMemoryInfoNV": { + "(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-02450", + "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> not already be backed by a memory object" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-02451", + "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>memory</code>" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memory-02452", + "text": " <code>memory</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetAccelerationStructureMemoryRequirementsNV</code> with <code>accelerationStructure</code>" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-02453", + "text": " <code>memoryOffset</code> <strong class=\"purple\">must</strong> be an integer multiple of the <code>alignment</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetAccelerationStructureMemoryRequirementsNV</code> with <code>accelerationStructure</code>" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-size-02454", + "text": " The <code>size</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetAccelerationStructureMemoryRequirementsNV</code> with <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>memory</code> minus <code>memoryOffset</code>" + }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNVX-sType-sType", - "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NVX</code>" + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV</code>" }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNVX-pNext-pNext", + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-pNext-pNext", "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNVX-accelerationStructure-parameter", - "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-parameter", + "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNV</code> handle" }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNVX-memory-parameter", + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memory-parameter", "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <code>VkDeviceMemory</code> handle" }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNVX-pDeviceIndices-parameter", + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-pDeviceIndices-parameter", "text": " If <code>deviceIndexCount</code> is not <code>0</code>, <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>deviceIndexCount</code> <code>uint32_t</code> values" }, { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNVX-commonparent", + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-commonparent", "text": " Both of <code>accelerationStructure</code>, and <code>memory</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" } ] }, - "vkGetAccelerationStructureHandleNVX": { - "(VK_NVX_raytracing)": [ + "vkGetAccelerationStructureHandleNV": { + "(VK_NV_ray_tracing)": [ { - "vuid": "VUID-vkGetAccelerationStructureHandleNVX-dataSize-02240", + "vuid": "VUID-vkGetAccelerationStructureHandleNV-dataSize-02240", "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be large enough to contain the result of the query, as described above" }, { - "vuid": "VUID-vkGetAccelerationStructureHandleNVX-device-parameter", + "vuid": "VUID-vkGetAccelerationStructureHandleNV-device-parameter", "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" }, { - "vuid": "VUID-vkGetAccelerationStructureHandleNVX-accelerationStructure-parameter", - "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parameter", + "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNV</code> handle" }, { - "vuid": "VUID-vkGetAccelerationStructureHandleNVX-pData-parameter", + "vuid": "VUID-vkGetAccelerationStructureHandleNV-pData-parameter", "text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes" }, { - "vuid": "VUID-vkGetAccelerationStructureHandleNVX-dataSize-arraylength", + "vuid": "VUID-vkGetAccelerationStructureHandleNV-dataSize-arraylength", "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" }, { - "vuid": "VUID-vkGetAccelerationStructureHandleNVX-accelerationStructure-parent", + "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parent", "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>" } ] @@ -9882,6 +10184,12 @@ "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00293", "text": " <code>pSetLayouts</code> <strong class=\"purple\">must</strong> not contain more than one descriptor set layout that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code> set" } + ], + "(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02381", + "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code> accessible across all shader stages and across all elements of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxDescriptorSetAccelerationStructures</code>" + } ] }, "VkPushConstantRange": { @@ -10360,7 +10668,7 @@ }, { "vuid": "VUID-VkWriteDescriptorSet-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=\"#VkDescriptorAccelerationStructureInfoNVX\">VkDescriptorAccelerationStructureInfoNVX</a> or <a href=\"#VkWriteDescriptorSetInlineUniformBlockEXT\">VkWriteDescriptorSetInlineUniformBlockEXT</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=\"#VkWriteDescriptorSetAccelerationStructureNV\">VkWriteDescriptorSetAccelerationStructureNV</a> or <a href=\"#VkWriteDescriptorSetInlineUniformBlockEXT\">VkWriteDescriptorSetInlineUniformBlockEXT</a>" }, { "vuid": "VUID-VkWriteDescriptorSet-sType-unique", @@ -10393,6 +10701,12 @@ "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkWriteDescriptorSetInlineUniformBlockEXT\">VkWriteDescriptorSetInlineUniformBlockEXT</a> structure whose <code>dataSize</code> member equals <code>descriptorCount</code>" } ], + "(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02382", + "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkWriteDescriptorSetAccelerationStructureNV\">VkWriteDescriptorSetAccelerationStructureNV</a> structure whose <code>accelerationStructureCount</code> member equals <code>descriptorCount</code>" + } + ], "(VK_EXT_descriptor_indexing)": [ { "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-03048", @@ -10468,6 +10782,26 @@ } ] }, + "VkWriteDescriptorSetAccelerationStructureNV": { + "(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-02236", + "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be equal to descriptorCount in the extended structure." + }, + { + "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV</code>" + }, + { + "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-parameter", + "text": " <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid <code>VkAccelerationStructureNV</code> handles" + }, + { + "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-arraylength", + "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + } + ] + }, "VkCopyDescriptorSet": { "core": [ { @@ -10912,26 +11246,6 @@ } ] }, - "VkDescriptorAccelerationStructureInfoNVX": { - "(VK_NVX_raytracing)": [ - { - "vuid": "VUID-VkDescriptorAccelerationStructureInfoNVX-accelerationStructureCount-02236", - "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be equal to descriptorCount in the extended structure." - }, - { - "vuid": "VUID-VkDescriptorAccelerationStructureInfoNVX-sType-sType", - "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_ACCELERATION_STRUCTURE_INFO_NVX</code>" - }, - { - "vuid": "VUID-VkDescriptorAccelerationStructureInfoNVX-pAccelerationStructures-parameter", - "text": " <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid <code>VkAccelerationStructureNVX</code> handles" - }, - { - "vuid": "VUID-VkDescriptorAccelerationStructureInfoNVX-accelerationStructureCount-arraylength", - "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" - } - ] - }, "vkCreateQueryPool": { "core": [ { @@ -14870,7 +15184,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02305", - "text": " If a <code>VkImageView</code> is sampled with with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>" + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter", @@ -14900,7 +15214,7 @@ "(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic)": [ { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02306", - "text": " If a <code>VkImageView</code> is sampled with with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code>" + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code>" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02307", @@ -17288,7 +17602,7 @@ }, { "vuid": "VUID-vkCmdDispatch-None-02005", - "text": " If a <code>VkImageView</code> is sampled with with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>." + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>." }, { "vuid": "VUID-vkCmdDispatch-commandBuffer-parameter", @@ -17310,7 +17624,7 @@ "(VK_IMG_filter_cubic)": [ { "vuid": "VUID-vkCmdDispatch-None-02006", - "text": " If a <code>VkImageView</code> is sampled with with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code>." + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code>." }, { "vuid": "VUID-vkCmdDispatch-None-00400", @@ -17394,7 +17708,7 @@ }, { "vuid": "VUID-vkCmdDispatchIndirect-None-02007", - "text": " If a <code>VkImageView</code> is sampled with with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>." + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>." }, { "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-parameter", @@ -17424,7 +17738,7 @@ "(VK_IMG_filter_cubic)": [ { "vuid": "VUID-vkCmdDispatchIndirect-None-02008", - "text": " If a <code>VkImageView</code> is sampled with with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code>." + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code>." }, { "vuid": "VUID-vkCmdDispatchIndirect-None-00416", @@ -18700,50 +19014,6 @@ } ] }, - "vkCreateMirSurfaceKHR": { - "(VK_KHR_surface)+(VK_KHR_mir_surface)": [ - { - "vuid": "VUID-vkCreateMirSurfaceKHR-instance-parameter", - "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <code>VkInstance</code> handle" - }, - { - "vuid": "VUID-vkCreateMirSurfaceKHR-pCreateInfo-parameter", - "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkMirSurfaceCreateInfoKHR</code> structure" - }, - { - "vuid": "VUID-vkCreateMirSurfaceKHR-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 <code>VkAllocationCallbacks</code> structure" - }, - { - "vuid": "VUID-vkCreateMirSurfaceKHR-pSurface-parameter", - "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>VkSurfaceKHR</code> handle" - } - ] - }, - "VkMirSurfaceCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_mir_surface)": [ - { - "vuid": "VUID-VkMirSurfaceCreateInfoKHR-connection-01263", - "text": " <code>connection</code> <strong class=\"purple\">must</strong> point to a valid <code>MirConnection</code>." - }, - { - "vuid": "VUID-VkMirSurfaceCreateInfoKHR-surface-01264", - "text": " <code>surface</code> <strong class=\"purple\">must</strong> point to a valid <code>MirSurface</code>." - }, - { - "vuid": "VUID-VkMirSurfaceCreateInfoKHR-sType-sType", - "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR</code>" - }, - { - "vuid": "VUID-VkMirSurfaceCreateInfoKHR-pNext-pNext", - "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" - }, - { - "vuid": "VUID-VkMirSurfaceCreateInfoKHR-flags-zerobitmask", - "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>" - } - ] - }, "vkCreateWaylandSurfaceKHR": { "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [ { @@ -19560,22 +19830,6 @@ } ] }, - "vkGetPhysicalDeviceMirPresentationSupportKHR": { - "(VK_KHR_surface)+(VK_KHR_mir_surface)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceMirPresentationSupportKHR-queueFamilyIndex-01265", - "text": " <code>queueFamilyIndex</code> <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by <code>vkGetPhysicalDeviceQueueFamilyProperties</code> for the given <code>physicalDevice</code>" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceMirPresentationSupportKHR-physicalDevice-parameter", - "text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <code>VkPhysicalDevice</code> handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceMirPresentationSupportKHR-connection-parameter", - "text": " <code>connection</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>MirConnection</code> value" - } - ] - }, "vkGetPhysicalDeviceWaylandPresentationSupportKHR": { "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [ { @@ -20644,162 +20898,332 @@ } ] }, - "VkPhysicalDeviceRaytracingPropertiesNVX": { - "(VK_NVX_raytracing)": [ + "vkCmdTraceRaysNV": { + "(VK_NV_ray_tracing)": [ { - "vuid": "VUID-VkPhysicalDeviceRaytracingPropertiesNVX-sType-sType", - "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAYTRACING_PROPERTIES_NVX</code>" - } - ] - }, - "vkCmdTraceRaysNVX": { - "(VK_NVX_raytracing)": [ + "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455", + "text": " <code>raygenShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>raygenShaderBindingTableBuffer</code>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02456", + "text": " <code>raygenShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>." + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457", + "text": " <code>missShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>missShaderBindingTableBuffer</code>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02458", + "text": " <code>missShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>." + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459", + "text": " <code>hitShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>hitShaderBindingTableBuffer</code>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02460", + "text": " <code>hitShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>." + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461", + "text": " <code>callableShaderBindingOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>callableShaderBindingTableBuffer</code>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02462", + "text": " <code>callableShaderBindingOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupBaseAlignment</code>." + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02463", + "text": " <code>missShaderBindingStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupHandleSize</code>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02464", + "text": " <code>hitShaderBindingStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupHandleSize</code>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02465", + "text": " <code>callableShaderBindingStride</code> <strong class=\"purple\">must</strong> be a multiple of <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>shaderGroupHandleSize</code>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02466", + "text": " <code>missShaderBindingStride</code> <strong class=\"purple\">must</strong> be a less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxShaderGroupStride</code>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02467", + "text": " <code>hitShaderBindingStride</code> <strong class=\"purple\">must</strong> be a less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxShaderGroupStride</code>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02468", + "text": " <code>callableShaderBindingStride</code> <strong class=\"purple\">must</strong> be a less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxShaderGroupStride</code>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-width-02469", + "text": " <code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[0]" + }, { - "vuid": "VUID-vkCmdTraceRaysNVX-commandBuffer-parameter", + "vuid": "VUID-vkCmdTraceRaysNV-height-02470", + "text": " <code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[1]" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-depth-02471", + "text": " <code>depth</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxComputeWorkGroupCount</code>[2]" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02472", + "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code>, with a <code>VkPipelineLayout</code> that is compatible for set <em>n</em>, with the <code>VkPipelineLayout</code> used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02473", + "text": " Descriptors in each bound descriptor set, specified via <code>vkCmdBindDescriptorSets</code>, <strong class=\"purple\">must</strong> be valid if they are statically used by the bound <code>VkPipeline</code> object, specified via <code>vkCmdBindPipeline</code>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02474", + "text": " A valid ray tracing pipeline <strong class=\"purple\">must</strong> be bound to the current command buffer with <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02475", + "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code>, with a <code>VkPipelineLayout</code> that is compatible for push constants with the one used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02476", + "text": " If any <code>VkSampler</code> object that is accessed from a shader by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code> uses unnormalized coordinates, it <strong class=\"purple\">must</strong> not be used to sample from any <code>VkImage</code> with a <code>VkImageView</code> of the type <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, <code>VK_IMAGE_VIEW_TYPE_1D_ARRAY</code>, <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>, in any shader stage" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02477", + "text": " If any <code>VkSampler</code> object that is accessed from a shader by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code> uses unnormalized coordinates, it <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions with <code>ImplicitLod</code>, <code>Dref</code> or <code>Proj</code> in their name, in any shader stage" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02478", + "text": " If any <code>VkSampler</code> object that is accessed from a shader by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code> uses unnormalized coordinates, it <strong class=\"purple\">must</strong> not be used with any of the SPIR-V <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions that includes a LOD bias or any offset values, in any shader stage" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02479", + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02480", + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02481", + "text": " If a <code>VkImageView</code> is sampled with with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code>." + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-parameter", "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" }, { - "vuid": "VUID-vkCmdTraceRaysNVX-raygenShaderBindingTableBuffer-parameter", + "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameter", "text": " <code>raygenShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" }, { - "vuid": "VUID-vkCmdTraceRaysNVX-missShaderBindingTableBuffer-parameter", - "text": " <code>missShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-parameter", + "text": " If <code>missShaderBindingTableBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>missShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameter", + "text": " If <code>hitShaderBindingTableBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>hitShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" }, { - "vuid": "VUID-vkCmdTraceRaysNVX-hitShaderBindingTableBuffer-parameter", - "text": " <code>hitShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameter", + "text": " If <code>callableShaderBindingTableBuffer</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>callableShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" }, { - "vuid": "VUID-vkCmdTraceRaysNVX-commandBuffer-recording", + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-recording", "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { - "vuid": "VUID-vkCmdTraceRaysNVX-commandBuffer-cmdpool", - "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations" + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-cmdpool", + "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-commonparent", + "text": " Each of <code>callableShaderBindingTableBuffer</code>, <code>commandBuffer</code>, <code>hitShaderBindingTableBuffer</code>, <code>missShaderBindingTableBuffer</code>, and <code>raygenShaderBindingTableBuffer</code> that are valid handles <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" + } + ], + "(VK_NV_ray_tracing)+(VK_IMG_filter_cubic)": [ + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02482", + "text": " If a <code>VkImageView</code> is sampled with with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code>." }, { - "vuid": "VUID-vkCmdTraceRaysNVX-commonparent", - "text": " Each of <code>commandBuffer</code>, <code>hitShaderBindingTableBuffer</code>, <code>missShaderBindingTableBuffer</code>, and <code>raygenShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" + "vuid": "VUID-vkCmdTraceRaysNV-None-02483", + "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkImageViewType\">VkImageViewType</a> of <code>VK_IMAGE_VIEW_TYPE_3D</code>, <code>VK_IMAGE_VIEW_TYPE_CUBE</code>, or <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>" + } + ], + "(VK_NV_ray_tracing)+(VK_VERSION_1_1)": [ + { + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02484", + "text": " If <code>commandBuffer</code> is an unprotected command buffer, and any pipeline stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code> reads from or writes to any image or buffer, that image or buffer <strong class=\"purple\">must</strong> not be a protected image or protected buffer." + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02485", + "text": " If <code>commandBuffer</code> is a protected command buffer, and any pipeline stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code> writes to any image or buffer, that image or buffer <strong class=\"purple\">must</strong> not be an unprotected image or unprotected buffer." + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02486", + "text": " If <code>commandBuffer</code> is a protected command buffer, and any pipeline stage other than the ray tracing pipeline stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_NV</code> reads from any image or buffer, the image or buffer <strong class=\"purple\">must</strong> not be a protected image or protected buffer." + } + ], + "(VK_NV_ray_tracing)+(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdTraceRaysNV-flags-02487", + "text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>." } ] }, - "vkCmdBuildAccelerationStructureNVX": { - "(VK_NVX_raytracing)": [ + "vkCmdBuildAccelerationStructureNV": { + "(VK_NV_ray_tracing)": [ { - "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-geometryCount-02241", - "text": " <code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRaytracingPropertiesNVX</code>::<code>maxGeometryCount</code>" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-geometryCount-02241", + "text": " <code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRayTracingPropertiesNV</code>::<code>maxGeometryCount</code>" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-commandBuffer-parameter", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-02488", + "text": " <code>dst</code> <strong class=\"purple\">must</strong> have been created with compatible <code>VkAccelerationStructureInfoNV</code> where <code>VkAccelerationStructureInfoNV</code>:::<code>type</code> and <code>VkAccelerationStructureInfoNV</code>::<code>flags</code> are identical, <code>VkAccelerationStructureInfoNV</code>::<code>instanceCount</code> and <code>VkAccelerationStructureInfoNV</code>::<code>geometryCount</code> for <code>dst</code> are greater than or equal to the build size and each geometry in <code>VkAccelerationStructureInfoNV</code>::<code>pGeometries</code> for <code>dst</code> has greater than or equal to the number of vertices, indices, and AABBs." }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-type-parameter", - "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeNVX\">VkAccelerationStructureTypeNVX</a> value" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02489", + "text": " If <code>update</code> is true, <code>src</code> <strong class=\"purple\">must</strong> not be <code>VK_NULL_HANDLE</code>" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-instanceData-parameter", - "text": " If <code>instanceData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>instanceData</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02490", + "text": " If <code>update</code> is true, <code>src</code> <strong class=\"purple\">must</strong> have been built last with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV</code> set in <code>VkAccelerationStructureInfoNV</code>::<code>flags</code>" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02491", + "text": " If <code>update</code> is false, The <code>size</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetAccelerationStructureMemoryRequirementsNV</code> with <code>VkAccelerationStructureMemoryRequirementsInfoNV</code>::<code>accelerationStructure</code> set to <code>dst</code> and <code>VkAccelerationStructureMemoryRequirementsInfoNV</code>::<code>type</code> set to <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>scratch</code> minus <code>scratchOffset</code>" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-pGeometries-parameter", - "text": " If <code>geometryCount</code> is not <code>0</code>, <code>pGeometries</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>geometryCount</code> valid <code>VkGeometryNVX</code> structures" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02492", + "text": " If <code>update</code> is true, The <code>size</code> member of the <code>VkMemoryRequirements</code> structure returned from a call to <code>vkGetAccelerationStructureMemoryRequirementsNV</code> with <code>VkAccelerationStructureMemoryRequirementsInfoNV</code>::<code>accelerationStructure</code> set to <code>dst</code> and <code>VkAccelerationStructureMemoryRequirementsInfoNV</code>::<code>type</code> set to <code>VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV</code> <strong class=\"purple\">must</strong> be less than or equal to the size of <code>scratch</code> minus <code>scratchOffset</code>" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-flags-parameter", - "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBuildAccelerationStructureFlagBitsNVX\">VkBuildAccelerationStructureFlagBitsNVX</a> values" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-dst-parameter", - "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-pInfo-parameter", + "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkAccelerationStructureInfoNV</code> structure" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-src-parameter", - "text": " If <code>src</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>src</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-parameter", + "text": " If <code>instanceData</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>instanceData</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-scratch-parameter", + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-parameter", + "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNV</code> handle" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-src-parameter", + "text": " If <code>src</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>src</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNV</code> handle" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-parameter", "text": " <code>scratch</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-commandBuffer-recording", + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-recording", "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-commandBuffer-cmdpool", - "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations" + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-cmdpool", + "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-commonparent", + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commonparent", "text": " Each of <code>commandBuffer</code>, <code>dst</code>, <code>instanceData</code>, <code>scratch</code>, and <code>src</code> that are valid handles <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" } ] }, - "vkCmdWriteAccelerationStructurePropertiesNVX": { - "(VK_NVX_raytracing)": [ + "vkCmdWriteAccelerationStructuresPropertiesNV": { + "(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-02242", + "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV</code>" + }, { - "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-queryType-02242", - "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be VK_QUERY_TYPE_COMPACTED_SIZE_NVX" + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-02493", + "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> have been created with a <code>queryType</code> matching <code>queryType</code>" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-commandBuffer-parameter", + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-02494", + "text": " The queries identified by <code>queryPool</code> and <code>firstQuery</code> <strong class=\"purple\">must</strong> be <em>unavailable</em>" + }, + { + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructures-02495", + "text": " All acceleration structures in <code>accelerationStructures</code> <strong class=\"purple\">must</strong> have been built with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV</code> if <code>queryType</code> is <code>VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV</code>" + }, + { + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameter", "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-accelerationStructure-parameter", - "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-parameter", + "text": " <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid <code>VkAccelerationStructureNV</code> handles" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-queryType-parameter", + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-parameter", "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-queryPool-parameter", + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-parameter", "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <code>VkQueryPool</code> handle" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-commandBuffer-recording", + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-recording", "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-commandBuffer-cmdpool", - "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations" + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-cmdpool", + "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations" + }, + { + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructureCount-arraylength", + "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" }, { - "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-commonparent", - "text": " Each of <code>accelerationStructure</code>, <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" + "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commonparent", + "text": " Each of <code>commandBuffer</code>, <code>queryPool</code>, and the elements of <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" } ] }, - "vkCmdCopyAccelerationStructureNVX": { - "(VK_NVX_raytracing)": [ + "vkCmdCopyAccelerationStructureNV": { + "(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-02496", + "text": " <code>mode</code> <strong class=\"purple\">must</strong> be <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV</code> or <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV</code>" + }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNVX-commandBuffer-parameter", + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-02497", + "text": " <code>src</code> <strong class=\"purple\">must</strong> have been built with <code>VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV</code> if <code>mode</code> is <code>VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV</code>" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter", "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNVX-dst-parameter", - "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-parameter", + "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNV</code> handle" }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNVX-src-parameter", - "text": " <code>src</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-parameter", + "text": " <code>src</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNV</code> handle" }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNVX-mode-parameter", - "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeNVX\">VkCopyAccelerationStructureModeNVX</a> value" + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-parameter", + "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeNV\">VkCopyAccelerationStructureModeNV</a> value" }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNVX-commandBuffer-recording", + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-recording", "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNVX-commandBuffer-cmdpool", - "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations" + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-cmdpool", + "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support compute operations" }, { - "vuid": "VUID-vkCmdCopyAccelerationStructureNVX-commonparent", + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commonparent", "text": " Each of <code>commandBuffer</code>, <code>dst</code>, and <code>src</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" } ] @@ -21264,6 +21688,14 @@ } ] }, + "VkPhysicalDeviceRayTracingPropertiesNV": { + "(VK_NV_ray_tracing)": [ + { + "vuid": "VUID-VkPhysicalDeviceRayTracingPropertiesNV-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV</code>" + } + ] + }, "vkGetPhysicalDeviceMultisamplePropertiesEXT": { "(VK_EXT_sample_locations)": [ { |