vkCmdDrawIndirectCount(3)
C Specification
To record a non-indexed draw call with a draw call count sourced from abuffer, call:
// Provided by VK_VERSION_1_2void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);// Provided by VK_KHR_draw_indirect_count// Equivalent to vkCmdDrawIndirectCountvoid vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);// Provided by VK_AMD_draw_indirect_count// Equivalent to vkCmdDrawIndirectCountvoid vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);Parameters
commandBufferis the command buffer into which the command isrecorded.bufferis the buffer containing draw parameters.offsetis the byte offset intobufferwhere parametersbegin.countBufferis the buffer containing the draw count.countBufferOffsetis the byte offset intocountBufferwherethe draw count begins.maxDrawCountspecifies the maximum number of draws that will beexecuted.The actual number of executed draw calls is the minimum of the countspecified incountBufferandmaxDrawCount.strideis the byte stride between successive sets of drawparameters.
Description
vkCmdDrawIndirectCount behaves similarly tovkCmdDrawIndirectexcept that the draw count is read by the device from a buffer duringexecution.The command will read an unsigned 32-bit integer fromcountBufferlocated atcountBufferOffset and use this as the draw count.
VUID-vkCmdDrawIndirectCount-magFilter-04553
If aVkSampler created withmagFilterorminFilterequal toVK_FILTER_LINEAR,reductionModeequal toVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,andcompareEnableequal toVK_FALSE is used to sample aVkImageView as a result of this command, then the image view’sformat featuresmust containVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BITVUID-vkCmdDrawIndirectCount-magFilter-09598
If aVkSampler created withmagFilterorminFilterequal toVK_FILTER_LINEAR andreductionModeequal to eitherVK_SAMPLER_REDUCTION_MODE_MIN orVK_SAMPLER_REDUCTION_MODE_MAX is used to sample aVkImageView as a result of this command, then the image view’sformat featuresmust containVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BITVUID-vkCmdDrawIndirectCount-mipmapMode-04770
If aVkSampler created withmipmapModeequal toVK_SAMPLER_MIPMAP_MODE_LINEAR,reductionModeequal toVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,andcompareEnableequal toVK_FALSE is used to sample aVkImageView as a result of this command, then the image view’sformat featuresmust containVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BITVUID-vkCmdDrawIndirectCount-mipmapMode-09599
If aVkSampler created withmipmapModeequal toVK_SAMPLER_MIPMAP_MODE_LINEAR andreductionModeequal toeitherVK_SAMPLER_REDUCTION_MODE_MIN orVK_SAMPLER_REDUCTION_MODE_MAX is used to sample aVkImageView as a result of this command, then the image view’sformat featuresmust containVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BITVUID-vkCmdDrawIndirectCount-unnormalizedCoordinates-09635
If aVkSampler created withunnormalizedCoordinatesequal toVK_TRUE is used to sample aVkImageView as a result of thiscommand, then the image view’slevelCountandlayerCountmust be 1VUID-vkCmdDrawIndirectCount-None-08609
If aVkSampler created withunnormalizedCoordinatesequal toVK_TRUE is used to sample aVkImageView as a result of thiscommand, then the image view’sviewTypemust beVK_IMAGE_VIEW_TYPE_1D orVK_IMAGE_VIEW_TYPE_2DVUID-vkCmdDrawIndirectCount-None-08610
If aVkSampler created withunnormalizedCoordinatesequal toVK_TRUE is used to sample aVkImageView as a result of thiscommand, then the samplermust not be used with any of the SPIR-VOpImageSample*orOpImageSparseSample*instructions withImplicitLod,DreforProjin their nameVUID-vkCmdDrawIndirectCount-None-08611
If aVkSampler created withunnormalizedCoordinatesequal toVK_TRUE is used to sample aVkImageView as a result of thiscommand, then the samplermust not be used with any of the SPIR-VOpImageSample*orOpImageSparseSample*instructions that includes aLOD bias or any offset valuesVUID-vkCmdDrawIndirectCount-None-06479
If aVkImageView is sampled withdepth comparison, the image view’sformat featuresmust containVK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BITVUID-vkCmdDrawIndirectCount-None-02691
If aVkImageView is accessed using atomic operations as a resultof this command, then the image view’sformat featuresmust containVK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BITVUID-vkCmdDrawIndirectCount-None-07888
If aVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor isaccessed using atomic operations as a result of this command, then thestorage texel buffer’sformat featuresmust containVK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BITVUID-vkCmdDrawIndirectCount-None-02692
If aVkImageView is sampled withVK_FILTER_CUBIC_EXT as aresult of this command, then the image view’sformat featuresmust containVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXTVUID-vkCmdDrawIndirectCount-None-02693
IftheVK_EXT_filter_cubic extension is not enabled andanyVkImageView is sampled withVK_FILTER_CUBIC_EXT as aresult of this command, itmust not have aVkImageViewType ofVK_IMAGE_VIEW_TYPE_3D,VK_IMAGE_VIEW_TYPE_CUBE, orVK_IMAGE_VIEW_TYPE_CUBE_ARRAYVUID-vkCmdDrawIndirectCount-filterCubic-02694
AnyVkImageView being sampled withVK_FILTER_CUBIC_EXT as aresult of this commandmust have aVkImageViewType and formatthat supports cubic filtering, as specified byVkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicreturned byvkGetPhysicalDeviceImageFormatProperties2VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695
AnyVkImageView being sampled withVK_FILTER_CUBIC_EXT witha reduction mode of eitherVK_SAMPLER_REDUCTION_MODE_MIN orVK_SAMPLER_REDUCTION_MODE_MAX as a result of this commandmusthave aVkImageViewType and format that supports cubic filteringtogether with minmax filtering, as specified byVkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmaxreturned byvkGetPhysicalDeviceImageFormatProperties2VUID-vkCmdDrawIndirectCount-cubicRangeClamp-09212
If thecubicRangeClampfeature isnot enabled, then anyVkImageView being sampled withVK_FILTER_CUBIC_EXT as a result of this commandmust not have aVkSamplerReductionModeCreateInfo::reductionModeequal toVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOMVUID-vkCmdDrawIndirectCount-reductionMode-09213
AnyVkImageView being sampled with aVkSamplerReductionModeCreateInfo::reductionModeequal toVK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as aresult of this commandmust sample withVK_FILTER_CUBIC_EXTVUID-vkCmdDrawIndirectCount-selectableCubicWeights-09214
If theselectableCubicWeightsfeature is not enabled, then anyVkImageView being sampled withVK_FILTER_CUBIC_EXT as a result of this commandmust haveVkSamplerCubicWeightsCreateInfoQCOM::cubicWeightsequal toVK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOMVUID-vkCmdDrawIndirectCount-flags-02696
AnyVkImage created with aVkImageCreateInfo::flagscontainingVK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as aresult of this commandmust only be sampled using aVkSamplerAddressMode ofVK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGEVUID-vkCmdDrawIndirectCount-OpTypeImage-07027
For anyVkImageView being written as a storage image where theimage format field of theOpTypeImageisUnknown, the view’sformat featuresmust containVK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BITVUID-vkCmdDrawIndirectCount-OpTypeImage-07028
For anyVkImageView being read as a storage image where the imageformat field of theOpTypeImageisUnknown, the view’sformat featuresmust containVK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BITVUID-vkCmdDrawIndirectCount-OpTypeImage-07029
For anyVkBufferView being written as a storage texel buffer wherethe image format field of theOpTypeImageisUnknown, theview’sbuffer featuresmust containVK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BITVUID-vkCmdDrawIndirectCount-OpTypeImage-07030
AnyVkBufferView being read as a storage texel buffer where theimage format field of theOpTypeImageisUnknownthen theview’sbuffer featuresmust containVK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BITVUID-vkCmdDrawIndirectCount-None-08600
If aa bound shaderwas createdas aVkShaderEXT without theVK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT flag oras part of a pipeline without theVK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT flag, and that shaderstatically uses a setn, a descriptor setmust have been bound tonat the same pipeline bind point, with aVkPipelineLayout that iscompatible for setn, with theVkPipelineLayout used to createthe currentVkPipelineor theVkDescriptorSetLayout array used to create the currentVkShaderEXT, as described inPipeline Layout CompatibilityVUID-vkCmdDrawIndirectCount-None-08601
If aa bound shaderwas createdas aVkShaderEXT without theVK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT flag oras part of a pipeline without theVK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT flag, and that shaderstatically uses a push constant value, that valuemust have been setfor the same pipeline bind point, with aVkPipelineLayout that iscompatible for push constants with theVkPipelineLayout used to create the currentVkPipelineor theVkDescriptorSetLayout array used to create the currentVkShaderEXTVUID-vkCmdDrawIndirectCount-None-10068
For each array of resources that is used bya bound shader, the indices used to access members of the arraymust be lessthan the descriptor count for the identified binding in the descriptorsets used by this commandVUID-vkCmdDrawIndirectCount-maintenance4-08602
If aa bound shaderwas createdas aVkShaderEXT without theVK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT flag oras part of a pipeline without theVK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT flag, and that shaderstatically uses a push constant value, that valuemust have been setfor the same pipeline bind point, with aVkPipelineLayout that iscompatible for push constants with theVkPipelineLayout used to create the currentVkPipelineor theVkDescriptorSetLayout andVkPushConstantRange arraysused to create the currentVkShaderEXTVUID-vkCmdDrawIndirectCount-None-08114
Descriptors in each bound descriptor set, specified viavkCmdBindDescriptorSets,must be valid if they are accessed asdescribed bydescriptor validity bytheVkPipeline bound to the pipeline bind point used by thiscommand and the boundVkPipeline was not created withVK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXTVUID-vkCmdDrawIndirectCount-imageLayout-00344
If an image descriptor is accessed by a shader, theVkImageLayoutmust match the subresource accessible from theVkImageView asdefined by theimage layout matching rulesVUID-vkCmdDrawIndirectCount-None-08115
If the descriptors used by theVkPipeline bound to the pipelinebind point were specified viavkCmdBindDescriptorSets, the boundVkPipelinemust have been created withoutVK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXTVUID-vkCmdDrawIndirectCount-None-08116
Descriptors in bound descriptor buffers, specified viavkCmdSetDescriptorBufferOffsetsEXT,must be valid if they aredynamically used by theVkPipeline bound to the pipeline bindpoint used by this command and the boundVkPipeline was createdwithVK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXTVUID-vkCmdDrawIndirectCount-None-08604
Descriptors in bound descriptor buffers, specified viavkCmdSetDescriptorBufferOffsetsEXT,must be valid if they aredynamically used by anyVkShaderEXT bound to a stage correspondingto the pipeline bind point used by this commandVUID-vkCmdDrawIndirectCount-None-08117
If the descriptors used by theVkPipeline bound to the pipelinebind point were specified viavkCmdSetDescriptorBufferOffsetsEXT,the boundVkPipelinemust have been created withVK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXTVUID-vkCmdDrawIndirectCount-None-08119
If a descriptor is dynamically used with aVkPipeline created withVK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptormemorymust be residentVUID-vkCmdDrawIndirectCount-None-08605
If a descriptor is dynamically used with aVkShaderEXT createdwith aVkDescriptorSetLayoutthat was created withVK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, thedescriptor memorymust be residentVUID-vkCmdDrawIndirectCount-None-08606
If theshaderObjectfeature is notenabled, avalid pipelinemust be bound to the pipeline bind point used by thiscommandVUID-vkCmdDrawIndirectCount-None-08608
If a pipeline is bound to the pipeline bind point used by this command,theremust not have been any calls to dynamic state setting commands for anystate specified statically in theVkPipeline object bound to thepipeline bind point used by this command, since that pipeline was boundVUID-vkCmdDrawIndirectCount-uniformBuffers-06935
If any stage of theVkPipeline object bound to the pipeline bindpoint used by this command accesses a uniform buffer,and that stage was created without enabling eitherVK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS orVK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 foruniformBuffers,and therobustBufferAccessfeature is not enabled, that stagemust not access values outside ofthe range of the buffer as specified in the descriptor set bound to thesame pipeline bind pointVUID-vkCmdDrawIndirectCount-None-08612
If therobustBufferAccessfeatureis not enabled, and anyVkShaderEXT bound to a stage correspondingto the pipeline bind point used by this command accesses a uniformbuffer, itmust not access values outside of the range of the buffer asspecified in the descriptor set bound to the same pipeline bind pointVUID-vkCmdDrawIndirectCount-storageBuffers-06936
If any stage of theVkPipeline object bound to the pipeline bindpoint used by this command accesses a storage buffer,and that stage was created without enabling eitherVK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS orVK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 forstorageBuffers,and therobustBufferAccessfeature is not enabled, that stagemust not access values outside ofthe range of the buffer as specified in the descriptor set bound to thesame pipeline bind pointVUID-vkCmdDrawIndirectCount-None-08613
If therobustBufferAccessfeatureis not enabled, and anyVkShaderEXT bound to a stage correspondingto the pipeline bind point used by this command accesses a storagebuffer, itmust not access values outside of the range of the buffer asspecified in the descriptor set bound to the same pipeline bind pointVUID-vkCmdDrawIndirectCount-commandBuffer-02707
IfcommandBufferis an unprotected command buffer andprotectedNoFaultis not supported,any resource accessed bybound shadersmust not bea protected resourceVUID-vkCmdDrawIndirectCount-viewType-07752
If aVkImageView is accessed as a result of this command, then theimage view’sviewTypemust match theDimoperand of theOpTypeImageas described inCompatibility Between SPIR-V Image Dimensions and Vulkan ImageView TypesVUID-vkCmdDrawIndirectCount-format-07753
If aVkImageView orVkBufferView is accessed as a result ofthis command, then thenumeric type of theview’sformatand theSampledTypeoperand of theOpTypeImagemust matchVUID-vkCmdDrawIndirectCount-OpImageWrite-08795
If aVkImageViewcreated with a format other thanVK_FORMAT_A8_UNORMis accessed usingOpImageWriteas a result of this command, thentheTypeof theTexeloperand of that instructionmust haveat least as many components as the image view’s formatVUID-vkCmdDrawIndirectCount-OpImageWrite-08796
If aVkImageView created with the formatVK_FORMAT_A8_UNORMis accessed usingOpImageWriteas a result of this command, thentheTypeof theTexeloperand of that instructionmust havefour componentsVUID-vkCmdDrawIndirectCount-OpImageWrite-04469
If aVkBufferView is accessed usingOpImageWriteas a resultof this command, then theTypeof theTexeloperand of thatinstructionmust have at least as many components as the buffer view’sformatVUID-vkCmdDrawIndirectCount-SampledType-04470
If aVkImageView with aVkFormat that has a 64-bit componentwidth is accessed as a result of this command, theSampledTypeoftheOpTypeImageoperand of that instructionmust have aWidthof 64VUID-vkCmdDrawIndirectCount-SampledType-04471
If aVkImageView with aVkFormat that has a component widthless than 64-bit is accessed as a result of this command, theSampledTypeof theOpTypeImageoperand of that instructionmust have aWidthof 32VUID-vkCmdDrawIndirectCount-SampledType-04472
If aVkBufferView with aVkFormat that has a 64-bitcomponent width is accessed as a result of this command, theSampledTypeof theOpTypeImageoperand of that instructionmust have aWidthof 64VUID-vkCmdDrawIndirectCount-SampledType-04473
If aVkBufferView with aVkFormat that has a component widthless than 64-bit is accessed as a result of this command, theSampledTypeof theOpTypeImageoperand of that instructionmust have aWidthof 32VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04474
If thesparseImageInt64Atomicsfeature is not enabled,VkImageobjects created with theVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flagmust not be accessed by atomic instructions through anOpTypeImagewith aSampledTypewith aWidthof 64 by this commandVUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04475
If thesparseImageInt64Atomicsfeature is not enabled,VkBufferobjects created with theVK_BUFFER_CREATE_SPARSE_RESIDENCY_BITflagmust not be accessed by atomic instructions through anOpTypeImagewith aSampledTypewith aWidthof 64 by thiscommandVUID-vkCmdDrawIndirectCount-OpImageSampleWeightedQCOM-06971
IfOpImageSampleWeightedQCOMis used to sample aVkImageViewas a result of this command, then the image view’sformat featuresmust containVK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOMVUID-vkCmdDrawIndirectCount-OpImageSampleWeightedQCOM-06972
IfOpImageSampleWeightedQCOMuses aVkImageView as a sampleweight image as a result of this command, then the image view’sformat featuresmust containVK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOMVUID-vkCmdDrawIndirectCount-OpImageBoxFilterQCOM-06973
IfOpImageBoxFilterQCOMis used to sample aVkImageView as aresult of this command, then the image view’sformat featuresmust containVK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOMVUID-vkCmdDrawIndirectCount-OpImageBlockMatchSSDQCOM-06974
IfOpImageBlockMatchSSDQCOMis used to read from anVkImageView as a result of this command, then the image view’sformat featuresmust containVK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOMVUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06975
IfOpImageBlockMatchSADQCOMis used to read from anVkImageView as a result of this command, then the image view’sformat featuresmust containVK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOMVUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06976
IfOpImageBlockMatchSADQCOMor OpImageBlockMatchSSDQCOM is used toread from a reference image as result of this command, then thespecified reference coordinatesmust not failinteger texel coordinate validationVUID-vkCmdDrawIndirectCount-OpImageSampleWeightedQCOM-06977
IfOpImageSampleWeightedQCOM,OpImageBoxFilterQCOM,OpImageBlockMatchWindowSSDQCOM,OpImageBlockMatchWindowSADQCOM,OpImageBlockMatchGatherSSDQCOM,OpImageBlockMatchGatherSADQCOM,OpImageBlockMatchSSDQCOM, orOpImageBlockMatchSADQCOMuses aVkSampler as a result of this command, then the samplermust havebeen created withVK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOMVUID-vkCmdDrawIndirectCount-OpImageSampleWeightedQCOM-06978
If any command other thanOpImageSampleWeightedQCOM,OpImageBoxFilterQCOM,OpImageBlockMatchWindowSSDQCOM,OpImageBlockMatchWindowSADQCOM,OpImageBlockMatchGatherSSDQCOM,OpImageBlockMatchGatherSADQCOM,OpImageBlockMatchSSDQCOM, orOpImageBlockMatchSADQCOMuses aVkSampler as a result of this command, then the samplermust nothave been created withVK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOMVUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09215
If aOpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMinstruction is used to read from anVkImageView as a result of this command, then the image view’sformat featuresmust containVK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOMVUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09216
If aOpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMinstruction is used to read from anVkImageView as a result of this command, then the image view’sformatmust be a single-component formatVUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09217
If aOpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMread from a reference image as resultof this command, then the specified reference coordinatesmust not failinteger texel coordinate validationVUID-vkCmdDrawIndirectCount-None-07288
Any shader invocation executed by this commandmustterminateVUID-vkCmdDrawIndirectCount-None-09600
If a descriptor with type equal to any ofVK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM,VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, orVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result ofthis command, all image subresources identified by that descriptormustbe in the image layout identified when the descriptor was writtenVUID-vkCmdDrawIndirectCount-commandBuffer-10746
TheVkDeviceMemoryobject allocated from aVkMemoryHeapwiththeVK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOM property that is bound toa resource accessed as a result of this commandmust be the activeboundbound tile memory object incommandBufferVUID-vkCmdDrawIndirectCount-None-10678
If this command is recorded inside atile shading render pass instance, the stages corresponding to the pipelinebind point used by this commandmust only includeVK_SHADER_STAGE_VERTEX_BIT,VK_SHADER_STAGE_FRAGMENT_BIT,and/orVK_SHADER_STAGE_COMPUTE_BITVUID-vkCmdDrawIndirectCount-None-10679
If this command is recorded whereper-tile execution model isenabled, theremust be no access to any image while the image was betransitioned to theVK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layoutVUID-vkCmdDrawIndirectCount-pDescription-09900
If aVK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as aresult of this command, then the underlyingVkTensorARM objectmust have been created with theVK_TENSOR_USAGE_SHADER_BIT_ARMusage flag setVUID-vkCmdDrawIndirectCount-dimensionCount-09905
If aVK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as aresult of this command, then theRankof theOpTypeTensorARMof the tensor resource variablemust be equal to thedimensionCountprovided viaVkTensorCreateInfoARM::pDescriptionwhen creating theunderlyingVkTensorARM objectVUID-vkCmdDrawIndirectCount-OpTypeTensorARM-09906
If aVK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as aresult of this command, then the element type of theOpTypeTensorARMof the tensor resource variablemust becompatible with theVkFormat of theVkTensorViewARM used for the accessVUID-vkCmdDrawIndirectCount-None-11297
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT,orVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, anda shader accesses aOpTypeStructdecorated withBlockorBufferBlockusing that mapping, the calculatedoffset for theresource heapmust be a multiple ofbufferDescriptorAlignmentVUID-vkCmdDrawIndirectCount-None-11298
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT,orVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, anda shader accesses anOpTypeImageorOpTypeSampledImageusingthat mapping, the calculatedoffset for the resource heapmust bea multiple ofimageDescriptorAlignmentVUID-vkCmdDrawIndirectCount-None-11299
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT,orVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, anda shader accesses anOpTypeSamplerorOpTypeSampledImageusingthat mapping, the calculatedoffset for the sampler heapmust bea multiple ofsamplerDescriptorAlignmentVUID-vkCmdDrawIndirectCount-None-11397
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT,orVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, anda shader accesses anOpTypeTensorARMusing that mapping, thecalculatedoffset for the resource heapmust be a multiple oftensorDescriptorAlignmentVUID-vkCmdDrawIndirectCount-None-11300
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT orVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, and ashader accesses a resource using that mapping, the value of the addressat the expected location in push datamust be a multiple of 4VUID-vkCmdDrawIndirectCount-None-11301
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT orVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, and ashader accesses a resource using that mapping, the value of the addressat the expected location in push datamust be a validVkDeviceAddressbacked by physical memory at every offsetspecified by each mappingVUID-vkCmdDrawIndirectCount-None-11302
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT, anda shader accesses a resource using that mapping, the value of theaddress at the expected location in push datamust be a validVkDeviceAddressVUID-vkCmdDrawIndirectCount-None-11304
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT,and a shader accesses a resource using that mapping, the value of theaddress at the expected location in push datamust be a multiple of 8VUID-vkCmdDrawIndirectCount-None-11305
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT,and a shader accesses a resource using that mapping, the value of theaddress at the expected location in push datamust be a validVkDeviceAddressbacked by physical memory at every offsetspecified by each mappingVUID-vkCmdDrawIndirectCount-None-11306
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT,and a shader accesses a resource using that mapping, the value of theaddress pointed to by the address in push datamust be a validVkDeviceAddressVUID-vkCmdDrawIndirectCount-None-11308
For eachdescriptor heap that is statically used bya bound shader, either directly or via adescriptor mapping, a valid descriptor heapmust be boundVUID-vkCmdDrawIndirectCount-None-11309
If abound shader was createdas aVkShaderEXT with theVK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT flag oras part of a pipeline with theVK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT flag, execution ofthis commandmust not result in any descriptor read accessing dataoutside of the user range of the respective heap bound byvkCmdBind*HeapEXTcommandsVUID-vkCmdDrawIndirectCount-None-11372
If any stage of theVkPipeline object bound to the pipeline bindpoint used by this command accesses a uniform buffer or uniform texelbuffer through a descriptor in the bound resource heap,that stage was created without enabling eitherVK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS orVK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 foruniformBuffers,therobustBufferAccess2featureis not enabled,and therobustBufferAccessfeature is not enabled, that stagemust not access values outside ofthe range of the descriptor specified viaVkDeviceAddressRangeEXTwhen the descriptor was writtenVUID-vkCmdDrawIndirectCount-None-11373
If any stage of theVkPipeline object bound to the pipeline bindpoint used by this command accesses a storage buffer or storage texelbuffer through a descriptor in the bound resource heap,that stage was created without enabling eitherVK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS orVK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 forstorageBuffers,therobustBufferAccess2featureis not enabled,and therobustBufferAccessfeature is not enabled, that stagemust not access values outside ofthe range of the descriptor specified byVkDeviceAddressRangeEXTwhen the descriptor was writtenVUID-vkCmdDrawIndirectCount-None-11374
IftherobustBufferAccess2featureis not enabled,therobustBufferAccessfeature isnot enabled, and anyVkShaderEXT bound to a stage corresponding tothe pipeline bind point used by this command accesses a uniform buffer,uniform texel buffer, storage buffer, or storage texel buffer, thatshadermust not access values outside of the range of the buffer asspecified byVkDeviceAddressRangeEXT when the descriptor waswrittenVUID-vkCmdDrawIndirectCount-pBindInfo-11375
If anybound shader uses an embedded sampler via adescriptor mapping, the value ofpBindInfo->reservedRangeSizeset forvkCmdBindSamplerHeapEXTmust be greater than or equal tominSamplerHeapReservedRangeWithEmbeddedVUID-vkCmdDrawIndirectCount-None-11376
If abound shader was createdas aVkShaderEXT with theVK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT flag oras part of a pipeline with theVK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT flag, and that shaderstatically uses a push constant value, that valuemust have been set byvkCmdPushDataEXTVUID-vkCmdDrawIndirectCount-None-11398
If abound shader was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT, orVK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, and a shaderaccesses a resource using that mapping, the accessmust not beout of boundsVUID-vkCmdDrawIndirectCount-None-11437
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, orVK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, and a shaderaccesses a resource using that mapping, the buffer from which theaddress in push data was queriedmust have been created with theVK_BUFFER_USAGE_UNIFORM_BUFFER_BIT usage flag setVUID-vkCmdDrawIndirectCount-None-11438
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT,orVK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, and a shaderaccesses a uniform buffer using that mapping, the address that theuniform buffer is mapped tomust have been queried from a buffercreated with theVK_BUFFER_USAGE_UNIFORM_BUFFER_BIT usage flag setVUID-vkCmdDrawIndirectCount-None-11441
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT,orVK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, and a shaderaccesses a uniform buffer using that mapping, the address that theuniform buffer is mapped tomust be aligned tominUniformBufferOffsetAlignmentVUID-vkCmdDrawIndirectCount-None-11439
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT,orVK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, and a shaderaccesses a storage buffer using that mapping, the address that thestorage buffer is mapped tomust have been queried from a buffercreated with theVK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag setVUID-vkCmdDrawIndirectCount-None-11442
If a pipeline is bound to the pipeline bind point used by this command,or shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT,orVK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, and a shaderaccesses a storage buffer using that mapping, the address that thestorage buffer is mapped tomust be aligned tominStorageBufferOffsetAlignmentVUID-vkCmdDrawIndirectCount-None-11485
If a pipeline is bound to the pipeline bind point used by this command, or shader is bound to a shader stage used by this command, and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT, orVK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, and a shader accesses an acceleration structure using that mapping, the address that the acceleration structure is mapped tomust be an acceleration structure address retrieved from aVkAccelerationStructureKHR object viavkGetAccelerationStructureDeviceAddressKHRor handle retrieved from aVkAccelerationStructureNV object viavkGetAccelerationStructureHandleNVVUID-vkCmdDrawIndirectCount-index-11450
If a shader uses a sampler descriptor to sample an image as a result ofthis command, and that sampler descriptor uses a custom border colorwith an index defined byVkSamplerCustomBorderColorIndexCreateInfoEXT, the value ofVkSamplerCustomBorderColorIndexCreateInfoEXT::indexmusthave been registered before this command was recorded, and still beregistered during the sampling operation, with an identically definedcolorVUID-vkCmdDrawIndirectCount-protectedNoFault-11455
IfprotectedNoFaultis not supported,a pipeline is bound to the pipeline bind point used by this command,or a shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT,orVK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, the addressthat the resource is mapped tomust have been queried from a buffercreated without theVK_BUFFER_CREATE_PROTECTED_BIT create flag setVUID-vkCmdDrawIndirectCount-protectedNoFault-11456
IfprotectedNoFaultis not supported,a pipeline is bound to the pipeline bind point used by this command,or a shader is bound to a shader stage used by this command,and it was created with adescriptor mapping usingVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT orVK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT,the address of the indirect memorymust have been queried from a buffercreated without theVK_BUFFER_CREATE_PROTECTED_BIT create flag setVUID-vkCmdDrawIndirectCount-renderPass-02684
The current render passmust becompatiblewith therenderPassmember of theVkGraphicsPipelineCreateInfostructure specified when creating theVkPipelinebound toVK_PIPELINE_BIND_POINT_GRAPHICSVUID-vkCmdDrawIndirectCount-subpass-02685
The subpass index of the current render passmust be equal to thesubpassmember of theVkGraphicsPipelineCreateInfostructurespecified when creating theVkPipelinebound toVK_PIPELINE_BIND_POINT_GRAPHICSVUID-vkCmdDrawIndirectCount-OpTypeImage-07468
If any shader executed by this pipeline accesses anOpTypeImagevariable with aDimoperand ofSubpassData, itmust bedecorated with anInputAttachmentIndexthat corresponds to a validinput attachment in the current subpassVUID-vkCmdDrawIndirectCount-None-07469
Input attachment views accessed in a subpassmust be created with thesameVkFormat as the corresponding subpass definition, and becreated with aVkImageView that is compatible with the attachmentreferenced by the subpass'pInputAttachments[InputAttachmentIndex] in the boundVkFramebuffer as specified byFragment Input Attachment CompatibilityVUID-vkCmdDrawIndirectCount-pDepthInputAttachmentIndex-09595
Input attachment views accessed in a dynamic render pass with aInputAttachmentIndexreferenced byVkRenderingInputAttachmentIndexInfo, or noInputAttachmentIndexifVkRenderingInputAttachmentIndexInfo::pDepthInputAttachmentIndexorVkRenderingInputAttachmentIndexInfo::pStencilInputAttachmentIndexareNULL,must be created with aVkImageView that is compatiblewith the corresponding color, depth, or stencil attachment inVkRenderingInfoVUID-vkCmdDrawIndirectCount-pDepthInputAttachmentIndex-09596
Input attachment views accessed in a dynamic render pass via a shaderobjectmust have anInputAttachmentIndexif bothVkRenderingInputAttachmentIndexInfo::pDepthInputAttachmentIndexandVkRenderingInputAttachmentIndexInfo::pStencilInputAttachmentIndexare non-NULLVUID-vkCmdDrawIndirectCount-InputAttachmentIndex-09597
If an input attachment view accessed in a dynamic render pass via ashader object has anInputAttachmentIndex, theInputAttachmentIndexmust match an index inVkRenderingInputAttachmentIndexInfoVUID-vkCmdDrawIndirectCount-None-06537
Memory backing image subresources used as attachments in the currentrender passmust not be written in any way other than as an attachmentby this commandVUID-vkCmdDrawIndirectCount-None-10795
If a color attachment is written by any prior command in this subpass orby the load, store, or resolve operations for this subpass,andfeedback loop is not enabled forVK_IMAGE_ASPECT_COLOR_BIT on that attachment,itmust not be accessed in any way other than as an attachment by thiscommandVUID-vkCmdDrawIndirectCount-None-10796
If a depth attachment is written by any prior command in this subpass orby the load, store, or resolve operations for this subpass,andfeedback loop is not enabled forVK_IMAGE_ASPECT_DEPTH_BIT on that attachment,itmust not be accessed in any way other than as an attachment by thiscommandVUID-vkCmdDrawIndirectCount-None-10797
If a stencil attachment is written by any prior command in this subpassor by the load, store, or resolve operations for this subpass,andfeedback loop is not enabled forVK_IMAGE_ASPECT_STENCIL_BIT on that attachment,itmust not be accessed in any way other than as an attachment by thiscommandVUID-vkCmdDrawIndirectCount-None-12338
If a color attachment is read in this command in any way other than asan attachment, or has been read by any prior command in this subpass asa non-attachment,andfeedback loop is not enabled forVK_IMAGE_ASPECT_COLOR_BIT on that attachment,the color attachmentmust not be written to by this commandVUID-vkCmdDrawIndirectCount-None-12339
If a depth attachment is read in this command in any way other than asan attachment, or has been read by any prior command in this subpass asa non-attachment,andfeedback loop is not enabled forVK_IMAGE_ASPECT_DEPTH_BIT on that attachment,the depth attachmentmust not be written to by this commandVUID-vkCmdDrawIndirectCount-None-12340
If a stencil attachment is read in this command in any way other than asan attachment, or has been read by any prior command in this subpass asa non-attachment,andfeedback loop is not enabled forVK_IMAGE_ASPECT_STENCIL_BIT on that attachment,the stencil attachmentmust not be written to by this commandVUID-vkCmdDrawIndirectCount-None-09003
If an attachment is written by any prior command in this subpass or bythe load, store, or resolve operations for this subpass, itmust not beaccessed in any way other than as an attachment, storage image, orsampled image by this commandVUID-vkCmdDrawIndirectCount-None-06886
If the current render pass instance uses a depth/stencil attachment witha read-only layout for the depth aspect,depth writesmust be disabledVUID-vkCmdDrawIndirectCount-None-06887
If the current render pass instance uses a depth/stencil attachment witha read-only layout for the stencil aspect, both front and backwriteMaskare not zero, and stencil test is enabled,all stencil opsmust beVK_STENCIL_OP_KEEPVUID-vkCmdDrawIndirectCount-None-07831
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_VIEWPORT dynamic state enabled thenvkCmdSetViewportmust have been called and not subsequentlyinvalidated in the current command bufferprior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07832
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_SCISSOR dynamic state enabled thenvkCmdSetScissormust have been called and not subsequentlyinvalidated in the current command bufferprior to this drawing commandVUID-vkCmdDrawIndirectCount-None-08617
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and theeffective rasterization input topology is in line topology class, thenvkCmdSetLineWidthmusthave been called and not subsequently invalidated in the current command buffer prior to this drawingcommandVUID-vkCmdDrawIndirectCount-None-07834
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofdepthBiasEnableisVK_TRUE, thenvkCmdSetDepthBiasorvkCmdSetDepthBias2EXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawingcommandVUID-vkCmdDrawIndirectCount-None-07835
Ifa shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BIT stageora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and an active colorattachmentcurrent value ofblendEnableisVK_TRUE with a blend equations where anyVkBlendFactor member isVK_BLEND_FACTOR_CONSTANT_COLOR,VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,VK_BLEND_FACTOR_CONSTANT_ALPHA, orVK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, thenvkCmdSetBlendConstantsmust have been called and not subsequentlyinvalidated in the current command bufferprior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07836
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofdepthBoundsTestEnableisVK_TRUE, thenvkCmdSetDepthBoundsmust have been called and not subsequentlyinvalidated in the current command bufferprior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07837
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofstencilTestEnableisVK_TRUE, thenvkCmdSetStencilCompareMaskmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07838
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofstencilTestEnableisVK_TRUE, thenvkCmdSetStencilWriteMaskmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07839
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, thecurrent value of andrasterizerDiscardEnableisVK_FALSE, thecurrent value ofstencilTestEnableisVK_TRUE, thenvkCmdSetStencilReferencemust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688
If the draw is recorded in a render pass instance with multiviewenabled, the maximum instance indexmust be less than or equal toVkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndexVUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689
If the bound graphics pipeline was created withVkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnableset toVK_TRUE, then the active depth attachmentmust have beencreated with theVK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit setVUID-vkCmdDrawIndirectCount-None-07634
If theVK_EXT_sample_locationsextension is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic stateenabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetSampleLocationsEnableEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-06666
If theVK_EXT_sample_locationsextension is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofsampleLocationsEnableisVK_TRUE, thenvkCmdSetSampleLocationsEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07840
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetCullModemust have been called and not subsequentlyinvalidated in the current command bufferprior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07841
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetFrontFacemust have been called and not subsequentlyinvalidated in the current command bufferprior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07843
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE,vkCmdSetDepthTestEnablemust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07844
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofdepthTestEnableisVK_TRUE, thenvkCmdSetDepthWriteEnablemust have beencalled and not subsequentlyinvalidated inthe current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07845
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofdepthTestEnableisVK_TRUE, thenvkCmdSetDepthCompareOpmust have beencalled and not subsequentlyinvalidated inthe current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07846
If thedepthBoundsfeature is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled,and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetDepthBoundsTestEnablemust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07847
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, andthecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetStencilTestEnablemust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07848
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thecurrent value ofstencilTestEnableisVK_TRUE, thenvkCmdSetStencilOpmust have been called and not subsequently invalidated in the current command buffer prior to this drawingcommandVUID-vkCmdDrawIndirectCount-viewportCount-03417
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled,and the state is not inherited,thenvkCmdSetViewportWithCountmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-scissorCount-03418
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled,and the state is not inherited,thenvkCmdSetScissorWithCountmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawingVUID-vkCmdDrawIndirectCount-viewportCount-03419
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with both theVK_DYNAMIC_STATE_SCISSOR_WITH_COUNT andVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled,and the state is not inherited,then theviewportCountparameter ofvkCmdSetViewportWithCountmust match thescissorCountparameter ofvkCmdSetScissorWithCountVUID-vkCmdDrawIndirectCount-viewportCount-04137
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, butnot theVK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic stateenabled, then the bound graphics pipelinemust have been created withVkPipelineViewportWScalingStateCreateInfoNV::viewportCountgreater or equal to theviewportCountparameter in the last calltovkCmdSetViewportWithCountVUID-vkCmdDrawIndirectCount-viewportCount-04138
If theVK_NV_clip_space_w_scalingextension is enabled, anda shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT andVK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, thecurrent value ofviewportWScalingEnableisVK_TRUE, thenvkCmdSetViewportWScalingNVmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-08636
If theVK_NV_clip_space_w_scalingextension is enabled, anda shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT andVK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, thecurrent value ofviewportWScalingEnableisVK_TRUE, then theviewportCountparameter in the last call tovkCmdSetViewportWScalingNVmust be greater than or equal to theviewportCountparameter in the last call tovkCmdSetViewportWithCountVUID-vkCmdDrawIndirectCount-viewportCount-04139
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, butnot theVK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamicstate enabled, then the bound graphics pipelinemust have been createdwithVkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCountgreater or equal to theviewportCountparameter in the last calltovkCmdSetViewportWithCountVUID-vkCmdDrawIndirectCount-shadingRateImage-09233
If theshadingRateImagefeature isenabled, anda shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetCoarseSampleOrderNVmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-shadingRateImage-09234
If theshadingRateImagefeature isenabled, anda shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT andVK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic stateenabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofshadingRateImageEnableisVK_TRUE, thenvkCmdSetViewportShadingRatePaletteNVmust have been called andnot subsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-08637
If theshadingRateImagefeature isenabled, anda shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT andVK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic stateenabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofshadingRateImageEnableisVK_TRUE, then theviewportCountparameter in the last call tovkCmdSetViewportShadingRatePaletteNVmust be greater than orequal to theviewportCountparameter in the last call tovkCmdSetViewportWithCountVUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04141
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and aVkPipelineViewportSwizzleStateCreateInfoNV structure chained fromVkPipelineViewportStateCreateInfo, then the bound graphicspipelinemust have been created withVkPipelineViewportSwizzleStateCreateInfoNV::viewportCountgreater or equal to theviewportCountparameter in the last calltovkCmdSetViewportWithCountVUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04142
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and aVkPipelineViewportExclusiveScissorStateCreateInfoNV structurechained fromVkPipelineViewportStateCreateInfo, then the boundgraphics pipelinemust have been created withVkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCountgreater or equal to theviewportCountparameter in the last calltovkCmdSetViewportWithCountVUID-vkCmdDrawIndirectCount-None-07878
If theexclusiveScissorfeature isenabled, anda shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic stateenabled, thenvkCmdSetExclusiveScissorEnableNVmust have beencalled and not subsequentlyinvalidated inthe current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07879
If theexclusiveScissorfeature isenabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, andthe most recent call tovkCmdSetExclusiveScissorEnableNV in thecurrent command buffer set any element ofpExclusiveScissorEnablestoVK_TRUE, thenvkCmdSetExclusiveScissorNVmust have beencalled and not subsequentlyinvalidated inthe current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-04876
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled,thenvkCmdSetRasterizerDiscardEnablemust have been called andnot subsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-04877
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetDepthBiasEnablemust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-logicOp-04878
Ifa shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BIT ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value oflogicOpEnableisVK_TRUE, thenvkCmdSetLogicOpEXTmust have been called andnot subsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552
If theprimitiveFragmentShadingRateWithMultipleViewportslimit is notsupported, the bound graphics pipeline was created with theVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, andany of the shader stages of the bound graphics pipeline write to thePrimitiveShadingRateKHRbuilt-in, thenvkCmdSetViewportWithCountmust have been called in the currentcommand buffer prior to this drawing command, and theviewportCountparameter ofvkCmdSetViewportWithCountmustbe1VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642
If theprimitiveFragmentShadingRateWithMultipleViewportslimit is notsupported, and any shader object bound to a graphics stage writes to thePrimitiveShadingRateKHRbuilt-in, thenvkCmdSetViewportWithCountmust have been called in the currentcommand buffer prior to this drawing command, and theviewportCountparameter ofvkCmdSetViewportWithCountmustbe1VUID-vkCmdDrawIndirectCount-blendEnable-04727
Ifa shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BIT stageora graphics pipeline is bound which was created withVK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, then for each colorattachment, if the corresponding image view’sformat features do not containVK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then thecorrespondingcurrent value ofblendEnablemust beVK_FALSEVUID-vkCmdDrawIndirectCount-None-08644
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound, thecurrent value ofrasterizerDiscardEnableisVK_FALSE,and none of the following is enabled:the
VK_AMD_mixed_attachment_samplesextensionthe
VK_NV_framebuffer_mixed_samplesextensionthe
multisampledRenderToSingleSampledfeature
then thecurrent value of
rasterizationSamplesmust be the same as the current color and/ordepth/stencil attachmentsVUID-vkCmdDrawIndirectCount-None-08876
If a shader object is bound to any graphics stage, the current renderpass instancemust have been begun withvkCmdBeginRenderingVUID-vkCmdDrawIndirectCount-imageView-06172
If the current render pass instance was begun withvkCmdBeginRendering, theimageViewmember ofpDepthAttachmentis notVK_NULL_HANDLE, and thelayoutmember ofpDepthAttachmentisVK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this commandmust not write any values to the depth attachmentVUID-vkCmdDrawIndirectCount-imageView-06173
If the current render pass instance was begun withvkCmdBeginRendering, theimageViewmember ofpStencilAttachmentis notVK_NULL_HANDLE, and thelayoutmember ofpStencilAttachmentisVK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this commandmust not write any values to the stencil attachmentVUID-vkCmdDrawIndirectCount-imageView-06174
If the current render pass instance was begun withvkCmdBeginRendering, theimageViewmember ofpDepthAttachmentis notVK_NULL_HANDLE, and thelayoutmember ofpDepthAttachmentisVK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, thiscommandmust not write any values to the depth attachmentVUID-vkCmdDrawIndirectCount-imageView-06175
If the current render pass instance was begun withvkCmdBeginRendering, theimageViewmember ofpStencilAttachmentis notVK_NULL_HANDLE, and thelayoutmember ofpStencilAttachmentisVK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, thiscommandmust not write any values to the stencil attachmentVUID-vkCmdDrawIndirectCount-imageView-06176
If the current render pass instance was begun withvkCmdBeginRendering, theimageViewmember ofpDepthAttachmentis notVK_NULL_HANDLE, and thelayoutmember ofpDepthAttachmentisVK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this commandmust notwrite any values to the depth attachmentVUID-vkCmdDrawIndirectCount-imageView-06177
If the current render pass instance was begun withvkCmdBeginRendering, theimageViewmember ofpStencilAttachmentis notVK_NULL_HANDLE, and thelayoutmember ofpStencilAttachmentisVK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this commandmust notwrite any values to the stencil attachmentVUID-vkCmdDrawIndirectCount-viewMask-06178
If the current render pass instance was begun withvkCmdBeginRendering, the bound graphics pipelinemust have beencreated with aVkPipelineRenderingCreateInfo::viewMaskequaltoVkRenderingInfo::viewMaskVUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179
IfthedynamicRenderingUnusedAttachmentsfeature is not enabled andthe current render pass instance was begun withvkCmdBeginRendering, the bound graphics pipelinemust have beencreated with aVkPipelineRenderingCreateInfo::colorAttachmentCountequal toVkRenderingInfo::colorAttachmentCountVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08910
IfthedynamicRenderingUnusedAttachmentsfeature is not enabled, andthe current render pass instance was begun withvkCmdBeginRendering andVkRenderingInfo::colorAttachmentCountgreater than0, theneach element of theVkRenderingInfo::pColorAttachmentsarraywith animageViewnot equal toVK_NULL_HANDLEmust havebeen created with aVkFormat equal to the corresponding element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsusedto create the bound graphics pipelineVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08912
IfthedynamicRenderingUnusedAttachmentsfeature is not enabled, andthe current render pass instance was begun withvkCmdBeginRendering andVkRenderingInfo::colorAttachmentCountgreater than0, theneach element of theVkRenderingInfo::pColorAttachmentsarraywith animageViewequal toVK_NULL_HANDLEmust have thecorresponding element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsusedto create the bound pipeline equal toVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08911
If thedynamicRenderingUnusedAttachmentsfeature is enabled, and thecurrent render pass instance was begun withvkCmdBeginRenderingandVkRenderingInfo::colorAttachmentCountgreater than0,then each element of theVkRenderingInfo::pColorAttachmentsarray with animageViewnot equal toVK_NULL_HANDLEmusthave been created with aVkFormat equal to the correspondingelement ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsusedto create the bound graphics pipeline, or the corresponding element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormats, ifit exists,must beVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-colorAttachmentCount-09362
If the current render pass instance was begun withvkCmdBeginRendering, with aVkRenderingInfo::colorAttachmentCountequal to1,there is no shader object bound to any graphics stage,and a color attachment with a resolve mode ofVK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, eachelement of theVkRenderingInfo::pColorAttachmentsarray witharesolveImageViewnot equal toVK_NULL_HANDLEmust havebeen created with an image created with aVkExternalFormatANDROID::externalFormatvalue equal to theVkExternalFormatANDROID::externalFormatvalue used to createthe bound graphics pipelineVUID-vkCmdDrawIndirectCount-None-09363
Ifthere is no shader object bound to any graphics stage,the current render pass instance was begun withvkCmdBeginRendering and aVkRenderingInfo::colorAttachmentCountequal to1, and acolor attachment with a resolve mode ofVK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, eachelement of theVkRenderingInfo::pColorAttachmentsarray withaimageViewnot equal toVK_NULL_HANDLEmust have beencreated with an image created with aVkExternalFormatANDROID::externalFormatvalue equal to theVkExternalFormatANDROID::externalFormatvalue used to createthe bound graphics pipelineVUID-vkCmdDrawIndirectCount-None-09364
If the current render pass instance was begun withvkCmdBeginRendering,there is no shader object bound to any graphics stage,and the bound graphics pipeline was created with a non-zeroVkExternalFormatANDROID::externalFormatvalue and with theVK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled,thenvkCmdSetColorBlendEnableEXTmust have set the blend enabletoVK_FALSE prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-09365
If the current render pass instance was begun withvkCmdBeginRendering,there is no shader object bound to any graphics stage,and the bound graphics pipeline was created with a non-zeroVkExternalFormatANDROID::externalFormatvalue and with theVK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled,thenvkCmdSetRasterizationSamplesEXTmust have setrasterizationSamplestoVK_SAMPLE_COUNT_1_BIT prior to thisdrawing commandVUID-vkCmdDrawIndirectCount-None-09366
If there is a shader object bound to any graphics stage, and the currentrender pass includes a color attachment that uses theVK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolvemode, thenvkCmdSetColorBlendEnableEXTmust have set blend enabletoVK_FALSE prior to this drawing commandVUID-vkCmdDrawIndirectCount-rasterizationSamples-09367
If there is a shader object bound to any graphics stage, and the currentrender pass includes a color attachment that uses theVK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolvemode, thenvkCmdSetRasterizationSamplesEXTmust have setrasterizationSamplestoVK_SAMPLE_COUNT_1_BIT prior to thisdrawing commandVUID-vkCmdDrawIndirectCount-None-09368
If the current render pass instance was begun withvkCmdBeginRendering,there is no shader object bound to any graphics stage,and the bound graphics pipeline was created with a non-zeroVkExternalFormatANDROID::externalFormatvalue and with theVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled,thenvkCmdSetFragmentShadingRateKHRmust have setpFragmentSize->widthto1prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-09369
If the current render pass instance was begun withvkCmdBeginRendering,there is no shader object bound to any graphics stage,and the bound graphics pipeline was created with a non-zeroVkExternalFormatANDROID::externalFormatvalue and with theVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled,thenvkCmdSetFragmentShadingRateKHRmust have setpFragmentSize->heightto1prior to this drawing commandVUID-vkCmdDrawIndirectCount-pFragmentSize-09370
If there is a shader object bound to any graphics stage, and the currentrender pass includes a color attachment that uses theVK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolvemode, thenvkCmdSetFragmentShadingRateKHRmust have setpFragmentSize->widthto1prior to this drawing commandVUID-vkCmdDrawIndirectCount-pFragmentSize-09371
If there is a shader object bound to any graphics stage, and the currentrender pass includes a color attachment that uses theVK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolvemode, thenvkCmdSetFragmentShadingRateKHRmust have setpFragmentSize->heightto1prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07749
If thecolorWriteEnablefeature isenabled,a shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BIT stageora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled, andthecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetColorWriteEnableEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-attachmentCount-07750
If thecolorWriteEnablefeature isenabled,a shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BIT stageora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled, andthecurrent value ofrasterizerDiscardEnableisVK_FALSE, then theattachmentCountparameter of most recent call tovkCmdSetColorWriteEnableEXTin the current command buffermust begreater than or equal to the number of active color attachmentsVUID-vkCmdDrawIndirectCount-None-07751
If theVK_EXT_discard_rectanglesextension is enabled, agraphics pipeline is bound which was created with theVK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled andthepNextchain ofVkGraphicsPipelineCreateInfo included aVkPipelineDiscardRectangleStateCreateInfoEXT structure, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofdiscardRectangleEnableisVK_TRUE, thenvkCmdSetDiscardRectangleEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing command for each discard rectangleinVkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCountVUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09236
If theVK_EXT_discard_rectanglesextension is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created withVK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled andthepNextchain ofVkGraphicsPipelineCreateInfo did notinclude aVkPipelineDiscardRectangleStateCreateInfoEXT structure,thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofdiscardRectangleEnableisVK_TRUE, thenvkCmdSetDiscardRectangleEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing command for each discard rectangleinVkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectanglesVUID-vkCmdDrawIndirectCount-None-07880
If theVK_EXT_discard_rectanglesextension is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic stateenabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetDiscardRectangleEnableEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07881
If theVK_EXT_discard_rectanglesextension is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled,thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofdiscardRectangleEnableisVK_TRUE, thenvkCmdSetDiscardRectangleModeEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08913
If the current render pass instance was begun withvkCmdBeginRendering,thedynamicRenderingUnusedAttachmentsfeature is not enabled,andVkRenderingInfo::pDepthAttachment->imageViewwasVK_NULL_HANDLE, the value ofVkPipelineRenderingCreateInfo::depthAttachmentFormatused tocreate the bound graphics pipelinemust be equal toVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08914
If current render pass instance was begun withvkCmdBeginRendering,thedynamicRenderingUnusedAttachmentsfeature is not enabled,andVkRenderingInfo::pDepthAttachment->imageViewwas notVK_NULL_HANDLE, the value ofVkPipelineRenderingCreateInfo::depthAttachmentFormatused tocreate the bound graphics pipelinemust be equal to theVkFormatused to createVkRenderingInfo::pDepthAttachment->imageViewVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08915
If the current render pass instance was begun withvkCmdBeginRendering, thedynamicRenderingUnusedAttachmentsfeature is enabled,VkRenderingInfo::pDepthAttachment->imageViewwas notVK_NULL_HANDLE, and the value ofVkPipelineRenderingCreateInfo::depthAttachmentFormatused tocreate the bound graphics pipeline was not equal to theVkFormatused to createVkRenderingInfo::pDepthAttachment->imageView,the value of the formatmust beVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08916
If the current render pass instance was begun withvkCmdBeginRendering,thedynamicRenderingUnusedAttachmentsfeature is not enabled,andVkRenderingInfo::pStencilAttachment->imageViewwasVK_NULL_HANDLE, the value ofVkPipelineRenderingCreateInfo::stencilAttachmentFormatusedto create the bound graphics pipelinemust be equal toVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08917
If current render pass instance was begun withvkCmdBeginRendering,thedynamicRenderingUnusedAttachmentsfeature is not enabled,andVkRenderingInfo::pStencilAttachment->imageViewwas notVK_NULL_HANDLE, the value ofVkPipelineRenderingCreateInfo::stencilAttachmentFormatusedto create the bound graphics pipelinemust be equal to theVkFormat used to createVkRenderingInfo::pStencilAttachment->imageViewVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08918
If the current render pass instance was begun withvkCmdBeginRendering, thedynamicRenderingUnusedAttachmentsfeature is enabled,VkRenderingInfo::pStencilAttachment->imageViewwas notVK_NULL_HANDLE, and the value ofVkPipelineRenderingCreateInfo::stencilAttachmentFormatusedto create the bound graphics pipeline was not equal to theVkFormat used to createVkRenderingInfo::pStencilAttachment->imageView, the value ofthe formatmust beVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-imageView-06183
If the current render pass instance was begun withvkCmdBeginRendering andVkRenderingFragmentShadingRateAttachmentInfoKHR::imageViewwas notVK_NULL_HANDLE, the bound graphics pipelinemust havebeen created withVK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHRVUID-vkCmdDrawIndirectCount-dynamicRenderingLocalRead-11797
If the current render pass instance was begun withvkCmdBeginRendering, thedynamicRenderingLocalReadfeature is enabled, theVK_RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR flag isspecified, and an attachment is being used as a feedback loop asspecified byVK_RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR,VkRenderingAttachmentFlagsInfoKHR::flagsfor that attachmentmust includeVK_RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHRVUID-vkCmdDrawIndirectCount-imageView-06184
If the current render pass instance was begun withvkCmdBeginRendering andVkRenderingFragmentDensityMapAttachmentInfoEXT::imageViewwas notVK_NULL_HANDLE, the bound graphics pipelinemust havebeen created withVK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXTVUID-vkCmdDrawIndirectCount-layers-10831
If the current render pass instance was created withVK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE orVK_RENDER_PASS_CREATE_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE, andthe bound graphics pipeline was created withVK_PIPELINE_CREATE_2_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE, thenthe current render pass instancemust have alayersvalue lessthan or equal toVkPipelineFragmentDensityMapLayeredCreateInfoVALVE::maxFragmentDensityMapLayersVUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185
If the bound pipeline was created with aVkAttachmentSampleCountInfoAMD orVkAttachmentSampleCountInfoNV structure, and the current renderpass instance was begun withvkCmdBeginRendering with aVkRenderingInfo::colorAttachmentCountparameter greater than0, then each element of theVkRenderingInfo::pColorAttachmentsarray with aimageViewnot equal toVK_NULL_HANDLEmust have beencreated with a sample count equal to the corresponding element of thepColorAttachmentSamplesmember ofVkAttachmentSampleCountInfoAMD orVkAttachmentSampleCountInfoNV used to create the bound graphicspipelineVUID-vkCmdDrawIndirectCount-pDepthAttachment-06186
If the current render pass instance was begun withvkCmdBeginRendering, the bound pipeline was created with aVkAttachmentSampleCountInfoAMD orVkAttachmentSampleCountInfoNV structure, andVkRenderingInfo::pDepthAttachment->imageViewwas notVK_NULL_HANDLE, the value of thedepthStencilAttachmentSamplesmember ofVkAttachmentSampleCountInfoAMD orVkAttachmentSampleCountInfoNV used to create the bound graphicspipelinemust be equal to the sample count used to createVkRenderingInfo::pDepthAttachment->imageViewVUID-vkCmdDrawIndirectCount-pStencilAttachment-06187
If the current render pass instance was begun withvkCmdBeginRendering, the bound pipeline was created with aVkAttachmentSampleCountInfoAMD orVkAttachmentSampleCountInfoNV structure, andVkRenderingInfo::pStencilAttachment->imageViewwas notVK_NULL_HANDLE, the value of thedepthStencilAttachmentSamplesmember ofVkAttachmentSampleCountInfoAMD orVkAttachmentSampleCountInfoNV used to create the bound graphicspipelinemust be equal to the sample count used to createVkRenderingInfo::pStencilAttachment->imageViewVUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07285
If the bound pipeline was created without aVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNV structure, and themultisampledRenderToSingleSampledfeature is not enabled, andvkCmdBeginCustomResolveEXT has not yet been recorded in the render pass instance, and the current render pass instance was begun withvkCmdBeginRendering with aVkRenderingInfo::colorAttachmentCountparameter greater than0, then each element of theVkRenderingInfo::pColorAttachmentsarray with aimageViewnot equal toVK_NULL_HANDLEmust have been created with a sample count equal to the value ofrasterizationSamplesfor the bound graphics pipelineVUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07286
If the bound pipeline was created without aVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNV structure, and themultisampledRenderToSingleSampledfeature is not enabled, andvkCmdBeginCustomResolveEXT has not yet been recorded in the render pass instance, andVkRenderingInfo::pDepthAttachment->imageViewwas notVK_NULL_HANDLE, the value ofrasterizationSamplesfor the bound graphics pipelinemust be equal to the sample count used to createVkRenderingInfo::pDepthAttachment->imageViewVUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07287
If the bound pipeline was created without aVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNV structure, and themultisampledRenderToSingleSampledfeature is not enabled, andvkCmdBeginCustomResolveEXT has not yet been recorded in the render pass instance, andVkRenderingInfo::pStencilAttachment->imageViewwas notVK_NULL_HANDLE, the value ofrasterizationSamplesfor the bound graphics pipelinemust be equal to the sample count used to createVkRenderingInfo::pStencilAttachment->imageViewVUID-vkCmdDrawIndirectCount-pNext-07935
If this command is called inside a render pass instance started withvkCmdBeginRendering, and thepNextchain ofVkRenderingInfo includes aVkMultisampledRenderToSingleSampledInfoEXT structure withmultisampledRenderToSingleSampledEnableequal toVK_TRUE,then the value ofrasterizationSamplesfor the bound graphicspipelinemust be equal toVkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamplesVUID-vkCmdDrawIndirectCount-renderPass-06198
If the current render pass instance was begun withvkCmdBeginRendering, the bound pipelinemust have been createdwith aVkGraphicsPipelineCreateInfo::renderPassequal toVK_NULL_HANDLEVUID-vkCmdDrawIndirectCount-pColorAttachments-08963
If the current render pass instance was begun withvkCmdBeginRendering,vkCmdBeginCustomResolveEXT has not yet been recorded in the renderpass instance,there is a graphics pipeline bound with a fragment shader thatstatically writes to a color attachment, the color write mask is notzero, color writes are enabled, and the corresponding element of theVkRenderingInfo::pColorAttachments->imageViewwas notVK_NULL_HANDLE, then the corresponding element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsusedto create the pipelinemust not beVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-pColorAttachments-11539
If the current render pass instance was begun withvkCmdBeginRendering,vkCmdBeginCustomResolveEXT has beenrecorded in the render pass instance, there is a graphics pipeline boundwith a fragment shader that statically writes to a color attachment, thecolor write mask is not zero, color writes are enabled, and thecorresponding element of theVkRenderingInfo::pColorAttachments->resolveImageViewwas notVK_NULL_HANDLE, then the corresponding element ofVkCustomResolveCreateInfoEXT::pColorAttachmentFormatsusedto create the pipelinemust not beVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-pDepthAttachment-08964
If the current render pass instance was begun withvkCmdBeginRendering,vkCmdBeginCustomResolveEXT has not yet been recorded in the renderpass instance,there is a graphics pipeline bound, depth test is enabled, and theVkRenderingInfo::pDepthAttachment->imageViewwas notVK_NULL_HANDLE, then theVkPipelineRenderingCreateInfo::depthAttachmentFormatused tocreate the pipelinemust not beVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-pDepthAttachment-11540
If the current render pass instance was begun withvkCmdBeginRendering,vkCmdBeginCustomResolveEXT has beenrecorded in the render pass instance, there is a graphics pipelinebound, depth test is enabled, and theVkRenderingInfo::pDepthAttachment->resolveImageViewwas notVK_NULL_HANDLE, then theVkCustomResolveCreateInfoEXT::depthAttachmentFormatused tocreate the pipelinemust not beVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-pStencilAttachment-08965
If the current render pass instance was begun withvkCmdBeginRendering,vkCmdBeginCustomResolveEXT has not yet been recorded in the renderpass instance,there is a graphics pipeline bound, stencil test is enabled and theVkRenderingInfo::pStencilAttachment->imageViewwas notVK_NULL_HANDLE, then theVkPipelineRenderingCreateInfo::stencilAttachmentFormatusedto create the pipelinemust not beVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-pStencilAttachment-11860
If the current render pass instance was begun withvkCmdBeginRendering,vkCmdBeginCustomResolveEXT has beenrecorded in the render pass instance, there is a graphics pipelinebound, stencil test is enabled and theVkRenderingInfo::pStencilAttachment->resolveImageViewwasnotVK_NULL_HANDLE, then theVkCustomResolveCreateInfoEXT::stencilAttachmentFormatusedto create the pipelinemust not beVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-flags-10582
If the current render pass instance was begun with avkCmdBeginRendering call incommandBuffer, itsVkRenderingInfo::flagsparametermust not haveVK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT setunlessVK_RENDERING_CONTENTS_INLINE_BIT_KHR is also setVUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708
If theprimitivesGeneratedQueryWithRasterizerDiscardfeature is notenabled and theVK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query isactive,rasterization discardmust not be enabledVUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709
If theprimitivesGeneratedQueryWithNonZeroStreamsfeature is notenabled and theVK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query isactive, the bound graphics pipelinemust not have been created with anon-zero value inVkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStreamVUID-vkCmdDrawIndirectCount-None-07620
If thedepthClampfeature is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, andthecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetDepthClampEnableEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07621
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetPolygonModeEXTmust have been called and not subsequentlyinvalidated in the current command bufferprior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07622
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled,and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetRasterizationSamplesEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07623
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetSampleMaskEXTmust have been called and not subsequentlyinvalidated in the current command bufferprior to this drawing commandVUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08919
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic stateenabled, andalphaToCoverageEnablewasVK_TRUE in the lastcall tovkCmdSetAlphaToCoverageEnableEXT, then theFragment Output Interfacemust contain avariable for the alphaComponentword inLocation0 atIndex0VUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08920
If a shader object is bound to any graphics stage, and the most recentcall tovkCmdSetAlphaToCoverageEnableEXT in the current commandbuffer setalphaToCoverageEnabletoVK_TRUE, then theFragment Output Interfacemust contain avariable for the alphaComponentword inLocation0 atIndex0VUID-vkCmdDrawIndirectCount-None-07624
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic stateenabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetAlphaToCoverageEnableEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07625
If thealphaToOnefeature is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled,and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetAlphaToOneEnableEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07626
If thelogicOpfeature is enabled,a shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BIT stageora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, andthecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetLogicOpEnableEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07627
Ifa shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BIT stageora graphics pipeline is bound which was created withVK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and there are colorattachments bound, thenvkCmdSetColorBlendEnableEXTmust havebeen called and not subsequentlyinvalidatedin the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07629
Ifa shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BIT stageora graphics pipeline is bound which was created withVK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and there are colorattachments bound, thenvkCmdSetColorWriteMaskEXTmust have beencalled and not subsequentlyinvalidated inthe current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07630
If thegeometryStreamsfeature isenabled, anda shader object is bound to theVK_SHADER_STAGE_GEOMETRY_BIT stageora graphics pipeline is bound which was created with both aVK_SHADER_STAGE_GEOMETRY_BIT stage and theVK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled,thenvkCmdSetRasterizationStreamEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07631
If theVK_EXT_conservative_rasterizationextension is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic stateenabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetConservativeRasterizationModeEXTmust have been calledand not subsequentlyinvalidated in thecurrent command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07632
If theVK_EXT_conservative_rasterizationextension is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamicstate enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofconservativeRasterizationModeisVK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, thenvkCmdSetExtraPrimitiveOverestimationSizeEXTmust have been calledand not subsequentlyinvalidated in thecurrent command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-conservativePointAndLineRasterization-07499
If theVK_EXT_conservative_rasterizationextension is enabled,conservativePointAndLineRasterizationis not supported,a shader object is bound to any graphics stage ora graphics pipeline is bound, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and theeffective rasterization input topology is in line or point topology class, then thecurrent value ofconservativeRasterizationModemust beVK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXTVUID-vkCmdDrawIndirectCount-None-07633
If thedepthClipEnablefeature isenabled, anda shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, thenvkCmdSetDepthClipEnableEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07636
If theVK_EXT_provoking_vertexextension is enabled,a shader object is bound to theVK_SHADER_STAGE_VERTEX_BIT stageora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled,and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetProvokingVertexModeEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-08666
If any of thestippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled, anda shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic stateenabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and theeffective rasterization input topology is in line topology class, thenvkCmdSetLineRasterizationModeEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-08669
If any of thestippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled, anda shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled,thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and theeffective rasterization input topology is in line topology class, thenvkCmdSetLineStippleEnableEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07849
If any of thestippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with theVK_DYNAMIC_STATE_LINE_STIPPLE dynamic state enabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofstippledLineEnableisVK_TRUE, thenvkCmdSetLineStipplemust have been called and not subsequently invalidated in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-10608
Ifa shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic stateenabled, theeffective rasterization input topology is in line topology class, and thecurrentlineRasterizationModeisVK_LINE_RASTERIZATION_MODE_BRESENHAM orVK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the currentalphaToCoverageEnable,alphaToOneEnableandsampleShadingEnablestatesmust all beVK_FALSEVUID-vkCmdDrawIndirectCount-None-07639
If thedepthClipControlfeature isenabled, anda shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic stateenabled, thenvkCmdSetDepthClipNegativeOneToOneEXTmust have beencalled and not subsequentlyinvalidated inthe current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-09650
If thedepthClampControlfeatureis enabled, anda shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, andthecurrent value ofdepthClampEnableisVK_TRUE, thenvkCmdSetDepthClampRangeEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07640
If theVK_NV_clip_space_w_scalingextension is enabled, anda shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic stateenabled, thenvkCmdSetViewportWScalingEnableNVmust have beencalled and not subsequentlyinvalidated inthe current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07641
If theVK_NV_viewport_swizzleextension is enabled, anda shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, thenvkCmdSetViewportSwizzleNVmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07642
If theVK_NV_fragment_coverage_to_colorextension is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic stateenabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetCoverageToColorEnableNVmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07643
If theVK_NV_fragment_coverage_to_colorextension is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic stateenabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofcoverageToColorEnableisVK_TRUE, thenvkCmdSetCoverageToColorLocationNVmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07644
If theVK_NV_framebuffer_mixed_samplesextension is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic stateenabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetCoverageModulationModeNVmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07645
If theVK_NV_framebuffer_mixed_samplesextension is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic stateenabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofcoverageModulationModeis any value other thanVK_COVERAGE_MODULATION_MODE_NONE_NV, thenvkCmdSetCoverageModulationTableEnableNVmust have been called andnot subsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07646
If theVK_NV_framebuffer_mixed_samplesextension is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic stateenabled, thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and thecurrent value ofcoverageModulationTableEnableisVK_TRUE, thenvkCmdSetCoverageModulationTableNVmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07647
If theshadingRateImagefeature isenabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic stateenabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetShadingRateImageEnableNVmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-pipelineFragmentShadingRate-09238
If thepipelineFragmentShadingRatefeature is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled,and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetFragmentShadingRateKHRmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07648
If therepresentativeFragmentTestfeature is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamicstate enabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetRepresentativeFragmentTestEnableNVmust have been calledand not subsequentlyinvalidated in thecurrent command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07649
If thecoverageReductionModefeature is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled,and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetCoverageReductionModeNVmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-rasterizationSamples-07471
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and thecurrent subpass does not use any color and/or depth/stencil attachments,then therasterizationSamplesin the last call tovkCmdSetRasterizationSamplesEXTmust follow the rules for azero-attachment subpassVUID-vkCmdDrawIndirectCount-samples-07472
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and theVK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, thenthesamplesparameter in the last call tovkCmdSetSampleMaskEXTmust be greater or equal to theVkPipelineMultisampleStateCreateInfo::rasterizationSamplesparameter used to create the bound graphics pipelineVUID-vkCmdDrawIndirectCount-samples-07473
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_SAMPLE_MASK_EXT state andVK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, thenthesamplesparameter in the last call tovkCmdSetSampleMaskEXTmust be greater or equal to therasterizationSamplesparameter in the last call tovkCmdSetRasterizationSamplesEXTVUID-vkCmdDrawIndirectCount-rasterizationSamples-07474
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, andthemultisampledRenderToSingleSampledfeature is not enabled, andneither theVK_AMD_mixed_attachment_samplesnor theVK_NV_framebuffer_mixed_samplesextensions are enabled, thentherasterizationSamplesin the last call tovkCmdSetRasterizationSamplesEXTmust be the same as the currentsubpass color and/or depth/stencil attachmentsVUID-vkCmdDrawIndirectCount-None-09211
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled,or a shader object is bound to any graphics stage,and the current render pass instance includes aVkMultisampledRenderToSingleSampledInfoEXT structure withmultisampledRenderToSingleSampledEnableequal toVK_TRUE,then therasterizationSamplesin the last call tovkCmdSetRasterizationSamplesEXTmust be the same as therasterizationSamplesmember of that structureVUID-vkCmdDrawIndirectCount-firstAttachment-07476
Ifa shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BIT stageora graphics pipeline is bound was created with theVK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled,and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, then the last call tovkCmdSetColorBlendEnableEXT in the current command buffer prior tothis drawing commandmust have set a value for all active colorattachmentsVUID-vkCmdDrawIndirectCount-firstAttachment-07478
Ifa shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BIT stageora graphics pipeline is bound was created with theVK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic states enabled, andthecurrent value ofrasterizerDiscardEnableisVK_FALSE, then the last call tovkCmdSetColorWriteMaskEXT in the current command buffer prior tothis drawing commandmust have set a value for all active colorattachmentsVUID-vkCmdDrawIndirectCount-advancedBlendMaxColorAttachments-07480
Ifa shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BIT stageora graphics pipeline is bound was created with theVK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT andVK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled,thecurrent value ofrasterizerDiscardEnableisVK_FALSE, and an active colorattachmentcurrent value ofblendEnableisVK_TRUE, then the number of active colorattachmentsmust not exceedadvancedBlendMaxColorAttachmentsVUID-vkCmdDrawIndirectCount-None-10862
If a graphics pipeline is bound was created withVK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, but not theVK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXTdynamic state enabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetColorBlendEquationEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing command for all active colorattachments with theblendEnablecurrent value ofVK_TRUEVUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-10863
If a graphics pipeline is bound was created withVK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT, but not theVK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled,and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetColorBlendAdvancedEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing command for all active colorattachments with theblendEnablecurrent value ofVK_TRUEVUID-vkCmdDrawIndirectCount-None-10864
Ifa shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BIT stageora graphics pipeline is bound was created withVK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT andVK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled,and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, theneithervkCmdSetColorBlendAdvancedEXT orvkCmdSetColorBlendEquationEXTmust have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this drawing command for all active colorattachments with theblendEnablecurrent value ofVK_TRUEVUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481
If theprimitivesGeneratedQueryWithNonZeroStreamsfeature is notenabled and theVK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query isactive, and the bound graphics pipeline was created withVK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the lastcall tovkCmdSetRasterizationStreamEXTmust have set therasterizationStreamto zeroVUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07482
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and theVK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, and thecurrent value ofsampleLocationsEnableisVK_TRUE, then thesampleLocationsPerPixelmember ofpSampleLocationsInfointhe last call tovkCmdSetSampleLocationsEXTmust equal therasterizationSamplesmember of theVkPipelineMultisampleStateCreateInfo structure the bound graphicspipeline has been created withVUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07483
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and theVK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and thecurrent value ofsampleLocationsEnableisVK_TRUE, then thesampleLocationsPerPixelmember ofpSampleLocationsInfointhe last call tovkCmdSetSampleLocationsEXTmust equal therasterizationSamplesparameter of the last call tovkCmdSetRasterizationSamplesEXTVUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07484
Ifa shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BITstage, orthe bound graphics pipeline was created with theVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, andsampleLocationsEnablewasVK_TRUE in the last call tovkCmdSetSampleLocationsEnableEXT then the current active depthattachmentmust have been created with theVK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit setVUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07485
Ifa shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BITstage, orthe bound graphics pipeline state was created with theVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and theVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and ifsampleLocationsEnablewasVK_TRUE in the last call tovkCmdSetSampleLocationsEnableEXT, then thesampleLocationsInfo.maxSampleLocationGridSize.widthin the lastcall tovkCmdSetSampleLocationsEXTmust evenly divideVkMultisamplePropertiesEXT::maxSampleLocationGridSize.widthas returned byvkGetPhysicalDeviceMultisamplePropertiesEXT with asamplesparameter equalingrasterizationSamplesVUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07486
Ifa shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BITstage, orthe bound graphics pipeline state was created with theVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and theVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and ifsampleLocationsEnablewasVK_TRUE in the last call tovkCmdSetSampleLocationsEnableEXT, then thesampleLocationsInfo.maxSampleLocationGridSize.heightin the lastcall tovkCmdSetSampleLocationsEXTmust evenly divideVkMultisamplePropertiesEXT::maxSampleLocationGridSize.heightas returned byvkGetPhysicalDeviceMultisamplePropertiesEXT with asamplesparameter equalingrasterizationSamplesVUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07487
Ifa shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BITstage, orthe bound graphics pipeline state was created with theVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and ifsampleLocationsEnablewasVK_TRUE in the last call tovkCmdSetSampleLocationsEnableEXT, the fragment shader codemustnot statically use the extended instructionInterpolateAtSampleVUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07936
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and theVK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and thecurrent value ofsampleLocationsEnableisVK_TRUE, thensampleLocationsInfo.sampleLocationGridSize.widthmust evenlydivideVkMultisamplePropertiesEXT::maxSampleLocationGridSize.widthas returned byvkGetPhysicalDeviceMultisamplePropertiesEXT with asamplesparameter equaling the value ofrasterizationSamplesin the last call tovkCmdSetRasterizationSamplesEXTVUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07937
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and theVK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and thecurrent value ofsampleLocationsEnableisVK_TRUE, thensampleLocationsInfo.sampleLocationGridSize.heightmust evenlydivideVkMultisamplePropertiesEXT::maxSampleLocationGridSize.heightas returned byvkGetPhysicalDeviceMultisamplePropertiesEXT with asamplesparameter equaling the value ofrasterizationSamplesin the last call tovkCmdSetRasterizationSamplesEXTVUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07938
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and theVK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and thecurrent value ofsampleLocationsEnableisVK_TRUE, thensampleLocationsInfo.sampleLocationsPerPixelmust equalrasterizationSamplesin the last call tovkCmdSetRasterizationSamplesEXTVUID-vkCmdDrawIndirectCount-coverageModulationTableEnable-07488
Ifa shader object is bound to any graphics stage orthe bound graphics pipeline state was created with theVK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV stateenabled, and the last call tovkCmdSetCoverageModulationTableEnableNV setcoverageModulationTableEnabletoVK_TRUE, then thecoverageModulationTableCountparameter in the last call tovkCmdSetCoverageModulationTableNVmust equal the currentrasterizationSamplesdivided by the number of color samples in thecurrent active color attachmentVUID-vkCmdDrawIndirectCount-rasterizationSamples-07489
If theVK_NV_framebuffer_mixed_samplesextension is enabled,and if current subpass has a depth/stencil attachment and depth test,stencil test, or depth bounds test are enabled in the bound pipeline,then the currentrasterizationSamplesmust be the same as thesample count of the depth/stencil attachmentVUID-vkCmdDrawIndirectCount-coverageToColorEnable-07490
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and thelast call tovkCmdSetCoverageToColorEnableNV set thecoverageToColorEnabletoVK_TRUE, then theremust be anactive color attachment at the location selected by the last call tovkCmdSetCoverageToColorLocationNVcoverageToColorLocation,with aVkFormat ofVK_FORMAT_R8_UINT,VK_FORMAT_R8_SINT,VK_FORMAT_R16_UINT,VK_FORMAT_R16_SINT,VK_FORMAT_R32_UINT, orVK_FORMAT_R32_SINTVUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09420
If theVK_NV_fragment_coverage_to_colorextension is enabled,and a shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BITstage, and the most recent call tovkCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoVK_FALSE, and the last call tovkCmdSetCoverageToColorEnableNV set thecoverageToColorEnabletoVK_TRUE, then theremust be anactive color attachment at the location selected by the last call tovkCmdSetCoverageToColorLocationNVcoverageToColorLocation,with aVkFormat ofVK_FORMAT_R8_UINT,VK_FORMAT_R8_SINT,VK_FORMAT_R16_UINT,VK_FORMAT_R16_SINT,VK_FORMAT_R32_UINT, orVK_FORMAT_R32_SINTVUID-vkCmdDrawIndirectCount-coverageReductionMode-07491
If thecoverageReductionModefeature is enabled,a shader object is bound to any graphics stage ora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV orVK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic states enabled,then thecurrent values ofcoverageReductionMode,rasterizationSamples, the samplecounts for the color and depth/stencil attachments (if the subpass hasthem)must be a valid combination returned byvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVVUID-vkCmdDrawIndirectCount-viewportCount-07492
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, butnot theVK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic stateenabled, then the bound graphics pipelinemust have been created withVkPipelineViewportSwizzleStateCreateInfoNV::viewportCountgreater or equal to theviewportCountparameter in the last calltovkCmdSetViewportWithCountVUID-vkCmdDrawIndirectCount-viewportCount-07493
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT andVK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled thentheviewportCountparameter in the last call tovkCmdSetViewportSwizzleNVmust be greater than or equal to theviewportCountparameter in the last call tovkCmdSetViewportWithCountVUID-vkCmdDrawIndirectCount-viewportCount-09421
If theVK_NV_viewport_swizzleextension is enabled, and ashader object is bound to any graphics stage, then theviewportCountparameter in the last call tovkCmdSetViewportSwizzleNVmust be greater than or equal to theviewportCountparameter in the last call tovkCmdSetViewportWithCountVUID-vkCmdDrawIndirectCount-rasterizationSamples-07494
If theVK_NV_framebuffer_mixed_samplesextension is enabled,and thecoverageReductionModefeature is not enabled, or thecurrent value ofcoverageReductionModeis notVK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV,and thecurrent value ofrasterizationSamplesis greater than sample count of the colorattachment, thensample shadingmust bedisabledVUID-vkCmdDrawIndirectCount-stippledLineEnable-07495
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT orVK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic statesenabled, and if the currentstippledLineEnablestate isVK_TRUE and the currentlineRasterizationModestate isVK_LINE_RASTERIZATION_MODE_RECTANGULAR, then thestippledRectangularLinesfeaturemust be enabledVUID-vkCmdDrawIndirectCount-stippledLineEnable-07496
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT orVK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic statesenabled, and if the currentstippledLineEnablestate isVK_TRUE and the currentlineRasterizationModestate isVK_LINE_RASTERIZATION_MODE_BRESENHAM, then thestippledBresenhamLinesfeaturemust be enabledVUID-vkCmdDrawIndirectCount-stippledLineEnable-07497
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT orVK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic statesenabled, and if the currentstippledLineEnablestate isVK_TRUE and the currentlineRasterizationModestate isVK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then thestippledSmoothLinesfeaturemust be enabledVUID-vkCmdDrawIndirectCount-stippledLineEnable-07498
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT orVK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic statesenabled, and if the currentstippledLineEnablestate isVK_TRUE and the currentlineRasterizationModestate isVK_LINE_RASTERIZATION_MODE_DEFAULT, then thestippledRectangularLinesfeaturemust be enabled andVkPhysicalDeviceLimits::strictLinesmust beVK_TRUEVUID-vkCmdDrawIndirectCount-stage-07073
If the bound pipeline was created with theVkPipelineShaderStageCreateInfo::stagemember of an elementofVkGraphicsPipelineCreateInfo::pStagesset toVK_SHADER_STAGE_VERTEX_BIT,VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT orVK_SHADER_STAGE_GEOMETRY_BIT, thenMesh Shader Queriesmust not be activeVUID-vkCmdDrawIndirectCount-None-08877
Ifa shader object is bound to theVK_SHADER_STAGE_FRAGMENT_BIT stageora graphics pipeline is bound which was created with theVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic stateenabled, and thecurrent value ofrasterizerDiscardEnableisVK_FALSE, thenvkCmdSetAttachmentFeedbackLoopEnableEXTmust have been called andnot subsequentlyinvalidated in the currentcommand buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-07850
If dynamic state was inherited fromVkCommandBufferInheritanceViewportScissorInfoNV, itmust be setin the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-nextStage-10745
For each shader object bound to a graphics stage, except for shaderobject bound to the last graphics stage in the logical pipeline, itmust have been created with anextStageincluding thecorresponding bit to the shader object bound to the following graphicsstage in the logical pipelineVUID-vkCmdDrawIndirectCount-None-08684
If there is no bound graphics pipeline,vkCmdBindShadersEXTmusthave been called in the current command buffer withpStageswithan element ofVK_SHADER_STAGE_VERTEX_BITVUID-vkCmdDrawIndirectCount-None-08685
If there is no bound graphics pipeline, and thetessellationShaderfeature isenabled,vkCmdBindShadersEXTmust have been called in the currentcommand buffer withpStageswith an element ofVK_SHADER_STAGE_TESSELLATION_CONTROL_BITVUID-vkCmdDrawIndirectCount-None-08686
If there is no bound graphics pipeline, and thetessellationShaderfeature isenabled,vkCmdBindShadersEXTmust have been called in the currentcommand buffer withpStageswith an element ofVK_SHADER_STAGE_TESSELLATION_EVALUATION_BITVUID-vkCmdDrawIndirectCount-None-08687
If there is no bound graphics pipeline, and thegeometryShaderfeature is enabled,vkCmdBindShadersEXTmust have been called in the current commandbuffer withpStageswith an element ofVK_SHADER_STAGE_GEOMETRY_BITVUID-vkCmdDrawIndirectCount-None-08688
If there is no bound graphics pipeline,vkCmdBindShadersEXTmusthave been called in the current command buffer withpStageswithan element ofVK_SHADER_STAGE_FRAGMENT_BITVUID-vkCmdDrawIndirectCount-None-08689
If there is no bound graphics pipeline, and thetaskShaderfeature is enabled,vkCmdBindShadersEXTmusthave been called in the current command buffer withpStageswithan element ofVK_SHADER_STAGE_TASK_BIT_EXTVUID-vkCmdDrawIndirectCount-None-08690
If there is no bound graphics pipeline, and themeshShaderfeature is enabled,vkCmdBindShadersEXTmusthave been called in the current command buffer withpStageswithan element ofVK_SHADER_STAGE_MESH_BIT_EXTVUID-vkCmdDrawIndirectCount-None-08693
If there is no bound graphics pipeline, and at least one of thetaskShaderandmeshShaderfeatures is enabled, one of theVK_SHADER_STAGE_VERTEX_BIT orVK_SHADER_STAGE_MESH_BIT_EXTstagesmust have a validVkShaderEXTbound, and the othermusthave noVkShaderEXTboundVUID-vkCmdDrawIndirectCount-None-08696
If there is no bound graphics pipeline, and a validVkShaderEXTisbound to theVK_SHADER_STAGE_VERTEX_BIT stage, theremust be noVkShaderEXTbound to either theVK_SHADER_STAGE_TASK_BIT_EXTstage or theVK_SHADER_STAGE_MESH_BIT_EXT stageVUID-vkCmdDrawIndirectCount-None-08698
If any graphics shader is bound which was created with theVK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders createdwith theVK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the samevkCreateShadersEXT callmust also be boundVUID-vkCmdDrawIndirectCount-None-08699
If any graphics shader is bound which was created with theVK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in betweenstages whose shaders which did not create a shader with theVK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the samevkCreateShadersEXT callmust not have anyVkShaderEXTboundVUID-vkCmdDrawIndirectCount-None-08878
All bound graphics shader objectsmust have been created with identicaloridentically defined push constantrangesVUID-vkCmdDrawIndirectCount-None-08879
All bound graphics shader objectsmust have either been created withtheVK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT flag set, or withidentical oridentically defined arraysof descriptor set layoutsVUID-vkCmdDrawIndirectCount-colorAttachmentCount-09372
If the current render pass instance was begun withvkCmdBeginRendering and aVkRenderingInfo::colorAttachmentCountequal to1, a colorattachment with a resolve mode ofVK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and afragment shader is bound, itmust not declare theDepthReplacingorStencilRefReplacingEXTexecution modesVUID-vkCmdDrawIndirectCount-pDynamicStates-08715
If the bound graphics pipeline state includes a fragment shader stage,was created withVK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set inVkPipelineDynamicStateCreateInfo::pDynamicStates, and thefragment shader declares theEarlyFragmentTestsexecution mode andusesOpDepthAttachmentReadEXT, thedepthWriteEnableparameterin the last call tovkCmdSetDepthWriteEnablemust beVK_FALSEVUID-vkCmdDrawIndirectCount-pDynamicStates-08716
If the bound graphics pipeline state includes a fragment shader stage,was created withVK_DYNAMIC_STATE_STENCIL_WRITE_MASK set inVkPipelineDynamicStateCreateInfo::pDynamicStates, and thefragment shader declares theEarlyFragmentTestsexecution mode andusesOpStencilAttachmentReadEXT, thewriteMaskparameter inthe last call tovkCmdSetStencilWriteMaskmust be0VUID-vkCmdDrawIndirectCount-None-09116
If a shader object is bound to any graphics stageor the bound graphics pipeline was created withVK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment isVK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of thepColorWriteMasksparameter ofvkCmdSetColorWriteMaskEXTmust either include all ofVK_COLOR_COMPONENT_R_BIT,VK_COLOR_COMPONENT_G_BIT, andVK_COLOR_COMPONENT_B_BIT, or none of themVUID-vkCmdDrawIndirectCount-maxFragmentDualSrcAttachments-09239
Ifblending is enabled for any attachment whereeither the source or destination blend factors for that attachmentuse the secondary color input, the maximum value ofLocationfor any output attachmentstatically used in theFragmentExecutionModelexecuted by this commandmust be less thanmaxFragmentDualSrcAttachmentsVUID-vkCmdDrawIndirectCount-None-09548
If the current render pass was begun withvkCmdBeginRendering,there is no shader object bound to any graphics stage,the value of each element ofVkRenderingAttachmentLocationInfo::pColorAttachmentLocationsin the bound pipelinemust match the value for the correspondinglocations set currently in the current render pass instanceVUID-vkCmdDrawIndirectCount-None-09549
If the current render pass was begun withvkCmdBeginRendering,and there is no shader object bound to any graphics stage,the value of each element ofVkRenderingInputAttachmentIndexInfo::pColorAttachmentInputIndicesin the bound pipelinemust match the value for the corresponding indexset currently in the current render pass instanceVUID-vkCmdDrawIndirectCount-None-10927
If the current render pass was begun withvkCmdBeginRendering,and there is no shader object bound to any graphics stage,the value ofVkRenderingInputAttachmentIndexInfo::pDepthInputAttachmentIndexin the bound pipelinemust match the value set currently in the currentrender pass instanceVUID-vkCmdDrawIndirectCount-None-10928
If the current render pass was begun withvkCmdBeginRendering,and there is no shader object bound to any graphics stage,the value ofVkRenderingInputAttachmentIndexInfo::pStencilInputAttachmentIndexin the bound pipelinemust match the value set currently in the currentrender pass instanceVUID-vkCmdDrawIndirectCount-None-09642
If the current render pass was begun withvkCmdBeginRendering withtheVK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the boundgraphics pipelinemust have been created withVK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXTVUID-vkCmdDrawIndirectCount-None-09643
If the bound graphics pipeline was created withVK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the currentrender passmust have begun withvkCmdBeginRendering with theVK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flagVUID-vkCmdDrawIndirectCount-None-10677
If theper-tile execution modelis enabled, thetileShadingPerTileDraw featuremustbe enabledVUID-vkCmdDrawIndirectCount-None-10772
If a shader object is bound to any graphics stage,multiviewfunctionalitymust not be enabled in the current render passVUID-vkCmdDrawIndirectCount-multiviewPerViewViewports-12262
If themultiviewPerViewViewportsfeature is enabled, then the index ofthe most significant bit in current render pass instanceviewMaskmust be less than thecurrent value ofviewportCountVUID-vkCmdDrawIndirectCount-multiviewPerViewViewports-12263
If themultiviewPerViewViewportsfeature is enabled, then the index ofthe most significant bit in current render pass instanceviewMaskmust be less than thecurrent value ofscissorCountVUID-vkCmdDrawIndirectCount-flags-11521
If current render pass instance was begun withvkCmdBeginRenderingwithVkRenderingInfo::flagswhich includesVK_RENDERING_FRAGMENT_REGION_BIT_EXT, and ifsample shading is enabled (explicitly orimplicitly), then the minimum fraction for sample shadingmust equal0.0VUID-vkCmdDrawIndirectCount-None-11522
If the current render pass instance was begun withvkCmdBeginRendering and contains a custom resolve,and thedynamicRenderingUnusedAttachmentsfeature is not enabled, the graphics pipeline boundmust have been created with aVkCustomResolveCreateInfoEXTVUID-vkCmdDrawIndirectCount-None-11523
If the current render pass instance was begun withvkCmdBeginRendering and does not contain a custom resolve,and thedynamicRenderingUnusedAttachmentsfeature is not enabled, the graphics pipeline boundmust not have been created with aVkCustomResolveCreateInfoEXTVUID-vkCmdDrawIndirectCount-customResolve-11524
If the current render pass instance was begun withvkCmdBeginRendering andvkCmdBeginCustomResolveEXT has beenrecorded in the render pass instance, the graphics pipeline boundmusthave been created withVkCustomResolveCreateInfoEXT::customResolveasVK_TRUEVUID-vkCmdDrawIndirectCount-customResolve-11525
If the current render pass instance was begun withvkCmdBeginRendering and contains a custom resolve, andvkCmdBeginCustomResolveEXT has not been recorded in the renderpass instance, the graphics pipeline boundmust have been created withVkCustomResolveCreateInfoEXT::customResolveasVK_FALSEVUID-vkCmdDrawIndirectCount-None-11861
IfthedynamicRenderingUnusedAttachmentsfeature is not enabled andthe current render pass instance was begun withvkCmdBeginRendering and contains a custom resolve, the boundgraphics pipelinemust have been created with aVkCustomResolveCreateInfoEXT::colorAttachmentCountequal toVkRenderingInfo::colorAttachmentCountVUID-vkCmdDrawIndirectCount-None-11862
IfthedynamicRenderingUnusedAttachmentsfeature is not enabled, andthe current render pass instance was begun withvkCmdBeginRendering, it contains a custom resolve, andVkRenderingInfo::colorAttachmentCountgreater than0, theneach element of theVkRenderingInfo::pColorAttachmentsarraywith anresolveImageViewnot equal toVK_NULL_HANDLEmusthave been created with aVkFormat equal to the correspondingelement ofVkCustomResolveCreateInfoEXT::pColorAttachmentFormatsusedto create the bound graphics pipelineVUID-vkCmdDrawIndirectCount-None-11863
IfthedynamicRenderingUnusedAttachmentsfeature is not enabled, andthe current render pass instance was begun withvkCmdBeginRendering, it contains a custom resolve, andVkRenderingInfo::colorAttachmentCountgreater than0, theneach element of theVkRenderingInfo::pColorAttachmentsarraywith anresolveImageViewequal toVK_NULL_HANDLEmust havethe corresponding element ofVkCustomResolveCreateInfoEXT::pColorAttachmentFormatsusedto create the bound pipeline equal toVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-11864
If thedynamicRenderingUnusedAttachmentsfeature is enabled, thecurrent render pass instance was begun withvkCmdBeginRendering,it contains a custom resolve, andVkRenderingInfo::colorAttachmentCountgreater than0, theneach element of theVkRenderingInfo::pColorAttachmentsarraywith anresolveImageViewnot equal toVK_NULL_HANDLEmusthave been created with aVkFormat equal to the correspondingelement ofVkCustomResolveCreateInfoEXT::pColorAttachmentFormatsusedto create the bound graphics pipeline, or the corresponding element ofVkCustomResolveCreateInfoEXT::pColorAttachmentFormats, if itexists,must beVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-None-11865
If the current render pass instance was begun withvkCmdBeginRendering, it contains a custom resolve,thedynamicRenderingUnusedAttachmentsfeature is not enabled,andVkRenderingInfo::pDepthAttachment->resolveImageViewwasVK_NULL_HANDLE, the value ofVkCustomResolveCreateInfoEXT::depthAttachmentFormatused tocreate the bound graphics pipelinemust be equal toVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-None-11866
If current render pass instance was begun withvkCmdBeginRendering, it contains a custom resolve,thedynamicRenderingUnusedAttachmentsfeature is not enabled,andVkRenderingInfo::pDepthAttachment->resolveImageViewwasnotVK_NULL_HANDLE, the value ofVkCustomResolveCreateInfoEXT::depthAttachmentFormatused tocreate the bound graphics pipelinemust be equal to theVkFormatused to createVkRenderingInfo::pDepthAttachment->resolveImageViewVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-11867
If the current render pass instance was begun withvkCmdBeginRendering, it contains a custom resolve, thedynamicRenderingUnusedAttachmentsfeature is enabled,VkRenderingInfo::pDepthAttachment->resolveImageViewwas notVK_NULL_HANDLE, and the value ofVkCustomResolveCreateInfoEXT::depthAttachmentFormatused tocreate the bound graphics pipeline was not equal to theVkFormatused to createVkRenderingInfo::pDepthAttachment->resolveImageView, thevalue of the formatmust beVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-None-11868
If the current render pass instance was begun withvkCmdBeginRendering, it contains a custom resolve,thedynamicRenderingUnusedAttachmentsfeature is not enabled,andVkRenderingInfo::pStencilAttachment->resolveImageViewwasVK_NULL_HANDLE, the value ofVkCustomResolveCreateInfoEXT::stencilAttachmentFormatusedto create the bound graphics pipelinemust be equal toVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-None-11869
If current render pass instance was begun withvkCmdBeginRendering, it contains a custom resolve,thedynamicRenderingUnusedAttachmentsfeature is not enabled,andVkRenderingInfo::pStencilAttachment->resolveImageViewwas notVK_NULL_HANDLE, the value ofVkCustomResolveCreateInfoEXT::stencilAttachmentFormatusedto create the bound graphics pipelinemust be equal to theVkFormat used to createVkRenderingInfo::pStencilAttachment->resolveImageViewVUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-11870
If the current render pass instance was begun withvkCmdBeginRendering, it contains a custom resolve, thedynamicRenderingUnusedAttachmentsfeature is enabled,VkRenderingInfo::pStencilAttachment->resolveImageViewwasnotVK_NULL_HANDLE, and the value ofVkCustomResolveCreateInfoEXT::stencilAttachmentFormatusedto create the bound graphics pipeline was not equal to theVkFormat used to createVkRenderingInfo::pStencilAttachment->resolveImageView, thevalue of the formatmust beVK_FORMAT_UNDEFINEDVUID-vkCmdDrawIndirectCount-colorAttachmentCount-11871
If the current render pass instance was begun withvkCmdBeginRendering with aVkRenderingInfo::colorAttachmentCountparameter greater than0andvkCmdBeginCustomResolveEXT has been recorded in the renderpass instance, then for each element of theVkRenderingInfo::pColorAttachmentsarray with aresolveImageViewnot equal toVK_NULL_HANDLE, theresolveImageViewmust have been created with a sample count equalto the value ofrasterizationSamplesfor the bound graphicspipelineVUID-vkCmdDrawIndirectCount-pDepthAttachment-11872
If the current render pass instance was begun withvkCmdBeginRendering,vkCmdBeginCustomResolveEXT has beenrecorded in the render pass instance, andVkRenderingInfo::pDepthAttachment->resolveImageViewwas notVK_NULL_HANDLE, the value ofrasterizationSamplesfor thebound graphics pipelinemust be equal to the sample count used tocreateVkRenderingInfo::pDepthAttachment->resolveImageViewVUID-vkCmdDrawIndirectCount-pStencilAttachment-11873
If the current render pass instance was begun withvkCmdBeginRendering,vkCmdBeginCustomResolveEXT has beenrecorded in the render pass instance,VkRenderingInfo::pStencilAttachment->resolveImageViewwasnotVK_NULL_HANDLE, the value ofrasterizationSamplesforthe bound graphics pipelinemust be equal to the sample count used tocreateVkRenderingInfo::pStencilAttachment->resolveImageViewVUID-vkCmdDrawIndirectCount-customResolve-11529
If a shader object is bound to the fragment stage, the current renderpass instance was begun withvkCmdBeginRendering, a fragmentdensity map attachment is active, andvkCmdBeginCustomResolveEXThas been called, then the fragment shader object boundmust have beencreated withVkCustomResolveCreateInfoEXT::customResolveasVK_TRUEVUID-vkCmdDrawIndirectCount-customResolve-11530
If a shader object is bound to the fragment stage, the current renderpass instance was begun withvkCmdBeginRendering and contains acustom resolve, a fragment density map attachment is active, andvkCmdBeginCustomResolveEXT has not yet been called, then thefragment shader object boundmust have been created withVkCustomResolveCreateInfoEXT::customResolveasVK_FALSE
VUID-vkCmdDrawIndirectCount-None-04007
All vertex input bindings accessed via vertex input variables declaredin the vertex shader entry point’s interfacemust have either valid orVK_NULL_HANDLE buffers boundVUID-vkCmdDrawIndirectCount-None-04008
If thenullDescriptorfeature is notenabled, all vertex input bindings accessed via vertex input variablesdeclared in the vertex shader entry point’s interfacemust not beVK_NULL_HANDLEVUID-vkCmdDrawIndirectCount-None-02721
If therobustBufferAccessfeatureis not enabled,and that pipeline was created without enablingVK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS forvertexInputs,then for a given vertex buffer binding, any attribute data fetchedmustbe entirely contained within the corresponding vertex buffer binding, asdescribed inVertex Input DescriptionVUID-vkCmdDrawIndirectCount-format-10389
For each vertex attribute accessed by this command, if itsVkVertexInputAttributeDescription::formatorVkVertexInputAttributeDescription2EXT::formatis apacked format,and thelegacyVertexAttributesfeature is not enabled,the value ofattribAddress, calculated as described inVertex Input Calculation,mustbe a multiple of thesize of theformatVUID-vkCmdDrawIndirectCount-format-10390
For each vertex attribute accessed by this command, if itsVkVertexInputAttributeDescription::formatorVkVertexInputAttributeDescription2EXT::formatis not apacked format,and either thelegacyVertexAttributesfeature is not enabled orformathas 64-bit components,the value ofattribAddress, calculated as described inVertex Input Calculation,mustbe a multiple of thecomponent size of theformatVUID-vkCmdDrawIndirectCount-None-07842
If there is a shader object bound to theVK_SHADER_STAGE_VERTEX_BIT stageor the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled thenvkCmdSetPrimitiveTopologymust have been called and not subsequentlyinvalidated in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500
If the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabledand thedynamicPrimitiveTopologyUnrestrictedisVK_FALSE,then theprimitiveTopologyparameter ofvkCmdSetPrimitiveTopologymust be of the sametopology class as the pipelineVkPipelineInputAssemblyStateCreateInfo::topologystateVUID-vkCmdDrawIndirectCount-primitiveTopology-10286
If aVK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage is bound, thenthecurrent value ofprimitiveTopologymust beVK_PRIMITIVE_TOPOLOGY_PATCH_LISTprior to this drawing commandVUID-vkCmdDrawIndirectCount-primitiveTopology-10747
IfvkCmdSetPrimitiveTopology setprimitiveTopologytoVK_PRIMITIVE_TOPOLOGY_PATCH_LIST prior to this drawing command,then aVK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stagemust beboundVUID-vkCmdDrawIndirectCount-primitiveTopology-10748
IfvkCmdSetPrimitiveTopology setprimitiveTopologytoVK_PRIMITIVE_TOPOLOGY_POINT_LIST prior to this drawing command,themaintenance5feature is notenabled,both aVK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT andVK_SHADER_STAGE_GEOMETRY_BIT stage are not bound, then theVertexExecutionModelmust have aPointSizedecoratedvariable that is statically written toVUID-vkCmdDrawIndirectCount-pStrides-04913
If the bound graphics pipeline was created with theVK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE dynamic stateenabled,but without theVK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic stateenabled,thenvkCmdBindVertexBuffers2must have been called and notsubsequentlyinvalidated in the currentcommand buffer prior to this draw command, and thepStridesparameter ofvkCmdBindVertexBuffers2must not beNULLVUID-vkCmdDrawIndirectCount-None-04914
If there is a shader object bound to theVK_SHADER_STAGE_VERTEX_BIT stageor the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled thenvkCmdSetVertexInputEXTmust have been called and not subsequentlyinvalidated in the current command buffer prior to this draw commandVUID-vkCmdDrawIndirectCount-Input-07939
If thevertexAttributeRobustnessfeature is not enabled, and themaintenance9feature is not enabled, and there is a shader object bound to theVK_SHADER_STAGE_VERTEX_BIT stageor the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled then all variables with theInputstorage class decorated withLocationin theVertexExecutionModelOpEntryPointmust contain a location inVkVertexInputAttributeDescription2EXT::locationVUID-vkCmdDrawIndirectCount-Input-08734
If there is a shader object bound to theVK_SHADER_STAGE_VERTEX_BIT stageor the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and either thelegacyVertexAttributesfeature is not enabled or the SPIR-V Type associated with a givenInputvariable of the correspondingLocationin theVertexExecutionModelOpEntryPointis 64-bit, then the numeric type associated with allInputvariables of the correspondingLocationin theVertexExecutionModelOpEntryPointmust be the same asVkVertexInputAttributeDescription2EXT::formatVUID-vkCmdDrawIndirectCount-format-08936
If there is a shader object bound to theVK_SHADER_STAGE_VERTEX_BIT stageor the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled andVkVertexInputAttributeDescription2EXT::formathas a 64-bit component, then the scalar width associated with allInputvariables of the correspondingLocationin theVertexExecutionModelOpEntryPointmust be 64-bitVUID-vkCmdDrawIndirectCount-format-08937
If there is a shader object bound to theVK_SHADER_STAGE_VERTEX_BIT stageor the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and the scalar width associated with aLocationdecoratedInputvariable in theVertexExecutionModelOpEntryPointis 64-bit, then the correspondingVkVertexInputAttributeDescription2EXT::formatmust have a 64-bit componentVUID-vkCmdDrawIndirectCount-None-09203
If there is a shader object bound to theVK_SHADER_STAGE_VERTEX_BIT stageor the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled andVkVertexInputAttributeDescription2EXT::formathas a 64-bit component, then allInputvariables at the correspondingLocationin theVertexExecutionModelOpEntryPointmust not use components that are not present in the formatVUID-vkCmdDrawIndirectCount-None-04875
If there is a shader object bound to theVK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stageor the bound graphics pipeline state was created with both aVK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage and theVK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and thecurrent value ofprimitiveTopologyisVK_PRIMITIVE_TOPOLOGY_PATCH_LIST, thenvkCmdSetPatchControlPointsEXTmust have been called and not subsequentlyinvalidated in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-04879
If there is a shader object bound to theVK_SHADER_STAGE_VERTEX_BIT stageor the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled thenvkCmdSetPrimitiveRestartEnablemust have been called and not subsequentlyinvalidated in the current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-None-09637
If theprimitiveTopologyListRestartfeature is not enabled, theinput assembly isVK_PRIMITIVE_TOPOLOGY_POINT_LIST,VK_PRIMITIVE_TOPOLOGY_LINE_LIST,VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, orVK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to theVK_SHADER_STAGE_VERTEX_BIT stageor the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled, thenvkCmdSetPrimitiveRestartEnablemust beVK_FALSEVUID-vkCmdDrawIndirectCount-None-10909
If theprimitiveTopologyPatchListRestartfeature is not enabled, theinput assembly isVK_PRIMITIVE_TOPOLOGY_PATCH_LIST, there is a shader object bound to theVK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stageor the bound graphics pipeline state was created with theVK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled thenvkCmdSetPrimitiveRestartEnablemust beVK_FALSEVUID-vkCmdDrawIndirectCount-stage-06481
The bound graphics pipelinemust not have been created with theVkPipelineShaderStageCreateInfo::stagemember of any elementofVkGraphicsPipelineCreateInfo::pStagesset toVK_SHADER_STAGE_TASK_BIT_EXT orVK_SHADER_STAGE_MESH_BIT_EXTVUID-vkCmdDrawIndirectCount-None-08885
Theremust be no shader object bound to either of theVK_SHADER_STAGE_TASK_BIT_EXT orVK_SHADER_STAGE_MESH_BIT_EXTstagesVUID-vkCmdDrawIndirectCount-None-07619
Ifa shader object is bound to theVK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage ora graphics pipeline is bound which was created with both aVK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage and theVK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic stateenabled, thenvkCmdSetTessellationDomainOriginEXTmust have beencalled and not subsequentlyinvalidated inthe current command buffer prior to this drawing commandVUID-vkCmdDrawIndirectCount-OpExecutionMode-12239
If a shader is bound to both theVK_SHADER_STAGE_TESSELLATION_CONTROL_BIT andVK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stages, and if bothstages contain anOpExecutionModeinstruction specifying the typeof subdivision, theymust be the sameVUID-vkCmdDrawIndirectCount-OpExecutionMode-12240
If a shader is bound to both theVK_SHADER_STAGE_TESSELLATION_CONTROL_BIT andVK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stages, and if bothstages contain anOpExecutionModeinstruction specifying theorientation of triangles, theymust be the sameVUID-vkCmdDrawIndirectCount-OpExecutionMode-12241
If a shader is bound to both theVK_SHADER_STAGE_TESSELLATION_CONTROL_BIT andVK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stages, and if bothstages contain anOpExecutionModeinstruction specifying thesegment spacing, theymust be the sameVUID-vkCmdDrawIndirectCount-OpExecutionMode-12242
If a shader is bound to both theVK_SHADER_STAGE_TESSELLATION_CONTROL_BIT andVK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stages, and if bothstages contain anOpExecutionModeinstruction specifying the outputpatch size, theymust be the same
VUID-vkCmdDrawIndirectCount-buffer-02708
Ifbufferis non-sparse then itmust be bound completely andcontiguously to a singleVkDeviceMemoryobjectVUID-vkCmdDrawIndirectCount-buffer-02709
buffermust have been created with theVK_BUFFER_USAGE_INDIRECT_BUFFER_BIT usage flag setVUID-vkCmdDrawIndirectCount-offset-02710
offsetmust be a multiple of4VUID-vkCmdDrawIndirectCount-commandBuffer-02711
commandBuffermust not be a protected command buffer
VUID-vkCmdDrawIndirectCount-countBuffer-02714
IfcountBufferis non-sparse then itmust be bound completely andcontiguously to a singleVkDeviceMemoryobjectVUID-vkCmdDrawIndirectCount-countBuffer-02715
countBuffermust have been created with theVK_BUFFER_USAGE_INDIRECT_BUFFER_BIT usage flag setVUID-vkCmdDrawIndirectCount-countBufferOffset-02716
countBufferOffsetmust be a multiple of4VUID-vkCmdDrawIndirectCount-countBuffer-02717
The count stored incountBuffermust be less than or equal toVkPhysicalDeviceLimits::maxDrawIndirectCountVUID-vkCmdDrawIndirectCount-countBufferOffset-04129
(countBufferOffset+sizeof(uint32_t))must beless than or equal to the size ofcountBufferVUID-vkCmdDrawIndirectCount-None-04445
If thedrawIndirectCountfeatureis not enabled this functionmust not be usedVUID-vkCmdDrawIndirectCount-stride-03110
stridemust be a multiple of4andmust be greater than orequal to sizeof(VkDrawIndirectCommand)VUID-vkCmdDrawIndirectCount-maxDrawCount-03111
IfmaxDrawCountis greater than or equal to1,(stride× (maxDrawCount- 1) +offset+ sizeof(VkDrawIndirectCommand))must be less than or equalto the size ofbuffer
VUID-vkCmdDrawIndirectCount-commandBuffer-parameter
commandBuffermust be a validVkCommandBuffer handleVUID-vkCmdDrawIndirectCount-buffer-parameter
buffermust be a validVkBuffer handleVUID-vkCmdDrawIndirectCount-countBuffer-parameter
countBuffermust be a validVkBuffer handleVUID-vkCmdDrawIndirectCount-commandBuffer-recording
commandBuffermust be in therecording stateVUID-vkCmdDrawIndirectCount-commandBuffer-cmdpool
TheVkCommandPoolthatcommandBufferwas allocated frommust supportVK_QUEUE_GRAPHICS_BIT operationsVUID-vkCmdDrawIndirectCount-renderpass
This commandmust only be called inside of a render pass instanceVUID-vkCmdDrawIndirectCount-suspended
This commandmust not be called between suspended render pass instancesVUID-vkCmdDrawIndirectCount-videocoding
This commandmust only be called outside of a video coding scopeVUID-vkCmdDrawIndirectCount-commonparent
Each ofbuffer,commandBuffer, andcountBuffermust have been created, allocated, or retrieved from the sameVkDevice
Host access to
commandBuffermust be externally synchronizedHost access to the
VkCommandPoolthatcommandBufferwas allocated frommust be externally synchronized
| Command Buffer Levels | Render Pass Scope | Video Coding Scope | Supported Queue Types | Command Type |
|---|---|---|---|---|
Primary | Inside | Outside | VK_QUEUE_GRAPHICS_BIT | Action |
vkCmdDrawIndirectCount is affected byconditional rendering
Document Notes
For more information, see theVulkan Specification.
This page is extracted from the Vulkan Specification.Fixes and changes should be made to the Specification, not directly.