aboutsummaryrefslogtreecommitdiffhomepage
path: root/registry
diff options
context:
space:
mode:
authorJon Leech <[email protected]>2024-09-26 00:39:54 -0700
committerJon Leech <[email protected]>2024-09-26 00:50:55 -0700
commit29f979ee5aa58b7b005f805ea8df7a855c39ff37 (patch)
tree95ce4cd7a37627bf42e7cef75928c2458aa49c34 /registry
parentc6391a7b8cd57e79ce6b6c832c8e3043c4d9967b (diff)
downloadVulkan-Headers-29f979ee5aa58b7b005f805ea8df7a855c39ff37.tar.gz
Vulkan-Headers-29f979ee5aa58b7b005f805ea8df7a855c39ff37.zip
Diffstat (limited to 'registry')
-rw-r--r--registry/validusage.json3750
-rw-r--r--registry/video.xml2
-rw-r--r--registry/vk.xml447
3 files changed, 3757 insertions, 442 deletions
diff --git a/registry/validusage.json b/registry/validusage.json
index d4148c3..73f7277 100644
--- a/registry/validusage.json
+++ b/registry/validusage.json
@@ -1,9 +1,9 @@
{
"version info": {
"schema version": 2,
- "api version": "1.3.295",
- "comment": "from git branch: github-main commit: 8e435deb15124bbf9a7e3340e6cc7975999ed5c5",
- "date": "2024-08-30 09:13:37Z"
+ "api version": "1.3.296",
+ "comment": "from git branch: github-main commit: 486e4b289053a7d64784e7ce791711843c60c235",
+ "date": "2024-09-26 07:23:50Z"
},
"validation": {
"vkGetInstanceProcAddr": {
@@ -369,7 +369,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=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI\">VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR\">VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesKHR\">VkPhysicalDeviceCooperativeMatrixPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesNV\">VkPhysicalDeviceCooperativeMatrixPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectPropertiesNV\">VkPhysicalDeviceCopyMemoryIndirectPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCudaKernelLaunchPropertiesNV\">VkPhysicalDeviceCudaKernelLaunchPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorPropertiesEXT\">VkPhysicalDeviceCustomBorderColorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT\">VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingProperties\">VkPhysicalDeviceDescriptorIndexingProperties</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapPropertiesNV\">VkPhysicalDeviceDisplacementMicromapPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDriverProperties\">VkPhysicalDeviceDriverProperties</a>, <a href=\"#VkPhysicalDeviceDrmPropertiesEXT\">VkPhysicalDeviceDrmPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3PropertiesEXT\">VkPhysicalDeviceExtendedDynamicState3PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV\">VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolvePropertiesANDROID\">VkPhysicalDeviceExternalFormatResolvePropertiesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFloatControlsProperties\">VkPhysicalDeviceFloatControlsProperties</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2PropertiesEXT\">VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapPropertiesEXT\">VkPhysicalDeviceFragmentDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR\">VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV\">VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRatePropertiesKHR\">VkPhysicalDeviceFragmentShadingRatePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceImageAlignmentControlPropertiesMESA\">VkPhysicalDeviceImageAlignmentControlPropertiesMESA</a>, <a href=\"#VkPhysicalDeviceImageProcessing2PropertiesQCOM\">VkPhysicalDeviceImageProcessing2PropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingPropertiesQCOM\">VkPhysicalDeviceImageProcessingPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockProperties\">VkPhysicalDeviceInlineUniformBlockProperties</a>, <a href=\"#VkPhysicalDeviceLayeredApiPropertiesListKHR\">VkPhysicalDeviceLayeredApiPropertiesListKHR</a>, <a href=\"#VkPhysicalDeviceLayeredDriverPropertiesMSFT\">VkPhysicalDeviceLayeredDriverPropertiesMSFT</a>, <a href=\"#VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT\">VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationPropertiesKHR\">VkPhysicalDeviceLineRasterizationPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance4Properties\">VkPhysicalDeviceMaintenance4Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance5PropertiesKHR\">VkPhysicalDeviceMaintenance5PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance6PropertiesKHR\">VkPhysicalDeviceMaintenance6PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance7PropertiesKHR\">VkPhysicalDeviceMaintenance7PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMapMemoryPlacedPropertiesEXT\">VkPhysicalDeviceMapMemoryPlacedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionPropertiesNV\">VkPhysicalDeviceMemoryDecompressionPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawPropertiesEXT\">VkPhysicalDeviceMultiDrawPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDeviceNestedCommandBufferPropertiesEXT\">VkPhysicalDeviceNestedCommandBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowPropertiesNV\">VkPhysicalDeviceOpticalFlowPropertiesNV</a>, <a href=\"#VkPhysicalDevicePCIBusInfoPropertiesEXT\">VkPhysicalDevicePCIBusInfoPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePipelineBinaryPropertiesKHR\">VkPhysicalDevicePipelineBinaryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessPropertiesEXT\">VkPhysicalDevicePipelineRobustnessPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetPropertiesKHR\">VkPhysicalDevicePortabilitySubsetPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDeviceProvokingVertexPropertiesEXT\">VkPhysicalDeviceProvokingVertexPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV\">VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRenderPassStripedPropertiesARM\">VkPhysicalDeviceRenderPassStripedPropertiesARM</a>, <a href=\"#VkPhysicalDeviceRobustness2PropertiesEXT\">VkPhysicalDeviceRobustness2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxProperties\">VkPhysicalDeviceSamplerFilterMinmaxProperties</a>, <a href=\"#VkPhysicalDeviceSchedulingControlsPropertiesARM\">VkPhysicalDeviceSchedulingControlsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM\">VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreProperties2AMD\">VkPhysicalDeviceShaderCoreProperties2AMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesARM\">VkPhysicalDeviceShaderCorePropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderEnqueuePropertiesAMDX\">VkPhysicalDeviceShaderEnqueuePropertiesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductProperties\">VkPhysicalDeviceShaderIntegerDotProductProperties</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT\">VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectPropertiesEXT\">VkPhysicalDeviceShaderObjectPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsPropertiesNV\">VkPhysicalDeviceShaderSMBuiltinsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceShaderTileImagePropertiesEXT\">VkPhysicalDeviceShaderTileImagePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImagePropertiesNV\">VkPhysicalDeviceShadingRateImagePropertiesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlProperties\">VkPhysicalDeviceSubgroupSizeControlProperties</a>, <a href=\"#VkPhysicalDeviceSubpassShadingPropertiesHUAWEI\">VkPhysicalDeviceSubpassShadingPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreProperties\">VkPhysicalDeviceTimelineSemaphoreProperties</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceVulkan11Properties\">VkPhysicalDeviceVulkan11Properties</a>, <a href=\"#VkPhysicalDeviceVulkan12Properties\">VkPhysicalDeviceVulkan12Properties</a>, or <a href=\"#VkPhysicalDeviceVulkan13Properties\">VkPhysicalDeviceVulkan13Properties</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=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI\">VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR\">VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesKHR\">VkPhysicalDeviceCooperativeMatrixPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesNV\">VkPhysicalDeviceCooperativeMatrixPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectPropertiesNV\">VkPhysicalDeviceCopyMemoryIndirectPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCudaKernelLaunchPropertiesNV\">VkPhysicalDeviceCudaKernelLaunchPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorPropertiesEXT\">VkPhysicalDeviceCustomBorderColorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT\">VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingProperties\">VkPhysicalDeviceDescriptorIndexingProperties</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapPropertiesNV\">VkPhysicalDeviceDisplacementMicromapPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDriverProperties\">VkPhysicalDeviceDriverProperties</a>, <a href=\"#VkPhysicalDeviceDrmPropertiesEXT\">VkPhysicalDeviceDrmPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3PropertiesEXT\">VkPhysicalDeviceExtendedDynamicState3PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV\">VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolvePropertiesANDROID\">VkPhysicalDeviceExternalFormatResolvePropertiesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFloatControlsProperties\">VkPhysicalDeviceFloatControlsProperties</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2PropertiesEXT\">VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapPropertiesEXT\">VkPhysicalDeviceFragmentDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR\">VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV\">VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRatePropertiesKHR\">VkPhysicalDeviceFragmentShadingRatePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceImageAlignmentControlPropertiesMESA\">VkPhysicalDeviceImageAlignmentControlPropertiesMESA</a>, <a href=\"#VkPhysicalDeviceImageProcessing2PropertiesQCOM\">VkPhysicalDeviceImageProcessing2PropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingPropertiesQCOM\">VkPhysicalDeviceImageProcessingPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockProperties\">VkPhysicalDeviceInlineUniformBlockProperties</a>, <a href=\"#VkPhysicalDeviceLayeredApiPropertiesListKHR\">VkPhysicalDeviceLayeredApiPropertiesListKHR</a>, <a href=\"#VkPhysicalDeviceLayeredDriverPropertiesMSFT\">VkPhysicalDeviceLayeredDriverPropertiesMSFT</a>, <a href=\"#VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT\">VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationPropertiesKHR\">VkPhysicalDeviceLineRasterizationPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance4Properties\">VkPhysicalDeviceMaintenance4Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance5PropertiesKHR\">VkPhysicalDeviceMaintenance5PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance6PropertiesKHR\">VkPhysicalDeviceMaintenance6PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance7PropertiesKHR\">VkPhysicalDeviceMaintenance7PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMapMemoryPlacedPropertiesEXT\">VkPhysicalDeviceMapMemoryPlacedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionPropertiesNV\">VkPhysicalDeviceMemoryDecompressionPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawPropertiesEXT\">VkPhysicalDeviceMultiDrawPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDeviceNestedCommandBufferPropertiesEXT\">VkPhysicalDeviceNestedCommandBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowPropertiesNV\">VkPhysicalDeviceOpticalFlowPropertiesNV</a>, <a href=\"#VkPhysicalDevicePCIBusInfoPropertiesEXT\">VkPhysicalDevicePCIBusInfoPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePipelineBinaryPropertiesKHR\">VkPhysicalDevicePipelineBinaryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessPropertiesEXT\">VkPhysicalDevicePipelineRobustnessPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetPropertiesKHR\">VkPhysicalDevicePortabilitySubsetPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDeviceProvokingVertexPropertiesEXT\">VkPhysicalDeviceProvokingVertexPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV\">VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRenderPassStripedPropertiesARM\">VkPhysicalDeviceRenderPassStripedPropertiesARM</a>, <a href=\"#VkPhysicalDeviceRobustness2PropertiesEXT\">VkPhysicalDeviceRobustness2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxProperties\">VkPhysicalDeviceSamplerFilterMinmaxProperties</a>, <a href=\"#VkPhysicalDeviceSchedulingControlsPropertiesARM\">VkPhysicalDeviceSchedulingControlsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM\">VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreProperties2AMD\">VkPhysicalDeviceShaderCoreProperties2AMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesARM\">VkPhysicalDeviceShaderCorePropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderEnqueuePropertiesAMDX\">VkPhysicalDeviceShaderEnqueuePropertiesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductProperties\">VkPhysicalDeviceShaderIntegerDotProductProperties</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT\">VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectPropertiesEXT\">VkPhysicalDeviceShaderObjectPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsPropertiesNV\">VkPhysicalDeviceShaderSMBuiltinsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceShaderTileImagePropertiesEXT\">VkPhysicalDeviceShaderTileImagePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImagePropertiesNV\">VkPhysicalDeviceShadingRateImagePropertiesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlProperties\">VkPhysicalDeviceSubgroupSizeControlProperties</a>, <a href=\"#VkPhysicalDeviceSubpassShadingPropertiesHUAWEI\">VkPhysicalDeviceSubpassShadingPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreProperties\">VkPhysicalDeviceTimelineSemaphoreProperties</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceVulkan11Properties\">VkPhysicalDeviceVulkan11Properties</a>, <a href=\"#VkPhysicalDeviceVulkan12Properties\">VkPhysicalDeviceVulkan12Properties</a>, or <a href=\"#VkPhysicalDeviceVulkan13Properties\">VkPhysicalDeviceVulkan13Properties</a>",
"page": "vkspec"
},
{
@@ -886,7 +886,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=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a>, <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkDevicePipelineBinaryInternalCacheControlKHR\">VkDevicePipelineBinaryInternalCacheControlKHR</a>, <a href=\"#VkDevicePrivateDataCreateInfo\">VkDevicePrivateDataCreateInfo</a>, <a href=\"#VkDeviceQueueShaderCoreControlCreateInfoARM\">VkDeviceQueueShaderCoreControlCreateInfoARM</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceAddressBindingReportFeaturesEXT\">VkPhysicalDeviceAddressBindingReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAmigoProfilingFeaturesSEC\">VkPhysicalDeviceAmigoProfilingFeaturesSEC</a>, <a href=\"#VkPhysicalDeviceAntiLagFeaturesAMD\">VkPhysicalDeviceAntiLagFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBorderColorSwizzleFeaturesEXT\">VkPhysicalDeviceBorderColorSwizzleFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI\">VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCommandBufferInheritanceFeaturesNV\">VkPhysicalDeviceCommandBufferInheritanceFeaturesNV</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR\">VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesKHR\">VkPhysicalDeviceCooperativeMatrixFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectFeaturesNV\">VkPhysicalDeviceCopyMemoryIndirectFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCubicClampFeaturesQCOM\">VkPhysicalDeviceCubicClampFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCubicWeightsFeaturesQCOM\">VkPhysicalDeviceCubicWeightsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCudaKernelLaunchFeaturesNV\">VkPhysicalDeviceCudaKernelLaunchFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthBiasControlFeaturesEXT\">VkPhysicalDeviceDepthBiasControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClampZeroOneFeaturesEXT\">VkPhysicalDeviceDepthClampZeroOneFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipControlFeaturesEXT\">VkPhysicalDeviceDepthClipControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferFeaturesEXT\">VkPhysicalDeviceDescriptorBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV\">VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE\">VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceMemoryReportFeaturesEXT\">VkPhysicalDeviceDeviceMemoryReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapFeaturesNV\">VkPhysicalDeviceDisplacementMicromapFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingFeatures\">VkPhysicalDeviceDynamicRenderingFeatures</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR\">VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT\">VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState3FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV\">VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolveFeaturesANDROID\">VkPhysicalDeviceExternalFormatResolveFeaturesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryRDMAFeaturesNV\">VkPhysicalDeviceExternalMemoryRDMAFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX\">VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX</a>, <a href=\"#VkPhysicalDeviceFaultFeaturesEXT\">VkPhysicalDeviceFaultFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2FeaturesEXT\">VkPhysicalDeviceFragmentDensityMap2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV\">VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFrameBoundaryFeaturesEXT\">VkPhysicalDeviceFrameBoundaryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR\">VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyFeaturesEXT\">VkPhysicalDeviceHostImageCopyFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImage2DViewOf3DFeaturesEXT\">VkPhysicalDeviceImage2DViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageAlignmentControlFeaturesMESA\">VkPhysicalDeviceImageAlignmentControlFeaturesMESA</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlFeaturesEXT\">VkPhysicalDeviceImageCompressionControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT\">VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageProcessing2FeaturesQCOM\">VkPhysicalDeviceImageProcessing2FeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingFeaturesQCOM\">VkPhysicalDeviceImageProcessingFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeatures\">VkPhysicalDeviceImageRobustnessFeatures</a>, <a href=\"#VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT\">VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageViewMinLodFeaturesEXT\">VkPhysicalDeviceImageViewMinLodFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesKHR\">VkPhysicalDeviceIndexTypeUint8FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceInheritedViewportScissorFeaturesNV\">VkPhysicalDeviceInheritedViewportScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>, <a href=\"#VkPhysicalDeviceInvocationMaskFeaturesHUAWEI\">VkPhysicalDeviceInvocationMaskFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceLegacyDitheringFeaturesEXT\">VkPhysicalDeviceLegacyDitheringFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT\">VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesKHR\">VkPhysicalDeviceLineRasterizationFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceLinearColorAttachmentFeaturesNV\">VkPhysicalDeviceLinearColorAttachmentFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMaintenance4Features\">VkPhysicalDeviceMaintenance4Features</a>, <a href=\"#VkPhysicalDeviceMaintenance5FeaturesKHR\">VkPhysicalDeviceMaintenance5FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance6FeaturesKHR\">VkPhysicalDeviceMaintenance6FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance7FeaturesKHR\">VkPhysicalDeviceMaintenance7FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMapMemoryPlacedFeaturesEXT\">VkPhysicalDeviceMapMemoryPlacedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionFeaturesNV\">VkPhysicalDeviceMemoryDecompressionFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesEXT\">VkPhysicalDeviceMeshShaderFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawFeaturesEXT\">VkPhysicalDeviceMultiDrawFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT\">VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNestedCommandBufferFeaturesEXT\">VkPhysicalDeviceNestedCommandBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT\">VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapFeaturesEXT\">VkPhysicalDeviceOpacityMicromapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowFeaturesNV\">VkPhysicalDeviceOpticalFlowFeaturesNV</a>, <a href=\"#VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT\">VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePerStageDescriptorSetFeaturesNV\">VkPhysicalDevicePerStageDescriptorSetFeaturesNV</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineBinaryFeaturesKHR\">VkPhysicalDevicePipelineBinaryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeatures\">VkPhysicalDevicePipelineCreationCacheControlFeatures</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT\">VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelinePropertiesFeaturesEXT\">VkPhysicalDevicePipelinePropertiesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineProtectedAccessFeaturesEXT\">VkPhysicalDevicePipelineProtectedAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessFeaturesEXT\">VkPhysicalDevicePipelineRobustnessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentBarrierFeaturesNV\">VkPhysicalDevicePresentBarrierFeaturesNV</a>, <a href=\"#VkPhysicalDevicePresentIdFeaturesKHR\">VkPhysicalDevicePresentIdFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentWaitFeaturesKHR\">VkPhysicalDevicePresentWaitFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT\">VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT\">VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrivateDataFeatures\">VkPhysicalDevicePrivateDataFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceProvokingVertexFeaturesEXT\">VkPhysicalDeviceProvokingVertexFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT\">VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT\">VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRawAccessChainsFeaturesNV\">VkPhysicalDeviceRawAccessChainsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayQueryFeaturesKHR\">VkPhysicalDeviceRayQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV\">VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR\">VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingMotionBlurFeaturesNV\">VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR\">VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingValidationFeaturesNV\">VkPhysicalDeviceRayTracingValidationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG\">VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG</a>, <a href=\"#VkPhysicalDeviceRenderPassStripedFeaturesARM\">VkPhysicalDeviceRenderPassStripedFeaturesARM</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSchedulingControlsFeaturesARM\">VkPhysicalDeviceSchedulingControlsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV\">VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT\">VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM\">VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD\">VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceShaderEnqueueFeaturesAMDX\">VkPhysicalDeviceShaderEnqueueFeaturesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderExpectAssumeFeaturesKHR\">VkPhysicalDeviceShaderExpectAssumeFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderFloatControls2FeaturesKHR\">VkPhysicalDeviceShaderFloatControls2FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeatures\">VkPhysicalDeviceShaderIntegerDotProductFeatures</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR\">VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT\">VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectFeaturesEXT\">VkPhysicalDeviceShaderObjectFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderQuadControlFeaturesKHR\">VkPhysicalDeviceShaderQuadControlFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR\">VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT\">VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR\">VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR\">VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeatures\">VkPhysicalDeviceShaderTerminateInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderTileImageFeaturesEXT\">VkPhysicalDeviceShaderTileImageFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeatures\">VkPhysicalDeviceSubgroupSizeControlFeatures</a>, <a href=\"#VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT\">VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSubpassShadingFeaturesHUAWEI\">VkPhysicalDeviceSubpassShadingFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT\">VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSynchronization2Features\">VkPhysicalDeviceSynchronization2Features</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeatures\">VkPhysicalDeviceTextureCompressionASTCHDRFeatures</a>, <a href=\"#VkPhysicalDeviceTilePropertiesFeaturesQCOM\">VkPhysicalDeviceTilePropertiesFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR\">VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVideoMaintenance1FeaturesKHR\">VkPhysicalDeviceVideoMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkan13Features\">VkPhysicalDeviceVulkan13Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR\">VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceYcbcrDegammaFeaturesQCOM\">VkPhysicalDeviceYcbcrDegammaFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</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=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a>, <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkDevicePipelineBinaryInternalCacheControlKHR\">VkDevicePipelineBinaryInternalCacheControlKHR</a>, <a href=\"#VkDevicePrivateDataCreateInfo\">VkDevicePrivateDataCreateInfo</a>, <a href=\"#VkDeviceQueueShaderCoreControlCreateInfoARM\">VkDeviceQueueShaderCoreControlCreateInfoARM</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceAddressBindingReportFeaturesEXT\">VkPhysicalDeviceAddressBindingReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAmigoProfilingFeaturesSEC\">VkPhysicalDeviceAmigoProfilingFeaturesSEC</a>, <a href=\"#VkPhysicalDeviceAntiLagFeaturesAMD\">VkPhysicalDeviceAntiLagFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBorderColorSwizzleFeaturesEXT\">VkPhysicalDeviceBorderColorSwizzleFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI\">VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCommandBufferInheritanceFeaturesNV\">VkPhysicalDeviceCommandBufferInheritanceFeaturesNV</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR\">VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesKHR\">VkPhysicalDeviceCooperativeMatrixFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectFeaturesNV\">VkPhysicalDeviceCopyMemoryIndirectFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCubicClampFeaturesQCOM\">VkPhysicalDeviceCubicClampFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCubicWeightsFeaturesQCOM\">VkPhysicalDeviceCubicWeightsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCudaKernelLaunchFeaturesNV\">VkPhysicalDeviceCudaKernelLaunchFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthBiasControlFeaturesEXT\">VkPhysicalDeviceDepthBiasControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClampControlFeaturesEXT\">VkPhysicalDeviceDepthClampControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClampZeroOneFeaturesEXT\">VkPhysicalDeviceDepthClampZeroOneFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipControlFeaturesEXT\">VkPhysicalDeviceDepthClipControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferFeaturesEXT\">VkPhysicalDeviceDescriptorBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV\">VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE\">VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceMemoryReportFeaturesEXT\">VkPhysicalDeviceDeviceMemoryReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapFeaturesNV\">VkPhysicalDeviceDisplacementMicromapFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingFeatures\">VkPhysicalDeviceDynamicRenderingFeatures</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR\">VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT\">VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState3FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV\">VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolveFeaturesANDROID\">VkPhysicalDeviceExternalFormatResolveFeaturesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryRDMAFeaturesNV\">VkPhysicalDeviceExternalMemoryRDMAFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX\">VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX</a>, <a href=\"#VkPhysicalDeviceFaultFeaturesEXT\">VkPhysicalDeviceFaultFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2FeaturesEXT\">VkPhysicalDeviceFragmentDensityMap2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV\">VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFrameBoundaryFeaturesEXT\">VkPhysicalDeviceFrameBoundaryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR\">VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyFeaturesEXT\">VkPhysicalDeviceHostImageCopyFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImage2DViewOf3DFeaturesEXT\">VkPhysicalDeviceImage2DViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageAlignmentControlFeaturesMESA\">VkPhysicalDeviceImageAlignmentControlFeaturesMESA</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlFeaturesEXT\">VkPhysicalDeviceImageCompressionControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT\">VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageProcessing2FeaturesQCOM\">VkPhysicalDeviceImageProcessing2FeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingFeaturesQCOM\">VkPhysicalDeviceImageProcessingFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeatures\">VkPhysicalDeviceImageRobustnessFeatures</a>, <a href=\"#VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT\">VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageViewMinLodFeaturesEXT\">VkPhysicalDeviceImageViewMinLodFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesKHR\">VkPhysicalDeviceIndexTypeUint8FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceInheritedViewportScissorFeaturesNV\">VkPhysicalDeviceInheritedViewportScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>, <a href=\"#VkPhysicalDeviceInvocationMaskFeaturesHUAWEI\">VkPhysicalDeviceInvocationMaskFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceLegacyDitheringFeaturesEXT\">VkPhysicalDeviceLegacyDitheringFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT\">VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesKHR\">VkPhysicalDeviceLineRasterizationFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceLinearColorAttachmentFeaturesNV\">VkPhysicalDeviceLinearColorAttachmentFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMaintenance4Features\">VkPhysicalDeviceMaintenance4Features</a>, <a href=\"#VkPhysicalDeviceMaintenance5FeaturesKHR\">VkPhysicalDeviceMaintenance5FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance6FeaturesKHR\">VkPhysicalDeviceMaintenance6FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance7FeaturesKHR\">VkPhysicalDeviceMaintenance7FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMapMemoryPlacedFeaturesEXT\">VkPhysicalDeviceMapMemoryPlacedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionFeaturesNV\">VkPhysicalDeviceMemoryDecompressionFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesEXT\">VkPhysicalDeviceMeshShaderFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawFeaturesEXT\">VkPhysicalDeviceMultiDrawFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT\">VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNestedCommandBufferFeaturesEXT\">VkPhysicalDeviceNestedCommandBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT\">VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapFeaturesEXT\">VkPhysicalDeviceOpacityMicromapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowFeaturesNV\">VkPhysicalDeviceOpticalFlowFeaturesNV</a>, <a href=\"#VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT\">VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePerStageDescriptorSetFeaturesNV\">VkPhysicalDevicePerStageDescriptorSetFeaturesNV</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineBinaryFeaturesKHR\">VkPhysicalDevicePipelineBinaryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeatures\">VkPhysicalDevicePipelineCreationCacheControlFeatures</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT\">VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelinePropertiesFeaturesEXT\">VkPhysicalDevicePipelinePropertiesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineProtectedAccessFeaturesEXT\">VkPhysicalDevicePipelineProtectedAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessFeaturesEXT\">VkPhysicalDevicePipelineRobustnessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentBarrierFeaturesNV\">VkPhysicalDevicePresentBarrierFeaturesNV</a>, <a href=\"#VkPhysicalDevicePresentIdFeaturesKHR\">VkPhysicalDevicePresentIdFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentWaitFeaturesKHR\">VkPhysicalDevicePresentWaitFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT\">VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT\">VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrivateDataFeatures\">VkPhysicalDevicePrivateDataFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceProvokingVertexFeaturesEXT\">VkPhysicalDeviceProvokingVertexFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT\">VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT\">VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRawAccessChainsFeaturesNV\">VkPhysicalDeviceRawAccessChainsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayQueryFeaturesKHR\">VkPhysicalDeviceRayQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV\">VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR\">VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingMotionBlurFeaturesNV\">VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR\">VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingValidationFeaturesNV\">VkPhysicalDeviceRayTracingValidationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG\">VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG</a>, <a href=\"#VkPhysicalDeviceRenderPassStripedFeaturesARM\">VkPhysicalDeviceRenderPassStripedFeaturesARM</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSchedulingControlsFeaturesARM\">VkPhysicalDeviceSchedulingControlsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV\">VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT\">VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM\">VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD\">VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceShaderEnqueueFeaturesAMDX\">VkPhysicalDeviceShaderEnqueueFeaturesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderExpectAssumeFeaturesKHR\">VkPhysicalDeviceShaderExpectAssumeFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderFloatControls2FeaturesKHR\">VkPhysicalDeviceShaderFloatControls2FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeatures\">VkPhysicalDeviceShaderIntegerDotProductFeatures</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR\">VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT\">VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectFeaturesEXT\">VkPhysicalDeviceShaderObjectFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderQuadControlFeaturesKHR\">VkPhysicalDeviceShaderQuadControlFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR\">VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT\">VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR\">VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR\">VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeatures\">VkPhysicalDeviceShaderTerminateInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderTileImageFeaturesEXT\">VkPhysicalDeviceShaderTileImageFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeatures\">VkPhysicalDeviceSubgroupSizeControlFeatures</a>, <a href=\"#VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT\">VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSubpassShadingFeaturesHUAWEI\">VkPhysicalDeviceSubpassShadingFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT\">VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSynchronization2Features\">VkPhysicalDeviceSynchronization2Features</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeatures\">VkPhysicalDeviceTextureCompressionASTCHDRFeatures</a>, <a href=\"#VkPhysicalDeviceTilePropertiesFeaturesQCOM\">VkPhysicalDeviceTilePropertiesFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR\">VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVideoMaintenance1FeaturesKHR\">VkPhysicalDeviceVideoMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkan13Features\">VkPhysicalDeviceVulkan13Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR\">VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceYcbcrDegammaFeaturesQCOM\">VkPhysicalDeviceYcbcrDegammaFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</a>",
"page": "vkspec"
},
{
@@ -13350,6 +13350,16 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-VkShaderCreateInfoEXT-flags-11005",
+ "text": "If <code>flags</code> includes <code>VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT</code>, then the <a href=\"#features-deviceGeneratedCommandsEXT\"><code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkShaderCreateInfoEXT-flags-11006",
+ "text": "If <code>flags</code> includes <code>VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT</code>, then the identified entry point <strong class=\"purple\">must</strong> not specify <code>Xfb</code> execution mode",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-VkShaderCreateInfoEXT-flags-08992",
"text": "If <code>flags</code> includes <code>VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT</code>, <code>stage</code> <strong class=\"purple\">must</strong> be one of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>, <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>, or <code>VK_SHADER_STAGE_COMPUTE_BIT</code>",
"page": "vkspec"
@@ -14681,6 +14691,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-VkComputePipelineCreateInfo-flags-11007",
+ "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT</code>, then the <a href=\"#features-deviceGeneratedCommandsEXT\"><code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875",
"text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
"page": "vkspec"
@@ -15916,6 +15931,16 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-11000",
+ "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT</code>, then the <a href=\"#features-deviceGeneratedCommandsEXT\"><code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-11001",
+ "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>flags</code> includes <code>VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT</code>, then all stages <strong class=\"purple\">must</strong> not specify <code>Xfb</code> execution mode",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878",
"text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
"page": "vkspec"
@@ -17471,6 +17496,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-11008",
+ "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pipelineCreationCacheControl-02905",
"text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
"page": "vkspec"
@@ -17665,6 +17695,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-11008",
+ "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pipelineCreationCacheControl-02905",
"text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
"page": "vkspec"
@@ -20257,7 +20292,7 @@
},
{
"vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01746",
- "text": "The memory represented by <code>fd</code> <strong class=\"purple\">must</strong> have been created from a physical device and driver that is compatible with <code>device</code> and <code>handleType</code>, as described in <a href=\"#external-memory-handle-types-compatibility\">External memory handle types compatibility</a>",
+ "text": "The memory represented by <code>fd</code> <strong class=\"purple\">must</strong> have been created from a physical device and driver that is compatible with <code>device</code> and <code>handleType</code>, as described in <a href=\"#external-memory-handle-types-compatibility\">External Memory Handle Types Compatibility</a>",
"page": "vkspec"
},
{
@@ -31493,7 +31528,7 @@
"core": [
{
"vuid": "VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-None-08072",
- "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "text": "The <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
"page": "vkspec"
},
{
@@ -31551,7 +31586,7 @@
"core": [
{
"vuid": "VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-None-08076",
- "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "text": "The <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
"page": "vkspec"
},
{
@@ -31609,7 +31644,7 @@
"core": [
{
"vuid": "VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-None-08080",
- "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "text": "The <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
"page": "vkspec"
},
{
@@ -31667,7 +31702,7 @@
"core": [
{
"vuid": "VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-None-08084",
- "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "text": "The <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
"page": "vkspec"
},
{
@@ -31725,7 +31760,7 @@
"core": [
{
"vuid": "VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-None-08088",
- "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "text": "The <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
"page": "vkspec"
},
{
@@ -42944,17 +42979,12 @@
},
{
"vuid": "VUID-vkCmdDraw-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDraw-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDraw-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -42963,23 +42993,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDraw-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDraw-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDraw-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDraw-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -43493,6 +43518,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDraw-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDraw-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -43624,12 +43654,12 @@
},
{
"vuid": "VUID-vkCmdDraw-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDraw-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -43654,17 +43684,17 @@
},
{
"vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -43914,7 +43944,7 @@
},
{
"vuid": "VUID-vkCmdDraw-pStrides-04913",
- "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+ "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
"page": "vkspec"
},
{
@@ -43949,7 +43979,7 @@
},
{
"vuid": "VUID-vkCmdDraw-None-04875",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the current command buffer set <code>primitiveTopology</code> to <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
@@ -44583,17 +44613,12 @@
},
{
"vuid": "VUID-vkCmdDrawIndexed-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -44602,23 +44627,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawIndexed-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexed-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -45132,6 +45152,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawIndexed-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawIndexed-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -45263,12 +45288,12 @@
},
{
"vuid": "VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -45293,17 +45318,17 @@
},
{
"vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -45553,7 +45578,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexed-pStrides-04913",
- "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+ "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
"page": "vkspec"
},
{
@@ -45588,7 +45613,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-04875",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the current command buffer set <code>primitiveTopology</code> to <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
@@ -46232,17 +46257,12 @@
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -46251,23 +46271,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawMultiEXT-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -46781,6 +46796,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawMultiEXT-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -46912,12 +46932,12 @@
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -46942,17 +46962,17 @@
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -47202,7 +47222,7 @@
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-pStrides-04913",
- "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+ "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
"page": "vkspec"
},
{
@@ -47237,7 +47257,7 @@
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-04875",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the current command buffer set <code>primitiveTopology</code> to <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
@@ -47891,17 +47911,12 @@
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -47910,23 +47925,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -48440,6 +48450,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -48571,12 +48586,12 @@
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -48601,17 +48616,17 @@
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -48861,7 +48876,7 @@
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913",
- "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+ "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
"page": "vkspec"
},
{
@@ -48896,7 +48911,7 @@
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04875",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the current command buffer set <code>primitiveTopology</code> to <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
@@ -49565,17 +49580,12 @@
},
{
"vuid": "VUID-vkCmdDrawIndirect-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -49584,23 +49594,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawIndirect-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirect-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -50114,6 +50119,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawIndirect-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawIndirect-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -50245,12 +50255,12 @@
},
{
"vuid": "VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -50275,17 +50285,17 @@
},
{
"vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -50520,7 +50530,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirect-pStrides-04913",
- "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+ "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
"page": "vkspec"
},
{
@@ -50555,7 +50565,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-04875",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the current command buffer set <code>primitiveTopology</code> to <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
@@ -50673,11 +50683,6 @@
"page": "vkspec"
},
{
- "vuid": "VUID-VkDrawIndirectCommand-None-00500",
- "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-VkDrawIndirectCommand-firstInstance-00501",
"text": "If the <a href=\"#features-drawIndirectFirstInstance\"><code>drawIndirectFirstInstance</code></a> feature is not enabled, <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
"page": "vkspec"
@@ -51258,17 +51263,12 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -51277,23 +51277,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawIndirectCount-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -51807,6 +51802,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawIndirectCount-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawIndirectCount-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -51938,12 +51938,12 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -51968,17 +51968,17 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -52213,7 +52213,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-pStrides-04913",
- "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+ "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
"page": "vkspec"
},
{
@@ -52248,7 +52248,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-04875",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the current command buffer set <code>primitiveTopology</code> to <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
@@ -52957,17 +52957,12 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -52976,23 +52971,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -53506,6 +53496,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -53637,12 +53632,12 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -53667,17 +53662,17 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -53912,7 +53907,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-pStrides-04913",
- "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+ "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
"page": "vkspec"
},
{
@@ -53947,7 +53942,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-04875",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the current command buffer set <code>primitiveTopology</code> to <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
@@ -54075,11 +54070,6 @@
"page": "vkspec"
},
{
- "vuid": "VUID-VkDrawIndexedIndirectCommand-None-00552",
- "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-VkDrawIndexedIndirectCommand-firstInstance-00554",
"text": "If the <a href=\"#features-drawIndirectFirstInstance\"><code>drawIndirectFirstInstance</code></a> feature is not enabled, <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
"page": "vkspec"
@@ -54660,17 +54650,12 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -54679,23 +54664,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -55209,6 +55189,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -55340,12 +55325,12 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -55370,17 +55355,17 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -55615,7 +55600,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913",
- "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+ "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
"page": "vkspec"
},
{
@@ -55650,7 +55635,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04875",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the current command buffer set <code>primitiveTopology</code> to <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
@@ -56364,17 +56349,12 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -56383,23 +56363,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -56913,6 +56888,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -57044,12 +57024,12 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -57074,17 +57054,17 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -57319,7 +57299,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913",
- "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+ "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
"page": "vkspec"
},
{
@@ -57354,7 +57334,7 @@
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04875",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the current command buffer set <code>primitiveTopology</code> to <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
@@ -58160,17 +58140,12 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -58179,23 +58154,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -58709,6 +58679,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -58840,12 +58815,12 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -58870,17 +58845,17 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -59719,17 +59694,12 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -59738,23 +59708,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -60268,6 +60233,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -60399,12 +60369,12 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -60429,17 +60399,17 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -61337,17 +61307,12 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -61356,23 +61321,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -61886,6 +61846,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -62017,12 +61982,12 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -62047,17 +62012,17 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -62976,17 +62941,12 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -62995,23 +62955,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawMeshTasksEXT-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -63525,6 +63480,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -63656,12 +63616,12 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -63686,17 +63646,17 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -64570,17 +64530,12 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -64589,23 +64544,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -65119,6 +65069,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -65250,12 +65205,12 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -65280,17 +65235,17 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -66223,17 +66178,12 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -66242,23 +66192,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -66772,6 +66717,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -66903,12 +66853,12 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -66933,17 +66883,17 @@
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -67862,17 +67812,12 @@
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -67881,23 +67826,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawClusterHUAWEI-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -68411,6 +68351,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -68542,12 +68487,12 @@
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -68572,17 +68517,17 @@
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -69436,17 +69381,12 @@
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -69455,23 +69395,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -69985,6 +69920,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -70116,12 +70056,12 @@
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -70146,17 +70086,17 @@
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -71702,7 +71642,7 @@
},
{
"vuid": "VUID-VkPipelineViewportStateCreateInfo-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=\"#VkPipelineViewportCoarseSampleOrderStateCreateInfoNV\">VkPipelineViewportCoarseSampleOrderStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportDepthClipControlCreateInfoEXT\">VkPipelineViewportDepthClipControlCreateInfoEXT</a>, <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>, or <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</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=\"#VkPipelineViewportCoarseSampleOrderStateCreateInfoNV\">VkPipelineViewportCoarseSampleOrderStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportDepthClampControlCreateInfoEXT\">VkPipelineViewportDepthClampControlCreateInfoEXT</a>, <a href=\"#VkPipelineViewportDepthClipControlCreateInfoEXT\">VkPipelineViewportDepthClipControlCreateInfoEXT</a>, <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>, <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>, or <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>",
"page": "vkspec"
},
{
@@ -74200,6 +74140,88 @@
}
]
},
+ "VkPipelineViewportDepthClampControlCreateInfoEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-pDepthClampRange-09646",
+ "text": "If <code>depthClampMode</code> is set to <code>VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT</code>, and the pipeline is not created with <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code>, then <code>pDepthClampRange</code> must be a valid pointer to a valid <code>VkDepthClampRangeEXT</code> structure.",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-depthClampMode-parameter",
+ "text": "<code>depthClampMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDepthClampModeEXT\">VkDepthClampModeEXT</a> value",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkPipelineViewportDepthClampControlCreateInfoEXT-pDepthClampRange-parameter",
+ "text": "If <code>pDepthClampRange</code> is not <code>NULL</code>, <code>pDepthClampRange</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDepthClampRangeEXT\">VkDepthClampRangeEXT</a> structure",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "vkCmdSetDepthClampRangeEXT": {
+ "core": [
+ {
+ "vuid": "VUID-vkCmdSetDepthClampRangeEXT-pDepthClampRange-09647",
+ "text": "If <code>depthClampMode</code> is set to <code>VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT</code>, then <code>pDepthClampRange</code> must be a valid pointer to a valid <code>VkDepthClampRangeEXT</code> structure.",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-parameter",
+ "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdSetDepthClampRangeEXT-depthClampMode-parameter",
+ "text": "<code>depthClampMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDepthClampModeEXT\">VkDepthClampModeEXT</a> value",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdSetDepthClampRangeEXT-pDepthClampRange-parameter",
+ "text": "If <code>pDepthClampRange</code> is not <code>NULL</code>, <code>pDepthClampRange</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkDepthClampRangeEXT\">VkDepthClampRangeEXT</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-recording",
+ "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-cmdpool",
+ "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdSetDepthClampRangeEXT-videocoding",
+ "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkDepthClampRangeEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkDepthClampRangeEXT-pDepthClampRange-00999",
+ "text": "<code>minDepthClamp</code> <strong class=\"purple\">must</strong> be less than or equal to <code>maxDepthClamp</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkDepthClampRangeEXT-pDepthClampRange-09648",
+ "text": "If the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled, <code>minDepthClamp</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>0.0</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkDepthClampRangeEXT-pDepthClampRange-09649",
+ "text": "If the <code><a href=\"#VK_EXT_depth_range_unrestricted\">VK_EXT_depth_range_unrestricted</a></code> extension is not enabled, <code>maxDepthClamp</code> <strong class=\"purple\">must</strong> be less than or equal to <code>1.0</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
"vkCmdSetDepthTestEnable": {
"core": [
{
@@ -76962,6 +76984,248 @@
}
]
},
+ "vkCreateIndirectCommandsLayoutEXT": {
+ "core": [
+ {
+ "vuid": "VUID-vkCreateIndirectCommandsLayoutEXT-deviceGeneratedCommands-11089",
+ "text": "The <a href=\"#features-deviceGeneratedCommandsEXT\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCreateIndirectCommandsLayoutEXT-device-parameter",
+ "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCreateIndirectCommandsLayoutEXT-pCreateInfo-parameter",
+ "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkIndirectCommandsLayoutCreateInfoEXT\">VkIndirectCommandsLayoutCreateInfoEXT</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCreateIndirectCommandsLayoutEXT-pAllocator-parameter",
+ "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCreateIndirectCommandsLayoutEXT-pIndirectCommandsLayout-parameter",
+ "text": "<code>pIndirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkIndirectCommandsLayoutEXT\">VkIndirectCommandsLayoutEXT</a> handle",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkIndirectCommandsLayoutCreateInfoEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-indirectStride-11090",
+ "text": "<code>indirectStride</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>maxIndirectCommandsIndirectStride</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11091",
+ "text": "<code>shaderStages</code> <strong class=\"purple\">must</strong> only contain stages supported by <a href=\"#limits-supportedIndirectCommandsShaderStages\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>supportedIndirectCommandsShaderStages</code></a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-tokenCount-11092",
+ "text": "<code>tokenCount</code> <strong class=\"purple\">must</strong> less than or equal to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>maxIndirectCommandsTokenCount</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11093",
+ "text": "The number of tokens in the <code>pTokens</code> array with <code>type</code> equal to <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code> <strong class=\"purple\">must</strong> be less than or equal to <code>1</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11145",
+ "text": "The number of tokens in the <code>pTokens</code> array with <code>type</code> equal to <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT</code> <strong class=\"purple\">must</strong> be less than or equal to <code>1</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11094",
+ "text": "The number of tokens in the <code>pTokens</code> array with <code>type</code> equal to <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT</code> <strong class=\"purple\">must</strong> be less than or equal to <code>1</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11095",
+ "text": "If the action command token in the <code>pTokens</code> array is not an indexed draw token, then <code>pTokens</code> <strong class=\"purple\">must</strong> not contain a member with <code>type</code> set to <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11096",
+ "text": "If the action command token in the <code>pTokens</code> array is not a non-mesh draw token, then <code>pTokens</code> <strong class=\"purple\">must</strong> not contain a member with <code>type</code> set to <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11097",
+ "text": "If the <code>pTokens</code> array contains multiple tokens with <code>type</code> equal to <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT</code>, then there <strong class=\"purple\">must</strong> be no duplicate <a href=\"#VkIndirectCommandsVertexBufferTokenEXT\">VkIndirectCommandsVertexBufferTokenEXT</a>::<code>vertexBindingUnit</code> values",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11099",
+ "text": "For all <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT</code> and <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT</code> type tokens in <code>pTokens</code>, there <strong class=\"purple\">must</strong> be no overlapping ranges between any specified push constant ranges",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11100",
+ "text": "The action command token <strong class=\"purple\">must</strong> be the last token in the <code>pTokens</code> array",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11139",
+ "text": "If the <code>pTokens</code> array contains a <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code> token, then this token <strong class=\"purple\">must</strong> be the first token in the array",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11101",
+ "text": "For any element of <code>pTokens</code>, if <code>type</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT</code> or <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT</code> and the <a href=\"#features-dynamicGeneratedPipelineLayout\"><code>dynamicGeneratedPipelineLayout</code></a> is not enabled, then the <code>pipelineLayout</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11102",
+ "text": "For any element of <code>pTokens</code>, if <code>type</code> is either <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT</code> or <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT</code> and <code>pipelineLayout</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a> struct",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11103",
+ "text": "For any element of <code>pTokens</code>, the <code>offset</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>offset</code> member of the previous tokens",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11104",
+ "text": "For any element of <code>pTokens</code>, if <code>type</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT</code>, or <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT</code>, then <code>shaderStages</code> <strong class=\"purple\">must</strong> contain graphics stages",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11105",
+ "text": "For any element of <code>pTokens</code>, if <code>type</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT</code>, then <code>shaderStages</code> <strong class=\"purple\">must</strong> be <code>VK_SHADER_STAGE_COMPUTE_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11106",
+ "text": "For any element of <code>pTokens</code>, if <code>type</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT</code> or <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT</code>, then <code>shaderStages</code> <strong class=\"purple\">must</strong> contain <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11107",
+ "text": "For any element of <code>pTokens</code>, if <code>type</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT</code> or <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT</code>, then the <code>shaderStages</code> <strong class=\"purple\">must</strong> contain <code>VK_SHADER_STAGE_MESH_BIT_NV</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-11108",
+ "text": "For any element of <code>pTokens</code>, if <code>type</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT</code>, then <code>shaderStages</code> <strong class=\"purple\">must</strong> contain ray tracing stages",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11109",
+ "text": "If <code>shaderStages</code> contains graphics stages then the state tokens in <code>pTokens</code> <strong class=\"purple\">must</strong> not include <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11110",
+ "text": "If <code>shaderStages</code> is <code>VK_SHADER_STAGE_COMPUTE_BIT</code> then the state tokens in <code>pTokens</code> <strong class=\"purple\">must</strong> only include <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT</code>, or <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11111",
+ "text": "If <code>shaderStages</code> contains ray tracing stages then the state tokens in <code>pTokens</code> <strong class=\"purple\">must</strong> only include <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT</code>, or <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11112",
+ "text": "The <code>shaderStages</code> <strong class=\"purple\">must</strong> only contain stages from one of the following:<div class=\"ulist\">\n<ul>\n<li>\n<p>graphics stages</p>\n</li>\n<li>\n<p><code>VK_SHADER_STAGE_COMPUTE_BIT</code></p>\n</li>\n<li>\n<p>mesh stages and <code>VK_SHADER_STAGE_FRAGMENT_BIT</code></p>\n</li>\n<li>\n<p>ray tracing stages</p>\n</li>\n</ul>\n</div>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-11113",
+ "text": "If <code>shaderStages</code> contains <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, then <code>shaderStages</code> <strong class=\"purple\">must</strong> also contain <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pNext-pNext",
+ "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-sType-unique",
+ "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-flags-parameter",
+ "text": "<code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkIndirectCommandsLayoutUsageFlagBitsEXT\">VkIndirectCommandsLayoutUsageFlagBitsEXT</a> values",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-parameter",
+ "text": "<code>shaderStages</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-shaderStages-requiredbitmask",
+ "text": "<code>shaderStages</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pipelineLayout-parameter",
+ "text": "If <code>pipelineLayout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>pipelineLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-pTokens-parameter",
+ "text": "<code>pTokens</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>tokenCount</code> valid <a href=\"#VkIndirectCommandsLayoutTokenEXT\">VkIndirectCommandsLayoutTokenEXT</a> structures",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoEXT-tokenCount-arraylength",
+ "text": "<code>tokenCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "vkDestroyIndirectCommandsLayoutEXT": {
+ "core": [
+ {
+ "vuid": "VUID-vkDestroyIndirectCommandsLayoutEXT-indirectCommandsLayout-11114",
+ "text": "All submitted commands that refer to <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> have completed execution",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkDestroyIndirectCommandsLayoutEXT-indirectCommandsLayout-11115",
+ "text": "If <code>VkAllocationCallbacks</code> were provided when <code>indirectCommandsLayout</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkDestroyIndirectCommandsLayoutEXT-indirectCommandsLayout-11116",
+ "text": "If no <code>VkAllocationCallbacks</code> were provided when <code>indirectCommandsLayout</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkDestroyIndirectCommandsLayoutEXT-device-parameter",
+ "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkDestroyIndirectCommandsLayoutEXT-indirectCommandsLayout-parameter",
+ "text": "If <code>indirectCommandsLayout</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsLayoutEXT\">VkIndirectCommandsLayoutEXT</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkDestroyIndirectCommandsLayoutEXT-pAllocator-parameter",
+ "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkDestroyIndirectCommandsLayoutEXT-indirectCommandsLayout-parent",
+ "text": "If <code>indirectCommandsLayout</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
"vkCreateIndirectCommandsLayoutNV": {
"core": [
{
@@ -77139,6 +77403,58 @@
}
]
},
+ "VkBindIndexBufferIndirectCommandEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkBindIndexBufferIndirectCommandEXT-None-11117",
+ "text": "The buffer&#8217;s usage flags from which the address was acquired <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDEX_BUFFER_BIT</code> bit set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkBindIndexBufferIndirectCommandEXT-bufferAddress-11118",
+ "text": "The <code>bufferAddress</code> <strong class=\"purple\">must</strong> be aligned to the <a href=\"#VkIndexType\">VkIndexType</a> of the <code>indexType</code> used",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkBindIndexBufferIndirectCommandEXT-None-11119",
+ "text": "Each element of the buffer from which the address was acquired and that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkBindIndexBufferIndirectCommandEXT-indexType-parameter",
+ "text": "<code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkBindVertexBufferIndirectCommandEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkBindVertexBufferIndirectCommandEXT-None-11120",
+ "text": "The buffer&#8217;s usage flag from which the address was acquired <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_VERTEX_BUFFER_BIT</code> bit set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkBindVertexBufferIndirectCommandEXT-None-11121",
+ "text": "Each element of the buffer from which the address was acquired and that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkDrawIndirectCountIndirectCommandEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkDrawIndirectCountIndirectCommandEXT-None-11122",
+ "text": "The buffer&#8217;s usage flag from which the address was acquired <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT</code> bit set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkDrawIndirectCountIndirectCommandEXT-None-11123",
+ "text": "Each element of the buffer from which the address was acquired and that is non-sparse <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+ "page": "vkspec"
+ }
+ ]
+ },
"VkIndirectCommandsStreamNV": {
"core": [
{
@@ -77239,6 +77555,146 @@
}
]
},
+ "VkIndirectCommandsLayoutTokenEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutTokenEXT-offset-11124",
+ "text": "<code>offset</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>maxIndirectCommandsTokenOffset</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutTokenEXT-offset-11125",
+ "text": "<code>offset</code> <strong class=\"purple\">must</strong> be aligned to <code>4</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutTokenEXT-meshShader-11126",
+ "text": "If <a href=\"#features-meshShader\"><code>meshShader</code></a> or <a href=\"#features-taskShader\"><code>taskShader</code></a> are not enabled, <code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT</code> <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT</code>, <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT</code> or <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutTokenEXT-rayTracingMaintenance1-11128",
+ "text": "If <a href=\"#features-rayTracingMaintenance1\"><code>rayTracingMaintenance1</code></a> is not enabled, <code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutTokenEXT-deviceGeneratedCommandsMultiDrawIndirectCount-11129",
+ "text": "If <a href=\"#limits-deviceGeneratedCommandsMultiDrawIndirectCount\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>deviceGeneratedCommandsMultiDrawIndirectCount</code></a> is not supported, <code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT</code> or <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutTokenEXT-deviceGeneratedCommandsMultiDrawIndirectCount-11130",
+ "text": "If <a href=\"#limits-deviceGeneratedCommandsMultiDrawIndirectCount\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>deviceGeneratedCommandsMultiDrawIndirectCount</code></a> is not supported, <code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutTokenEXT-deviceGeneratedCommandsMultiDrawIndirectCount-11131",
+ "text": "If <a href=\"#limits-deviceGeneratedCommandsMultiDrawIndirectCount\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>deviceGeneratedCommandsMultiDrawIndirectCount</code></a> is not supported, <code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutTokenEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutTokenEXT-type-parameter",
+ "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsTokenTypeEXT\">VkIndirectCommandsTokenTypeEXT</a> value",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutTokenEXT-pPushConstant-parameter",
+ "text": "If <code>type</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT</code>, the <code>pPushConstant</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkIndirectCommandsPushConstantTokenEXT\">VkIndirectCommandsPushConstantTokenEXT</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutTokenEXT-pVertexBuffer-parameter",
+ "text": "If <code>type</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT</code>, the <code>pVertexBuffer</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkIndirectCommandsVertexBufferTokenEXT\">VkIndirectCommandsVertexBufferTokenEXT</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutTokenEXT-pIndexBuffer-parameter",
+ "text": "If <code>type</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT</code>, the <code>pIndexBuffer</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkIndirectCommandsIndexBufferTokenEXT\">VkIndirectCommandsIndexBufferTokenEXT</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsLayoutTokenEXT-pExecutionSet-parameter",
+ "text": "If <code>type</code> is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code>, the <code>pExecutionSet</code> member of <code>data</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkIndirectCommandsExecutionSetTokenEXT\">VkIndirectCommandsExecutionSetTokenEXT</a> structure",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkIndirectCommandsPushConstantTokenEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkIndirectCommandsPushConstantTokenEXT-updateRange-11132",
+ "text": "<code>updateRange</code> <strong class=\"purple\">must</strong> be contained within the push constant info used by <a href=\"#VkIndirectCommandsLayoutCreateInfoEXT\">VkIndirectCommandsLayoutCreateInfoEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsPushConstantTokenEXT-size-11133",
+ "text": "If the token type is <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT</code>, the <code>size</code> member of <code>updateRange</code> <strong class=\"purple\">must</strong> be 4",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsPushConstantTokenEXT-updateRange-parameter",
+ "text": "<code>updateRange</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> structure",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkIndirectCommandsVertexBufferTokenEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkIndirectCommandsVertexBufferTokenEXT-vertexBindingUnit-11134",
+ "text": "<code>vertexBindingUnit</code> <strong class=\"purple\">must</strong> be less than the total number of vertex input bindings in use by the current graphics state.",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkIndirectCommandsIndexBufferTokenEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkIndirectCommandsIndexBufferTokenEXT-mode-11135",
+ "text": "<code>mode</code> <strong class=\"purple\">must</strong> be non-zero",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsIndexBufferTokenEXT-mode-11136",
+ "text": "<code>mode</code> <strong class=\"purple\">must</strong> be one of the bits supported in <a href=\"#limits-supportedIndirectCommandsInputModes\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>supportedIndirectCommandsInputModes</code></a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsIndexBufferTokenEXT-mode-parameter",
+ "text": "<code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsInputModeFlagBitsEXT\">VkIndirectCommandsInputModeFlagBitsEXT</a> value",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkIndirectCommandsExecutionSetTokenEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkIndirectCommandsExecutionSetTokenEXT-shaderStages-11137",
+ "text": "Each bit in <code>shaderStages</code> <strong class=\"purple\">must</strong> be supported by <a href=\"#limits-supportedIndirectCommandsShaderStagesPipelineBinding\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>supportedIndirectCommandsShaderStagesPipelineBinding</code></a> or <a href=\"#limits-supportedIndirectCommandsShaderStagesShaderBinding\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>supportedIndirectCommandsShaderStagesShaderBinding</code></a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsExecutionSetTokenEXT-type-parameter",
+ "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectExecutionSetInfoTypeEXT\">VkIndirectExecutionSetInfoTypeEXT</a> value",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsExecutionSetTokenEXT-shaderStages-parameter",
+ "text": "<code>shaderStages</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectCommandsExecutionSetTokenEXT-shaderStages-requiredbitmask",
+ "text": "<code>shaderStages</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
"VkIndirectCommandsLayoutTokenNV": {
"core": [
{
@@ -77343,6 +77799,127 @@
}
]
},
+ "vkGetGeneratedCommandsMemoryRequirementsEXT": {
+ "core": [
+ {
+ "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsEXT-device-parameter",
+ "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsEXT-pInfo-parameter",
+ "text": "<code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkGeneratedCommandsMemoryRequirementsInfoEXT\">VkGeneratedCommandsMemoryRequirementsInfoEXT</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsEXT-pMemoryRequirements-parameter",
+ "text": "<code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkMemoryRequirements2\">VkMemoryRequirements2</a> structure",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkGeneratedCommandsMemoryRequirementsInfoEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-maxSequencesCount-11009",
+ "text": "<code>maxSequencesCount</code> <strong class=\"purple\">must</strong> be less or equal to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>maxIndirectSequenceCount</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-11010",
+ "text": "If <code>indirectCommandsLayout</code> was created with a token sequence that contained the <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code> token, <code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-11151",
+ "text": "If <code>indirectCommandsLayout</code> was created with a token sequence that contained the <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code> token, the shader stages used to create the initial shader state of <code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> equal the <a href=\"#VkIndirectCommandsExecutionSetTokenEXT\">VkIndirectCommandsExecutionSetTokenEXT</a>::<code>shaderStages</code> used to create <code>indirectCommandsLayout</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-11011",
+ "text": "If <code>indirectCommandsLayout</code> was not created with a token sequence that contained the <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code> token, <code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-maxDrawCount-11146",
+ "text": "When not ignored, <span class=\"eq\"><code>maxDrawCount</code> × <code>maxSequenceCount</code></span> <strong class=\"purple\">must</strong> be less than <span class=\"eq\">2^24</span>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectExecutionSet-11012",
+ "text": "If <code>indirectExecutionSet</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, either a <a href=\"#VkGeneratedCommandsPipelineInfoEXT\">VkGeneratedCommandsPipelineInfoEXT</a> or a <a href=\"#VkGeneratedCommandsShaderInfoEXT\">VkGeneratedCommandsShaderInfoEXT</a> <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-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=\"#VkGeneratedCommandsPipelineInfoEXT\">VkGeneratedCommandsPipelineInfoEXT</a> or <a href=\"#VkGeneratedCommandsShaderInfoEXT\">VkGeneratedCommandsShaderInfoEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-sType-unique",
+ "text": "The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectExecutionSet-parameter",
+ "text": "If <code>indirectExecutionSet</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectExecutionSetEXT\">VkIndirectExecutionSetEXT</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-indirectCommandsLayout-parameter",
+ "text": "<code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsLayoutEXT\">VkIndirectCommandsLayoutEXT</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoEXT-commonparent",
+ "text": "Both of <code>indirectCommandsLayout</code>, and <code>indirectExecutionSet</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkGeneratedCommandsPipelineInfoEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkGeneratedCommandsPipelineInfoEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsPipelineInfoEXT-pipeline-parameter",
+ "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkGeneratedCommandsShaderInfoEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkGeneratedCommandsShaderInfoEXT-pShaders-11127",
+ "text": "<code>pShaders</code> <strong class=\"purple\">must</strong> not contain more than one shader object for a given <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> stage",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsShaderInfoEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsShaderInfoEXT-pShaders-parameter",
+ "text": "<code>pShaders</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>shaderCount</code> valid <a href=\"#VkShaderEXT\">VkShaderEXT</a> handles",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsShaderInfoEXT-shaderCount-arraylength",
+ "text": "<code>shaderCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
"vkGetGeneratedCommandsMemoryRequirementsNV": {
"core": [
{
@@ -77513,6 +78090,441 @@
}
]
},
+ "vkCreateIndirectExecutionSetEXT": {
+ "core": [
+ {
+ "vuid": "VUID-vkCreateIndirectExecutionSetEXT-deviceGeneratedCommands-11013",
+ "text": "The <a href=\"#features-deviceGeneratedCommandsEXT\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCreateIndirectExecutionSetEXT-device-parameter",
+ "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCreateIndirectExecutionSetEXT-pCreateInfo-parameter",
+ "text": "<code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkIndirectExecutionSetCreateInfoEXT\">VkIndirectExecutionSetCreateInfoEXT</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCreateIndirectExecutionSetEXT-pAllocator-parameter",
+ "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCreateIndirectExecutionSetEXT-pIndirectExecutionSet-parameter",
+ "text": "<code>pIndirectExecutionSet</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkIndirectExecutionSetEXT\">VkIndirectExecutionSetEXT</a> handle",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkIndirectExecutionSetCreateInfoEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkIndirectExecutionSetCreateInfoEXT-maxIndirectShaderObjectCount-11014",
+ "text": "If <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</code>::<code>maxIndirectShaderObjectCount</code> is zero or <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is not enabled <code>type</code> <strong class=\"purple\">must</strong> not be <code>VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetCreateInfoEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetCreateInfoEXT-type-parameter",
+ "text": "<code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectExecutionSetInfoTypeEXT\">VkIndirectExecutionSetInfoTypeEXT</a> value",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetCreateInfoEXT-pPipelineInfo-parameter",
+ "text": "If <code>type</code> is <code>VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT</code>, the <code>pPipelineInfo</code> member of <code>info</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkIndirectExecutionSetPipelineInfoEXT\">VkIndirectExecutionSetPipelineInfoEXT</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetCreateInfoEXT-pShaderInfo-parameter",
+ "text": "If <code>type</code> is <code>VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT</code>, the <code>pShaderInfo</code> member of <code>info</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkIndirectExecutionSetShaderInfoEXT\">VkIndirectExecutionSetShaderInfoEXT</a> structure",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkIndirectExecutionSetPipelineInfoEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkIndirectExecutionSetPipelineInfoEXT-supportedIndirectCommandsShaderStagesPipelineBinding-11015",
+ "text": "If <a href=\"#limits-supportedIndirectCommandsShaderStagesPipelineBinding\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>supportedIndirectCommandsShaderStagesPipelineBinding</code></a> does not contain <code>VK_SHADER_STAGE_COMPUTE_BIT</code>, the <code>VkPipelineBindPoint</code> of <code>initialPipeline</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetPipelineInfoEXT-supportedIndirectCommandsShaderStagesPipelineBinding-11016",
+ "text": "If <a href=\"#limits-supportedIndirectCommandsShaderStagesPipelineBinding\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>supportedIndirectCommandsShaderStagesPipelineBinding</code></a> does not contain <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>, the <code>VkPipelineBindPoint</code> of <code>initialPipeline</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetPipelineInfoEXT-supportedIndirectCommandsShaderStagesPipelineBinding-11017",
+ "text": "If <a href=\"#limits-supportedIndirectCommandsShaderStagesPipelineBinding\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>supportedIndirectCommandsShaderStagesPipelineBinding</code></a> does not contain ray tracing stages, the <code>VkPipelineBindPoint</code> of <code>initialPipeline</code> <strong class=\"purple\">must</strong> not be <code>VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetPipelineInfoEXT-maxPipelineCount-11018",
+ "text": "<code>maxPipelineCount</code> <strong class=\"purple\">must</strong> be between <code>1</code> and <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</code>::<code>maxIndirectPipelineCount</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetPipelineInfoEXT-initialPipeline-11019",
+ "text": "<code>initialPipeline</code> <strong class=\"purple\">must</strong> not use descriptors of type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetPipelineInfoEXT-initialPipeline-11153",
+ "text": "<code>initialPipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetPipelineInfoEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetPipelineInfoEXT-initialPipeline-parameter",
+ "text": "<code>initialPipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkIndirectExecutionSetShaderInfoEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-11020",
+ "text": "All members of <code>pInitialShaders</code> <strong class=\"purple\">must</strong> have a <code>stage</code> supported by <a href=\"#limits-supportedIndirectCommandsShaderStagesShaderBinding\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>supportedIndirectCommandsShaderStagesShaderBinding</code></a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetShaderInfoEXT-maxShaderCount-11021",
+ "text": "<code>maxShaderCount</code> <strong class=\"purple\">must</strong> not be zero",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetShaderInfoEXT-maxShaderCount-11022",
+ "text": "<code>maxShaderCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</code>::<code>maxIndirectShaderObjectCount</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetShaderInfoEXT-maxShaderCount-11036",
+ "text": "<code>maxShaderCount</code> <strong class=\"purple\">must</strong> be greater than or equal to <code>shaderCount</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetShaderInfoEXT-stage-11023",
+ "text": "The <code>stage</code> of each element in the <code>pInitialShaders</code> array <strong class=\"purple\">must</strong> be unique",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-11154",
+ "text": "Each member of <code>pInitialShaders</code> <strong class=\"purple\">must</strong> have been created with <code>VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetShaderInfoEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetShaderInfoEXT-pInitialShaders-parameter",
+ "text": "<code>pInitialShaders</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>shaderCount</code> valid <a href=\"#VkShaderEXT\">VkShaderEXT</a> handles",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetShaderInfoEXT-pSetLayoutInfos-parameter",
+ "text": "If <code>pSetLayoutInfos</code> is not <code>NULL</code>, <code>pSetLayoutInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>shaderCount</code> valid <a href=\"#VkIndirectExecutionSetShaderLayoutInfoEXT\">VkIndirectExecutionSetShaderLayoutInfoEXT</a> structures",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetShaderInfoEXT-pPushConstantRanges-parameter",
+ "text": "If <code>pushConstantRangeCount</code> is not <code>0</code>, <code>pPushConstantRanges</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>pushConstantRangeCount</code> valid <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> structures",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetShaderInfoEXT-shaderCount-arraylength",
+ "text": "<code>shaderCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkIndirectExecutionSetShaderLayoutInfoEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkIndirectExecutionSetShaderLayoutInfoEXT-pSetLayouts-11024",
+ "text": "All members of <code>pSetLayouts</code> <strong class=\"purple\">must</strong> not contain descriptors of type <code>VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC</code> or <code>VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetShaderLayoutInfoEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkIndirectExecutionSetShaderLayoutInfoEXT-pSetLayouts-parameter",
+ "text": "If <code>setLayoutCount</code> is not <code>0</code>, <code>pSetLayouts</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>setLayoutCount</code> valid or <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> handles",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "vkDestroyIndirectExecutionSetEXT": {
+ "core": [
+ {
+ "vuid": "VUID-vkDestroyIndirectExecutionSetEXT-indirectExecutionSet-11025",
+ "text": "All submitted commands that refer to <code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> have completed execution",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkDestroyIndirectExecutionSetEXT-device-parameter",
+ "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkDestroyIndirectExecutionSetEXT-indirectExecutionSet-parameter",
+ "text": "If <code>indirectExecutionSet</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectExecutionSetEXT\">VkIndirectExecutionSetEXT</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkDestroyIndirectExecutionSetEXT-pAllocator-parameter",
+ "text": "If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkDestroyIndirectExecutionSetEXT-indirectExecutionSet-parent",
+ "text": "If <code>indirectExecutionSet</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkWriteIndirectExecutionSetPipelineEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkWriteIndirectExecutionSetPipelineEXT-index-11026",
+ "text": "<code>index</code> <strong class=\"purple\">must</strong> be less than the value of <code>VkIndirectExecutionSetPipelineInfoEXT</code>::<code>maxPipelineCount</code> used to create the set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkWriteIndirectExecutionSetPipelineEXT-pipeline-11027",
+ "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkWriteIndirectExecutionSetPipelineEXT-pipeline-11028",
+ "text": "The descriptor layout info used to create <code>pipeline</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-compatibility\">compatible</a> with the descriptor layout info used to create the indirect execution set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkWriteIndirectExecutionSetPipelineEXT-index-11029",
+ "text": "<code>index</code> <strong class=\"purple\">must</strong> not be referenced by submitted command buffers",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkWriteIndirectExecutionSetPipelineEXT-pipeline-11030",
+ "text": "The shader stages contained in <code>pipeline</code> <strong class=\"purple\">must</strong> be supported by <a href=\"#limits-supportedIndirectCommandsShaderStagesPipelineBinding\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>supportedIndirectCommandsShaderStagesPipelineBinding</code></a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkWriteIndirectExecutionSetPipelineEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkWriteIndirectExecutionSetPipelineEXT-pipeline-parameter",
+ "text": "<code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipeline\">VkPipeline</a> handle",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkWriteIndirectExecutionSetShaderEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkWriteIndirectExecutionSetShaderEXT-index-11031",
+ "text": "<code>index</code> <strong class=\"purple\">must</strong> be less than <code>VkIndirectExecutionSetShaderInfoEXT</code>::<code>maxShaderCount</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkWriteIndirectExecutionSetShaderEXT-shader-11032",
+ "text": "<code>shader</code> <strong class=\"purple\">must</strong> have been created with <code>VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkWriteIndirectExecutionSetShaderEXT-pInitialShaders-11033",
+ "text": "A shader created with the same <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> <strong class=\"purple\">must</strong> have been passed in the <code>VkIndirectExecutionSetShaderInfoEXT</code>::<code>pInitialShaders</code> array",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkWriteIndirectExecutionSetShaderEXT-index-11034",
+ "text": "<code>index</code> <strong class=\"purple\">must</strong> not be in use by submitted command buffers",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkWriteIndirectExecutionSetShaderEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkWriteIndirectExecutionSetShaderEXT-shader-parameter",
+ "text": "<code>shader</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShaderEXT\">VkShaderEXT</a> handle",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "vkUpdateIndirectExecutionSetPipelineEXT": {
+ "core": [
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-indirectExecutionSet-11035",
+ "text": "<code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> have been created with type <code>VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-executionSetWriteCount-11037",
+ "text": "<code>executionSetWriteCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkIndirectExecutionSetPipelineInfoEXT</code>::<code>maxPipelineCount</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-pExecutionSetWrites-11042",
+ "text": "Each element in the <code>pExecutionSetWrites</code> array must have a unique <code>VkWriteIndirectExecutionSetPipelineEXT</code>::<code>index</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-None-11038",
+ "text": "Each member of the Indirect Execution Set referenced by the update command <strong class=\"purple\">must</strong> not be in use by the device",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-None-11039",
+ "text": "The layout of each pipeline in <code>pExecutionSetWrites</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-compatibility\">compatible</a> with the <code>initialPipeline</code> used to create the Indirect Execution Set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-None-11040",
+ "text": "Each pipeline in the Indirect Execution Set <strong class=\"purple\">must</strong> have identically defined static and dynamic state values to the <code>initialPipeline</code> used to create the Indirect Execution Set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11147",
+ "text": "Each pipeline in the Indirect Execution Set <strong class=\"purple\">must</strong> have identically defined <a href=\"#interfaces-fragmentoutput\">fragment outputs interface</a> to the <code>initialPipeline</code> used to create the Indirect Execution Set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11152",
+ "text": "Each pipeline in the Indirect Execution Set <strong class=\"purple\">must</strong> match the <code>initialPipeline</code> used to create the Indirect Execution Set in its included shader stages",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11098",
+ "text": "Each pipeline in the Indirect Execution Set <strong class=\"purple\">must</strong> match the <code>initialPipeline</code> used to create the Indirect Execution Set in its use of <code>FragDepth</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11086",
+ "text": "Each pipeline in the Indirect Execution Set <strong class=\"purple\">must</strong> match the <code>initialPipeline</code> used to create the Indirect Execution Set in its use of <code>SampleMask</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-initialPipeline-11085",
+ "text": "Each pipeline in the Indirect Execution Set <strong class=\"purple\">must</strong> match the <code>initialPipeline</code> used to create the Indirect Execution Set in its use of <code>StencilExportEXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-device-parameter",
+ "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-indirectExecutionSet-parameter",
+ "text": "<code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectExecutionSetEXT\">VkIndirectExecutionSetEXT</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-pExecutionSetWrites-parameter",
+ "text": "<code>pExecutionSetWrites</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>executionSetWriteCount</code> valid <a href=\"#VkWriteIndirectExecutionSetPipelineEXT\">VkWriteIndirectExecutionSetPipelineEXT</a> structures",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-executionSetWriteCount-arraylength",
+ "text": "<code>executionSetWriteCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetPipelineEXT-indirectExecutionSet-parent",
+ "text": "<code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "vkUpdateIndirectExecutionSetShaderEXT": {
+ "core": [
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetShaderEXT-indirectExecutionSet-11041",
+ "text": "<code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> have been created with type <code>VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetShaderEXT-pExecutionSetWrites-11043",
+ "text": "Each element in the <code>pExecutionSetWrites</code> array must have a unique <code>VkWriteIndirectExecutionSetShaderEXT</code>::<code>index</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetShaderEXT-None-11044",
+ "text": "Each member of the Indirect Execution Set referenced by the update command <strong class=\"purple\">must</strong> not be in use by the device",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetShaderEXT-pExecutionSetWrites-11140",
+ "text": "The descriptor layout of each shader in <code>pExecutionSetWrites</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-compatibility\">compatible</a> with the initial layout info used to create the Indirect Execution Set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetShaderEXT-None-11148",
+ "text": "Each fragment shader element in the Indirect Execution Set <strong class=\"purple\">must</strong> have identically defined <a href=\"#interfaces-fragmentoutput\">fragment outputs interface</a> to the initial shader state used to create the Indirect Execution Set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetShaderEXT-FragDepth-11054",
+ "text": "Each fragment shader element in the Indirect Execution Set <strong class=\"purple\">must</strong> match the initial shader state used to create the Indirect Execution Set in its use of <code>FragDepth</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetShaderEXT-SampleMask-11050",
+ "text": "Each fragment shader element in the Indirect Execution Set <strong class=\"purple\">must</strong> match the initial shader state used to create the Indirect Execution Set in its use of <code>SampleMask</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetShaderEXT-StencilExportEXT-11003",
+ "text": "Each fragment shader element in the Indirect Execution Set <strong class=\"purple\">must</strong> match the initial shader state used to create the Indirect Execution Set in its use of <code>StencilExportEXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetShaderEXT-device-parameter",
+ "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetShaderEXT-indirectExecutionSet-parameter",
+ "text": "<code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectExecutionSetEXT\">VkIndirectExecutionSetEXT</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetShaderEXT-pExecutionSetWrites-parameter",
+ "text": "<code>pExecutionSetWrites</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>executionSetWriteCount</code> valid <a href=\"#VkWriteIndirectExecutionSetShaderEXT\">VkWriteIndirectExecutionSetShaderEXT</a> structures",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetShaderEXT-executionSetWriteCount-arraylength",
+ "text": "<code>executionSetWriteCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkUpdateIndirectExecutionSetShaderEXT-indirectExecutionSet-parent",
+ "text": "<code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
"vkCmdExecuteGeneratedCommandsNV": {
"core": [
{
@@ -78087,17 +79099,12 @@
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04138",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09232",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08636",
- "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -78106,23 +79113,18 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04140",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09233",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09234",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08637",
- "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
"page": "vkspec"
},
{
@@ -78636,6 +79638,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07640",
"text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
@@ -78767,12 +79774,12 @@
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07482",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07483",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -78797,17 +79804,17 @@
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07936",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07937",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07938",
- "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
"page": "vkspec"
},
{
@@ -79042,7 +80049,7 @@
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04913",
- "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+ "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
"page": "vkspec"
},
{
@@ -79077,7 +80084,7 @@
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04875",
- "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the current command buffer set <code>primitiveTopology</code> to <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "text": "If there is a shader object bound to the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
"page": "vkspec"
},
{
@@ -79385,6 +80392,1863 @@
}
]
},
+ "vkCmdExecuteGeneratedCommandsEXT": {
+ "core": [
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-magFilter-04553",
+ "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code>, <code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code>, and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;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>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-magFilter-09598",
+ "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>magFilter</code> or <code>minFilter</code> equal to <code>VK_FILTER_LINEAR</code> and <code>reductionMode</code> equal to either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-mipmapMode-04770",
+ "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code>, <code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE</code>, and <code>compareEnable</code> equal to <code>VK_FALSE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;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>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-mipmapMode-09599",
+ "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>mipmapMode</code> equal to <code>VK_SAMPLER_MIPMAP_MODE_LINEAR</code> and <code>reductionMode</code> equal to either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-unnormalizedCoordinates-09635",
+ "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>unnormalizedCoordinates</code> equal to <code>VK_TRUE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <code>levelCount</code> and <code>layerCount</code> <strong class=\"purple\">must</strong> be 1",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-unnormalizedCoordinates-09636",
+ "text": "If a <a href=\"#VkSampler\">VkSampler</a> created with <code>unnormalizedCoordinates</code> equal to <code>VK_TRUE</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_VIEW_TYPE_1D</code> or <code>VK_IMAGE_VIEW_TYPE_2D</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-06479",
+ "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-02691",
+ "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed using atomic operations as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07888",
+ "text": "If a <code>VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER</code> descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer&#8217;s <a href=\"#resources-buffer-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-02692",
+ "text": "If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, then the image view&#8217;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_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-02693",
+ "text": "If the <a href=\"#VK_EXT_filter_cubic\">VK_EXT_filter_cubic</a> extension is not enabled and any <a href=\"#VkImageView\">VkImageView</a> is sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command, it <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>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-filterCubic-02694",
+ "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubic</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-filterCubicMinmax-02695",
+ "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> with a reduction mode of either <code>VK_SAMPLER_REDUCTION_MODE_MIN</code> or <code>VK_SAMPLER_REDUCTION_MODE_MAX</code> as a result of this command <strong class=\"purple\">must</strong> have a <a href=\"#VkImageViewType\">VkImageViewType</a> and format that supports cubic filtering together with minmax filtering, as specified by <a href=\"#VkFilterCubicImageViewImageFormatPropertiesEXT\">VkFilterCubicImageViewImageFormatPropertiesEXT</a>::<code>filterCubicMinmax</code> returned by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-cubicRangeClamp-09212",
+ "text": "If the <a href=\"#features-filter-cubic-range-clamp\"><code>cubicRangeClamp</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> not have a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-reductionMode-09213",
+ "text": "Any <a href=\"#VkImageView\">VkImageView</a> being sampled with a <a href=\"#VkSamplerReductionModeCreateInfo\">VkSamplerReductionModeCreateInfo</a>::<code>reductionMode</code> equal to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM</code> as a result of this command <strong class=\"purple\">must</strong> sample with <code>VK_FILTER_CUBIC_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-selectableCubicWeights-09214",
+ "text": "If the <a href=\"#features-filter-cubic-weight-selection\"><code>selectableCubicWeights</code></a> feature is not enabled, then any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_EXT</code> as a result of this command <strong class=\"purple\">must</strong> have <a href=\"#VkSamplerCubicWeightsCreateInfoQCOM\">VkSamplerCubicWeightsCreateInfoQCOM</a>::<code>cubicWeights</code> equal to <code>VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-flags-02696",
+ "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>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpTypeImage-07027",
+ "text": "For any <a href=\"#VkImageView\">VkImageView</a> being written as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpTypeImage-07028",
+ "text": "For any <a href=\"#VkImageView\">VkImageView</a> being read as a storage image where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpTypeImage-07029",
+ "text": "For any <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code>, the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpTypeImage-07030",
+ "text": "Any <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> then the view&#8217;s <a href=\"#VkFormatProperties3\">buffer features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08600",
+ "text": "For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08601",
+ "text": "For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-10068",
+ "text": "For each array of resources that is used by <a href=\"#shaders-binding\">a bound shader</a>, the indices used to access members of the array <strong class=\"purple\">must</strong> be less than the descriptor count for the identified binding in the descriptor sets used by this command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-maintenance4-08602",
+ "text": "If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or the <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkShaderEXT\">VkShaderEXT</a> , as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08114",
+ "text": "Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was not created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08115",
+ "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created without <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08116",
+ "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command and the bound <a href=\"#VkPipeline\">VkPipeline</a> was created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08604",
+ "text": "Descriptors in bound descriptor buffers, specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, <strong class=\"purple\">must</strong> be valid if they are dynamically used by any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08117",
+ "text": "If the descriptors used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point were specified via <a href=\"#vkCmdSetDescriptorBufferOffsetsEXT\">vkCmdSetDescriptorBufferOffsetsEXT</a>, the bound <a href=\"#VkPipeline\">VkPipeline</a> <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08119",
+ "text": "If a descriptor is dynamically used with a <a href=\"#VkPipeline\">VkPipeline</a> created with <code>VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08605",
+ "text": "If a descriptor is dynamically used with a <a href=\"#VkShaderEXT\">VkShaderEXT</a> created with a <code>VkDescriptorSetLayout</code> that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT</code>, the descriptor memory <strong class=\"purple\">must</strong> be resident",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08606",
+ "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08608",
+ "text": "If a pipeline is bound to the pipeline bind point used by this command, there <strong class=\"purple\">must</strong> not have been any calls to dynamic state setting commands for any state specified statically in the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command, since that pipeline was bound",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08609",
+ "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <strong class=\"purple\">must</strong> not be used to sample from any <a href=\"#VkImage\">VkImage</a> with a <a href=\"#VkImageView\">VkImageView</a> 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",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08610",
+ "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <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",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08611",
+ "text": "If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> object that uses unnormalized coordinates, that sampler <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",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08607",
+ "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> is enabled, either a valid pipeline <strong class=\"purple\">must</strong> be bound to the pipeline bind point used by this command, or a valid combination of valid and <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> shader objects <strong class=\"purple\">must</strong> be bound to every supported shader stage corresponding to the pipeline bind point used by this command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-uniformBuffers-06935",
+ "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>uniformBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08612",
+ "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-storageBuffers-06936",
+ "text": "If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08613",
+ "text": "If the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, and any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-02707",
+ "text": "If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-06550",
+ "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-ConstOffset-06551",
+ "text": "If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler Y′C<sub>B</sub>C<sub>R</sub> conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-viewType-07752",
+ "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the image view&#8217;s <code>viewType</code> <strong class=\"purple\">must</strong> match the <code>Dim</code> operand of the <code>OpTypeImage</code> as described in <a href=\"#spirvenv-image-dimensions\">Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-format-07753",
+ "text": "If a <a href=\"#VkImageView\">VkImageView</a> is accessed as a result of this command, then the <a href=\"#formats-numericformat\">numeric type</a> of the image view&#8217;s <code>format</code> and the <code>Sampled</code> <code>Type</code> operand of the <code>OpTypeImage</code> <strong class=\"purple\">must</strong> match",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageWrite-08795",
+ "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with a format other than <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the image view&#8217;s format",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageWrite-08796",
+ "text": "If a <a href=\"#VkImageView\">VkImageView</a> created with the format <code>VK_FORMAT_A8_UNORM_KHR</code> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have four components",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageWrite-04469",
+ "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> is accessed using <code>OpImageWrite</code> as a result of this command, then the <code>Type</code> of the <code>Texel</code> operand of that instruction <strong class=\"purple\">must</strong> have at least as many components as the buffer view&#8217;s format",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-SampledType-04470",
+ "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-SampledType-04471",
+ "text": "If a <a href=\"#VkImageView\">VkImageView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-SampledType-04472",
+ "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a 64-bit component width is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 64",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-SampledType-04473",
+ "text": "If a <a href=\"#VkBufferView\">VkBufferView</a> with a <a href=\"#VkFormat\">VkFormat</a> that has a component width less than 64-bit is accessed as a result of this command, the <code>SampledType</code> of the <code>OpTypeImage</code> operand of that instruction <strong class=\"purple\">must</strong> have a <code>Width</code> of 32",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-sparseImageInt64Atomics-04474",
+ "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkImage\">VkImage</a> objects created with the <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-sparseImageInt64Atomics-04475",
+ "text": "If the <a href=\"#features-sparseImageInt64Atomics\"><code>sparseImageInt64Atomics</code></a> feature is not enabled, <a href=\"#VkBuffer\">VkBuffer</a> objects created with the <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> flag <strong class=\"purple\">must</strong> not be accessed by atomic instructions through an <code>OpTypeImage</code> with a <code>SampledType</code> with a <code>Width</code> of 64 by this command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageWeightedSampleQCOM-06971",
+ "text": "If <code>OpImageWeightedSampleQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageWeightedSampleQCOM-06972",
+ "text": "If <code>OpImageWeightedSampleQCOM</code> uses a <a href=\"#VkImageView\">VkImageView</a> as a sample weight image as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageBoxFilterQCOM-06973",
+ "text": "If <code>OpImageBoxFilterQCOM</code> is used to sample a <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchSSDQCOM-06974",
+ "text": "If <code>OpImageBlockMatchSSDQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchSADQCOM-06975",
+ "text": "If <code>OpImageBlockMatchSADQCOM</code> is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchSADQCOM-06976",
+ "text": "If <code>OpImageBlockMatchSADQCOM</code> or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageWeightedSampleQCOM-06977",
+ "text": "If <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageWeightedSampleQCOM-06978",
+ "text": "If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchWindowSSDQCOM</code>, <code>OpImageBlockMatchWindowSADQCOM</code>, <code>OpImageBlockMatchGatherSSDQCOM</code>, <code>OpImageBlockMatchGatherSADQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchWindow-09215",
+ "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchWindow-09216",
+ "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> instruction is used to read from an <a href=\"#VkImageView\">VkImageView</a> as a result of this command, then the image view&#8217;s format <strong class=\"purple\">must</strong> be a single-component format",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpImageBlockMatchWindow-09217",
+ "text": "If a <code>OpImageBlockMatchWindow*QCOM</code> or <code>OpImageBlockMatchGather*QCOM</code> read from a reference image as result of this command, then the specified reference coordinates <strong class=\"purple\">must</strong> not fail <a href=\"#textures-integer-coordinate-validation\">integer texel coordinate validation</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07288",
+ "text": "Any shader invocation executed by this command <strong class=\"purple\">must</strong> <a href=\"#shaders-termination\">terminate</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09600",
+ "text": "If a descriptor with type equal to any of <code>VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM</code>, <code>VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM</code>, <code>VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE</code>, <code>VK_DESCRIPTOR_TYPE_STORAGE_IMAGE</code>, or <code>VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT</code> is accessed as a result of this command, the image subresource identified by that descriptor <strong class=\"purple\">must</strong> be in the image layout identified when the descriptor was written",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-renderPass-02684",
+ "text": "The current render pass <strong class=\"purple\">must</strong> be <a href=\"#renderpass-compatibility\">compatible</a> with the <code>renderPass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-subpass-02685",
+ "text": "The subpass index of the current render pass <strong class=\"purple\">must</strong> be equal to the <code>subpass</code> member of the <code>VkGraphicsPipelineCreateInfo</code> structure specified when creating the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07748",
+ "text": "If any shader statically accesses an input attachment, a valid descriptor <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpTypeImage-07468",
+ "text": "If any shader executed by this pipeline accesses an <code>OpTypeImage</code> variable with a <code>Dim</code> operand of <code>SubpassData</code>, it <strong class=\"purple\">must</strong> be decorated with an <code>InputAttachmentIndex</code> that corresponds to a valid input attachment in the current subpass",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07469",
+ "text": "Input attachment views accessed in a subpass <strong class=\"purple\">must</strong> be created with the same <a href=\"#VkFormat\">VkFormat</a> as the corresponding subpass definition, and be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the attachment referenced by the subpass' <code>pInputAttachments</code>[<code>InputAttachmentIndex</code>] in the currently bound <a href=\"#VkFramebuffer\">VkFramebuffer</a> as specified by <a href=\"#compatibility-inputattachment\">Fragment Input Attachment Compatibility</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pDepthInputAttachmentIndex-09595",
+ "text": "Input attachment views accessed in a dynamic render pass with a <code>InputAttachmentIndex</code> referenced by <a href=\"#VkRenderingInputAttachmentIndexInfoKHR\">VkRenderingInputAttachmentIndexInfoKHR</a>, or no <code>InputAttachmentIndex</code> if <a href=\"#VkRenderingInputAttachmentIndexInfoKHR\">VkRenderingInputAttachmentIndexInfoKHR</a>:<code>pDepthInputAttachmentIndex</code> or <a href=\"#VkRenderingInputAttachmentIndexInfoKHR\">VkRenderingInputAttachmentIndexInfoKHR</a>:<code>pStencilInputAttachmentIndex</code> are <code>NULL</code>, <strong class=\"purple\">must</strong> be created with a <a href=\"#VkImageView\">VkImageView</a> that is compatible with the corresponding color, depth, or stencil attachment in <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pDepthInputAttachmentIndex-09596",
+ "text": "Input attachment views accessed in a dynamic render pass via a shader object <strong class=\"purple\">must</strong> have an <code>InputAttachmentIndex</code> if both <a href=\"#VkRenderingInputAttachmentIndexInfoKHR\">VkRenderingInputAttachmentIndexInfoKHR</a>:<code>pDepthInputAttachmentIndex</code> and <a href=\"#VkRenderingInputAttachmentIndexInfoKHR\">VkRenderingInputAttachmentIndexInfoKHR</a>:<code>pStencilInputAttachmentIndex</code> are non-<code>NULL</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-InputAttachmentIndex-09597",
+ "text": "If an input attachment view accessed in a dynamic render pass via a shader object has an <code>InputAttachmentIndex</code>, the <code>InputAttachmentIndex</code> <strong class=\"purple\">must</strong> match an index in <a href=\"#VkRenderingInputAttachmentIndexInfoKHR\">VkRenderingInputAttachmentIndexInfoKHR</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-06537",
+ "text": "Memory backing image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be written in any way other than as an attachment by this command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09000",
+ "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe <code>VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code> is\nset on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_COLOR_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n<code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code></p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</div>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09001",
+ "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n<code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code></p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</div>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09002",
+ "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the <code>VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT</code> image layout, and either:<div class=\"ulist\">\n<ul>\n<li>\n<p>\nthe\n<code>VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT</code>\nis set on the currently bound pipeline\nor</p>\n</li>\n<li>\n<p>the last call to <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> included\n<code>VK_IMAGE_ASPECT_STENCIL_BIT</code> and</p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>there is no currently bound graphics pipeline or</p>\n</li>\n<li>\n<p>the currently bound graphics pipeline was created with\n<code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code></p>\n</li>\n</ul>\n</div>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this\ncommand</p>\n</div>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09003",
+ "text": "If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment, storage image, or sampled image by this command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-06539",
+ "text": "If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command <strong class=\"purple\">must</strong> not write to that image subresource as an attachment",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-06886",
+ "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, <a href=\"#fragops-depth-write\">depth writes</a> <strong class=\"purple\">must</strong> be disabled",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-06887",
+ "text": "If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back <code>writeMask</code> are not zero, and stencil test is enabled, <a href=\"#fragops-stencil\">all stencil ops</a> <strong class=\"purple\">must</strong> be <code>VK_STENCIL_OP_KEEP</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07831",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT</code> dynamic state enabled then <a href=\"#vkCmdSetViewport\">vkCmdSetViewport</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07832",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR</code> dynamic state enabled then <a href=\"#vkCmdSetScissor\">vkCmdSetScissor</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07833",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_WIDTH</code> dynamic state enabled then <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08617",
+ "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08618",
+ "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08619",
+ "text": "If a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetLineWidth\">vkCmdSetLineWidth</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07834",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthBiasEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> or <a href=\"#vkCmdSetDepthBias2EXT\">vkCmdSetDepthBias2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07835",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_BLEND_CONSTANTS</code> dynamic state enabled then <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08621",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> in the current command buffer set any element of <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> in the current command buffer set the same element of <code>pColorBlendEquations</code> to a <code>VkColorBlendEquationEXT</code> structure with any <a href=\"#VkBlendFactor\">VkBlendFactor</a> member with a value of <code>VK_BLEND_FACTOR_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR</code>, <code>VK_BLEND_FACTOR_CONSTANT_ALPHA</code>, or <code>VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA</code>, <a href=\"#vkCmdSetBlendConstants\">vkCmdSetBlendConstants</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07836",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthBoundsTestEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07837",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>stencilTestEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07838",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>stencilTestEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07839",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of and <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>stencilTestEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-maxMultiviewInstanceIndex-02688",
+ "text": "If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>::<code>maxMultiviewInstanceIndex</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-02689",
+ "text": "If the bound graphics pipeline was created with <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> set to <code>VK_TRUE</code> and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-06666",
+ "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07840",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_CULL_MODE</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCullMode\">vkCmdSetCullMode</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07841",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_FRONT_FACE</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFrontFace\">vkCmdSetFrontFace</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07843",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, <a href=\"#vkCmdSetDepthTestEnable\">vkCmdSetDepthTestEnable</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07844",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07845",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_COMPARE_OP</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthTestEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthCompareOp\">vkCmdSetDepthCompareOp</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07846",
+ "text": "If the <a href=\"#features-depthBounds\"><code>depthBounds</code></a> feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBoundsTestEnable\">vkCmdSetDepthBoundsTestEnable</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07847",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetStencilTestEnable\">vkCmdSetStencilTestEnable</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07848",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_STENCIL_OP</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>stencilTestEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilOp\">vkCmdSetStencilOp</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-viewportCount-03417",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>scissorCount</code> of the pipeline",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-scissorCount-03418",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, then <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code> <strong class=\"purple\">must</strong> match the <code>VkPipelineViewportStateCreateInfo</code>::<code>viewportCount</code> of the pipeline",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-viewportCount-03419",
+ "text": "If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08635",
+ "text": "If a shader object is bound to any graphics stage, then both <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> and <a href=\"#vkCmdSetScissorWithCount\">vkCmdSetScissorWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCount</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-viewportCount-04137",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-viewportCount-04138",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08636",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-viewportCount-04139",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportShadingRateImageStateCreateInfoNV\">VkPipelineViewportShadingRateImageStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-shadingRateImage-09233",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-shadingRateImage-09234",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08637",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-VkPipelineVieportCreateInfo-04141",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-VkPipelineVieportCreateInfo-04142",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled and a <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a> structure chained from <a href=\"#VkPipelineViewportStateCreateInfo\">VkPipelineViewportStateCreateInfo</a>, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportExclusiveScissorStateCreateInfoNV\">VkPipelineViewportExclusiveScissorStateCreateInfoNV</a>::<code>exclusiveScissorCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07878",
+ "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07879",
+ "text": "If the <a href=\"#features-exclusiveScissor\"><code>exclusiveScissor</code></a> feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled, and the most recent call to <a href=\"#vkCmdSetExclusiveScissorEnableNV\">vkCmdSetExclusiveScissorEnableNV</a> in the current command buffer set any element of <code>pExclusiveScissorEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetExclusiveScissorNV\">vkCmdSetExclusiveScissorNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-04876",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-04877",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthBiasEnable\">vkCmdSetDepthBiasEnable</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-logicOp-04878",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>logicOpEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-primitiveFragmentShadingRateWithMultipleViewports-04552",
+ "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-primitiveFragmentShadingRateWithMultipleViewports-08642",
+ "text": "If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, and any shader object bound to a graphics stage writes to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCount</code> <strong class=\"purple\">must</strong> be <code>1</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-blendEnable-04727",
+ "text": "If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the <code>blendEnable</code> member of the corresponding element of the <code>pAttachments</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08643",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then for each color attachment in the render pass, if the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> do not contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>, then the corresponding member of <code>pColorBlendEnables</code> in the most recent call to <code>vkCmdSetColorBlendEnableEXT</code> in the current command buffer that affected that attachment index <strong class=\"purple\">must</strong> have been <code>VK_FALSE</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-multisampledRenderToSingleSampled-07284",
+ "text": "If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then <code>rasterizationSamples</code> for the currently bound graphics pipeline\n<strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil\nattachments</p>\n</div>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08644",
+ "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and none of the following is enabled:<div class=\"ulist\">\n<ul>\n<li>\n<p>the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension</p>\n</li>\n<li>\n<p>the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p>then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the\ncurrent command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the\nsame as the number of samples for the current render pass color and/or\ndepth/stencil attachments</p>\n</div>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08876",
+ "text": "If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-imageView-06172",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-imageView-06173",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-imageView-06174",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-imageView-06175",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-imageView-06176",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pDepthAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pDepthAttachment</code> is <code>VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the depth attachment",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-imageView-06177",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <code>imageView</code> member of <code>pStencilAttachment</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>layout</code> member of <code>pStencilAttachment</code> is <code>VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL</code>, this command <strong class=\"purple\">must</strong> not write any values to the stencil attachment",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-viewMask-06178",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>viewMask</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-colorAttachmentCount-06179",
+ "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> equal to <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08910",
+ "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with an <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08912",
+ "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with an <code>imageView</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound pipeline equal to <code>VK_FORMAT_UNDEFINED</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08911",
+ "text": "If the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with an <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkFormat\">VkFormat</a> equal to the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the currently bound graphics pipeline, or the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code>, if it exists, <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-colorAttachmentCount-09362",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09363",
+ "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09364",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09365",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09366",
+ "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizationSamples-09367",
+ "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09368",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09369",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pFragmentSize-09370",
+ "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;width</code> to <code>1</code> prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pFragmentSize-09371",
+ "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize-&gt;height</code> to <code>1</code> prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07749",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08646",
+ "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-attachmentCount-07750",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then the <code>attachmentCount</code> parameter of <code>vkCmdSetColorWriteEnableEXT</code> <strong class=\"purple\">must</strong> be greater than or equal to the <code>VkPipelineColorBlendStateCreateInfo</code>::<code>attachmentCount</code> of the currently bound graphics pipeline",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08647",
+ "text": "If the <a href=\"#features-colorWriteEnable\"><code>colorWriteEnable</code></a> feature is enabled on the device, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then the <code>attachmentCount</code> parameter of most recent call to <code>vkCmdSetColorWriteEnableEXT</code> in the current command buffer <strong class=\"purple\">must</strong> be greater than or equal to the number of color attachments in the current render pass instance",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07751",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command for each discard rectangle in <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>::<code>discardRectangleCount</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07880",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09236",
+ "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleEXT\">vkCmdSetDiscardRectangleEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08648",
+ "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07881",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08649",
+ "text": "If the <code><a href=\"#VK_EXT_discard_rectangles\">VK_EXT_discard_rectangles</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetDiscardRectangleEnableEXT\">vkCmdSetDiscardRectangleEnableEXT</a> in the current command buffer set <code>discardRectangleEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDiscardRectangleModeEXT\">vkCmdSetDiscardRectangleModeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08913",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08914",
+ "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08915",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08916",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <code>VK_FORMAT_UNDEFINED</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08917",
+ "text": "If current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-dynamicRenderingUnusedAttachments-08918",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the <a href=\"#features-dynamicRenderingUnusedAttachments\"><code>dynamicRenderingUnusedAttachments</code></a> feature is enabled, <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the value of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the currently bound graphics pipeline was not equal to the <a href=\"#VkFormat\">VkFormat</a> used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>, the value of the format <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-imageView-06183",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-imageView-06184",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-colorAttachmentCount-06185",
+ "text": "If the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the corresponding element of the <code>pColorAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pDepthAttachment-06186",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pStencilAttachment-06187",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline was created with a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of the <code>depthStencilAttachmentSamples</code> member of <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> used to create the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-multisampledRenderToSingleSampled-07285",
+ "text": "If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> parameter greater than <code>0</code>, then each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with a sample count equal to the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-multisampledRenderToSingleSampled-07286",
+ "text": "If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-multisampledRenderToSingleSampled-07287",
+ "text": "If the currently bound pipeline was created without a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, and the <a href=\"#features-multisampledRenderToSingleSampled\"><code>multisampledRenderToSingleSampled</code></a> feature is not enabled, and <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to the sample count used to create <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pNext-07935",
+ "text": "If this command has been called inside a render pass instance started with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and the <code>pNext</code> chain of <a href=\"#VkRenderingInfo\">VkRenderingInfo</a> includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the value of <code>rasterizationSamples</code> for the currently bound graphics pipeline <strong class=\"purple\">must</strong> be equal to <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a>::<code>rasterizationSamples</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-renderPass-06198",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pColorAttachments-08963",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the corresponding element of <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>pColorAttachmentFormats</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pDepthAttachment-08964",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pDepthAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>depthAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pStencilAttachment-08965",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is a graphics pipeline bound, stencil test is enabled and the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pStencilAttachment-&gt;imageView</code> was not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, then the <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>stencilAttachmentFormat</code> used to create the pipeline <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708",
+ "text": "If the <a href=\"#features-primitivesGeneratedQueryWithRasterizerDiscard\"><code>primitivesGeneratedQueryWithRasterizerDiscard</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, <a href=\"#primsrast-discard\">rasterization discard</a> <strong class=\"purple\">must</strong> not be enabled",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-primitivesGeneratedQueryWithNonZeroStreams-06709",
+ "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, the bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with a non-zero value in <code>VkPipelineRasterizationStateStreamCreateInfoEXT</code>::<code>rasterizationStream</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07619",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetTessellationDomainOriginEXT\">vkCmdSetTessellationDomainOriginEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07620",
+ "text": "If the <a href=\"#features-depthClamp\"><code>depthClamp</code></a> feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetDepthClampEnableEXT\">vkCmdSetDepthClampEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07621",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_POLYGON_MODE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07622",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07623",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-alphaToCoverageEnable-08919",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and <code>alphaToCoverageEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-alphaToCoverageEnable-08920",
+ "text": "If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> in the current command buffer set <code>alphaToCoverageEnable</code> to <code>VK_TRUE</code>, then the <a href=\"#interfaces-fragmentoutput\">Fragment Output Interface</a> <strong class=\"purple\">must</strong> contain a variable for the alpha <code>Component</code> word in <code>Location</code> 0 at <code>Index</code> 0",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07624",
+ "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToCoverageEnableEXT\">vkCmdSetAlphaToCoverageEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07625",
+ "text": "If the <a href=\"#features-alphaToOne\"><code>alphaToOne</code></a> feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAlphaToOneEnableEXT\">vkCmdSetAlphaToOneEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07626",
+ "text": "If the <a href=\"#features-logicOp\"><code>logicOp</code></a> feature is enabled, a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLogicOpEnableEXT\">vkCmdSetLogicOpEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07627",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08657",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and both the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code> and there are color attachments bound, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07628",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08658",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> for any attachment set that attachment&#8217;s value in <code>pColorBlendEnables</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07629",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08659",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and both the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code> and there are color attachments bound, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07630",
+ "text": "If the <a href=\"#features-geometryStreams\"><code>geometryStreams</code></a> feature is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07631",
+ "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07632",
+ "text": "If the <code><a href=\"#VK_EXT_conservative_rasterization\">VK_EXT_conservative_rasterization</a></code> extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>conservativeRasterizationMode</code> is <code>VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT</code>, then <a href=\"#vkCmdSetExtraPrimitiveOverestimationSizeEXT\">vkCmdSetExtraPrimitiveOverestimationSizeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07633",
+ "text": "If the <a href=\"#features-depthClipEnable\"><code>depthClipEnable</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT</code> dynamic state, then <a href=\"#vkCmdSetDepthClipEnableEXT\">vkCmdSetDepthClipEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07634",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08664",
+ "text": "If the <code><a href=\"#VK_EXT_sample_locations\">VK_EXT_sample_locations</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07635",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09416",
+ "text": "If the <code><a href=\"#VK_EXT_blend_operation_advanced\">VK_EXT_blend_operation_advanced</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then at least one of <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07636",
+ "text": "If the <code><a href=\"#VK_EXT_provoking_vertex\">VK_EXT_provoking_vertex</a></code> extension is enabled, a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetProvokingVertexModeEXT\">vkCmdSetProvokingVertexModeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07637",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08666",
+ "text": "If the <code><a href=\"#VK_KHR_line_rasterization\">VK_KHR_line_rasterization</a></code> or <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08667",
+ "text": "If the <code><a href=\"#VK_KHR_line_rasterization\">VK_KHR_line_rasterization</a></code> or <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08668",
+ "text": "If the <code><a href=\"#VK_KHR_line_rasterization\">VK_KHR_line_rasterization</a></code> or <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineRasterizationModeEXT\">vkCmdSetLineRasterizationModeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07638",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08669",
+ "text": "If the <code><a href=\"#VK_KHR_line_rasterization\">VK_KHR_line_rasterization</a></code> or <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPolygonModeEXT\">vkCmdSetPolygonModeEXT</a> in the current command buffer set <code>polygonMode</code> to <code>VK_POLYGON_MODE_LINE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08670",
+ "text": "If the <code><a href=\"#VK_KHR_line_rasterization\">VK_KHR_line_rasterization</a></code> or <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> in the current command buffer set <code>primitiveTopology</code> to any line topology, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08671",
+ "text": "If the <code><a href=\"#VK_KHR_line_rasterization\">VK_KHR_line_rasterization</a></code> or <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object that outputs line primitives is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07849",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_KHR</code> dynamic state enabled then <a href=\"#vkCmdSetLineStippleKHR\">vkCmdSetLineStippleKHR</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08672",
+ "text": "If the <code><a href=\"#VK_KHR_line_rasterization\">VK_KHR_line_rasterization</a></code> or <code><a href=\"#VK_EXT_line_rasterization\">VK_EXT_line_rasterization</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetLineStippleEnableEXT\">vkCmdSetLineStippleEnableEXT</a> in the current command buffer set <code>stippledLineEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetLineStippleEXT\">vkCmdSetLineStippleEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07639",
+ "text": "If the <a href=\"#features-depthClipControl\"><code>depthClipControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetDepthClipNegativeOneToOneEXT\">vkCmdSetDepthClipNegativeOneToOneEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09650",
+ "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07640",
+ "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07641",
+ "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07642",
+ "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07643",
+ "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>coverageToColorEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07644",
+ "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageModulationModeNV\">vkCmdSetCoverageModulationModeNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07645",
+ "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>coverageModulationMode</code> is any value other than <code>VK_COVERAGE_MODULATION_MODE_NONE_NV</code>, then <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07646",
+ "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>coverageModulationTableEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07647",
+ "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pipelineFragmentShadingRate-09238",
+ "text": "If the <a href=\"#features-pipelineFragmentShadingRate\"><code>pipelineFragmentShadingRate</code></a> feature is enabled, a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07648",
+ "text": "If the <a href=\"#features-representativeFragmentTest\"><code>representativeFragmentTest</code></a> feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetRepresentativeFragmentTestEnableNV\">vkCmdSetRepresentativeFragmentTestEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07649",
+ "text": "If the <a href=\"#features-coverageReductionMode\"><code>coverageReductionMode</code></a> feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoverageReductionModeNV\">vkCmdSetCoverageReductionModeNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pColorBlendEnables-07470",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> state enabled and the last call to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> set <code>pColorBlendEnables</code> for any attachment to <code>VK_TRUE</code>, then for those attachments in the subpass the corresponding image view&#8217;s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizationSamples-07471",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> follow the rules for a <a href=\"#renderpass-noattachments\">zero-attachment subpass</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-samples-07472",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> parameter used to create the bound graphics pipeline",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-samples-07473",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_MASK_EXT</code> state and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, then the <code>samples</code> parameter in the last call to <a href=\"#vkCmdSetSampleMaskEXT\">vkCmdSetSampleMaskEXT</a> <strong class=\"purple\">must</strong> be greater or equal to the <code>rasterizationSamples</code> parameter in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizationSamples-07474",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the current subpass color and/or depth/stencil attachments",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09211",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>, then the <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> be the same as the <code>rasterizationSamples</code> member of that structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-firstAttachment-07476",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09417",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEnableEXT</code> calls <strong class=\"purple\">must</strong> specify an enable for all active color attachments in the current subpass",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-firstAttachment-07477",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09418",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and both the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code> and there are color attachments bound, then <a href=\"#vkCmdSetColorBlendEquationEXT\">vkCmdSetColorBlendEquationEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendEquationEXT</code> calls <strong class=\"purple\">must</strong> specify the blend equations for all active color attachments in the current subpass where blending is enabled",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-firstAttachment-07478",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09419",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorWriteMaskEXT</code> calls <strong class=\"purple\">must</strong> specify the color write mask for all active color attachments in the current subpass",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-firstAttachment-07479",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the attachments specified by the <code>firstAttachment</code> and <code>attachmentCount</code> parameters of <code>vkCmdSetColorBlendAdvancedEXT</code> calls <strong class=\"purple\">must</strong> specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-advancedBlendMaxColorAttachments-07480",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT</code> and <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic states enabled and the last calls to <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> and <a href=\"#vkCmdSetColorBlendAdvancedEXT\">vkCmdSetColorBlendAdvancedEXT</a> have enabled advanced blending, then the number of active color attachments in the current subpass <strong class=\"purple\">must</strong> not exceed <a href=\"#limits-advancedBlendMaxColorAttachments\"><code>advancedBlendMaxColorAttachments</code></a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-primitivesGeneratedQueryWithNonZeroStreams-07481",
+ "text": "If the <a href=\"#features-primitivesGeneratedQueryWithNonZeroStreams\"><code>primitivesGeneratedQueryWithNonZeroStreams</code></a> feature is not enabled and the <code>VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT</code> query is active, and the bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT</code> state enabled, the last call to <a href=\"#vkCmdSetRasterizationStreamEXT\">vkCmdSetRasterizationStreamEXT</a> <strong class=\"purple\">must</strong> have set the <code>rasterizationStream</code> to zero",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsPerPixel-07482",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsPerPixel-07483",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07484",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, and the current subpass has a depth/stencil attachment, then that attachment <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT</code> bit set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07485",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.width</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07486",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, then the <code>sampleLocationsInfo.sampleLocationGridSize.height</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling <code>rasterizationSamples</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07487",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, and if <code>sampleLocationsEnable</code> was <code>VK_TRUE</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEnableEXT\">vkCmdSetSampleLocationsEnableEXT</a>, the fragment shader code <strong class=\"purple\">must</strong> not statically use the extended instruction <code>InterpolateAtSample</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07936",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07937",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07938",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-coverageModulationTableEnable-07488",
+ "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV</code> state enabled, and the last call to <a href=\"#vkCmdSetCoverageModulationTableEnableNV\">vkCmdSetCoverageModulationTableEnableNV</a> set <code>coverageModulationTableEnable</code> to <code>VK_TRUE</code>, then the <code>coverageModulationTableCount</code> parameter in the last call to <a href=\"#vkCmdSetCoverageModulationTableNV\">vkCmdSetCoverageModulationTableNV</a> <strong class=\"purple\">must</strong> equal the current <code>rasterizationSamples</code> divided by the number of color samples in the current subpass",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizationSamples-07489",
+ "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current <code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be the same as the sample count of the depth/stencil attachment",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-coverageToColorEnable-07490",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> state enabled and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09420",
+ "text": "If the <code><a href=\"#VK_NV_fragment_coverage_to_color\">VK_NV_fragment_coverage_to_color</a></code> extension is enabled, and a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the last call to <a href=\"#vkCmdSetCoverageToColorEnableNV\">vkCmdSetCoverageToColorEnableNV</a> set the <code>coverageToColorEnable</code> to <code>VK_TRUE</code>, then the current subpass <strong class=\"purple\">must</strong> have a color attachment at the location selected by the last call to <a href=\"#vkCmdSetCoverageToColorLocationNV\">vkCmdSetCoverageToColorLocationNV</a> <code>coverageToColorLocation</code>, with a <a href=\"#VkFormat\">VkFormat</a> of <code>VK_FORMAT_R8_UINT</code>, <code>VK_FORMAT_R8_SINT</code>, <code>VK_FORMAT_R16_UINT</code>, <code>VK_FORMAT_R16_SINT</code>, <code>VK_FORMAT_R32_UINT</code>, or <code>VK_FORMAT_R32_SINT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-coverageReductionMode-07491",
+ "text": "If this <code><a href=\"#VK_NV_coverage_reduction_mode\">VK_NV_coverage_reduction_mode</a></code> extension is enabled, the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV</code> and <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> states enabled, the current coverage reduction mode <code>coverageReductionMode</code>, then the current <code>rasterizationSamples</code>, and the sample counts for the color and depth/stencil attachments (if the subpass has them) <strong class=\"purple\">must</strong> be a valid combination returned by <a href=\"#vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\">vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-viewportCount-07492",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic state enabled, then the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <a href=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a>::<code>viewportCount</code> greater or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-viewportCount-07493",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-viewportCount-09421",
+ "text": "If the <code><a href=\"#VK_NV_viewport_swizzle\">VK_NV_viewport_swizzle</a></code> extension is enabled, and a shader object is bound to any graphics stage, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportSwizzleNV\">vkCmdSetViewportSwizzleNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizationSamples-07494",
+ "text": "If the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extension is enabled, and if the current subpass has any color attachments and <code>rasterizationSamples</code> of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> is greater than the number of color samples, then the pipeline <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-stippledLineEnable-07495",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-stippledLineEnable-07496",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR</code>, then the <a href=\"#features-stippledBresenhamLines\"><code>stippledBresenhamLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-stippledLineEnable-07497",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR</code>, then the <a href=\"#features-stippledSmoothLines\"><code>stippledSmoothLines</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-stippledLineEnable-07498",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT</code> or <code>VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT</code> dynamic states enabled, and if the current <code>stippledLineEnable</code> state is <code>VK_TRUE</code> and the current <code>lineRasterizationMode</code> state is <code>VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR</code>, then the <a href=\"#features-stippledRectangularLines\"><code>stippledRectangularLines</code></a> feature <strong class=\"purple\">must</strong> be enabled and <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>strictLines</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-conservativePointAndLineRasterization-07499",
+ "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT</code> dynamic state enabled, <a href=\"#limits-conservativePointAndLineRasterization\"><code>conservativePointAndLineRasterization</code></a> is not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then the <code>conservativeRasterizationMode</code> set by the last call to <a href=\"#vkCmdSetConservativeRasterizationModeEXT\">vkCmdSetConservativeRasterizationModeEXT</a> <strong class=\"purple\">must</strong> be <code>VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-stage-07073",
+ "text": "If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> <strong class=\"purple\">must</strong> not be active",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08877",
+ "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07850",
+ "text": "If dynamic state was inherited from <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, it <strong class=\"purple\">must</strong> be set in the current command buffer prior to this drawing command",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08684",
+ "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_VERTEX_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08685",
+ "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08686",
+ "text": "If there is no bound graphics pipeline, and the <a href=\"#features-tessellationShader\"><code>tessellationShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08687",
+ "text": "If there is no bound graphics pipeline, and the <a href=\"#features-geometryShader\"><code>geometryShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08688",
+ "text": "If there is no bound graphics pipeline, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_FRAGMENT_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08689",
+ "text": "If there is no bound graphics pipeline, and the <a href=\"#features-taskShader\"><code>taskShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08690",
+ "text": "If there is no bound graphics pipeline, and the <a href=\"#features-meshShader\"><code>meshShader</code></a> feature is enabled, <code>vkCmdBindShadersEXT</code> <strong class=\"purple\">must</strong> have been called in the current command buffer with <code>pStages</code> with an element of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08693",
+ "text": "If there is no bound graphics pipeline, and at least one of the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features is enabled, one of the <code>VK_SHADER_STAGE_VERTEX_BIT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages <strong class=\"purple\">must</strong> have a valid <code>VkShaderEXT</code> bound, and the other <strong class=\"purple\">must</strong> have no <code>VkShaderEXT</code> bound",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08694",
+ "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created without the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, a valid <code>VkShaderEXT</code> <strong class=\"purple\">must</strong> be bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08695",
+ "text": "If there is no bound graphics pipeline, and both the <a href=\"#features-taskShader\"><code>taskShader</code></a> and <a href=\"#features-meshShader\"><code>meshShader</code></a> features are enabled, and a valid <code>VkShaderEXT</code> is bound the to the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage, and that <code>VkShaderEXT</code> was created with the <code>VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT</code> flag, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08696",
+ "text": "If there is no bound graphics pipeline, and a valid <code>VkShaderEXT</code> is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, there <strong class=\"purple\">must</strong> be no <code>VkShaderEXT</code> bound to either the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> stage or the <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stage",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08698",
+ "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, then all shaders created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag in the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> also be bound",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08699",
+ "text": "If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08878",
+ "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08879",
+ "text": "All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-colorAttachmentCount-09372",
+ "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pDynamicStates-08715",
+ "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpDepthAttachmentReadEXT</code>, the <code>depthWriteEnable</code> parameter in the last call to <a href=\"#vkCmdSetDepthWriteEnable\">vkCmdSetDepthWriteEnable</a> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pDynamicStates-08716",
+ "text": "If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09116",
+ "text": "If a shader object is bound to any graphics stage or the currently bound graphics pipeline was created with <code>VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT</code>, and the format of any color attachment is <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>, the corresponding element of the <code>pColorWriteMasks</code> parameter of <a href=\"#vkCmdSetColorWriteMaskEXT\">vkCmdSetColorWriteMaskEXT</a> <strong class=\"purple\">must</strong> either include all of <code>VK_COLOR_COMPONENT_R_BIT</code>, <code>VK_COLOR_COMPONENT_G_BIT</code>, and <code>VK_COLOR_COMPONENT_B_BIT</code>, or none of them",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-maxFragmentDualSrcAttachments-09239",
+ "text": "If <a href=\"#framebuffer-blending\">blending</a> is enabled for any attachment where either the source or destination blend factors for that attachment <a href=\"#framebuffer-dsb\">use the secondary color input</a>, the maximum value of <code>Location</code> for any output attachment <a href=\"#shaders-staticuse\">statically used</a> in the <code>Fragment</code> <code>Execution</code> <code>Model</code> executed by this command <strong class=\"purple\">must</strong> be less than <a href=\"#limits-maxFragmentDualSrcAttachments\"><code>maxFragmentDualSrcAttachments</code></a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09548",
+ "text": "If the current render pass was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and there is no shader object bound to any graphics stage, the value of each element of <a href=\"#VkRenderingAttachmentLocationInfoKHR\">VkRenderingAttachmentLocationInfoKHR</a>::<code>pColorAttachmentLocations</code> set by <a href=\"#vkCmdSetRenderingAttachmentLocationsKHR\">vkCmdSetRenderingAttachmentLocationsKHR</a> <strong class=\"purple\">must</strong> match the value set for the corresponding element in the currently bound pipeline",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09549",
+ "text": "If the current render pass was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline <strong class=\"purple\">must</strong> match those set for the current render pass instance via <a href=\"#VkRenderingInputAttachmentIndexInfoKHR\">VkRenderingInputAttachmentIndexInfoKHR</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09642",
+ "text": "If the current render pass was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with the <code>VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT</code> flag, the bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09643",
+ "text": "If the bound graphics pipeline was created with <code>VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT</code>, the current render pass <strong class=\"purple\">must</strong> have begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with the <code>VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT</code> flag",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-11045",
+ "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11046",
+ "text": "If <code>isPreprocessed</code> is <code>VK_TRUE</code> and <a href=\"#vkGetGeneratedCommandsMemoryRequirementsEXT\">vkGetGeneratedCommandsMemoryRequirementsEXT</a> did not return a required size of zero then <a href=\"#vkCmdPreprocessGeneratedCommandsEXT\">vkCmdPreprocessGeneratedCommandsEXT</a> <strong class=\"purple\">must</strong> have already been executed on the device before this command executes, and the preprocessing command <strong class=\"purple\">must</strong> have used the same <code>pGeneratedCommandsInfo</code> content as well as the content of the input buffers it references (all except <a href=\"#VkGeneratedCommandsInfoEXT\">VkGeneratedCommandsInfoEXT</a>::<code>preprocessBuffer</code>).",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11047",
+ "text": "If <code>isPreprocessed</code> is <code>VK_TRUE</code> then the <code>indirectCommandsLayout</code> member of <code>pGeneratedCommandsInfo</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT</code> bit set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-indirectCommandsLayout-11141",
+ "text": "If the <code>indirectCommandsLayout</code> member of <code>pGeneratedCommandsInfo</code> was created with the <code>VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT</code> bit set, then <code>isPreprocessed</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-preprocessAddress-11142",
+ "text": "The contents of the <code>preprocessAddress</code> member of <code>pGeneratedCommandsInfo</code> <strong class=\"purple\">must</strong> not have been previously used to record another <a href=\"#vkCmdExecuteGeneratedCommandsEXT\">vkCmdExecuteGeneratedCommandsEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11048",
+ "text": "If <code>isPreprocessed</code> is <code>VK_TRUE</code> then the bound descriptor sets and push constants <strong class=\"purple\">must</strong> match identically with those bound during recording of the corresponding call to <a href=\"#vkCmdPreprocessGeneratedCommandsEXT\">vkCmdPreprocessGeneratedCommandsEXT</a>.",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11049",
+ "text": "If <code>isPreprocessed</code> is <code>VK_TRUE</code> and the <code>indirectCommandsLayout</code> member of <code>pGeneratedCommandsInfo</code> contains a draw token, then the graphics state bound on <code>commandBuffer</code> <strong class=\"purple\">must</strong> match identically with the graphics state bound on the <code>stateCommandBuffer</code> passed to <a href=\"#vkCmdPreprocessGeneratedCommandsEXT\">vkCmdPreprocessGeneratedCommandsEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11149",
+ "text": "If <code>isPreprocessed</code> is <code>VK_TRUE</code>, then the queue family index of <code>commandBuffer</code> <strong class=\"purple\">must</strong> be the same as the queue family index used to allocate the <code>stateCommandBuffer</code> passed to <a href=\"#vkCmdPreprocessGeneratedCommandsEXT\">vkCmdPreprocessGeneratedCommandsEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11051",
+ "text": "If <code>isPreprocessed</code> is <code>VK_TRUE</code> and the <code>indirectCommandsLayout</code> member of <code>pGeneratedCommandsInfo</code> contains a dispatch token, then the compute state bound on <code>commandBuffer</code> <strong class=\"purple\">must</strong> match identically with the compute state bound on the <code>stateCommandBuffer</code> passed to <a href=\"#vkCmdPreprocessGeneratedCommandsEXT\">vkCmdPreprocessGeneratedCommandsEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11052",
+ "text": "If <code>isPreprocessed</code> is <code>VK_TRUE</code> and the <code>indirectCommandsLayout</code> member of <code>pGeneratedCommandsInfo</code> contains a ray tracing token, then the ray tracing state bound on <code>commandBuffer</code> <strong class=\"purple\">must</strong> match identically with the ray tracing state bound on the <code>stateCommandBuffer</code> passed to <a href=\"#vkCmdPreprocessGeneratedCommandsEXT\">vkCmdPreprocessGeneratedCommandsEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11150",
+ "text": "If <code>isPreprocessed</code> is <code>VK_TRUE</code> and the <code>indirectCommandsLayout</code> member of <code>pGeneratedCommandsInfo</code> contains a ray tracing token, the queue family index <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> be the same queue family index used to allocate the <code>stateCommandBuffer</code> passed to <a href=\"#vkCmdPreprocessGeneratedCommandsEXT\">vkCmdPreprocessGeneratedCommandsEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-indirectCommandsLayout-11053",
+ "text": "If the token sequence of the passed <a href=\"#VkGeneratedCommandsInfoEXT\">VkGeneratedCommandsInfoEXT</a>::<code>indirectCommandsLayout</code> contains a <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code> token, the initial shader state of <a href=\"#VkGeneratedCommandsInfoEXT\">VkGeneratedCommandsInfoEXT</a>::<code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> be bound on <code>commandBuffer</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-indirectCommandsLayout-11004",
+ "text": "If <code>indirectCommandsLayout</code> was created with a token sequence that contained the <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code> token and <code>indirectExecutionSet</code> was created using <code>VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT</code>, every executed <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code> token <strong class=\"purple\">must</strong> bind all the shader stages set in the <a href=\"#VkIndirectCommandsExecutionSetTokenEXT\">VkIndirectCommandsExecutionSetTokenEXT</a>::<code>shaderStages</code> used to create <code>indirectCommandsLayout</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-isPreprocessed-11055",
+ "text": "If <code>isPreprocessed</code> is <code>VK_TRUE</code> and the token sequence of the passed <a href=\"#VkGeneratedCommandsInfoEXT\">VkGeneratedCommandsInfoEXT</a>::<code>indirectCommandsLayout</code> contains a <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code> token, the members of <a href=\"#VkGeneratedCommandsInfoEXT\">VkGeneratedCommandsInfoEXT</a>::<code>indirectExecutionSet</code> accessed by this command <strong class=\"purple\">must</strong> not have been modified since the preprocess buffer was generated",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-indirectCommandsLayout-11056",
+ "text": "If the <code>indirectCommandsLayout</code> member of <code>pGeneratedCommandsInfo</code> contains a draw token, then the active render pass <strong class=\"purple\">must</strong> not have a specified fragment density map",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-deviceGeneratedCommandsTransformFeedback-11057",
+ "text": "If <a href=\"#limits-deviceGeneratedCommandsTransformFeedback\"><code>deviceGeneratedCommandsTransformFeedback</code></a> is not supported on device, transform feedback <strong class=\"purple\">must</strong> not be active",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-indirectExecutionSet-11058",
+ "text": "If transform feedback is active, <a href=\"#VkGeneratedCommandsInfoEXT\">VkGeneratedCommandsInfoEXT</a>::<code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-deviceGeneratedCommands-11059",
+ "text": "The <a href=\"#features-deviceGeneratedCommandsEXT\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-supportedIndirectCommandsShaderStages-11060",
+ "text": "The currently bound shader stages <strong class=\"purple\">must</strong> be supported by <a href=\"#limits-supportedIndirectCommandsShaderStages\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>supportedIndirectCommandsShaderStages</code></a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-supportedIndirectCommandsShaderStages-11061",
+ "text": "Only stages specified in <a href=\"#limits-supportedIndirectCommandsShaderStages\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>supportedIndirectCommandsShaderStages</code></a> <strong class=\"purple\">can</strong> be set in <code>pGeneratedCommandsInfo-&gt;shaderStages</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-11062",
+ "text": "If a rendering pass is currently active, the view mask <strong class=\"purple\">must</strong> be <code>0</code>.",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-11143",
+ "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not have been created with <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-parameter",
+ "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pGeneratedCommandsInfo-parameter",
+ "text": "<code>pGeneratedCommandsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkGeneratedCommandsInfoEXT\">VkGeneratedCommandsInfoEXT</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-recording",
+ "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-cmdpool",
+ "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-videocoding",
+ "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-bufferlevel",
+ "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "VkGeneratedCommandsInfoEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-11063",
+ "text": "If <a href=\"#vkGetGeneratedCommandsMemoryRequirementsEXT\">vkGetGeneratedCommandsMemoryRequirementsEXT</a> returns a non-zero size, <code>preprocessAddress</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-11064",
+ "text": "<code>VkDeviceMemory</code> objects bound to the underlying buffer for <code>preprocessAddress</code> <strong class=\"purple\">must</strong> have been allocated using one of the memory types allowed in the <code>memoryTypeBits</code> member of the <a href=\"#VkMemoryRequirements\">VkMemoryRequirements</a> structure returned by <a href=\"#vkGetGeneratedCommandsMemoryRequirementsEXT\">vkGetGeneratedCommandsMemoryRequirementsEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11065",
+ "text": "If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT</code>, then the <code>indirectExecutionSet</code>&#8217;s push constant layout <strong class=\"purple\">must</strong> contain the <code>updateRange</code> specified in <a href=\"#VkIndirectCommandsPushConstantTokenEXT\">VkIndirectCommandsPushConstantTokenEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11066",
+ "text": "If the <code>indirectCommandsLayout</code> uses a token of <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT</code>, then the <code>indirectExecutionSet</code>&#8217;s push constant layout <strong class=\"purple\">must</strong> contain the <code>updateRange</code> specified in <a href=\"#VkIndirectCommandsPushConstantTokenEXT\">VkIndirectCommandsPushConstantTokenEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-maxSequenceCount-11067",
+ "text": "<code>maxSequenceCount</code> <strong class=\"purple\">must</strong> be less or equal to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>maxIndirectSequenceCount</code> and <a href=\"#VkGeneratedCommandsMemoryRequirementsInfoEXT\">VkGeneratedCommandsMemoryRequirementsInfoEXT</a>::<code>maxSequencesCount</code> that was used to determine the <code>preprocessSize</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-sequenceCountAddress-11068",
+ "text": "If <code>sequenceCountAddress</code> is not <code>NULL</code>, the value contained in the address <strong class=\"purple\">must</strong> be less or equal to <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>maxIndirectSequenceCount</code> and <a href=\"#VkGeneratedCommandsMemoryRequirementsInfoEXT\">VkGeneratedCommandsMemoryRequirementsInfoEXT</a>::<code>maxSequencesCount</code> that was used to determine the <code>preprocessSize</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-11069",
+ "text": "The underlying buffer for <code>preprocessAddress</code> <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT</code> bit set in its usage flag",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-11070",
+ "text": "If the underlying buffer for <code>preprocessAddress</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11144",
+ "text": "If the <code>indirectCommandsLayout</code> contains a <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code> token, then the descriptor and push constant layout info provided either by <code>pipelineLayout</code> or through a <a href=\"#VkPipelineLayoutCreateInfo\">VkPipelineLayoutCreateInfo</a> in <code>pNext</code> of the <a href=\"#VkIndirectCommandsLayoutCreateInfoEXT\">VkIndirectCommandsLayoutCreateInfoEXT</a> used to create <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> be <a href=\"#descriptorsets-compatibility\">compatible</a> with the descriptor and push constant layout info used by <code>indirectExecutionSet</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11002",
+ "text": "If <code>indirectCommandsLayout</code> was created with a token sequence that contained the <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code> token, the shader stages used to create the initial shader state of <code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> equal the <a href=\"#VkIndirectCommandsExecutionSetTokenEXT\">VkIndirectCommandsExecutionSetTokenEXT</a>::<code>shaderStages</code> used to create <code>indirectCommandsLayout</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-preprocessSize-11071",
+ "text": "<code>preprocessSize</code> <strong class=\"purple\">must</strong> be greater than or equal to the memory requirement&#8217;s size returned by <a href=\"#vkGetGeneratedCommandsMemoryRequirementsEXT\">vkGetGeneratedCommandsMemoryRequirementsEXT</a> using the matching inputs (<code>indirectCommandsLayout</code>, &#8230;&#8203;) as within this structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-sequenceCountAddress-11072",
+ "text": "The underlying buffer for <code>sequenceCountAddress</code> <strong class=\"purple\">must</strong> have the <code>VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT</code> bit set in its usage flag",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-sequenceCountAddress-11073",
+ "text": "If <code>sequenceCountAddress</code> is not <code>NULL</code>, <code>sequenceCountAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>4</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectAddress-11074",
+ "text": "<code>indirectAddress</code> <strong class=\"purple\">must</strong> be aligned to <code>4</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-sequenceCountAddress-11075",
+ "text": "If the underlying buffer for <code>sequenceCountAddress</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectAddress-11076",
+ "text": "<code>indirectAddress</code> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectAddressSize-11077",
+ "text": "<code>indirectAddressSize</code> <strong class=\"purple\">must</strong> be greater than zero",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-maxDrawCount-11078",
+ "text": "When not ignored, <span class=\"eq\"><code>maxDrawCount</code> × <code>maxSequenceCount</code></span> <strong class=\"purple\">must</strong> be less than <span class=\"eq\">2^24</span>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11079",
+ "text": "If <code>indirectCommandsLayout</code> was created using a <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT</code> token and shader objects are not bound then the currently bound graphics pipeline <strong class=\"purple\">must</strong> have been created with <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> in <code>pDynamicStates</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11083",
+ "text": "If the token sequence of the passed <code>indirectCommandsLayout</code> contains a <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code> token, the <code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectExecutionSet-11080",
+ "text": "If <code>indirectExecutionSet</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, a <a href=\"#VkGeneratedCommandsPipelineInfoEXT\">VkGeneratedCommandsPipelineInfoEXT</a> or <a href=\"#VkGeneratedCommandsShaderInfoEXT\">VkGeneratedCommandsShaderInfoEXT</a> <strong class=\"purple\">must</strong> be included in the <code>pNext</code> chain",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-shaderStages-parameter",
+ "text": "<code>shaderStages</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkShaderStageFlagBits\">VkShaderStageFlagBits</a> values",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-shaderStages-requiredbitmask",
+ "text": "<code>shaderStages</code> <strong class=\"purple\">must</strong> not be <code>0</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectExecutionSet-parameter",
+ "text": "If <code>indirectExecutionSet</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectExecutionSetEXT\">VkIndirectExecutionSetEXT</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-parameter",
+ "text": "<code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndirectCommandsLayoutEXT\">VkIndirectCommandsLayoutEXT</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkGeneratedCommandsInfoEXT-commonparent",
+ "text": "Both of <code>indirectCommandsLayout</code>, and <code>indirectExecutionSet</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+ "page": "vkspec"
+ }
+ ]
+ },
+ "vkCmdPreprocessGeneratedCommandsEXT": {
+ "core": [
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-11081",
+ "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-pGeneratedCommandsInfo-11082",
+ "text": "<code>pGeneratedCommandsInfo</code>&#8217;s <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT</code> bit set",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-indirectCommandsLayout-11084",
+ "text": "If the token sequence of the passed <a href=\"#VkGeneratedCommandsInfoEXT\">VkGeneratedCommandsInfoEXT</a>::<code>indirectCommandsLayout</code> contains a <code>VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT</code> token, the initial shader state of <a href=\"#VkGeneratedCommandsInfoEXT\">VkGeneratedCommandsInfoEXT</a>::<code>indirectExecutionSet</code> <strong class=\"purple\">must</strong> be bound on <code>stateCommandBuffer</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-stateCommandBuffer-11138",
+ "text": "<code>stateCommandBuffer</code> <strong class=\"purple\">must</strong> be in the recording state",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-deviceGeneratedCommands-11087",
+ "text": "The <a href=\"#features-deviceGeneratedCommandsEXT\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-supportedIndirectCommandsShaderStages-11088",
+ "text": "Only stages specified in <a href=\"#limits-supportedIndirectCommandsShaderStages\"><a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>::<code>supportedIndirectCommandsShaderStages</code></a> <strong class=\"purple\">can</strong> be set in <code>pGeneratedCommandsInfo-&gt;shaderStages</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-parameter",
+ "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-pGeneratedCommandsInfo-parameter",
+ "text": "<code>pGeneratedCommandsInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkGeneratedCommandsInfoEXT\">VkGeneratedCommandsInfoEXT</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-stateCommandBuffer-parameter",
+ "text": "<code>stateCommandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-recording",
+ "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-cmdpool",
+ "text": "The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics, or compute operations",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-renderpass",
+ "text": "This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-videocoding",
+ "text": "This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-bufferlevel",
+ "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-vkCmdPreprocessGeneratedCommandsEXT-commonparent",
+ "text": "Both of <code>commandBuffer</code>, and <code>stateCommandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>",
+ "page": "vkspec"
+ }
+ ]
+ },
"vkGetPhysicalDeviceSparseImageFormatProperties": {
"core": [
{
@@ -82281,7 +85145,17 @@
},
{
"vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-02839",
- "text": "If <code>presentMode</code> is not <code>VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR</code> nor <code>VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR</code>, then <code>minImageCount</code> <strong class=\"purple\">must</strong> be greater than or equal to the value returned in the <code>minImageCount</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilitiesKHR\">vkGetPhysicalDeviceSurfaceCapabilitiesKHR</a> for the surface",
+ "text": "",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkSwapchainCreateInfoKHR-swapchainMaintenance1-10155",
+ "text": "If the <a href=\"#features-swapchainMaintenance1\"><code>swapchainMaintenance1</code></a> feature is not enabled, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> not include a <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a> structure",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkSwapchainCreateInfoKHR-swapchainMaintenance1-10156",
+ "text": "If the <a href=\"#features-swapchainMaintenance1\"><code>swapchainMaintenance1</code></a> feature is not enabled, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> not include a <a href=\"#VkSwapchainPresentScalingCreateInfoEXT\">VkSwapchainPresentScalingCreateInfoEXT</a> structure If <code>presentMode</code> is not <code>VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR</code> nor <code>VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR</code>, then <code>minImageCount</code> <strong class=\"purple\">must</strong> be greater than or equal to the value returned in the <code>minImageCount</code> member of the <code>VkSurfaceCapabilitiesKHR</code> structure returned by <a href=\"#vkGetPhysicalDeviceSurfaceCapabilitiesKHR\">vkGetPhysicalDeviceSurfaceCapabilitiesKHR</a> for the surface",
"page": "vkspec"
},
{
@@ -82305,6 +85179,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-VkSwapchainCreateInfoKHR-swapchainMaintenance1-10157",
+ "text": "If the <a href=\"#features-swapchainMaintenance1\"><code>swapchainMaintenance1</code></a> feature is not enabled, then <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT</code>",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-VkSwapchainCreateInfoKHR-imageExtent-01689",
"text": "<code>imageExtent</code> members <code>width</code> and <code>height</code> <strong class=\"purple\">must</strong> both be non-zero",
"page": "vkspec"
@@ -82649,32 +85528,37 @@
},
{
"vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07770",
- "text": "<code>scalingBehavior</code> <strong class=\"purple\">must</strong> be a valid scaling method for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentScaling</code>, given <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+ "text": "<code>scalingBehavior</code> <strong class=\"purple\">must</strong> be <code>0</code> or a valid scaling method for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentScaling</code>, given <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-scalingBehavior-07771",
- "text": "If the swapchain is created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, <code>scalingBehavior</code> <strong class=\"purple\">must</strong> be a valid scaling method for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentScaling</code>, given each present mode in <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>::<code>pPresentModes</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+ "text": "If the swapchain is created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, <code>scalingBehavior</code> <strong class=\"purple\">must</strong> be <code>0</code> or a valid scaling method for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentScaling</code>, given each present mode in <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>::<code>pPresentModes</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07772",
- "text": "<code>presentGravityX</code> <strong class=\"purple\">must</strong> be a valid x-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityX</code>, given <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+ "text": "<code>presentGravityX</code> <strong class=\"purple\">must</strong> be <code>0</code> or a valid x-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityX</code>, given <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityX-07773",
- "text": "If the swapchain is created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, <code>presentGravityX</code> <strong class=\"purple\">must</strong> be a valid x-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityX</code>, given each present mode in <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>::<code>pPresentModes</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+ "text": "If the swapchain is created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, <code>presentGravityX</code> <strong class=\"purple\">must</strong> be <code>0</code> or a valid x-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityX</code>, given each present mode in <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>::<code>pPresentModes</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07774",
- "text": "<code>presentGravityY</code> <strong class=\"purple\">must</strong> be a valid y-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityY</code>, given <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+ "text": "<code>presentGravityY</code> <strong class=\"purple\">must</strong> be <code>0</code> or a valid y-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityY</code>, given <a href=\"#VkSwapchainCreateInfoKHR\">VkSwapchainCreateInfoKHR</a>::<code>presentMode</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
"page": "vkspec"
},
{
"vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-presentGravityY-07775",
- "text": "If the swapchain is created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, <code>presentGravityY</code> <strong class=\"purple\">must</strong> be a valid y-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityY</code>, given each present mode in <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>::<code>pPresentModes</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+ "text": "If the swapchain is created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, <code>presentGravityY</code> <strong class=\"purple\">must</strong> be <code>0</code> or a valid y-axis present gravity for the surface as returned in <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>::<code>supportedPresentGravityY</code>, given each present mode in <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>::<code>pPresentModes</code> in <a href=\"#VkSurfacePresentModeEXT\">VkSurfacePresentModeEXT</a>",
+ "page": "vkspec"
+ },
+ {
+ "vuid": "VUID-VkSwapchainPresentScalingCreateInfoEXT-swapchainMaintenance1-10154",
+ "text": "If the <a href=\"#features-swapchainMaintenance1\"><code>swapchainMaintenance1</code></a> feature is not enabled, then <code>presentScaling</code>, <code>presentGravityX</code>, and <code>presentGravityY</code> <strong class=\"purple\">must</strong> be <code>0</code>",
"page": "vkspec"
},
{
@@ -82830,7 +85714,7 @@
},
{
"vuid": "VUID-vkAcquireNextImageKHR-surface-07783",
- "text": "If <a href=\"#swapchain-acquire-forward-progress\">forward progress</a> cannot be guaranteed for the <code>surface</code> used to create the <code>swapchain</code> member of <code>pAcquireInfo</code>, the <code>timeout</code> member of <code>pAcquireInfo</code> <strong class=\"purple\">must</strong> not be <code>UINT64_MAX</code>",
+ "text": "If <a href=\"#swapchain-acquire-forward-progress\">forward progress</a> cannot be guaranteed for the <code>surface</code> used to create the <code>swapchain</code> member of <code>pAcquireInfo</code>, <code>timeout</code> <strong class=\"purple\">must</strong> not be <code>UINT64_MAX</code>",
"page": "vkspec"
},
{
@@ -83040,6 +85924,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-VkPresentInfoKHR-swapchainMaintenance1-10158",
+ "text": "If the <a href=\"#features-swapchainMaintenance1\"><code>swapchainMaintenance1</code></a> feature is not enabled, then the <code>pNext</code> chain <strong class=\"purple\">must</strong> not include a <a href=\"#VkSwapchainPresentFenceInfoEXT\">VkSwapchainPresentFenceInfoEXT</a> structure",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-VkPresentInfoKHR-pSwapchains-09199",
"text": "If any element of the <code>pSwapchains</code> array has been created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, all of the elements of this array <strong class=\"purple\">must</strong> be created with <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>",
"page": "vkspec"
@@ -83350,12 +86239,12 @@
},
{
"vuid": "VUID-VkSwapchainPresentFenceInfoEXT-pFences-07758",
- "text": "Each element of <code>pFences</code> <strong class=\"purple\">must</strong> be unsignaled",
+ "text": "Each element of <code>pFences</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be unsignaled",
"page": "vkspec"
},
{
"vuid": "VUID-VkSwapchainPresentFenceInfoEXT-pFences-07759",
- "text": "Each element of <code>pFences</code> <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue",
+ "text": "Each element of <code>pFences</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> not be associated with any other queue command that has not yet completed execution on that queue",
"page": "vkspec"
},
{
@@ -83378,6 +86267,11 @@
"vkReleaseSwapchainImagesEXT": {
"core": [
{
+ "vuid": "VUID-vkReleaseSwapchainImagesEXT-swapchainMaintenance1-10159",
+ "text": "Feature <a href=\"#features-swapchainMaintenance1\"><code>swapchainMaintenance1</code></a> <strong class=\"purple\">must</strong> be enabled",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-vkReleaseSwapchainImagesEXT-device-parameter",
"text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
"page": "vkspec"
@@ -94163,6 +97057,11 @@
"page": "vkspec"
},
{
+ "vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-11007",
+ "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT</code>, then the <a href=\"#features-deviceGeneratedCommandsEXT\"><code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+ "page": "vkspec"
+ },
+ {
"vuid": "VUID-VkExecutionGraphPipelineCreateInfoAMDX-pipelineCreationCacheControl-02875",
"text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
"page": "vkspec"
@@ -96668,6 +99567,15 @@
}
]
},
+ "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
"VkPhysicalDeviceDiagnosticsConfigFeaturesNV": {
"core": [
{
@@ -96826,6 +99734,15 @@
}
]
},
+ "VkPhysicalDeviceDepthClampControlFeaturesEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkPhysicalDeviceDepthClampControlFeaturesEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
"VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR": {
"core": [
{
@@ -98178,6 +101095,15 @@
}
]
},
+ "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT": {
+ "core": [
+ {
+ "vuid": "VUID-VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT-sType-sType",
+ "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT</code>",
+ "page": "vkspec"
+ }
+ ]
+ },
"VkPhysicalDevicePortabilitySubsetPropertiesKHR": {
"core": [
{
diff --git a/registry/video.xml b/registry/video.xml
index 7e52a1b..2ac5831 100644
--- a/registry/video.xml
+++ b/registry/video.xml
@@ -77,7 +77,7 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint32_t</type> <name>overscan_appropriate_flag</name> : 1</member>
<member><type>uint32_t</type> <name>video_signal_type_present_flag</name> : 1</member>
<member><type>uint32_t</type> <name>video_full_range_flag</name> : 1</member>
- <member><type>uint32_t</type> <name>color_description_present_flag</name> : 1</member>
+ <member><type>uint32_t</type> <name>color_description_present_flag</name> : 1</member><comment>colour_description_present_flag</comment>
<member><type>uint32_t</type> <name>chroma_loc_info_present_flag</name> : 1</member>
<member><type>uint32_t</type> <name>timing_info_present_flag</name> : 1</member>
<member><type>uint32_t</type> <name>fixed_frame_rate_flag</name> : 1</member>
diff --git a/registry/vk.xml b/registry/vk.xml
index 2e0b9b7..00d97f1 100644
--- a/registry/vk.xml
+++ b/registry/vk.xml
@@ -67,7 +67,7 @@ branch of the member gitlab server.
<tag name="KHR" author="Khronos" contact="Tom Olson @tomolson"/>
<tag name="KHX" author="Khronos" contact="Tom Olson @tomolson"/>
<tag name="EXT" author="Multivendor" contact="Jon Leech @oddhack"/>
- <tag name="MESA" author="Mesa open source project" contact="Lina Versace @versalinyaa, Daniel Stone @fooishbar, David Airlie @airlied, Faith Ekstrand @gfxstrand, Hans-Kristian Arntzen @HansKristian-Work"/>
+ <tag name="MESA" author="Mesa open source project" contact="Lina Versace @linyaa-kiwi, Daniel Stone @fooishbar, David Airlie @airlied, Faith Ekstrand @gfxstrand, Hans-Kristian Arntzen @HansKristian-Work"/>
<tag name="INTEL" author="Intel Corporation" contact="Slawek Grajewski @sgrajewski"/>
<tag name="HUAWEI" author="Huawei Technologies Co. Ltd." contact="Pan Gao @PanGao-h, Juntao Li @Lawrenceleehw"/>
<tag name="VALVE" author="Valve Corporation" contact="Pierre-Loup Griffais @plagman, Joshua Ashton @Joshua-Ashton, Hans-Kristian Arntzen @HansKristian-Work"/>
@@ -175,7 +175,7 @@ branch of the member gitlab server.
#define <name>VKSC_API_VERSION_1_0</name> <type>VK_MAKE_API_VERSION</type>(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0</type>
<type api="vulkan" category="define">// Version of this file
-#define <name>VK_HEADER_VERSION</name> 295</type>
+#define <name>VK_HEADER_VERSION</name> 296</type>
<type api="vulkan" category="define" requires="VK_HEADER_VERSION">// Complete version of this file
#define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 3, VK_HEADER_VERSION)</type>
<type api="vulkansc" category="define">// Version of this file
@@ -389,6 +389,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type category="bitmask" name="VkRenderingFlagsKHR" alias="VkRenderingFlags"/>
<type requires="VkBuildMicromapFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkBuildMicromapFlagsEXT</name>;</type>
<type requires="VkMicromapCreateFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkMicromapCreateFlagsEXT</name>;</type>
+ <type requires="VkIndirectCommandsLayoutUsageFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkIndirectCommandsLayoutUsageFlagsEXT</name>;</type>
+ <type requires="VkIndirectCommandsInputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkIndirectCommandsInputModeFlagsEXT</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkDirectDriverLoadingFlagsLUNARG</name>;</type>
<type bitvalues="VkPipelineCreateFlagBits2KHR" category="bitmask">typedef <type>VkFlags64</type> <name>VkPipelineCreateFlags2KHR</name>;</type>
<type bitvalues="VkBufferUsageFlagBits2KHR" category="bitmask">typedef <type>VkFlags64</type> <name>VkBufferUsageFlags2KHR</name>;</type>
@@ -552,6 +554,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_PIPELINE_CACHE"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkPipelineCache</name>)</type>
<type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_PIPELINE_BINARY_KHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkPipelineBinaryKHR</name>)</type>
<type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkIndirectCommandsLayoutNV</name>)</type>
+ <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkIndirectCommandsLayoutEXT</name>)</type>
+ <type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkIndirectExecutionSetEXT</name>)</type>
<type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDescriptorUpdateTemplate</name>)</type>
<type category="handle" name="VkDescriptorUpdateTemplateKHR" alias="VkDescriptorUpdateTemplate"/>
<type category="handle" parent="VkDevice" objtypeenum="VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkSamplerYcbcrConversion</name>)</type>
@@ -629,6 +633,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkImageUsageFlagBits" category="enum"/>
<type name="VkImageViewCreateFlagBits" category="enum"/>
<type name="VkImageViewType" category="enum"/>
+ <type name="VkIndirectCommandsTokenTypeEXT" category="enum"/>
<type name="VkSharingMode" category="enum"/>
<type name="VkIndexType" category="enum"/>
<type name="VkLogicOp" category="enum"/>
@@ -781,6 +786,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkOpacityMicromapFormatEXT" category="enum"/>
<type name="VkOpacityMicromapSpecialIndexEXT" category="enum"/>
<type name="VkDeviceFaultVendorBinaryHeaderVersionEXT" category="enum"/>
+ <type name="VkIndirectCommandsLayoutUsageFlagBitsEXT" category="enum"/>
+ <type name="VkIndirectExecutionSetInfoTypeEXT" category="enum"/>
+ <type name="VkIndirectCommandsInputModeFlagBitsEXT" category="enum"/>
<type name="VkFrameBoundaryFlagBitsEXT" category="enum"/>
<type name="VkMemoryDecompressionMethodFlagBitsNV" category="enum"/>
<type name="VkDepthBiasRepresentationEXT" category="enum"/>
@@ -800,6 +808,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkBlockMatchWindowCompareModeQCOM" category="enum"/>
<type name="VkLayeredDriverUnderlyingApiMSFT" category="enum"/>
<type name="VkPhysicalDeviceLayeredApiKHR" category="enum"/>
+ <type name="VkDepthClampModeEXT" category="enum"/>
<comment>WSI extensions</comment>
<type name="VkColorSpaceKHR" category="enum"/>
@@ -1717,7 +1726,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member values="VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member noautovalidity="true" optional="true"><type>void</type>* <name>pNext</name></member>
</type>
- <type category="struct" name="VkPipelineLayoutCreateInfo" structextends="VkBindDescriptorSetsInfoKHR,VkPushConstantsInfoKHR,VkPushDescriptorSetInfoKHR,VkPushDescriptorSetWithTemplateInfoKHR,VkSetDescriptorBufferOffsetsInfoEXT,VkBindDescriptorBufferEmbeddedSamplersInfoEXT">
+ <type category="struct" name="VkPipelineLayoutCreateInfo" structextends="VkBindDescriptorSetsInfoKHR,VkPushConstantsInfoKHR,VkPushDescriptorSetInfoKHR,VkPushDescriptorSetWithTemplateInfoKHR,VkSetDescriptorBufferOffsetsInfoEXT,VkBindDescriptorBufferEmbeddedSamplersInfoEXT,VkIndirectCommandsLayoutCreateInfoEXT">
<member values="VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkPipelineLayoutCreateFlags</type> <name>flags</name></member>
@@ -6386,11 +6395,172 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>depthClipControl</name></member>
</type>
+ <type category="struct" name="VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+ <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
+ <member><type>VkBool32</type> <name>deviceGeneratedCommands</name></member>
+ <member><type>VkBool32</type> <name>dynamicGeneratedPipelineLayout</name></member>
+ </type>
+ <type category="struct" name="VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
+ <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxIndirectPipelineCount</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxIndirectShaderObjectCount</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxIndirectSequenceCount</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxIndirectCommandsTokenCount</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxIndirectCommandsTokenOffset</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxIndirectCommandsIndirectStride</name></member>
+ <member><type>VkIndirectCommandsInputModeFlagsEXT</type> <name>supportedIndirectCommandsInputModes</name></member>
+ <member><type>VkShaderStageFlags</type> <name>supportedIndirectCommandsShaderStages</name></member>
+ <member><type>VkShaderStageFlags</type> <name>supportedIndirectCommandsShaderStagesPipelineBinding</name></member>
+ <member><type>VkShaderStageFlags</type> <name>supportedIndirectCommandsShaderStagesShaderBinding</name></member>
+ <member><type>VkBool32</type> <name>deviceGeneratedCommandsTransformFeedback</name></member>
+ <member><type>VkBool32</type> <name>deviceGeneratedCommandsMultiDrawIndirectCount</name></member>
+ </type>
+ <type category="struct" name="VkGeneratedCommandsPipelineInfoEXT" structextends="VkGeneratedCommandsInfoEXT,VkGeneratedCommandsMemoryRequirementsInfoEXT">
+ <member values="VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member><type>VkPipeline</type> <name>pipeline</name></member>
+ </type>
+ <type category="struct" name="VkGeneratedCommandsShaderInfoEXT" structextends="VkGeneratedCommandsInfoEXT,VkGeneratedCommandsMemoryRequirementsInfoEXT">
+ <member values="VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member><type>uint32_t</type> <name>shaderCount</name></member>
+ <member len="shaderCount">const <type>VkShaderEXT</type>* <name>pShaders</name></member>
+ </type>
+ <type category="struct" name="VkGeneratedCommandsMemoryRequirementsInfoEXT">
+ <member values="VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member optional="true"><type>VkIndirectExecutionSetEXT</type> <name>indirectExecutionSet</name></member>
+ <member><type>VkIndirectCommandsLayoutEXT</type> <name>indirectCommandsLayout</name></member>
+ <member><type>uint32_t</type> <name>maxSequenceCount</name></member>
+ <member><type>uint32_t</type> <name>maxDrawCount</name></member>
+ </type>
+ <type category="struct" name="VkIndirectExecutionSetPipelineInfoEXT">
+ <member values="VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>VkPipeline</type> <name>initialPipeline</name></member>
+ <member><type>uint32_t</type> <name>maxPipelineCount</name></member>
+ </type>
+ <type category="struct" name="VkIndirectExecutionSetShaderLayoutInfoEXT">
+ <member values="VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+ <member optional="true"><type>uint32_t</type> <name>setLayoutCount</name></member>
+ <member len="setLayoutCount" optional="false,true">const <type>VkDescriptorSetLayout</type>* <name>pSetLayouts</name></member>
+ </type>
+ <type category="struct" name="VkIndirectExecutionSetShaderInfoEXT">
+ <member values="VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>uint32_t</type> <name>shaderCount</name></member>
+ <member len="shaderCount">const <type>VkShaderEXT</type>* <name>pInitialShaders</name></member>
+ <member len="shaderCount" optional="true">const <type>VkIndirectExecutionSetShaderLayoutInfoEXT</type>* <name>pSetLayoutInfos</name></member>
+ <member><type>uint32_t</type> <name>maxShaderCount</name></member>
+ <member optional="true"><type>uint32_t</type> <name>pushConstantRangeCount</name></member>
+ <member len="pushConstantRangeCount">const <type>VkPushConstantRange</type>* <name>pPushConstantRanges</name></member>
+ </type>
+ <type category="union" name="VkIndirectExecutionSetInfoEXT">
+ <member selection="VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT">const <type>VkIndirectExecutionSetPipelineInfoEXT</type>* <name>pPipelineInfo</name></member>
+ <member selection="VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT">const <type>VkIndirectExecutionSetShaderInfoEXT</type>* <name>pShaderInfo</name></member>
+ </type>
+ <type category="struct" name="VkIndirectExecutionSetCreateInfoEXT">
+ <member values="VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>VkIndirectExecutionSetInfoTypeEXT</type> <name>type</name></member>
+ <member selector="type" noautovalidity="true"><type>VkIndirectExecutionSetInfoEXT</type> <name>info</name></member>
+ </type>
+ <type category="struct" name="VkGeneratedCommandsInfoEXT">
+ <member values="VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>VkShaderStageFlags</type> <name>shaderStages</name></member>
+ <member optional="true"><type>VkIndirectExecutionSetEXT</type> <name>indirectExecutionSet</name></member>
+ <member><type>VkIndirectCommandsLayoutEXT</type> <name>indirectCommandsLayout</name></member>
+ <member><type>VkDeviceAddress</type> <name>indirectAddress</name></member>
+ <member><type>VkDeviceSize</type> <name>indirectAddressSize</name></member>
+ <member optional="true"><type>VkDeviceAddress</type> <name>preprocessAddress</name></member>
+ <member><type>VkDeviceSize</type> <name>preprocessSize</name></member>
+ <member><type>uint32_t</type> <name>maxSequenceCount</name></member>
+ <member optional="true"><type>VkDeviceAddress</type> <name>sequenceCountAddress</name></member>
+ <member><type>uint32_t</type> <name>maxDrawCount</name></member>
+ </type>
+ <type category="struct" name="VkWriteIndirectExecutionSetPipelineEXT">
+ <member values="VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>uint32_t</type> <name>index</name></member>
+ <member><type>VkPipeline</type> <name>pipeline</name></member>
+ </type>
+ <type category="struct" name="VkWriteIndirectExecutionSetShaderEXT">
+ <member values="VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>uint32_t</type> <name>index</name></member>
+ <member><type>VkShaderEXT</type> <name>shader</name></member>
+ </type>
+ <type category="struct" name="VkIndirectCommandsLayoutCreateInfoEXT">
+ <member values="VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
+ <member optional="true"><type>VkIndirectCommandsLayoutUsageFlagsEXT</type> <name>flags</name></member>
+ <member><type>VkShaderStageFlags</type> <name>shaderStages</name></member>
+ <member><type>uint32_t</type> <name>indirectStride</name></member>
+ <member optional="true"><type>VkPipelineLayout</type> <name>pipelineLayout</name></member>
+ <member><type>uint32_t</type> <name>tokenCount</name></member>
+ <member len="tokenCount">const <type>VkIndirectCommandsLayoutTokenEXT</type>* <name>pTokens</name></member>
+ </type>
+ <type category="struct" name="VkIndirectCommandsLayoutTokenEXT">
+ <member values="VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>VkIndirectCommandsTokenTypeEXT</type> <name>type</name></member>
+ <member selector="type" noautovalidity="true"><type>VkIndirectCommandsTokenDataEXT</type> <name>data</name></member>
+ <member><type>uint32_t</type> <name>offset</name></member>
+ </type>
+ <type category="struct" name="VkDrawIndirectCountIndirectCommandEXT">
+ <member><type>VkDeviceAddress</type> <name>bufferAddress</name></member>
+ <member><type>uint32_t</type> <name>stride</name></member>
+ <member><type>uint32_t</type> <name>commandCount</name></member>
+ </type>
+ <type category="struct" name="VkIndirectCommandsVertexBufferTokenEXT">
+ <member><type>uint32_t</type> <name>vertexBindingUnit</name></member>
+ </type>
+ <type category="struct" name="VkBindVertexBufferIndirectCommandEXT">
+ <member><type>VkDeviceAddress</type> <name>bufferAddress</name></member>
+ <member><type>uint32_t</type> <name>size</name></member>
+ <member><type>uint32_t</type> <name>stride</name></member>
+ </type>
+ <type category="struct" name="VkIndirectCommandsIndexBufferTokenEXT">
+ <member><type>VkIndirectCommandsInputModeFlagBitsEXT</type> <name>mode</name></member>
+ </type>
+ <type category="struct" name="VkBindIndexBufferIndirectCommandEXT">
+ <member><type>VkDeviceAddress</type> <name>bufferAddress</name></member>
+ <member><type>uint32_t</type> <name>size</name></member>
+ <member><type>VkIndexType</type> <name>indexType</name></member>
+ </type>
+ <type category="struct" name="VkIndirectCommandsPushConstantTokenEXT">
+ <member><type>VkPushConstantRange</type> <name>updateRange</name></member>
+ </type>
+ <type category="struct" name="VkIndirectCommandsExecutionSetTokenEXT">
+ <member><type>VkIndirectExecutionSetInfoTypeEXT</type> <name>type</name></member>
+ <member><type>VkShaderStageFlags</type> <name>shaderStages</name></member>
+ </type>
+ <type category="union" name="VkIndirectCommandsTokenDataEXT">
+ <member selection="VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT">const <type>VkIndirectCommandsPushConstantTokenEXT</type>* <name>pPushConstant</name></member>
+ <member selection="VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT">const <type>VkIndirectCommandsVertexBufferTokenEXT</type>* <name>pVertexBuffer</name></member>
+ <member selection="VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT">const <type>VkIndirectCommandsIndexBufferTokenEXT</type>* <name>pIndexBuffer</name></member>
+ <member selection="VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT">const <type>VkIndirectCommandsExecutionSetTokenEXT</type>* <name>pExecutionSet</name></member>
+ </type>
<type category="struct" name="VkPipelineViewportDepthClipControlCreateInfoEXT" structextends="VkPipelineViewportStateCreateInfo">
<member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>negativeOneToOne</name></member>
</type>
+ <type category="struct" name="VkPhysicalDeviceDepthClampControlFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+ <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
+ <member><type>VkBool32</type> <name>depthClampControl</name></member>
+ </type>
+ <type category="struct" name="VkPipelineViewportDepthClampControlCreateInfoEXT" structextends="VkPipelineViewportStateCreateInfo">
+ <member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>VkDepthClampModeEXT</type> <name>depthClampMode</name></member>
+ <member optional="true">const <type>VkDepthClampRangeEXT</type>* <name>pDepthClampRange</name></member>
+ </type>
<type category="struct" name="VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
@@ -9240,6 +9410,10 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>shaderReplicatedComposites</name></member>
</type>
+ <type category="struct" name="VkDepthClampRangeEXT">
+ <member><type>float</type> <name>minDepthClamp</name></member>
+ <member><type>float</type> <name>maxDepthClamp</name></member>
+ </type>
</types>
@@ -11326,6 +11500,30 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enums name="VkDeviceFaultVendorBinaryHeaderVersionEXT" type="enum">
<enum value="1" name="VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT"/>
</enums>
+ <enums name="VkIndirectCommandsLayoutUsageFlagBitsEXT" type="bitmask">
+ <enum bitpos="0" name="VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT"/>
+ <enum bitpos="1" name="VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT"/>
+ </enums>
+ <enums name="VkIndirectExecutionSetInfoTypeEXT" type="enum">
+ <enum value="0" name="VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT"/>
+ <enum value="1" name="VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT"/>
+ </enums>
+ <enums name="VkIndirectCommandsInputModeFlagBitsEXT" type="bitmask">
+ <enum bitpos="0" name="VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT"/>
+ <enum bitpos="1" name="VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT"/>
+ </enums>
+ <enums name="VkIndirectCommandsTokenTypeEXT" type="enum">
+ <enum value="0" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT"/>
+ <enum value="1" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT"/>
+ <enum value="2" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT"/>
+ <enum value="3" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT"/>
+ <enum value="4" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT"/>
+ <enum value="5" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT"/>
+ <enum value="6" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT"/>
+ <enum value="7" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT"/>
+ <enum value="8" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT"/>
+ <enum value="9" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT"/>
+ </enums>
<enums name="VkDisplacementMicromapFormatNV" type="enum">
<enum value="1" name="VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV"/>
<enum value="2" name="VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV"/>
@@ -11400,6 +11598,10 @@ typedef void* <name>MTLSharedEvent_id</name>;
</enums>
<enums name="VkWaylandSurfaceCreateFlagBitsKHR" type="bitmask">
</enums>
+ <enums name="VkDepthClampModeEXT" type="enum">
+ <enum value="0" name="VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT"/>
+ <enum value="1" name="VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT"/>
+ </enums>
<commands comment="Vulkan command definitions">
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_LAYER_NOT_PRESENT,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INCOMPATIBLE_DRIVER">
@@ -12861,6 +13063,66 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param optional="true" externsync="true"><type>VkIndirectCommandsLayoutNV</type> <name>indirectCommandsLayout</name></param>
<param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
</command>
+
+ <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary" tasks="action,indirection">
+ <proto><type>void</type> <name>vkCmdExecuteGeneratedCommandsEXT</name></proto>
+ <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+ <param><type>VkBool32</type> <name>isPreprocessed</name></param>
+ <param>const <type>VkGeneratedCommandsInfoEXT</type>* <name>pGeneratedCommandsInfo</name></param>
+ </command>
+ <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary" tasks="action">
+ <proto><type>void</type> <name>vkCmdPreprocessGeneratedCommandsEXT</name></proto>
+ <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+ <param>const <type>VkGeneratedCommandsInfoEXT</type>* <name>pGeneratedCommandsInfo</name></param>
+ <param externsync="true"><type>VkCommandBuffer</type> <name>stateCommandBuffer</name></param>
+ </command>
+ <command>
+ <proto><type>void</type> <name>vkGetGeneratedCommandsMemoryRequirementsEXT</name></proto>
+ <param><type>VkDevice</type> <name>device</name></param>
+ <param>const <type>VkGeneratedCommandsMemoryRequirementsInfoEXT</type>* <name>pInfo</name></param>
+ <param><type>VkMemoryRequirements2</type>* <name>pMemoryRequirements</name></param>
+ </command>
+ <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+ <proto><type>VkResult</type> <name>vkCreateIndirectCommandsLayoutEXT</name></proto>
+ <param><type>VkDevice</type> <name>device</name></param>
+ <param>const <type>VkIndirectCommandsLayoutCreateInfoEXT</type>* <name>pCreateInfo</name></param>
+ <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+ <param><type>VkIndirectCommandsLayoutEXT</type>* <name>pIndirectCommandsLayout</name></param>
+ </command>
+ <command>
+ <proto><type>void</type> <name>vkDestroyIndirectCommandsLayoutEXT</name></proto>
+ <param><type>VkDevice</type> <name>device</name></param>
+ <param optional="true" externsync="true"><type>VkIndirectCommandsLayoutEXT</type> <name>indirectCommandsLayout</name></param>
+ <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+ </command>
+ <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
+ <proto><type>VkResult</type> <name>vkCreateIndirectExecutionSetEXT</name></proto>
+ <param><type>VkDevice</type> <name>device</name></param>
+ <param>const <type>VkIndirectExecutionSetCreateInfoEXT</type>* <name>pCreateInfo</name></param>
+ <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+ <param><type>VkIndirectExecutionSetEXT</type>* <name>pIndirectExecutionSet</name></param>
+ </command>
+ <command>
+ <proto><type>void</type> <name>vkDestroyIndirectExecutionSetEXT</name></proto>
+ <param><type>VkDevice</type> <name>device</name></param>
+ <param optional="true" externsync="true"><type>VkIndirectExecutionSetEXT</type> <name>indirectExecutionSet</name></param>
+ <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
+ </command>
+ <command>
+ <proto><type>void</type> <name>vkUpdateIndirectExecutionSetPipelineEXT</name></proto>
+ <param><type>VkDevice</type> <name>device</name></param>
+ <param externsync="true"><type>VkIndirectExecutionSetEXT</type> <name>indirectExecutionSet</name></param>
+ <param><type>uint32_t</type> <name>executionSetWriteCount</name></param>
+ <param len="executionSetWriteCount">const <type>VkWriteIndirectExecutionSetPipelineEXT</type>* <name>pExecutionSetWrites</name></param>
+ </command>
+ <command>
+ <proto><type>void</type> <name>vkUpdateIndirectExecutionSetShaderEXT</name></proto>
+ <param><type>VkDevice</type> <name>device</name></param>
+ <param externsync="true"><type>VkIndirectExecutionSetEXT</type> <name>indirectExecutionSet</name></param>
+ <param><type>uint32_t</type> <name>executionSetWriteCount</name></param>
+ <param len="executionSetWriteCount">const <type>VkWriteIndirectExecutionSetShaderEXT</type>* <name>pExecutionSetWrites</name></param>
+ </command>
+
<command>
<proto><type>void</type> <name>vkGetPhysicalDeviceFeatures2</name></proto>
<param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
@@ -15561,6 +15823,12 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
<param>const <type>VkRenderingInputAttachmentIndexInfoKHR</type>* <name>pInputAttachmentIndexInfo</name></param>
</command>
+ <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+ <proto><type>void</type> <name>vkCmdSetDepthClampRangeEXT</name></proto>
+ <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+ <param><type>VkDepthClampModeEXT</type> <name>depthClampMode</name></param>
+ <param optional="true">const <type>VkDepthClampRangeEXT</type>* <name>pDepthClampRange</name></param>
+ </command>
</commands>
<feature api="vulkan,vulkansc" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions">
@@ -17883,6 +18151,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkRenderPassMultiviewCreateInfoKHR"/>
<type name="VkPhysicalDeviceMultiviewFeaturesKHR"/>
<type name="VkPhysicalDeviceMultiviewPropertiesKHR"/>
+ <feature name="multiview" struct="VkPhysicalDeviceMultiviewFeaturesKHR"/>
</require>
</extension>
<extension name="VK_IMG_format_pvrtc" number="55" type="device" author="IMG" contact="Stuart Smith" supported="vulkan" deprecatedby="">
@@ -18872,14 +19141,14 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_MVK_moltenvk&quot;" name="VK_MVK_MOLTENVK_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_external_memory_dma_buf" number="126" type="device" depends="VK_KHR_external_memory_fd" author="EXT" contact="Lina Versace @versalinyaa" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
+ <extension name="VK_EXT_external_memory_dma_buf" number="126" type="device" depends="VK_KHR_external_memory_fd" author="EXT" contact="Lina Versace @linyaa-kiwi" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_external_memory_dma_buf&quot;" name="VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME"/>
<enum bitpos="9" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"/>
</require>
</extension>
- <extension name="VK_EXT_queue_family_foreign" number="127" type="device" author="EXT" depends="VK_KHR_external_memory,VK_VERSION_1_1" contact="Lina Versace @versalinyaa" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
+ <extension name="VK_EXT_queue_family_foreign" number="127" type="device" author="EXT" depends="VK_KHR_external_memory,VK_VERSION_1_1" contact="Lina Versace @linyaa-kiwi" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
<require>
<enum value="1" name="VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_queue_family_foreign&quot;" name="VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME"/>
@@ -19309,7 +19578,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkGetDeviceAccelerationStructureCompatibilityKHR"/>
<command name="vkGetAccelerationStructureBuildSizesKHR"/>
<feature name="accelerationStructure" struct="VkPhysicalDeviceAccelerationStructureFeaturesKHR"/>
- <feature name="bufferDeviceAddress" struct="VkPhysicalDeviceDescriptorIndexingFeatures"/>
+ <feature name="bufferDeviceAddress" struct="VkPhysicalDeviceBufferDeviceAddressFeatures"/>
<feature name="descriptorBindingAccelerationStructureUpdateAfterBind" struct="VkPhysicalDeviceAccelerationStructureFeaturesKHR"/>
</require>
<require depends="VK_KHR_format_feature_flags2,VK_VERSION_1_3">
@@ -19517,7 +19786,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkBindImageMemoryInfoKHR"/>
</require>
</extension>
- <extension name="VK_EXT_image_drm_format_modifier" number="159" type="device" depends="(((VK_KHR_bind_memory2+VK_KHR_get_physical_device_properties2+VK_KHR_sampler_ycbcr_conversion),VK_VERSION_1_1)+VK_KHR_image_format_list),VK_VERSION_1_2" author="EXT" contact="Lina Versace @versalinyaa" supported="vulkan,vulkansc" ratified="vulkan">
+ <extension name="VK_EXT_image_drm_format_modifier" number="159" type="device" depends="(((VK_KHR_bind_memory2+VK_KHR_get_physical_device_properties2+VK_KHR_sampler_ycbcr_conversion),VK_VERSION_1_1)+VK_KHR_image_format_list),VK_VERSION_1_2" author="EXT" contact="Lina Versace @linyaa-kiwi" supported="vulkan,vulkansc" ratified="vulkan">
<require>
<enum value="2" name="VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_image_drm_format_modifier&quot;" name="VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME"/>
@@ -19593,8 +19862,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkDescriptorSetVariableDescriptorCountLayoutSupportEXT"/>
<type name="VkDescriptorBindingFlagBitsEXT"/>
<type name="VkDescriptorBindingFlagsEXT"/>
- <feature name="shaderSampledImageArrayDynamicIndexing" struct="VkPhysicalDeviceDescriptorIndexingFeaturesEXT"/>
- <feature name="shaderStorageBufferArrayDynamicIndexing" struct="VkPhysicalDeviceDescriptorIndexingFeaturesEXT"/>
+ <feature name="shaderSampledImageArrayDynamicIndexing" struct="VkPhysicalDeviceFeatures"/>
+ <feature name="shaderStorageBufferArrayDynamicIndexing" struct="VkPhysicalDeviceFeatures"/>
<feature name="shaderUniformTexelBufferArrayDynamicIndexing" struct="VkPhysicalDeviceDescriptorIndexingFeaturesEXT"/>
<feature name="shaderStorageTexelBufferArrayDynamicIndexing" struct="VkPhysicalDeviceDescriptorIndexingFeaturesEXT"/>
<feature name="shaderSampledImageArrayNonUniformIndexing" struct="VkPhysicalDeviceDescriptorIndexingFeaturesEXT"/>
@@ -20134,6 +20403,10 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPhysicalDeviceMeshShaderPropertiesNV"/>
<type name="VkDrawMeshTasksIndirectCommandNV"/>
</require>
+ <require depends="VK_EXT_device_generated_commands">
+ <enum offset="2" extends="VkIndirectCommandsTokenTypeEXT" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT"/>
+ <enum offset="3" extends="VkIndirectCommandsTokenTypeEXT" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT"/>
+ </require>
</extension>
<extension name="VK_NV_fragment_shader_barycentric" number="204" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="NV" contact="Pat Brown @nvpbrown" supported="vulkan" promotedto="VK_KHR_fragment_shader_barycentric">
<require>
@@ -20459,6 +20732,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="7" extends="VkMemoryPropertyFlagBits" name="VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD"/>
<type name="VkPhysicalDeviceCoherentMemoryFeaturesAMD"/>
+ <feature name="deviceCoherentMemory" struct="VkPhysicalDeviceCoherentMemoryFeaturesAMD"/>
</require>
</extension>
<extension name="VK_AMD_extension_231" number="231" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
@@ -21114,6 +21388,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkCmdBindPipelineShaderGroupNV"/>
<command name="vkCreateIndirectCommandsLayoutNV"/>
<command name="vkDestroyIndirectCommandsLayoutNV"/>
+ <feature name="deviceGeneratedCommands" struct="VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV"/>
</require>
</extension>
<extension name="VK_NV_inherited_viewport_scissor" number="279" type="device" author="NV" contact="David Zhao Akeley @akeley98" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" supported="vulkan">
@@ -21665,6 +21940,11 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="17" extends="VkAccessFlagBits2" name="VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV"/>
<enum bitpos="18" extends="VkAccessFlagBits2" name="VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV"/>
</require>
+ <require depends="VK_EXT_device_generated_commands">
+ <enum extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT" alias="VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"/>
+ <enum extends="VkAccessFlagBits2" name="VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT" alias="VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV"/>
+ <enum extends="VkAccessFlagBits2" name="VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT" alias="VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV"/>
+ </require>
<require depends="VK_KHR_fragment_shading_rate">
<enum bitpos="22" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
<enum bitpos="23" extends="VkAccessFlagBits2" name="VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"/>
@@ -21923,6 +22203,10 @@ typedef void* <name>MTLSharedEvent_id</name>;
<require depends="VK_NV_device_generated_commands">
<enum offset="0" extends="VkIndirectCommandsTokenTypeNV" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV"/>
</require>
+ <require depends="VK_EXT_device_generated_commands">
+ <enum offset="0" extends="VkIndirectCommandsTokenTypeEXT" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT"/>
+ <enum offset="1" extends="VkIndirectCommandsTokenTypeEXT" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT"/>
+ </require>
</extension>
<extension name="VK_NV_extension_330" number="330" author="NV" contact="Liam Middlebrook @liam-middlebrook" supported="disabled">
<require>
@@ -21945,6 +22229,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum extends="VkFormat" name="VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT" alias="VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16"/>
<enum extends="VkFormat" name="VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT" alias="VK_FORMAT_G16_B16R16_2PLANE_444_UNORM"/>
<type name="VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT"/>
+ <feature name="ycbcr2plane444Formats" struct="VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT"/>
</require>
</extension>
<extension name="VK_NV_extension_332" number="332" author="NV" contact="Tony Zlatinski @tzlatinski" supported="disabled">
@@ -22606,6 +22891,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkTraceRaysIndirectCommand2KHR"/>
<command name="vkCmdTraceRaysIndirect2KHR"/>
</require>
+ <require depends="VK_EXT_device_generated_commands">
+ <enum offset="4" extends="VkIndirectCommandsTokenTypeEXT" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT"/>
+ </require>
</extension>
<extension name="VK_EXT_extension_388" number="388" author="EXT" contact="Alan Baker @alan-baker" supported="disabled">
<require>
@@ -22884,6 +23172,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT"/>
<type name="VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT"/>
<command name="vkSetDeviceMemoryPriorityEXT"/>
+ <feature name="pageableDeviceLocalMemory" struct="VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT"/>
</require>
</extension>
<extension name="VK_KHR_maintenance4" number="414" type="device" depends="VK_VERSION_1_1" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_3" ratified="vulkan">
@@ -23278,7 +23567,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="47" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_RESERVED_47_BIT_ARM" />
</require>
</extension>
- <extension name="VK_EXT_external_memory_acquire_unmodified" number="454" type="device" depends="VK_KHR_external_memory,VK_VERSION_1_1" author="EXT" contact="Lina Versace @versalinyaa" supported="vulkan" ratified="vulkan">
+ <extension name="VK_EXT_external_memory_acquire_unmodified" number="454" type="device" depends="VK_KHR_external_memory,VK_VERSION_1_1" author="EXT" contact="Lina Versace @linyaa-kiwi" supported="vulkan" ratified="vulkan">
<require>
<enum value="1" name="VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_external_memory_acquire_unmodified&quot;" name="VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME"/>
@@ -23286,7 +23575,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkExternalMemoryAcquireUnmodifiedEXT"/>
</require>
</extension>
- <extension name="VK_GOOGLE_extension_455" number="455" author="GOOGLE" contact="Lina Versace @versalinyaa" supported="disabled">
+ <extension name="VK_GOOGLE_extension_455" number="455" author="GOOGLE" contact="Lina Versace @linyaa-kiwi" supported="disabled">
<require>
<enum value="0" name="VK_GOOGLE_EXTENSION_455_SPEC_VERSION"/>
<enum value="&quot;VK_GOOGLE_extension_455&quot;" name="VK_GOOGLE_EXTENSION_455_EXTENSION_NAME"/>
@@ -23763,6 +24052,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkAntiLagModeAMD"/>
<type name="VkAntiLagStageAMD"/>
<command name="vkAntiLagUpdateAMD"/>
+ <feature name="antiLag" struct="VkPhysicalDeviceAntiLagFeaturesAMD"/>
</require>
</extension>
<extension name="VK_AMD_extension_478" number="478" author="AMD" contact="Stu Smith" supported="disabled">
@@ -23926,6 +24216,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<require depends="VK_NV_coverage_reduction_mode">
<command name="vkCmdSetCoverageReductionModeNV"/>
</require>
+ <require depends="VK_EXT_depth_clamp_control">
+ <command name="vkCmdSetDepthClampRangeEXT"/>
+ </require>
</extension>
<extension name="VK_KHR_pipeline_binary" number="484" author="KHR" contact="Stu Smith @stu-s" depends="VK_KHR_maintenance5" type="device" supported="vulkan" ratified="vulkan">
<require>
@@ -24149,6 +24442,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_EXT_dynamic_rendering_unused_attachments&quot;" name="VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT"/>
<type name="VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT"/>
+ <feature name="dynamicRenderingUnusedAttachments" struct="VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT"/>
</require>
</extension>
<extension name="VK_EXT_extension_501" number="501" author="SEC" contact="Chris Hambacher @chambacher" type="device" supported="disabled">
@@ -24267,9 +24561,10 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="1" name="VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_compute_shader_derivatives&quot;" name="VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" extnumber="202" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR"/>
- <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR"/>
+ <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR"/>
<type name="VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR"/>
<type name="VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR"/>
+ <feature name="computeDerivativeGroupLinear" struct="VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR"/>
</require>
</extension>
<extension name="VK_KHR_video_decode_av1" number="513" author="KHR" depends="VK_KHR_video_decode_queue" contact="Daniel Rakos @aqnuep" type="device" supported="vulkan" ratified="vulkan">
@@ -24815,13 +25110,82 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_NV_extension_572&quot;" name="VK_NV_EXTENSION_572_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_extension_573" number="573" author="EXT" contact="Mike Blumenkrantz @zmike" supported="disabled">
+ <extension name="VK_EXT_device_generated_commands" number="573" author="EXT" type="device" depends="VK_KHR_buffer_device_address+VK_KHR_maintenance5" contact="Mike Blumenkrantz @zmike" supported="vulkan" ratified="vulkan">
<require>
- <enum value="0" name="VK_EXT_EXTENSION_573_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_573&quot;" name="VK_EXT_EXTENSION_573_EXTENSION_NAME"/>
- <enum bitpos="7" extends="VkShaderCreateFlagBitsEXT" name="VK_SHADER_CREATE_EXTENSION_573_BIT_EXT"/>
- <enum bitpos="32" extends="VkBufferUsageFlagBits2KHR" name="VK_BUFFER_USAGE_2_EXTENSION_573_BIT_EXT"/>
- <enum bitpos="38" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_EXTENSION_573_BIT_EXT"/>
+ <enum value="1" name="VK_EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_device_generated_commands&quot;" name="VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME"/>
+ <enum bitpos="7" extends="VkShaderCreateFlagBitsEXT" name="VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT"/>
+ <enum bitpos="31" extends="VkBufferUsageFlagBits2KHR" name="VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT"/>
+
+ <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT"/>
+ <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT"/>
+ <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT"/>
+ <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT"/>
+ <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT"/>
+ <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT"/>
+ <enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT"/>
+ <enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT"/>
+ <enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT"/>
+ <enum offset="10" extends="VkStructureType" name="VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT"/>
+ <enum offset="11" extends="VkStructureType" name="VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT"/>
+ <enum offset="12" extends="VkStructureType" name="VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT"/>
+ <enum offset="13" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT"/>
+ <enum offset="14" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT"/>
+
+ <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT"/>
+ <enum offset="1" extends="VkObjectType" name="VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT"/>
+
+ <enum bitpos="38" extends="VkPipelineCreateFlagBits2KHR" name="VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT"/>
+
+ <enum extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT" alias="VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"/>
+ <enum extends="VkAccessFlagBits" name="VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT" alias="VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"/>
+ <enum extends="VkAccessFlagBits" name="VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT" alias="VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"/>
+
+ <type name="VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT"/>
+ <type name="VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT"/>
+ <type name="VkGeneratedCommandsMemoryRequirementsInfoEXT"/>
+ <type name="VkIndirectExecutionSetCreateInfoEXT"/>
+ <type name="VkIndirectExecutionSetInfoEXT"/>
+ <type name="VkIndirectExecutionSetPipelineInfoEXT"/>
+ <type name="VkIndirectExecutionSetShaderInfoEXT"/>
+ <type name="VkGeneratedCommandsInfoEXT"/>
+ <type name="VkWriteIndirectExecutionSetPipelineEXT"/>
+ <type name="VkIndirectCommandsLayoutCreateInfoEXT"/>
+ <type name="VkIndirectCommandsLayoutTokenEXT"/>
+ <type name="VkDrawIndirectCountIndirectCommandEXT"/>
+ <type name="VkIndirectCommandsVertexBufferTokenEXT"/>
+ <type name="VkBindVertexBufferIndirectCommandEXT"/>
+ <type name="VkIndirectCommandsIndexBufferTokenEXT"/>
+ <type name="VkBindIndexBufferIndirectCommandEXT"/>
+ <type name="VkIndirectCommandsPushConstantTokenEXT"/>
+ <type name="VkIndirectCommandsExecutionSetTokenEXT"/>
+ <type name="VkIndirectCommandsTokenDataEXT"/>
+ <type name="VkIndirectCommandsLayoutEXT"/>
+ <type name="VkIndirectExecutionSetEXT"/>
+ <type name="VkIndirectCommandsTokenTypeEXT"/>
+ <type name="VkIndirectExecutionSetInfoTypeEXT"/>
+ <type name="VkIndirectCommandsLayoutUsageFlagsEXT"/>
+ <type name="VkIndirectCommandsLayoutUsageFlagBitsEXT"/>
+ <type name="VkIndirectCommandsInputModeFlagsEXT"/>
+ <type name="VkIndirectCommandsInputModeFlagBitsEXT"/>
+ <type name="VkIndirectExecutionSetShaderLayoutInfoEXT"/>
+ <type name="VkGeneratedCommandsPipelineInfoEXT"/>
+ <type name="VkGeneratedCommandsShaderInfoEXT"/>
+
+ <command name="vkGetGeneratedCommandsMemoryRequirementsEXT"/>
+ <command name="vkCmdPreprocessGeneratedCommandsEXT"/>
+ <command name="vkCmdExecuteGeneratedCommandsEXT"/>
+ <command name="vkCreateIndirectCommandsLayoutEXT"/>
+ <command name="vkDestroyIndirectCommandsLayoutEXT"/>
+ <command name="vkCreateIndirectExecutionSetEXT"/>
+ <command name="vkDestroyIndirectExecutionSetEXT"/>
+ <command name="vkUpdateIndirectExecutionSetPipelineEXT"/>
+ <command name="vkUpdateIndirectExecutionSetShaderEXT"/>
+
+ <feature name="deviceGeneratedCommands" struct="VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT"/>
+ </require>
+ <require depends="VK_EXT_shader_object">
+ <type name="VkWriteIndirectExecutionSetShaderEXT"/>
</require>
</extension>
<extension name="VK_KHR_extension_574" number="574" author="KHR" contact="Ralph Potter gitlab:@r_potter" supported="disabled">
@@ -24889,10 +25253,19 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_EXT_extension_582&quot;" name="VK_EXT_EXTENSION_582_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_extension_583" number="583" author="EXT" contact="Jules Blok @jules" supported="disabled" comment="codespell:ignore blok">
+ <extension name="VK_EXT_depth_clamp_control" number="583" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" type="device" author="EXT" contact="Jules Blok @jules" comment="codespell:ignore blok" supported="vulkan" ratified="vulkan">
<require>
- <enum value="0" name="VK_EXT_EXTENSION_583_SPEC_VERSION"/>
- <enum value="&quot;VK_EXT_extension_583&quot;" name="VK_EXT_EXTENSION_583_EXTENSION_NAME"/>
+ <enum value="1" name="VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_depth_clamp_control&quot;" name="VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME"/>
+ <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT"/>
+ <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT"/>
+ <enum offset="0" extends="VkDynamicState" name="VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT"/>
+ <type name="VkPhysicalDeviceDepthClampControlFeaturesEXT"/>
+ <type name="VkPipelineViewportDepthClampControlCreateInfoEXT"/>
+ <type name="VkDepthClampModeEXT"/>
+ <type name="VkDepthClampRangeEXT"/>
+ <command name="vkCmdSetDepthClampRangeEXT"/>
+ <feature name="depthClampControl" struct="VkPhysicalDeviceDepthClampControlFeaturesEXT"/>
</require>
</extension>
<extension name="VK_EXT_extension_584" number="584" author="EXT" contact="James Jones @cubanismo" supported="disabled">
@@ -25030,6 +25403,18 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="0" extends="VkWaylandSurfaceCreateFlagBitsKHR" name="VK_WAYLAND_SURFACE_CREATE_DISABLE_COLOR_MANAGEMENT"/>
</require>
</extension>
+ <extension name="VK_KHR_extension_605" number="605" author="KHR" contact="Graeme Leese @gnl21" supported="disabled">
+ <require>
+ <enum value="0" name="VK_KHR_EXTENSION_605_SPEC_VERSION"/>
+ <enum value="&quot;VK_KHR_extension_605&quot;" name="VK_KHR_EXTENSION_605_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_KHR_extension_606" number="606" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled">
+ <require>
+ <enum value="0" name="VK_KHR_EXTENSION_606_SPEC_VERSION"/>
+ <enum value="&quot;VK_KHR_extension_606&quot;" name="VK_KHR_EXTENSION_606_EXTENSION_NAME"/>
+ </require>
+ </extension>
</extensions>
<formats>
<format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8">
@@ -27304,6 +27689,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<syncstage name="VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV" alias="VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV">
<syncsupport queues="graphics,compute"/>
</syncstage>
+ <syncstage name="VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT" alias="VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV">
+ <syncsupport queues="graphics,compute"/>
+ </syncstage>
<syncstage name="VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" alias="VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR">
<syncsupport queues="graphics"/>
</syncstage>
@@ -27444,6 +27832,12 @@ typedef void* <name>MTLSharedEvent_id</name>;
<syncaccess name="VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV" alias="VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV">
<syncsupport stage="VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"/>
</syncaccess>
+ <syncaccess name="VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT" alias="VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV">
+ <syncsupport stage="VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT"/>
+ </syncaccess>
+ <syncaccess name="VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT" alias="VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV">
+ <syncsupport stage="VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT"/>
+ </syncaccess>
<syncaccess name="VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR" alias="VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR">
<syncsupport stage="VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
</syncaccess>
@@ -27523,8 +27917,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<syncpipeline name="subpass shading" depends="VK_HUAWEI_subpass_shading">
<syncpipelinestage>VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI</syncpipelinestage>
</syncpipeline>
- <syncpipeline name="command preprocessing" depends="VK_NV_device_generated_commands">
- <syncpipelinestage>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV</syncpipelinestage>
+ <syncpipeline name="command preprocessing" depends="VK_EXT_device_generated_commands,VK_NV_device_generated_commands">
+ <syncpipelinestage>VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT</syncpipelinestage>
</syncpipeline>
<syncpipeline name="acceleration structure build" depends="VK_KHR_acceleration_structure,VK_NV_ray_tracing">
<syncpipelinestage>VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR</syncpipelinestage>
@@ -27552,12 +27946,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<videocodecs>
<videocodec name="Decode">
<videocapabilities struct="VkVideoDecodeCapabilitiesKHR"/>
- <videoformat name="Decode Output (Coincide)" usage="VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR+VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR">
- <videorequirecapabilities struct="VkVideoDecodeCapabilitiesKHR" member="flags" value="VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR"/>
- </videoformat>
- <videoformat name="Decode Output (Distinct)" usage="VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR">
- <videorequirecapabilities struct="VkVideoDecodeCapabilitiesKHR" member="flags" value="VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR"/>
- </videoformat>
+ <videoformat name="Decode Output" usage="VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"/>
<videoformat name="DPB" usage="VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"/>
</videocodec>
<videocodec name="Encode">