vkCmdDrawIndirectByteCount2EXT
To record a non-indexed draw call, where the vertex count is based on a byte count read from a memory range and the passed in vertex stride parameter, call:
void vkCmdDrawIndirectByteCount2EXT(
VkCommandBuffer commandBuffer,
uint32_t instanceCount,
uint32_t firstInstance,
const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfo,
uint32_t counterOffset,
uint32_t vertexStride);
pub fn cmd_draw_indirect_byte_count2_ext(
command_buffer: vk::CommandBuffer,
instance_count: u32,
first_instance: u32,
p_counter_info: *const vk::BindTransformFeedbackBuffer2InfoEXT,
counter_offset: u32,
vertex_stride: u32,
);
commandBufferis the command buffer into which the command is recorded.instanceCountis the number of instances to draw.firstInstanceis the instance ID of the first instance to draw.pCounterInfois a pointer to a VkBindTransformFeedbackBuffer2InfoEXT defining the range of memory that the byte count is read from.counterOffsetis subtracted from the byte count.vertexStrideis the stride in bytes between each element of the vertex data that is used to calculate the vertex count from the counter value. This value is typically the same value that was used in the graphics pipeline state when the transform feedback was captured as theXfbStride.
When the command is executed, primitives are assembled in the same way as
done with vkCmdDraw except the vertexCount is calculated based
on the byte count read from counterBuffer at offset
counterBufferOffset.
The assembled primitives execute the bound graphics pipeline.
The effective vertexCount is calculated as follows:
const uint32_t * counterBufferPtr = (const uint8_t *)counterRange.address;
vertexCount = floor(max(0, (*counterBufferPtr - counterOffset)) / vertexStride);
The effective firstVertex is zero.
Valid Usage
VUID-vkCmdDrawIndirectByteCount2EXT-magFilter-04553
If a VkSampler created with magFilter or minFilter
equal to VK_FILTER_LINEAR,
reductionMode equal to
VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
and compareEnable equal to VK_FALSE is used to sample a
VkImageView as a result of this command, then the image view’s
format features must contain
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-magFilter-09598
If a VkSampler created with magFilter or minFilter
equal to VK_FILTER_LINEAR and reductionMode equal to either
VK_SAMPLER_REDUCTION_MODE_MIN or
VK_SAMPLER_REDUCTION_MODE_MAX is used to sample a
VkImageView as a result of this command, then the image view’s
format features must contain
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-mipmapMode-04770
If a VkSampler created with mipmapMode equal to
VK_SAMPLER_MIPMAP_MODE_LINEAR,
reductionMode equal to
VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
and compareEnable equal to VK_FALSE is used to sample a
VkImageView as a result of this command, then the image view’s
format features must contain
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-mipmapMode-09599
If a VkSampler created with mipmapMode equal to
VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to
either VK_SAMPLER_REDUCTION_MODE_MIN or
VK_SAMPLER_REDUCTION_MODE_MAX is used to sample a
VkImageView as a result of this command, then the image view’s
format features must contain
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-unnormalizedCoordinates-09635
If a VkSampler created with unnormalizedCoordinates equal to
VK_TRUE is used to sample a VkImageView as a result of this
command, then the image view’s levelCount and layerCountmust be 1
VUID-vkCmdDrawIndirectByteCount2EXT-None-08609
If a VkSampler created with unnormalizedCoordinates equal to
VK_TRUE is used to sample a VkImageView as a result of this
command, then the image view’s viewType must be
VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdDrawIndirectByteCount2EXT-None-08610
If a VkSampler created with unnormalizedCoordinates equal to
VK_TRUE is used to sample a VkImageView as a result of this
command, then the sampler must not be used with any of the SPIR-V
OpImageSample* or OpImageSparseSample* instructions with
ImplicitLod, Dref or Proj in their name
VUID-vkCmdDrawIndirectByteCount2EXT-None-08611
If a VkSampler created with unnormalizedCoordinates equal to
VK_TRUE is used to sample a VkImageView as a result of this
command, then the sampler must not be used with any of the SPIR-V
OpImageSample* or OpImageSparseSample* instructions that includes a
LOD bias or any offset values
VUID-vkCmdDrawIndirectByteCount2EXT-None-06479
If a VkImageView is sampled with
depth comparison, the image view’s
format features must contain
VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-None-02691
If a VkImageView is accessed using atomic operations as a result
of this command, then the image view’s
format features must contain
VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-None-07888
If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is
accessed using atomic operations as a result of this command, then the
storage texel buffer’s format
features must contain
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-None-02692
If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a
result of this command, then the image view’s
format features must contain
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdDrawIndirectByteCount2EXT-None-02693
If
the VK_EXT_filter_cubic extension is not enabled and
any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a
result of this command, it must not have a VkImageViewType of
VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or
VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-vkCmdDrawIndirectByteCount2EXT-filterCubic-02694
Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a
result of this command must have a VkImageViewType and format
that supports cubic filtering, as specified by
VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic
returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawIndirectByteCount2EXT-filterCubicMinmax-02695
Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with
a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or
VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must
have a VkImageViewType and format that supports cubic filtering
together with minmax filtering, as specified by
VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax
returned by vkGetPhysicalDeviceImageFormatProperties2
VUID-vkCmdDrawIndirectByteCount2EXT-cubicRangeClamp-09212
If the cubicRangeClamp feature is
not enabled, then any VkImageView being sampled with
VK_FILTER_CUBIC_EXT as a result of this command must not have a
VkSamplerReductionModeCreateInfo::reductionMode equal to
VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
VUID-vkCmdDrawIndirectByteCount2EXT-reductionMode-09213
Any VkImageView being sampled with a
VkSamplerReductionModeCreateInfo::reductionMode equal to
VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a
result of this command must sample with VK_FILTER_CUBIC_EXT
VUID-vkCmdDrawIndirectByteCount2EXT-selectableCubicWeights-09214
If the selectableCubicWeights
feature is not enabled, then any VkImageView being sampled with
VK_FILTER_CUBIC_EXT as a result of this command must have
VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to
VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
VUID-vkCmdDrawIndirectByteCount2EXT-flags-02696
Any VkImage created with a VkImageCreateInfo::flags
containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
result of this command must only be sampled using a
VkSamplerAddressMode of
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawIndirectByteCount2EXT-OpTypeImage-07027
For any VkImageView being written as a storage image where the
image format field of the OpTypeImage is Unknown, the view’s
format features must contain
VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-OpTypeImage-07028
For any VkImageView being read as a storage image where the image
format field of the OpTypeImage is Unknown, the view’s
format features must contain
VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-OpTypeImage-07029
For any VkBufferView being written as a storage texel buffer where
the image format field of the OpTypeImage is Unknown, the
view’s buffer features must contain
VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-OpTypeImage-07030
Any VkBufferView being read as a storage texel buffer where the
image format field of the OpTypeImage is Unknown then the
view’s buffer features must contain
VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-None-08600
If a a bound shader
was created
as a VkShaderEXT without the
VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT flag or
as part of a pipeline without the
VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT flag, and that shader
statically uses a set n, a descriptor set must have been bound to n
at the same pipeline bind point, with a VkPipelineLayout that is
compatible for set n, with the VkPipelineLayout used to create
the current VkPipeline
or the VkDescriptorSetLayout array used to create the current
VkShaderEXT
, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirectByteCount2EXT-None-08601
If a a bound shader
was created
as a VkShaderEXT without the
VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT flag or
as part of a pipeline without the
VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT flag, and that shader
statically uses a push constant value, that value must have been set
for the same pipeline bind point, with a VkPipelineLayout that is
compatible for push constants with the
VkPipelineLayout used to create the current VkPipeline
or the VkDescriptorSetLayout array used to create the current
VkShaderEXT
VUID-vkCmdDrawIndirectByteCount2EXT-None-10068
For each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
VUID-vkCmdDrawIndirectByteCount2EXT-maintenance4-08602
If a a bound shader
was created
as a VkShaderEXT without the
VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT flag or
as part of a pipeline without the
VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT flag, and that shader
statically uses a push constant value, that value must have been set
for the same pipeline bind point, with a VkPipelineLayout that is
compatible for push constants with the
VkPipelineLayout used to create the current VkPipeline
or the VkDescriptorSetLayout and VkPushConstantRange arrays
used to create the current VkShaderEXT
VUID-vkCmdDrawIndirectByteCount2EXT-None-08114
Descriptors in each bound descriptor set, specified via
vkCmdBindDescriptorSets, must be valid if they are accessed as
described by descriptor validity by
the VkPipeline bound to the pipeline bind point used by this
command and the bound VkPipeline was not created with
VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirectByteCount2EXT-imageLayout-00344
If an image descriptor is accessed by a shader, the VkImageLayoutmust match the subresource accessible from the VkImageView as defined by the image layout matching rules
VUID-vkCmdDrawIndirectByteCount2EXT-None-08115
If the descriptors used by the VkPipeline bound to the pipeline
bind point were specified via vkCmdBindDescriptorSets, the bound
VkPipeline must have been created without
VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirectByteCount2EXT-None-08116
Descriptors in bound descriptor buffers, specified via
vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are
dynamically used by the VkPipeline bound to the pipeline bind
point used by this command and the bound VkPipeline was created
with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirectByteCount2EXT-None-08604
Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command
VUID-vkCmdDrawIndirectByteCount2EXT-None-08117
If the descriptors used by the VkPipeline bound to the pipeline
bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT,
the bound VkPipeline must have been created with
VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
VUID-vkCmdDrawIndirectByteCount2EXT-None-08119
If a descriptor is dynamically used with a VkPipeline created with
VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor
memory must be resident
VUID-vkCmdDrawIndirectByteCount2EXT-None-08605
If a descriptor is dynamically used with a VkShaderEXT created
with a VkDescriptorSetLayout that was created with
VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the
descriptor memory must be resident
VUID-vkCmdDrawIndirectByteCount2EXT-None-08606
If the shaderObject feature is not
enabled, a
valid pipeline must be bound to the pipeline bind point used by this
command
VUID-vkCmdDrawIndirectByteCount2EXT-None-08608
If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndirectByteCount2EXT-uniformBuffers-06935
If any stage of the VkPipeline object bound to the pipeline bind
point used by this command accesses a uniform buffer,
and that stage was created without enabling either
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS or
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 for
uniformBuffers,
and the robustBufferAccess
feature is not enabled, that stage must not access values outside of
the range of the buffer as specified in the descriptor set bound to the
same pipeline bind point
VUID-vkCmdDrawIndirectByteCount2EXT-None-08612
If the robustBufferAccess feature
is not enabled, and any VkShaderEXT bound to a stage corresponding
to the pipeline bind point used by this command accesses a uniform
buffer, it must not access values outside of the range of the buffer as
specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndirectByteCount2EXT-storageBuffers-06936
If any stage of the VkPipeline object bound to the pipeline bind
point used by this command accesses a storage buffer,
and that stage was created without enabling either
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS or
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 for
storageBuffers,
and the robustBufferAccess
feature is not enabled, that stage must not access values outside of
the range of the buffer as specified in the descriptor set bound to the
same pipeline bind point
VUID-vkCmdDrawIndirectByteCount2EXT-None-08613
If the robustBufferAccess feature
is not enabled, and any VkShaderEXT bound to a stage corresponding
to the pipeline bind point used by this command accesses a storage
buffer, it must not access values outside of the range of the buffer as
specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndirectByteCount2EXT-commandBuffer-02707
If commandBuffer is an unprotected command buffer and
protectedNoFault is not supported,
any resource accessed by bound shaders must not be
a protected resource
VUID-vkCmdDrawIndirectByteCount2EXT-viewType-07752
If a VkImageView is accessed as a result of this command, then the
image view’s viewType must match the Dim operand of the
OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
VUID-vkCmdDrawIndirectByteCount2EXT-format-07753
If a VkImageView or VkBufferView is accessed as a result of
this command, then the numeric type of the
view’s format and the Sampled Type operand of the
OpTypeImage must match
VUID-vkCmdDrawIndirectByteCount2EXT-OpImageWrite-08795
If a VkImageView
created with a format other than VK_FORMAT_A8_UNORM
is accessed using OpImageWrite as a result of this command, then
the Type of the Texel operand of that instruction must have
at least as many components as the image view’s format
VUID-vkCmdDrawIndirectByteCount2EXT-OpImageWrite-08796
If a VkImageView created with the format VK_FORMAT_A8_UNORM
is accessed using OpImageWrite as a result of this command, then
the Type of the Texel operand of that instruction must have
four components
VUID-vkCmdDrawIndirectByteCount2EXT-OpImageWrite-04469
If a VkBufferView is accessed using OpImageWrite as a result
of this command, then the Type of the Texel operand of that
instruction must have at least as many components as the buffer view’s
format
VUID-vkCmdDrawIndirectByteCount2EXT-SampledType-04470
If a VkImageView with a VkFormat that has a 64-bit component
width is accessed as a result of this command, the SampledType of
the OpTypeImage operand of that instruction must have a Width
of 64
VUID-vkCmdDrawIndirectByteCount2EXT-SampledType-04471
If a VkImageView with a VkFormat that has a component width
less than 64-bit is accessed as a result of this command, the
SampledType of the OpTypeImage operand of that instruction
must have a Width of 32
VUID-vkCmdDrawIndirectByteCount2EXT-SampledType-04472
If a VkBufferView with a VkFormat that has a 64-bit
component width is accessed as a result of this command, the
SampledType of the OpTypeImage operand of that instruction
must have a Width of 64
VUID-vkCmdDrawIndirectByteCount2EXT-SampledType-04473
If a VkBufferView with a VkFormat that has a component width
less than 64-bit is accessed as a result of this command, the
SampledType of the OpTypeImage operand of that instruction
must have a Width of 32
VUID-vkCmdDrawIndirectByteCount2EXT-sparseImageInt64Atomics-04474
If the sparseImageInt64Atomics feature is not enabled, VkImage
objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag
must not be accessed by atomic instructions through an OpTypeImage
with a SampledType with a Width of 64 by this command
VUID-vkCmdDrawIndirectByteCount2EXT-sparseImageInt64Atomics-04475
If the sparseImageInt64Atomics feature is not enabled, VkBuffer
objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
flag must not be accessed by atomic instructions through an
OpTypeImage with a SampledType with a Width of 64 by this
command
VUID-vkCmdDrawIndirectByteCount2EXT-OpImageSampleWeightedQCOM-06971
If OpImageSampleWeightedQCOM is used to sample a VkImageView
as a result of this command, then the image view’s
format features must contain
VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
VUID-vkCmdDrawIndirectByteCount2EXT-OpImageSampleWeightedQCOM-06972
If OpImageSampleWeightedQCOM uses a VkImageView as a sample
weight image as a result of this command, then the image view’s
format features must contain
VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
VUID-vkCmdDrawIndirectByteCount2EXT-OpImageBoxFilterQCOM-06973
If OpImageBoxFilterQCOM is used to sample a VkImageView as a
result of this command, then the image view’s
format features must contain
VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
VUID-vkCmdDrawIndirectByteCount2EXT-OpImageBlockMatchSSDQCOM-06974
If OpImageBlockMatchSSDQCOM is used to read from an
VkImageView as a result of this command, then the image view’s
format features must contain
VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndirectByteCount2EXT-OpImageBlockMatchSADQCOM-06975
If OpImageBlockMatchSADQCOM is used to read from an
VkImageView as a result of this command, then the image view’s
format features must contain
VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndirectByteCount2EXT-OpImageBlockMatchSADQCOM-06976
If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to
read from a reference image as result of this command, then the
specified reference coordinates must not fail
integer texel coordinate
validation
VUID-vkCmdDrawIndirectByteCount2EXT-OpImageSampleWeightedQCOM-06977
If OpImageSampleWeightedQCOM, OpImageBoxFilterQCOM,
OpImageBlockMatchWindowSSDQCOM,
OpImageBlockMatchWindowSADQCOM,
OpImageBlockMatchGatherSSDQCOM,
OpImageBlockMatchGatherSADQCOM,
OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a
VkSampler as a result of this command, then the sampler must have
been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndirectByteCount2EXT-OpImageSampleWeightedQCOM-06978
If any command other than OpImageSampleWeightedQCOM,
OpImageBoxFilterQCOM,
OpImageBlockMatchWindowSSDQCOM,
OpImageBlockMatchWindowSADQCOM,
OpImageBlockMatchGatherSSDQCOM,
OpImageBlockMatchGatherSADQCOM,
OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a
VkSampler as a result of this command, then the sampler must not
have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndirectByteCount2EXT-OpImageBlockMatchWindow-09215
If a OpImageBlockMatchWindow*QCOM or
OpImageBlockMatchGather*QCOM instruction is used to read from an
VkImageView as a result of this command, then the image view’s
format features must contain
VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
VUID-vkCmdDrawIndirectByteCount2EXT-OpImageBlockMatchWindow-09216
If a OpImageBlockMatchWindow*QCOM or
OpImageBlockMatchGather*QCOM instruction is used to read from an
VkImageView as a result of this command, then the image view’s
format must be a single-component format
VUID-vkCmdDrawIndirectByteCount2EXT-OpImageBlockMatchWindow-09217
If a OpImageBlockMatchWindow*QCOM or
OpImageBlockMatchGather*QCOM read from a reference image as result
of this command, then the specified reference coordinates must not fail
integer texel coordinate
validation
VUID-vkCmdDrawIndirectByteCount2EXT-None-07288
Any shader invocation executed by this command mustterminate
VUID-vkCmdDrawIndirectByteCount2EXT-None-09600
If a descriptor with type equal to any of
VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM,
VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM,
VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or
VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of
this command, all image subresources identified by that descriptor must
be in the image layout identified when the descriptor was written
VUID-vkCmdDrawIndirectByteCount2EXT-commandBuffer-10746
The VkDeviceMemory object allocated from a VkMemoryHeap with
the VK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOM property that is bound to
a resource accessed as a result of this command must be the active
bound bound tile memory object in
commandBuffer
VUID-vkCmdDrawIndirectByteCount2EXT-None-10678
If this command is recorded inside a tile
shading render pass instance, the stages corresponding to the pipeline
bind point used by this command must only include
VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_FRAGMENT_BIT,
and/or VK_SHADER_STAGE_COMPUTE_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-None-10679
If this command is recorded where
per-tile execution model is
enabled, there must be no access to any image while the image was be
transitioned to the
VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout
VUID-vkCmdDrawIndirectByteCount2EXT-pDescription-09900
If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a
result of this command, then the underlying VkTensorARM object
must have been created with the VK_TENSOR_USAGE_SHADER_BIT_ARM
usage flag set
VUID-vkCmdDrawIndirectByteCount2EXT-dimensionCount-09905
If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a
result of this command, then the Rank of the OpTypeTensorARM
of the tensor resource variable must be equal to the
dimensionCount provided via
VkTensorCreateInfoARM::pDescription when creating the
underlying VkTensorARM object
VUID-vkCmdDrawIndirectByteCount2EXT-OpTypeTensorARM-09906
If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a
result of this command, then the element type of the
OpTypeTensorARM of the tensor resource variable must be
compatible with the VkFormat of the
VkTensorViewARM used for the access
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using
VK_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,
or VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, and
a shader accesses a OpTypeStruct decorated with Block or
BufferBlock using that mapping, the calculated offset for the
resource heap must be a multiple of bufferDescriptorAlignment
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using
VK_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,
or VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, and
a shader accesses an OpTypeImage or OpTypeSampledImage using
that mapping, the calculated offset for the resource heap must be
a multiple of imageDescriptorAlignment
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using
VK_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,
or VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, and
a shader accesses an OpTypeSampler or OpTypeSampledImage using
that mapping, the calculated offset for the sampler heap must be
a multiple of samplerDescriptorAlignment
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using
VK_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,
or VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, and
a shader accesses an OpTypeTensorARM using that mapping, the
calculated offset for the resource heap must be a multiple of
tensorDescriptorAlignment
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using
VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT or
VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, and a
shader accesses a resource using that mapping, the value of the address
at the expected location in push data must be a multiple of 4
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using
VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT or
VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, and a
shader accesses a resource using that mapping, the value of the address
at the expected location in push data must be a valid
VkDeviceAddress backed by physical memory at every offset
specified by each mapping
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT, and
a shader accesses a resource using that mapping, the value of the
address at the expected location in push data must be a valid
VkDeviceAddress
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT,
and a shader accesses a resource using that mapping, the value of the
address at the expected location in push data must be a multiple of 8
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT,
and a shader accesses a resource using that mapping, the value of the
address at the expected location in push data must be a valid
VkDeviceAddress backed by physical memory at every offset
specified by each mapping
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT,
and a shader accesses a resource using that mapping, the value of the
address pointed to by the address in push data must be a valid
VkDeviceAddress
VUID-vkCmdDrawIndirectByteCount2EXT-None-11308
For each descriptor heap that is statically used by a bound shader, either directly or via a descriptor mapping, a valid descriptor heap must be bound
VUID-vkCmdDrawIndirectByteCount2EXT-None-11309
If a bound shader was created
as a VkShaderEXT with the
VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT flag or
as part of a pipeline with the
VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT flag, execution of
this command must not result in any descriptor read accessing data
outside of the user range of the respective heap bound by
vkCmdBind*HeapEXT commands
VUID-vkCmdDrawIndirectByteCount2EXT-None-11372
If any stage of the VkPipeline object bound to the pipeline bind
point used by this command accesses a uniform buffer or uniform texel
buffer through a descriptor in the bound resource heap,
that stage was created without enabling either
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS or
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 for
uniformBuffers,
the robustBufferAccess2 feature
is not enabled,
and the robustBufferAccess
feature is not enabled, that stage must not access values outside of
the range of the descriptor specified via VkDeviceAddressRangeKHR
when the descriptor was written
VUID-vkCmdDrawIndirectByteCount2EXT-None-11373
If any stage of the VkPipeline object bound to the pipeline bind
point used by this command accesses a storage buffer or storage texel
buffer through a descriptor in the bound resource heap,
that stage was created without enabling either
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS or
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 for
storageBuffers,
the robustBufferAccess2 feature
is not enabled,
and the robustBufferAccess
feature is not enabled, that stage must not access values outside of
the range of the descriptor specified by VkDeviceAddressRangeKHR
when the descriptor was written
VUID-vkCmdDrawIndirectByteCount2EXT-None-11374
If
the robustBufferAccess2 feature
is not enabled,
the robustBufferAccess feature is
not enabled, and any VkShaderEXT bound to a stage corresponding to
the pipeline bind point used by this command accesses a uniform buffer,
uniform texel buffer, storage buffer, or storage texel buffer, that
shader must not access values outside of the range of the buffer as
specified by VkDeviceAddressRangeKHR when the descriptor was
written
VUID-vkCmdDrawIndirectByteCount2EXT-pBindInfo-11375
If any bound shader uses an embedded sampler via a
descriptor mapping, the value of
pBindInfo→reservedRangeSize set for vkCmdBindSamplerHeapEXTmust be greater than or equal to
minSamplerHeapReservedRangeWithEmbedded
VUID-vkCmdDrawIndirectByteCount2EXT-None-11376
If a bound shader was created
as a VkShaderEXT with the
VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT flag or
as part of a pipeline with the
VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT flag, and that shader
statically uses a push constant value, that value must have been set by
vkCmdPushDataEXT
VUID-vkCmdDrawIndirectByteCount2EXT-None-11398
If a bound shader was created with a
descriptor mapping using
VK_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, or
VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, and a shader
accesses a resource using that mapping, the access must not be
out of bounds
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using
VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT,
VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, or
VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, and a shader
accesses a resource using that mapping, the buffer from which the
address in push data was queried must have been created with the
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT usage flag set
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,
VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT,
or VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, and a shader
accesses a uniform buffer using that mapping, the address that the
uniform buffer is mapped to must have been queried from a buffer
created with the VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT usage flag set
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,
VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT,
or VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, and a shader
accesses a uniform buffer using that mapping, the address that the
uniform buffer is mapped to must be aligned to
minUniformBufferOffsetAlignment
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,
VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT,
or VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, and a shader
accesses a storage buffer using that mapping, the address that the
storage buffer is mapped to must have been queried from a buffer
created with the VK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag set
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor
mapping using VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,
VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT,
or VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, and a shader
accesses a storage buffer using that mapping, the address that the
storage buffer is mapped to must be aligned to
minStorageBufferOffsetAlignment
VUID-vkCmdDrawIndirectByteCount2EXT-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 a descriptor mapping using VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT, VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT, or VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, and a shader accesses an acceleration structure using that mapping, the address that the acceleration structure is mapped to must be an acceleration structure address retrieved from a VkAccelerationStructureKHR object via vkGetAccelerationStructureDeviceAddressKHR
or handle retrieved from a VkAccelerationStructureNV object via vkGetAccelerationStructureHandleNV
VUID-vkCmdDrawIndirectByteCount2EXT-index-11450
If a shader uses a sampler descriptor to sample an image as a result of
this command, and that sampler descriptor uses a custom border color
with an index defined by
VkSamplerCustomBorderColorIndexCreateInfoEXT, the value of
VkSamplerCustomBorderColorIndexCreateInfoEXT::index must
have been registered before this command was recorded, and still be
registered during the sampling operation, with an identically defined
color
VUID-vkCmdDrawIndirectByteCount2EXT-protectedNoFault-11455
If protectedNoFault is 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 a descriptor
mapping using VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,
VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT,
or VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, the address
that the resource is mapped to must have been queried from a buffer
created without the VK_BUFFER_CREATE_PROTECTED_BIT create flag set
VUID-vkCmdDrawIndirectByteCount2EXT-protectedNoFault-11456
If protectedNoFault is 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 a descriptor
mapping using
VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT or
VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT,
the address of the indirect memory must have been queried from a buffer
created without the VK_BUFFER_CREATE_PROTECTED_BIT create flag set
VUID-vkCmdDrawIndirectByteCount2EXT-renderPass-02684
The current render pass must be compatible
with the renderPass member of the
VkGraphicsPipelineCreateInfo structure specified when creating the
VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndirectByteCount2EXT-subpass-02685
The subpass index of the current render pass must be equal to the
subpass member of the VkGraphicsPipelineCreateInfo structure
specified when creating the VkPipeline bound to
VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndirectByteCount2EXT-OpTypeImage-07468
If any shader executed by this pipeline accesses an OpTypeImage
variable with a Dim operand of SubpassData, it must be
decorated with an InputAttachmentIndex that corresponds to a valid
input attachment in the current subpass
VUID-vkCmdDrawIndirectByteCount2EXT-None-07469
Input attachment views accessed in a subpass must be created with the
same VkFormat as the corresponding subpass definition, and be
created with a VkImageView that is compatible with the attachment
referenced by the subpass'
pInputAttachments[InputAttachmentIndex] in the bound
VkFramebuffer as specified by
Fragment Input Attachment
Compatibility
VUID-vkCmdDrawIndirectByteCount2EXT-pDepthInputAttachmentIndex-09595
Input attachment views accessed in a dynamic render pass with a
InputAttachmentIndex referenced by
VkRenderingInputAttachmentIndexInfo, or no
InputAttachmentIndex if
VkRenderingInputAttachmentIndexInfo::pDepthInputAttachmentIndex
or
VkRenderingInputAttachmentIndexInfo::pStencilInputAttachmentIndex
are NULL, must be created with a VkImageView that is compatible
with the corresponding color, depth, or stencil attachment in
VkRenderingInfo
VUID-vkCmdDrawIndirectByteCount2EXT-pDepthInputAttachmentIndex-09596
Input attachment views accessed in a dynamic render pass via a shader
object must have an InputAttachmentIndex if both
VkRenderingInputAttachmentIndexInfo::pDepthInputAttachmentIndex
and
VkRenderingInputAttachmentIndexInfo::pStencilInputAttachmentIndex
are non-NULL
VUID-vkCmdDrawIndirectByteCount2EXT-InputAttachmentIndex-09597
If an input attachment view accessed in a dynamic render pass via a
shader object has an InputAttachmentIndex, the
InputAttachmentIndex must match an index in
VkRenderingInputAttachmentIndexInfo
VUID-vkCmdDrawIndirectByteCount2EXT-None-06537
Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawIndirectByteCount2EXT-None-10795
If a color attachment is written by any prior command in this subpass or
by the load, store, or resolve operations for this subpass,
and feedback loop is not enabled for
VK_IMAGE_ASPECT_COLOR_BIT on that attachment,
it must not be accessed in any way other than as an attachment by this
command
VUID-vkCmdDrawIndirectByteCount2EXT-None-10796
If a depth attachment is written by any prior command in this subpass or
by the load, store, or resolve operations for this subpass,
and feedback loop is not enabled for
VK_IMAGE_ASPECT_DEPTH_BIT on that attachment,
it must not be accessed in any way other than as an attachment by this
command
VUID-vkCmdDrawIndirectByteCount2EXT-None-10797
If a stencil attachment is written by any prior command in this subpass
or by the load, store, or resolve operations for this subpass,
and feedback loop is not enabled for
VK_IMAGE_ASPECT_STENCIL_BIT on that attachment,
it must not be accessed in any way other than as an attachment by this
command
VUID-vkCmdDrawIndirectByteCount2EXT-None-12338
If a color attachment is read in this command in any way other than as
an attachment, or has been read by any prior command in this subpass as
a non-attachment,
and feedback loop is not enabled for
VK_IMAGE_ASPECT_COLOR_BIT on that attachment,
the color attachment must not be written to by this command
VUID-vkCmdDrawIndirectByteCount2EXT-None-12339
If a depth attachment is read in this command in any way other than as
an attachment, or has been read by any prior command in this subpass as
a non-attachment,
and feedback loop is not enabled for
VK_IMAGE_ASPECT_DEPTH_BIT on that attachment,
the depth attachment must not be written to by this command
VUID-vkCmdDrawIndirectByteCount2EXT-None-12340
If a stencil attachment is read in this command in any way other than as
an attachment, or has been read by any prior command in this subpass as
a non-attachment,
and feedback loop is not enabled for
VK_IMAGE_ASPECT_STENCIL_BIT on that attachment,
the stencil attachment must not be written to by this command
VUID-vkCmdDrawIndirectByteCount2EXT-None-09003
If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
VUID-vkCmdDrawIndirectByteCount2EXT-None-06886
If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawIndirectByteCount2EXT-None-06887
If the current render pass instance uses a depth/stencil attachment with
a read-only layout for the stencil aspect, both front and back
writeMask are not zero, and stencil test is enabled,
all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawIndirectByteCount2EXT-None-07831
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then
vkCmdSetViewport must have been called and not subsequently
invalidated in the current command buffer
prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07832
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then
vkCmdSetScissor must have been called and not subsequently
invalidated in the current command buffer
prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-08617
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled, the
current value of
rasterizerDiscardEnable is VK_FALSE, and the
effective rasterization input
topology is in line topology class, then vkCmdSetLineWidth must
have been called and not subsequently invalidated in the current command buffer prior to this drawing
command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07834
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled, the
current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of depthBiasEnable
is VK_TRUE, then vkCmdSetDepthBias
or vkCmdSetDepthBias2EXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing
command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07835
If
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage
or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled, the
current value of
rasterizerDiscardEnable is VK_FALSE, and an active color
attachment current value of
blendEnable is VK_TRUE with a blend equations where any
VkBlendFactor member is VK_BLEND_FACTOR_CONSTANT_COLOR,
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
VK_BLEND_FACTOR_CONSTANT_ALPHA, or
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, then
vkCmdSetBlendConstants must have been called and not subsequently
invalidated in the current command buffer
prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07836
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, the
current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of
depthBoundsTestEnable is VK_TRUE, then
vkCmdSetDepthBounds must have been called and not subsequently
invalidated in the current command buffer
prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07837
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, the
current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of
stencilTestEnable is VK_TRUE, then
vkCmdSetStencilCompareMask must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07838
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, the
current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of
stencilTestEnable is VK_TRUE, then
vkCmdSetStencilWriteMask must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07839
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the
current value of and
rasterizerDiscardEnable is VK_FALSE, the
current value of
stencilTestEnable is VK_TRUE, then
vkCmdSetStencilReference must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-maxMultiviewInstanceIndex-02688
If the draw is recorded in a render pass instance with multiview
enabled, the maximum instance index must be less than or equal to
VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawIndirectByteCount2EXT-sampleLocationsEnable-02689
If the bound graphics pipeline was created with
VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable
set to VK_TRUE, then the active depth attachment must have been
created with the
VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawIndirectByteCount2EXT-None-07634
If the VK_EXT_sample_locations extension is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state
enabled, and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetSampleLocationsEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-06666
If the VK_EXT_sample_locations extension is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the
current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of
sampleLocationsEnable is VK_TRUE, then
vkCmdSetSampleLocationsEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07840
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the
current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetCullMode must have been called and not subsequently
invalidated in the current command buffer
prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07841
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the
current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetFrontFace must have been called and not subsequently
invalidated in the current command buffer
prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07843
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled, and the
current value of
rasterizerDiscardEnable is VK_FALSE,
vkCmdSetDepthTestEnable must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07844
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled, and the
current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of depthTestEnable
is VK_TRUE, then vkCmdSetDepthWriteEnable must have been
called and not subsequently invalidated in
the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07845
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled, the
current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of depthTestEnable
is VK_TRUE, then vkCmdSetDepthCompareOp must have been
called and not subsequently invalidated in
the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07846
If the depthBounds feature is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled,
and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetDepthBoundsTestEnable must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07847
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and
the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetStencilTestEnable must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07848
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the
current value of
rasterizerDiscardEnable is VK_FALSE, the
current value of
stencilTestEnable is VK_TRUE, then vkCmdSetStencilOpmust have been called and not subsequently invalidated in the current command buffer prior to this drawing
command
VUID-vkCmdDrawIndirectByteCount2EXT-viewportCount-03417
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled,
and the state is not inherited,
then vkCmdSetViewportWithCount must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-scissorCount-03418
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled,
and the state is not inherited,
then vkCmdSetScissorWithCount must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing
VUID-vkCmdDrawIndirectByteCount2EXT-viewportCount-03419
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with both the
VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled,
and the state is not inherited,
then the viewportCount parameter of
vkCmdSetViewportWithCount must match the scissorCount
parameter of vkCmdSetScissorWithCount
VUID-vkCmdDrawIndirectByteCount2EXT-viewportCount-04137
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but
not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state
enabled, then the bound graphics pipeline must have been created with
VkPipelineViewportWScalingStateCreateInfoNV::viewportCount
greater or equal to the viewportCount parameter in the last call
to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCount2EXT-viewportCount-04138
If the VK_NV_clip_space_w_scaling extension is enabled, and
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and
VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the
current value of
viewportWScalingEnable is VK_TRUE, then
vkCmdSetViewportWScalingNV must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-08636
If the VK_NV_clip_space_w_scaling extension is enabled, and
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and
VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the
current value of
viewportWScalingEnable is VK_TRUE, then the
viewportCount parameter in the last call to
vkCmdSetViewportWScalingNV must be greater than or equal to the
viewportCount parameter in the last call to
vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCount2EXT-viewportCount-04139
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but
not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic
state enabled, then the bound graphics pipeline must have been created
with
VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount
greater or equal to the viewportCount parameter in the last call
to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCount2EXT-shadingRateImage-09233
If the shadingRateImage feature is
enabled, and
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV and the
current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetCoarseSampleOrderNV must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-shadingRateImage-09234
If the shadingRateImage feature is
enabled, and
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and
VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state
enabled, the current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of
shadingRateImageEnable is VK_TRUE, then
vkCmdSetViewportShadingRatePaletteNV must have been called and
not subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-08637
If the shadingRateImage feature is
enabled, and
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and
VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state
enabled, the current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of
shadingRateImageEnable is VK_TRUE, then the
viewportCount parameter in the last call to
vkCmdSetViewportShadingRatePaletteNV must be greater than or
equal to the viewportCount parameter in the last call to
vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCount2EXT-VkPipelineVieportCreateInfo-04141
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a
VkPipelineViewportSwizzleStateCreateInfoNV structure chained from
VkPipelineViewportStateCreateInfo, then the bound graphics
pipeline must have been created with
VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount
greater or equal to the viewportCount parameter in the last call
to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCount2EXT-VkPipelineVieportCreateInfo-04142
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a
VkPipelineViewportExclusiveScissorStateCreateInfoNV structure
chained from VkPipelineViewportStateCreateInfo, then the bound
graphics pipeline must have been created with
VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount
greater or equal to the viewportCount parameter in the last call
to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCount2EXT-None-07878
If the exclusiveScissor feature is
enabled, and
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state
enabled, then vkCmdSetExclusiveScissorEnableNV must have been
called and not subsequently invalidated in
the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07879
If the exclusiveScissor feature is
enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled, and
the most recent call to vkCmdSetExclusiveScissorEnableNV in the
current command buffer set any element of pExclusiveScissorEnables
to VK_TRUE, then vkCmdSetExclusiveScissorNV must have been
called and not subsequently invalidated in
the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-04876
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled,
then vkCmdSetRasterizerDiscardEnable must have been called and
not subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-04877
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled, and the
current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetDepthBiasEnable must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-logicOp-04878
If
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled, the
current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of logicOpEnable is
VK_TRUE, then vkCmdSetLogicOpEXT must have been called and
not subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-primitiveFragmentShadingRateWithMultipleViewports-04552
If the primitiveFragmentShadingRateWithMultipleViewports limit is not
supported, the bound graphics pipeline was created with the
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and
any of the shader stages of the bound graphics pipeline write to the
PrimitiveShadingRateKHR built-in, then
vkCmdSetViewportWithCount must have been called in the current
command buffer prior to this drawing command, and the
viewportCount parameter of vkCmdSetViewportWithCount must
be 1
VUID-vkCmdDrawIndirectByteCount2EXT-primitiveFragmentShadingRateWithMultipleViewports-08642
If the primitiveFragmentShadingRateWithMultipleViewports limit is not
supported, and any shader object bound to a graphics stage writes to the
PrimitiveShadingRateKHR built-in, then
vkCmdSetViewportWithCount must have been called in the current
command buffer prior to this drawing command, and the
viewportCount parameter of vkCmdSetViewportWithCount must
be 1
VUID-vkCmdDrawIndirectByteCount2EXT-blendEnable-04727
If
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage
or
a graphics pipeline is bound which was created with
VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, the
current value of
rasterizerDiscardEnable is VK_FALSE, then for each color
attachment, if the corresponding image view’s
format features do not contain
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the
corresponding current value of
blendEnable must be VK_FALSE
VUID-vkCmdDrawIndirectByteCount2EXT-None-08644
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound, the current
value of rasterizerDiscardEnable is VK_FALSE,
and none of the following is enabled:
- the VK_AMD_mixed_attachment_samples extension
- the VK_NV_framebuffer_mixed_samples extension
- the
multisampledRenderToSingleSampledfeature
then the current value of
rasterizationSamples must be the same as the current color and/or
depth/stencil attachments
VUID-vkCmdDrawIndirectByteCount2EXT-None-08876
If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawIndirectByteCount2EXT-imageView-06172
If the current render pass instance was begun with
vkCmdBeginRendering, the imageView member of
pDepthAttachment is not VK_NULL_HANDLE, and the layout
member of pDepthAttachment is
VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command
must not write any values to the depth attachment
VUID-vkCmdDrawIndirectByteCount2EXT-imageView-06173
If the current render pass instance was begun with
vkCmdBeginRendering, the imageView member of
pStencilAttachment is not VK_NULL_HANDLE, and the
layout member of pStencilAttachment is
VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command
must not write any values to the stencil attachment
VUID-vkCmdDrawIndirectByteCount2EXT-imageView-06174
If the current render pass instance was begun with
vkCmdBeginRendering, the imageView member of
pDepthAttachment is not VK_NULL_HANDLE, and the layout
member of pDepthAttachment is
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this
command must not write any values to the depth attachment
VUID-vkCmdDrawIndirectByteCount2EXT-imageView-06175
If the current render pass instance was begun with
vkCmdBeginRendering, the imageView member of
pStencilAttachment is not VK_NULL_HANDLE, and the
layout member of pStencilAttachment is
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this
command must not write any values to the stencil attachment
VUID-vkCmdDrawIndirectByteCount2EXT-imageView-06176
If the current render pass instance was begun with
vkCmdBeginRendering, the imageView member of
pDepthAttachment is not VK_NULL_HANDLE, and the layout
member of pDepthAttachment is
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not
write any values to the depth attachment
VUID-vkCmdDrawIndirectByteCount2EXT-imageView-06177
If the current render pass instance was begun with
vkCmdBeginRendering, the imageView member of
pStencilAttachment is not VK_NULL_HANDLE, and the
layout member of pStencilAttachment is
VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not
write any values to the stencil attachment
VUID-vkCmdDrawIndirectByteCount2EXT-viewMask-06178
If the current render pass instance was begun with
vkCmdBeginRendering, the bound graphics pipeline must have been
created with a VkPipelineRenderingCreateInfo::viewMask equal
to VkRenderingInfo::viewMask
VUID-vkCmdDrawIndirectByteCount2EXT-colorAttachmentCount-06179
If
the dynamicRenderingUnusedAttachments feature is not enabled and
the current render pass instance was begun with
vkCmdBeginRendering, the bound graphics pipeline must have been
created with a
VkPipelineRenderingCreateInfo::colorAttachmentCount equal to
VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawIndirectByteCount2EXT-dynamicRenderingUnusedAttachments-08910
If
the dynamicRenderingUnusedAttachments feature is not enabled, and
the current render pass instance was begun with
vkCmdBeginRendering and
VkRenderingInfo::colorAttachmentCount greater than 0, then
each element of the VkRenderingInfo::pColorAttachments array
with an imageView not equal to VK_NULL_HANDLE must have
been created with a VkFormat equal to the corresponding element of
VkPipelineRenderingCreateInfo::pColorAttachmentFormats used
to create the bound graphics pipeline
VUID-vkCmdDrawIndirectByteCount2EXT-dynamicRenderingUnusedAttachments-08912
If
the dynamicRenderingUnusedAttachments feature is not enabled, and
the current render pass instance was begun with
vkCmdBeginRendering and
VkRenderingInfo::colorAttachmentCount greater than 0, then
each element of the VkRenderingInfo::pColorAttachments array
with an imageView equal to VK_NULL_HANDLE must have the
corresponding element of
VkPipelineRenderingCreateInfo::pColorAttachmentFormats used
to create the bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-dynamicRenderingUnusedAttachments-08911
If the dynamicRenderingUnusedAttachments feature is enabled, and the
current render pass instance was begun with vkCmdBeginRendering
and VkRenderingInfo::colorAttachmentCount greater than 0,
then each element of the VkRenderingInfo::pColorAttachments
array with an imageView not equal to VK_NULL_HANDLE must
have been created with a VkFormat equal to the corresponding
element of
VkPipelineRenderingCreateInfo::pColorAttachmentFormats used
to create the bound graphics pipeline, or the corresponding element of
VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if
it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-colorAttachmentCount-09362
If the current render pass instance was begun with
vkCmdBeginRendering, with a
VkRenderingInfo::colorAttachmentCount equal to 1,
there is no shader object bound to any graphics stage,
and a color attachment with a resolve mode of
VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each
element of the VkRenderingInfo::pColorAttachments array with
a resolveImageView not equal to VK_NULL_HANDLE must have
been created with an image created with a
VkExternalFormatANDROID::externalFormat value equal to the
VkExternalFormatANDROID::externalFormat value used to create
the bound graphics pipeline
VUID-vkCmdDrawIndirectByteCount2EXT-None-09363
If
there is no shader object bound to any graphics stage,
the current render pass instance was begun with
vkCmdBeginRendering and a
VkRenderingInfo::colorAttachmentCount equal to 1, and a
color attachment with a resolve mode of
VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each
element of the VkRenderingInfo::pColorAttachments array with
a imageView not equal to VK_NULL_HANDLE must have been
created with an image created with a
VkExternalFormatANDROID::externalFormat value equal to the
VkExternalFormatANDROID::externalFormat value used to create
the bound graphics pipeline
VUID-vkCmdDrawIndirectByteCount2EXT-None-09364
If the current render pass instance was begun with
vkCmdBeginRendering,
there is no shader object bound to any graphics stage,
and the bound graphics pipeline was created with a non-zero
VkExternalFormatANDROID::externalFormat value and with the
VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled,
then vkCmdSetColorBlendEnableEXT must have set the blend enable
to VK_FALSE prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-09365
If the current render pass instance was begun with
vkCmdBeginRendering,
there is no shader object bound to any graphics stage,
and the bound graphics pipeline was created with a non-zero
VkExternalFormatANDROID::externalFormat value and with the
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled,
then vkCmdSetRasterizationSamplesEXT must have set
rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this
drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-09366
If there is a shader object bound to any graphics stage, and the current
render pass includes a color attachment that uses the
VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve
mode, then vkCmdSetColorBlendEnableEXT must have set blend enable
to VK_FALSE prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-rasterizationSamples-09367
If there is a shader object bound to any graphics stage, and the current
render pass includes a color attachment that uses the
VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve
mode, then vkCmdSetRasterizationSamplesEXT must have set
rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this
drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-09368
If the current render pass instance was begun with
vkCmdBeginRendering,
there is no shader object bound to any graphics stage,
and the bound graphics pipeline was created with a non-zero
VkExternalFormatANDROID::externalFormat value and with the
VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled,
then vkCmdSetFragmentShadingRateKHR must have set
pFragmentSize→width to 1 prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-09369
If the current render pass instance was begun with
vkCmdBeginRendering,
there is no shader object bound to any graphics stage,
and the bound graphics pipeline was created with a non-zero
VkExternalFormatANDROID::externalFormat value and with the
VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled,
then vkCmdSetFragmentShadingRateKHR must have set
pFragmentSize→height to 1 prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-pFragmentSize-09370
If there is a shader object bound to any graphics stage, and the current
render pass includes a color attachment that uses the
VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve
mode, then vkCmdSetFragmentShadingRateKHR must have set
pFragmentSize→width to 1 prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-pFragmentSize-09371
If there is a shader object bound to any graphics stage, and the current
render pass includes a color attachment that uses the
VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve
mode, then vkCmdSetFragmentShadingRateKHR must have set
pFragmentSize→height to 1 prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07749
If the colorWriteEnable feature is
enabled,
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage
or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled, and
the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetColorWriteEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-attachmentCount-07750
If the colorWriteEnable feature is
enabled,
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage
or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled, and
the current value of
rasterizerDiscardEnable is VK_FALSE, then the
attachmentCount parameter of most recent call to
vkCmdSetColorWriteEnableEXT in the current command buffer must be
greater than or equal to the number of active color attachments
VUID-vkCmdDrawIndirectByteCount2EXT-None-07751
If the VK_EXT_discard_rectangles extension is enabled, a
graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled and
the pNext chain of VkGraphicsPipelineCreateInfo included a
VkPipelineDiscardRectangleStateCreateInfoEXT structure, the
current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of
discardRectangleEnable is VK_TRUE, then
vkCmdSetDiscardRectangleEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command for each discard rectangle
in
VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount
VUID-vkCmdDrawIndirectByteCount2EXT-rasterizerDiscardEnable-09236
If the VK_EXT_discard_rectangles extension is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with
VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled and
the pNext chain of VkGraphicsPipelineCreateInfo did not
include a VkPipelineDiscardRectangleStateCreateInfoEXT structure,
the current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of
discardRectangleEnable is VK_TRUE, then
vkCmdSetDiscardRectangleEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command for each discard rectangle
in
VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles
VUID-vkCmdDrawIndirectByteCount2EXT-None-07880
If the VK_EXT_discard_rectangles extension is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state
enabled, the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetDiscardRectangleEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07881
If the VK_EXT_discard_rectangles extension is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled,
the current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of
discardRectangleEnable is VK_TRUE, then
vkCmdSetDiscardRectangleModeEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-dynamicRenderingUnusedAttachments-08913
If the current render pass instance was begun with
vkCmdBeginRendering,
the
dynamicRenderingUnusedAttachments
feature is not enabled,
and VkRenderingInfo::pDepthAttachment→imageView was
VK_NULL_HANDLE, the value of
VkPipelineRenderingCreateInfo::depthAttachmentFormat used to
create the bound graphics pipeline must be equal to
VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-dynamicRenderingUnusedAttachments-08914
If current render pass instance was begun with
vkCmdBeginRendering,
the
dynamicRenderingUnusedAttachments
feature is not enabled,
and VkRenderingInfo::pDepthAttachment→imageView was not
VK_NULL_HANDLE, the value of
VkPipelineRenderingCreateInfo::depthAttachmentFormat used to
create the bound graphics pipeline must be equal to the VkFormat
used to create VkRenderingInfo::pDepthAttachment→imageView
VUID-vkCmdDrawIndirectByteCount2EXT-dynamicRenderingUnusedAttachments-08915
If the current render pass instance was begun with
vkCmdBeginRendering, the
dynamicRenderingUnusedAttachments feature is enabled,
VkRenderingInfo::pDepthAttachment→imageView was not
VK_NULL_HANDLE, and the value of
VkPipelineRenderingCreateInfo::depthAttachmentFormat used to
create the bound graphics pipeline was not equal to the VkFormat
used to create VkRenderingInfo::pDepthAttachment→imageView,
the value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-dynamicRenderingUnusedAttachments-08916
If the current render pass instance was begun with
vkCmdBeginRendering,
the
dynamicRenderingUnusedAttachments
feature is not enabled,
and VkRenderingInfo::pStencilAttachment→imageView was
VK_NULL_HANDLE, the value of
VkPipelineRenderingCreateInfo::stencilAttachmentFormat used
to create the bound graphics pipeline must be equal to
VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-dynamicRenderingUnusedAttachments-08917
If current render pass instance was begun with
vkCmdBeginRendering,
the
dynamicRenderingUnusedAttachments
feature is not enabled,
and VkRenderingInfo::pStencilAttachment→imageView was not
VK_NULL_HANDLE, the value of
VkPipelineRenderingCreateInfo::stencilAttachmentFormat used
to create the bound graphics pipeline must be equal to the
VkFormat used to create
VkRenderingInfo::pStencilAttachment→imageView
VUID-vkCmdDrawIndirectByteCount2EXT-dynamicRenderingUnusedAttachments-08918
If the current render pass instance was begun with
vkCmdBeginRendering, the
dynamicRenderingUnusedAttachments feature is enabled,
VkRenderingInfo::pStencilAttachment→imageView was not
VK_NULL_HANDLE, and the value of
VkPipelineRenderingCreateInfo::stencilAttachmentFormat used
to create the bound graphics pipeline was not equal to the
VkFormat used to create
VkRenderingInfo::pStencilAttachment→imageView, the value of
the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-imageView-06183
If the current render pass instance was begun with
vkCmdBeginRendering and
VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView
was not VK_NULL_HANDLE, the bound graphics pipeline must have
been created with
VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawIndirectByteCount2EXT-dynamicRenderingLocalRead-11797
If the current render pass instance was begun with
vkCmdBeginRendering, the
dynamicRenderingLocalRead
feature is enabled, the
VK_RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR flag is
specified, and an attachment is being used as a feedback loop as
specified by
VK_RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR,
VkRenderingAttachmentFlagsInfoKHR::flags for that attachment
must include
VK_RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR
VUID-vkCmdDrawIndirectByteCount2EXT-imageView-06184
If the current render pass instance was begun with
vkCmdBeginRendering and
VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView
was not VK_NULL_HANDLE, the bound graphics pipeline must have
been created with
VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawIndirectByteCount2EXT-layers-10831
If the current render pass instance was created with
VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE or
VK_RENDER_PASS_CREATE_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE, and
the bound graphics pipeline was created with
VK_PIPELINE_CREATE_2_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE, then
the current render pass instance must have a layers value less
than or equal to
VkPipelineFragmentDensityMapLayeredCreateInfoVALVE::maxFragmentDensityMapLayers
VUID-vkCmdDrawIndirectByteCount2EXT-colorAttachmentCount-06185
If the bound pipeline was created with a
VkAttachmentSampleCountInfoAMD or
VkAttachmentSampleCountInfoNV structure, and the current render
pass instance was begun with vkCmdBeginRendering with a
VkRenderingInfo::colorAttachmentCount parameter greater than
0, then each element of the
VkRenderingInfo::pColorAttachments array with a
imageView not equal to VK_NULL_HANDLE must have been
created with a sample count equal to the corresponding element of the
pColorAttachmentSamples member of
VkAttachmentSampleCountInfoAMD or
VkAttachmentSampleCountInfoNV used to create the bound graphics
pipeline
VUID-vkCmdDrawIndirectByteCount2EXT-pDepthAttachment-06186
If the current render pass instance was begun with
vkCmdBeginRendering, the bound pipeline was created with a
VkAttachmentSampleCountInfoAMD or
VkAttachmentSampleCountInfoNV structure, and
VkRenderingInfo::pDepthAttachment→imageView was not
VK_NULL_HANDLE, the value of the
depthStencilAttachmentSamples member of
VkAttachmentSampleCountInfoAMD or
VkAttachmentSampleCountInfoNV used to create the bound graphics
pipeline must be equal to the sample count used to create
VkRenderingInfo::pDepthAttachment→imageView
VUID-vkCmdDrawIndirectByteCount2EXT-pStencilAttachment-06187
If the current render pass instance was begun with
vkCmdBeginRendering, the bound pipeline was created with a
VkAttachmentSampleCountInfoAMD or
VkAttachmentSampleCountInfoNV structure, and
VkRenderingInfo::pStencilAttachment→imageView was not
VK_NULL_HANDLE, the value of the
depthStencilAttachmentSamples member of
VkAttachmentSampleCountInfoAMD or
VkAttachmentSampleCountInfoNV used to create the bound graphics
pipeline must be equal to the sample count used to create
VkRenderingInfo::pStencilAttachment→imageView
VUID-vkCmdDrawIndirectByteCount2EXT-multisampledRenderToSingleSampled-07285
If the bound pipeline was created without a VkAttachmentSampleCountInfoAMD
or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and
vkCmdBeginCustomResolveEXT has not yet been recorded in the render pass instance, and the current render pass instance was begun with vkCmdBeginRendering with a VkRenderingInfo::colorAttachmentCount parameter greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a sample count equal to the value of rasterizationSamples for the bound graphics pipeline
VUID-vkCmdDrawIndirectByteCount2EXT-multisampledRenderToSingleSampled-07286
If the bound pipeline was created without a VkAttachmentSampleCountInfoAMD
or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and
vkCmdBeginCustomResolveEXT has not yet been recorded in the render pass instance, and VkRenderingInfo::pDepthAttachment→imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment→imageView
VUID-vkCmdDrawIndirectByteCount2EXT-multisampledRenderToSingleSampled-07287
If the bound pipeline was created without a VkAttachmentSampleCountInfoAMD
or VkAttachmentSampleCountInfoNV structure, and the multisampledRenderToSingleSampled feature is not enabled, and
vkCmdBeginCustomResolveEXT has not yet been recorded in the render pass instance, and VkRenderingInfo::pStencilAttachment→imageView was not VK_NULL_HANDLE, the value of rasterizationSamples for the bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment→imageView
VUID-vkCmdDrawIndirectByteCount2EXT-pNext-07935
If this command is called inside a render pass instance started with
vkCmdBeginRendering, and the pNext chain of
VkRenderingInfo includes a
VkMultisampledRenderToSingleSampledInfoEXT structure with
multisampledRenderToSingleSampledEnable equal to VK_TRUE,
then the value of rasterizationSamples for the bound graphics
pipeline must be equal to
VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawIndirectByteCount2EXT-renderPass-06198
If the current render pass instance was begun with
vkCmdBeginRendering, the bound pipeline must have been created
with a VkGraphicsPipelineCreateInfo::renderPass equal to
VK_NULL_HANDLE
VUID-vkCmdDrawIndirectByteCount2EXT-pColorAttachments-08963
If the current render pass instance was begun with
vkCmdBeginRendering,
vkCmdBeginCustomResolveEXT has not yet been recorded in the render
pass instance,
there is a graphics pipeline bound with a fragment shader that
statically writes to a color attachment, the color write mask is not
zero, color writes are enabled, and the corresponding element of the
VkRenderingInfo::pColorAttachments→imageView was not
VK_NULL_HANDLE, then the corresponding element of
VkPipelineRenderingCreateInfo::pColorAttachmentFormats used
to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-pColorAttachments-11539
If the current render pass instance was begun with
vkCmdBeginRendering, vkCmdBeginCustomResolveEXT has been
recorded in the render pass instance, there is a graphics pipeline bound
with a fragment shader that statically writes to a color attachment, the
color write mask is not zero, color writes are enabled, and the
corresponding element of the
VkRenderingInfo::pColorAttachments→resolveImageView was not
VK_NULL_HANDLE, then the corresponding element of
VkCustomResolveCreateInfoEXT::pColorAttachmentFormats used
to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-pDepthAttachment-08964
If the current render pass instance was begun with
vkCmdBeginRendering,
vkCmdBeginCustomResolveEXT has not yet been recorded in the render
pass instance,
there is a graphics pipeline bound, depth test is enabled, and the
VkRenderingInfo::pDepthAttachment→imageView was not
VK_NULL_HANDLE, then the
VkPipelineRenderingCreateInfo::depthAttachmentFormat used to
create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-pDepthAttachment-11540
If the current render pass instance was begun with
vkCmdBeginRendering, vkCmdBeginCustomResolveEXT has been
recorded in the render pass instance, there is a graphics pipeline
bound, depth test is enabled, and the
VkRenderingInfo::pDepthAttachment→resolveImageView was not
VK_NULL_HANDLE, then the
VkCustomResolveCreateInfoEXT::depthAttachmentFormat used to
create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-pStencilAttachment-08965
If the current render pass instance was begun with
vkCmdBeginRendering,
vkCmdBeginCustomResolveEXT has not yet been recorded in the render
pass instance,
there is a graphics pipeline bound, stencil test is enabled and the
VkRenderingInfo::pStencilAttachment→imageView was not
VK_NULL_HANDLE, then the
VkPipelineRenderingCreateInfo::stencilAttachmentFormat used
to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-pStencilAttachment-11860
If the current render pass instance was begun with
vkCmdBeginRendering, vkCmdBeginCustomResolveEXT has been
recorded in the render pass instance, there is a graphics pipeline
bound, stencil test is enabled and the
VkRenderingInfo::pStencilAttachment→resolveImageView was
not VK_NULL_HANDLE, then the
VkCustomResolveCreateInfoEXT::stencilAttachmentFormat used
to create the pipeline must not be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-flags-10582
If the current render pass instance was begun with a
vkCmdBeginRendering call in commandBuffer, its
VkRenderingInfo::flags parameter must not have
VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT set
unless VK_RENDERING_CONTENTS_INLINE_BIT_KHR is also set
VUID-vkCmdDrawIndirectByteCount2EXT-primitivesGeneratedQueryWithRasterizerDiscard-06708
If the primitivesGeneratedQueryWithRasterizerDiscard feature is not
enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is
active, rasterization discard must not be enabled
VUID-vkCmdDrawIndirectByteCount2EXT-primitivesGeneratedQueryWithNonZeroStreams-06709
If the primitivesGeneratedQueryWithNonZeroStreams feature is not
enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is
active, the bound graphics pipeline must not have been created with a
non-zero value in
VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream
VUID-vkCmdDrawIndirectByteCount2EXT-None-07620
If the depthClamp feature is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled, and
the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetDepthClampEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07621
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled, and the
current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetPolygonModeEXT must have been called and not subsequently
invalidated in the current command buffer
prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07622
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled,
and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetRasterizationSamplesEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07623
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled, and the
current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetSampleMaskEXT must have been called and not subsequently
invalidated in the current command buffer
prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-alphaToCoverageEnable-08919
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state
enabled, and alphaToCoverageEnable was VK_TRUE in the last
call to vkCmdSetAlphaToCoverageEnableEXT, then the
Fragment Output Interface must contain a
variable for the alpha Component word in Location 0 at
Index 0
VUID-vkCmdDrawIndirectByteCount2EXT-alphaToCoverageEnable-08920
If a shader object is bound to any graphics stage, and the most recent
call to vkCmdSetAlphaToCoverageEnableEXT in the current command
buffer set alphaToCoverageEnable to VK_TRUE, then the
Fragment Output Interface must contain a
variable for the alpha Component word in Location 0 at
Index 0
VUID-vkCmdDrawIndirectByteCount2EXT-None-07624
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state
enabled, and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetAlphaToCoverageEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07625
If the alphaToOne feature is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled,
and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetAlphaToOneEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07626
If the logicOp feature is enabled,
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage
or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled, and
the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetLogicOpEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07627
If
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage
or
a graphics pipeline is bound which was created with
VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, the
current value of
rasterizerDiscardEnable is VK_FALSE, and there are color
attachments bound, then vkCmdSetColorBlendEnableEXT must have
been called and not subsequently invalidated
in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07629
If
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage
or
a graphics pipeline is bound which was created with
VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled, the
current value of
rasterizerDiscardEnable is VK_FALSE, and there are color
attachments bound, then vkCmdSetColorWriteMaskEXT must have been
called and not subsequently invalidated in
the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07630
If the geometryStreams feature is
enabled, and
a shader object is bound to the VK_SHADER_STAGE_GEOMETRY_BIT stage
or
a graphics pipeline is bound which was created with both a
VK_SHADER_STAGE_GEOMETRY_BIT stage and the
VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled,
then vkCmdSetRasterizationStreamEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07631
If the VK_EXT_conservative_rasterization extension is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state
enabled, and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetConservativeRasterizationModeEXT must have been called
and not subsequently invalidated in the
current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07632
If the VK_EXT_conservative_rasterization extension is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic
state enabled, the current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of
conservativeRasterizationMode is
VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then
vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called
and not subsequently invalidated in the
current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-conservativePointAndLineRasterization-07499
If the VK_EXT_conservative_rasterization extension is enabled,
conservativePointAndLineRasterization is not supported,
a shader object is bound to any graphics stage or
a graphics pipeline is bound, the current
value of rasterizerDiscardEnable is VK_FALSE, and the
effective rasterization input
topology is in line or point topology class, then the
current value of
conservativeRasterizationMode must be
VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawIndirectByteCount2EXT-None-07633
If the depthClipEnable feature is
enabled, and
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then
vkCmdSetDepthClipEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07636
If the VK_EXT_provoking_vertex extension is enabled,
a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage
or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled,
and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetProvokingVertexModeEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-08666
If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state
enabled, and the current value of
rasterizerDiscardEnable is VK_FALSE, and the
effective rasterization input
topology is in line topology class, then
vkCmdSetLineRasterizationModeEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-08669
If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled,
the current value of
rasterizerDiscardEnable is VK_FALSE, and the
effective rasterization input
topology is in line topology class, then
vkCmdSetLineStippleEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07849
If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_LINE_STIPPLE dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of stippledLineEnable is VK_TRUE, then
vkCmdSetLineStipple must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-10608
If
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state
enabled, the effective
rasterization input topology is in line topology class, and the
current lineRasterizationMode is
VK_LINE_RASTERIZATION_MODE_BRESENHAM or
VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current
alphaToCoverageEnable, alphaToOneEnable and
sampleShadingEnable states must all be VK_FALSE
VUID-vkCmdDrawIndirectByteCount2EXT-None-07639
If the depthClipControl feature is
enabled, and
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state
enabled, then vkCmdSetDepthClipNegativeOneToOneEXT must have been
called and not subsequently invalidated in
the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-09650
If the depthClampControl feature
is enabled, and
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and
the current value of
depthClampEnable is VK_TRUE, then
vkCmdSetDepthClampRangeEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07640
If the VK_NV_clip_space_w_scaling extension is enabled, and
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state
enabled, then vkCmdSetViewportWScalingEnableNV must have been
called and not subsequently invalidated in
the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07641
If the VK_NV_viewport_swizzle extension is enabled, and
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled, then
vkCmdSetViewportSwizzleNV must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07642
If the VK_NV_fragment_coverage_to_color extension is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state
enabled, and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetCoverageToColorEnableNV must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07643
If the VK_NV_fragment_coverage_to_color extension is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state
enabled, the current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of
coverageToColorEnable is VK_TRUE, then
vkCmdSetCoverageToColorLocationNV must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07644
If the VK_NV_framebuffer_mixed_samples extension is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state
enabled, and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetCoverageModulationModeNV must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07645
If the VK_NV_framebuffer_mixed_samples extension is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state
enabled, the current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of
coverageModulationMode is any value other than
VK_COVERAGE_MODULATION_MODE_NONE_NV, then
vkCmdSetCoverageModulationTableEnableNV must have been called and
not subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07646
If the VK_NV_framebuffer_mixed_samples extension is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state
enabled, the current value of
rasterizerDiscardEnable is VK_FALSE, and the
current value of
coverageModulationTableEnable is VK_TRUE, then
vkCmdSetCoverageModulationTableNV must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07647
If the shadingRateImage feature is
enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state
enabled, and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetShadingRateImageEnableNV must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-pipelineFragmentShadingRate-09238
If the pipelineFragmentShadingRate feature is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled,
and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetFragmentShadingRateKHR must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07648
If the representativeFragmentTest feature is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic
state enabled, and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetRepresentativeFragmentTestEnableNV must have been called
and not subsequently invalidated in the
current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07649
If the coverageReductionMode
feature is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled,
and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetCoverageReductionModeNV must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-rasterizationSamples-07471
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the
current subpass does not use any color and/or depth/stencil attachments,
then the rasterizationSamples in the last call to
vkCmdSetRasterizationSamplesEXT must follow the rules for a
zero-attachment subpass
VUID-vkCmdDrawIndirectByteCount2EXT-samples-07472
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then
the samples parameter in the last call to
vkCmdSetSampleMaskEXT must be greater or equal to the
VkPipelineMultisampleStateCreateInfo::rasterizationSamples
parameter used to create the bound graphics pipeline
VUID-vkCmdDrawIndirectByteCount2EXT-samples-07473
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then
the samples parameter in the last call to
vkCmdSetSampleMaskEXT must be greater or equal to the
rasterizationSamples parameter in the last call to
vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectByteCount2EXT-rasterizationSamples-07474
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and
the multisampledRenderToSingleSampled feature is not enabled, and
neither the VK_AMD_mixed_attachment_samples nor the
VK_NV_framebuffer_mixed_samples extensions are enabled, then
the rasterizationSamples in the last call to
vkCmdSetRasterizationSamplesEXT must be the same as the current
subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirectByteCount2EXT-None-09211
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled,
or a shader object is bound to any graphics stage,
and the current render pass instance includes a
VkMultisampledRenderToSingleSampledInfoEXT structure with
multisampledRenderToSingleSampledEnable equal to VK_TRUE,
then the rasterizationSamples in the last call to
vkCmdSetRasterizationSamplesEXT must be the same as the
rasterizationSamples member of that structure
VUID-vkCmdDrawIndirectByteCount2EXT-firstAttachment-07476
If
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage
or
a graphics pipeline is bound was created with the
VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled,
and the current value of
rasterizerDiscardEnable is VK_FALSE, then the last call to
vkCmdSetColorBlendEnableEXT in the current command buffer prior to
this drawing command must have set a value for all active color
attachments
VUID-vkCmdDrawIndirectByteCount2EXT-firstAttachment-07478
If
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage
or
a graphics pipeline is bound was created with the
VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic states enabled, and
the current value of
rasterizerDiscardEnable is VK_FALSE, then the last call to
vkCmdSetColorWriteMaskEXT in the current command buffer prior to
this drawing command must have set a value for all active color
attachments
VUID-vkCmdDrawIndirectByteCount2EXT-advancedBlendMaxColorAttachments-07480
If
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage
or
a graphics pipeline is bound was created with the
VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and
VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled,
the current value of
rasterizerDiscardEnable is VK_FALSE, and an active color
attachment current value of
blendEnable is VK_TRUE, then the number of active color
attachments must not exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawIndirectByteCount2EXT-None-10862
If a graphics pipeline is bound was created with
VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT
, but not the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT
dynamic state enabled, and the current
value of rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetColorBlendEquationEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command for all active color
attachments with the blendEnable current value of VK_TRUE
VUID-vkCmdDrawIndirectByteCount2EXT-rasterizerDiscardEnable-10863
If a graphics pipeline is bound was created with
VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT, but not the
VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled,
and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetColorBlendAdvancedEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command for all active color
attachments with the blendEnable current value of VK_TRUE
VUID-vkCmdDrawIndirectByteCount2EXT-None-10864
If
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage
or
a graphics pipeline is bound was created with
VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and
VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled,
and the current value of
rasterizerDiscardEnable is VK_FALSE, then
either vkCmdSetColorBlendAdvancedEXT or
vkCmdSetColorBlendEquationEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command for all active color
attachments with the blendEnable current value of VK_TRUE
VUID-vkCmdDrawIndirectByteCount2EXT-primitivesGeneratedQueryWithNonZeroStreams-07481
If the primitivesGeneratedQueryWithNonZeroStreams feature is not
enabled and the VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is
active, and the bound graphics pipeline was created with
VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last
call to vkCmdSetRasterizationStreamEXT must have set the
rasterizationStream to zero
VUID-vkCmdDrawIndirectByteCount2EXT-sampleLocationsPerPixel-07482
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, and the
current value of
sampleLocationsEnable is VK_TRUE, then the
sampleLocationsPerPixel member of pSampleLocationsInfo in
the last call to vkCmdSetSampleLocationsEXT must equal the
rasterizationSamples member of the
VkPipelineMultisampleStateCreateInfo structure the bound graphics
pipeline has been created with
VUID-vkCmdDrawIndirectByteCount2EXT-sampleLocationsPerPixel-07483
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the
current value of
sampleLocationsEnable is VK_TRUE, then the
sampleLocationsPerPixel member of pSampleLocationsInfo in
the last call to vkCmdSetSampleLocationsEXT must equal the
rasterizationSamples parameter of the last call to
vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectByteCount2EXT-sampleLocationsEnable-07484
If
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT
stage, or
the bound graphics pipeline was created with the
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and
sampleLocationsEnable was VK_TRUE in the last call to
vkCmdSetSampleLocationsEnableEXT then the current active depth
attachment must have been created with the
VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
VUID-vkCmdDrawIndirectByteCount2EXT-sampleLocationsEnable-07485
If
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT
stage, or
the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if
sampleLocationsEnable was VK_TRUE in the last call to
vkCmdSetSampleLocationsEnableEXT, then the
sampleLocationsInfo.maxSampleLocationGridSize.width in the last
call to vkCmdSetSampleLocationsEXT must evenly divide
VkMultisamplePropertiesEXT::maxSampleLocationGridSize.width
as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a
samples parameter equaling rasterizationSamples
VUID-vkCmdDrawIndirectByteCount2EXT-sampleLocationsEnable-07486
If
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT
stage, or
the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if
sampleLocationsEnable was VK_TRUE in the last call to
vkCmdSetSampleLocationsEnableEXT, then the
sampleLocationsInfo.maxSampleLocationGridSize.height in the last
call to vkCmdSetSampleLocationsEXT must evenly divide
VkMultisamplePropertiesEXT::maxSampleLocationGridSize.height
as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a
samples parameter equaling rasterizationSamples
VUID-vkCmdDrawIndirectByteCount2EXT-sampleLocationsEnable-07487
If
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT
stage, or
the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if
sampleLocationsEnable was VK_TRUE in the last call to
vkCmdSetSampleLocationsEnableEXT, the fragment shader code must
not statically use the extended instruction InterpolateAtSample
VUID-vkCmdDrawIndirectByteCount2EXT-sampleLocationsEnable-07936
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the
current value of
sampleLocationsEnable is VK_TRUE, then
sampleLocationsInfo.sampleLocationGridSize.width must evenly
divide
VkMultisamplePropertiesEXT::maxSampleLocationGridSize.width
as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a
samples parameter equaling the value of rasterizationSamples
in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectByteCount2EXT-sampleLocationsEnable-07937
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the
current value of
sampleLocationsEnable is VK_TRUE, then
sampleLocationsInfo.sampleLocationGridSize.height must evenly
divide
VkMultisamplePropertiesEXT::maxSampleLocationGridSize.height
as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a
samples parameter equaling the value of rasterizationSamples
in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectByteCount2EXT-sampleLocationsEnable-07938
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the
current value of
sampleLocationsEnable is VK_TRUE, then
sampleLocationsInfo.sampleLocationsPerPixel must equal
rasterizationSamples in the last call to
vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectByteCount2EXT-coverageModulationTableEnable-07488
If
a shader object is bound to any graphics stage or
the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state
enabled, and the last call to
vkCmdSetCoverageModulationTableEnableNV set
coverageModulationTableEnable to VK_TRUE, then the
coverageModulationTableCount parameter in the last call to
vkCmdSetCoverageModulationTableNV must equal the current
rasterizationSamples divided by the number of color samples in the
current active color attachment
VUID-vkCmdDrawIndirectByteCount2EXT-rasterizationSamples-07489
If the VK_NV_framebuffer_mixed_samples extension is enabled,
and if current subpass has a depth/stencil attachment and depth test,
stencil test, or depth bounds test are enabled in the bound pipeline,
then the current rasterizationSamples must be the same as the
sample count of the depth/stencil attachment
VUID-vkCmdDrawIndirectByteCount2EXT-coverageToColorEnable-07490
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the
last call to vkCmdSetCoverageToColorEnableNV set the
coverageToColorEnable to VK_TRUE, then there must be an
active color attachment at the location selected by the last call to
vkCmdSetCoverageToColorLocationNV coverageToColorLocation,
with a VkFormat of VK_FORMAT_R8_UINT,
VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT,
VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or
VK_FORMAT_R32_SINT
VUID-vkCmdDrawIndirectByteCount2EXT-rasterizerDiscardEnable-09420
If the VK_NV_fragment_coverage_to_color extension is enabled,
and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT
stage, and the most recent call to vkCmdSetRasterizerDiscardEnable
in the current command buffer set rasterizerDiscardEnable to
VK_FALSE, and the last call to
vkCmdSetCoverageToColorEnableNV set the
coverageToColorEnable to VK_TRUE, then there must be an
active color attachment at the location selected by the last call to
vkCmdSetCoverageToColorLocationNV coverageToColorLocation,
with a VkFormat of VK_FORMAT_R8_UINT,
VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT,
VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or
VK_FORMAT_R32_SINT
VUID-vkCmdDrawIndirectByteCount2EXT-coverageReductionMode-07491
If the coverageReductionMode
feature is enabled,
a shader object is bound to any graphics stage or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV or
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic states enabled,
then the current values of
coverageReductionMode, rasterizationSamples, the sample
counts for the color and depth/stencil attachments (if the subpass has
them) must be a valid combination returned by
vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawIndirectByteCount2EXT-viewportCount-07492
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but
not the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state
enabled, then the bound graphics pipeline must have been created with
VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount
greater or equal to the viewportCount parameter in the last call
to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCount2EXT-viewportCount-07493
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and
VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then
the viewportCount parameter in the last call to
vkCmdSetViewportSwizzleNV must be greater than or equal to the
viewportCount parameter in the last call to
vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCount2EXT-viewportCount-09421
If the VK_NV_viewport_swizzle extension is enabled, and a
shader object is bound to any graphics stage, then the
viewportCount parameter in the last call to
vkCmdSetViewportSwizzleNV must be greater than or equal to the
viewportCount parameter in the last call to
vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCount2EXT-rasterizationSamples-07494
If the VK_NV_framebuffer_mixed_samples extension is enabled,
and the coverageReductionMode
feature is not enabled, or the current
value of coverageReductionMode is not
VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV,
and the current value of
rasterizationSamples is greater than sample count of the color
attachment, then sample shading must be
disabled
VUID-vkCmdDrawIndirectByteCount2EXT-stippledLineEnable-07495
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or
VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states
enabled, and if the current stippledLineEnable state is
VK_TRUE and the current lineRasterizationMode state is
VK_LINE_RASTERIZATION_MODE_RECTANGULAR, then the
stippledRectangularLines
feature must be enabled
VUID-vkCmdDrawIndirectByteCount2EXT-stippledLineEnable-07496
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or
VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states
enabled, and if the current stippledLineEnable state is
VK_TRUE and the current lineRasterizationMode state is
VK_LINE_RASTERIZATION_MODE_BRESENHAM, then the
stippledBresenhamLines
feature must be enabled
VUID-vkCmdDrawIndirectByteCount2EXT-stippledLineEnable-07497
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or
VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states
enabled, and if the current stippledLineEnable state is
VK_TRUE and the current lineRasterizationMode state is
VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the
stippledSmoothLines feature
must be enabled
VUID-vkCmdDrawIndirectByteCount2EXT-stippledLineEnable-07498
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or
VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states
enabled, and if the current stippledLineEnable state is
VK_TRUE and the current lineRasterizationMode state is
VK_LINE_RASTERIZATION_MODE_DEFAULT, then the
stippledRectangularLines
feature must be enabled and
VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndirectByteCount2EXT-stage-07073
If the bound pipeline was created with the
VkPipelineShaderStageCreateInfo::stage member of an element
of VkGraphicsPipelineCreateInfo::pStages set to
VK_SHADER_STAGE_VERTEX_BIT,
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or
VK_SHADER_STAGE_GEOMETRY_BIT, then Mesh
Shader Queries must not be active
VUID-vkCmdDrawIndirectByteCount2EXT-None-08877
If
a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage
or
a graphics pipeline is bound which was created with the
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state
enabled, and the current value of
rasterizerDiscardEnable is VK_FALSE, then
vkCmdSetAttachmentFeedbackLoopEnableEXT must have been called and
not subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-07850
If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-nextStage-10745
For each shader object bound to a graphics stage, except for shader
object bound to the last graphics stage in the logical pipeline, it
must have been created with a nextStage including the
corresponding bit to the shader object bound to the following graphics
stage in the logical pipeline
VUID-vkCmdDrawIndirectByteCount2EXT-None-08684
If there is no bound graphics pipeline, vkCmdBindShadersEXT must
have been called in the current command buffer with pStages with
an element of VK_SHADER_STAGE_VERTEX_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-None-08685
If there is no bound graphics pipeline, and the
tessellationShader feature is
enabled, vkCmdBindShadersEXT must have been called in the current
command buffer with pStages with an element of
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-None-08686
If there is no bound graphics pipeline, and the
tessellationShader feature is
enabled, vkCmdBindShadersEXT must have been called in the current
command buffer with pStages with an element of
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-None-08687
If there is no bound graphics pipeline, and the
geometryShader feature is enabled,
vkCmdBindShadersEXT must have been called in the current command
buffer with pStages with an element of
VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-None-08688
If there is no bound graphics pipeline, vkCmdBindShadersEXT must
have been called in the current command buffer with pStages with
an element of VK_SHADER_STAGE_FRAGMENT_BIT
VUID-vkCmdDrawIndirectByteCount2EXT-None-08689
If there is no bound graphics pipeline, and the taskShader feature is enabled, vkCmdBindShadersEXT must
have been called in the current command buffer with pStages with
an element of VK_SHADER_STAGE_TASK_BIT_EXT
VUID-vkCmdDrawIndirectByteCount2EXT-None-08690
If there is no bound graphics pipeline, and the meshShader feature is enabled, vkCmdBindShadersEXT must
have been called in the current command buffer with pStages with
an element of VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawIndirectByteCount2EXT-None-08693
If there is no bound graphics pipeline, and at least one of the
taskShader and meshShader features is enabled, one of the
VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT
stages must have a valid VkShaderEXT bound, and the other must
have no VkShaderEXT bound
VUID-vkCmdDrawIndirectByteCount2EXT-None-08696
If there is no bound graphics pipeline, and a valid VkShaderEXT is
bound to the VK_SHADER_STAGE_VERTEX_BIT stage, there must be no
VkShaderEXT bound to either the VK_SHADER_STAGE_TASK_BIT_EXT
stage or the VK_SHADER_STAGE_MESH_BIT_EXT stage
VUID-vkCmdDrawIndirectByteCount2EXT-None-08698
If any graphics shader is bound which was created with the
VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created
with the VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same
vkCreateShadersEXT call must also be bound
VUID-vkCmdDrawIndirectByteCount2EXT-None-08699
If any graphics shader is bound which was created with the
VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between
stages whose shaders which did not create a shader with the
VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same
vkCreateShadersEXT call must not have any VkShaderEXT bound
VUID-vkCmdDrawIndirectByteCount2EXT-None-08878
All bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawIndirectByteCount2EXT-None-08879
All bound graphics shader objects must have either been created with
the VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT flag set, or with
identical or identically defined arrays
of descriptor set layouts
VUID-vkCmdDrawIndirectByteCount2EXT-colorAttachmentCount-09372
If the current render pass instance was begun with
vkCmdBeginRendering and a
VkRenderingInfo::colorAttachmentCount equal to 1, a color
attachment with a resolve mode of
VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a
fragment shader is bound, it must not declare the DepthReplacing
or StencilRefReplacingEXT execution modes
VUID-vkCmdDrawIndirectByteCount2EXT-pDynamicStates-08715
If the bound graphics pipeline state includes a fragment shader stage,
was created with VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in
VkPipelineDynamicStateCreateInfo::pDynamicStates, and the
fragment shader declares the EarlyFragmentTests execution mode and
uses OpDepthAttachmentReadEXT, the depthWriteEnable parameter
in the last call to vkCmdSetDepthWriteEnable must be
VK_FALSE
VUID-vkCmdDrawIndirectByteCount2EXT-pDynamicStates-08716
If the bound graphics pipeline state includes a fragment shader stage,
was created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in
VkPipelineDynamicStateCreateInfo::pDynamicStates, and the
fragment shader declares the EarlyFragmentTests execution mode and
uses OpStencilAttachmentReadEXT, the writeMask parameter in
the last call to vkCmdSetStencilWriteMask must be 0
VUID-vkCmdDrawIndirectByteCount2EXT-None-09116
If a shader object is bound to any graphics stage
or the bound graphics pipeline was created with VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment is VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the pColorWriteMasks parameter of vkCmdSetColorWriteMaskEXT must either include all of VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, and VK_COLOR_COMPONENT_B_BIT, or none of them
VUID-vkCmdDrawIndirectByteCount2EXT-maxFragmentDualSrcAttachments-09239
If blending is enabled for any attachment where
either the source or destination blend factors for that attachment
use the secondary color input, the maximum value of
Location for any output attachment statically
used in the Fragment Execution Model executed by this command
must be less than maxFragmentDualSrcAttachments
VUID-vkCmdDrawIndirectByteCount2EXT-None-09548
If the current render pass was begun with vkCmdBeginRendering,
there is no shader object bound to any graphics stage,
the value of each element of
VkRenderingAttachmentLocationInfo::pColorAttachmentLocations
in the bound pipeline must match the value for the corresponding
locations set currently in the current render pass instance
VUID-vkCmdDrawIndirectByteCount2EXT-None-09549
If the current render pass was begun with vkCmdBeginRendering,
and there is no shader object bound to any graphics stage,
the value of each element of
VkRenderingInputAttachmentIndexInfo::pColorAttachmentInputIndices
in the bound pipeline must match the value for the corresponding index
set currently in the current render pass instance
VUID-vkCmdDrawIndirectByteCount2EXT-None-10927
If the current render pass was begun with vkCmdBeginRendering,
and there is no shader object bound to any graphics stage,
the value of
VkRenderingInputAttachmentIndexInfo::pDepthInputAttachmentIndex
in the bound pipeline must match the value set currently in the current
render pass instance
VUID-vkCmdDrawIndirectByteCount2EXT-None-10928
If the current render pass was begun with vkCmdBeginRendering,
and there is no shader object bound to any graphics stage,
the value of
VkRenderingInputAttachmentIndexInfo::pStencilInputAttachmentIndex
in the bound pipeline must match the value set currently in the current
render pass instance
VUID-vkCmdDrawIndirectByteCount2EXT-None-09642
If the current render pass was begun with vkCmdBeginRendering with
the VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag, the bound
graphics pipeline must have been created with
VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT
VUID-vkCmdDrawIndirectByteCount2EXT-None-09643
If the bound graphics pipeline was created with
VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current
render pass must have begun with vkCmdBeginRendering with the
VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT flag
VUID-vkCmdDrawIndirectByteCount2EXT-None-10677
If the per-tile execution model is enabled, the tileShadingPerTileDraw feature must be enabled
VUID-vkCmdDrawIndirectByteCount2EXT-None-10772
If a shader object is bound to any graphics stage, multiview functionality must not be enabled in the current render pass
VUID-vkCmdDrawIndirectByteCount2EXT-multiviewPerViewViewports-12262
If the multiviewPerViewViewports feature is enabled, then the index of
the most significant bit in current render pass instance viewMaskmust be less than the current value of
viewportCount
VUID-vkCmdDrawIndirectByteCount2EXT-multiviewPerViewViewports-12263
If the multiviewPerViewViewports feature is enabled, then the index of
the most significant bit in current render pass instance viewMaskmust be less than the current value of
scissorCount
VUID-vkCmdDrawIndirectByteCount2EXT-flags-11521
If current render pass instance was begun with vkCmdBeginRendering
with VkRenderingInfo::flags which includes
VK_RENDERING_FRAGMENT_REGION_BIT_EXT, and if
sample shading is enabled (explicitly or
implicitly), then the minimum fraction for sample shading must equal
0.0
VUID-vkCmdDrawIndirectByteCount2EXT-None-11522
If the current render pass instance was begun with vkCmdBeginRendering and contains a custom resolve,
and the dynamicRenderingUnusedAttachments feature is not enabled, the graphics pipeline bound must have been created with a VkCustomResolveCreateInfoEXT
VUID-vkCmdDrawIndirectByteCount2EXT-None-11523
If the current render pass instance was begun with vkCmdBeginRendering and does not contain a custom resolve,
and the dynamicRenderingUnusedAttachments feature is not enabled, the graphics pipeline bound must not have been created with a VkCustomResolveCreateInfoEXT
VUID-vkCmdDrawIndirectByteCount2EXT-customResolve-11524
If the current render pass instance was begun with
vkCmdBeginRendering and vkCmdBeginCustomResolveEXT has been
recorded in the render pass instance, the graphics pipeline bound must
have been created with
VkCustomResolveCreateInfoEXT::customResolve as VK_TRUE
VUID-vkCmdDrawIndirectByteCount2EXT-customResolve-11525
If the current render pass instance was begun with
vkCmdBeginRendering and contains a custom resolve, and
vkCmdBeginCustomResolveEXT has not been recorded in the render
pass instance, the graphics pipeline bound must have been created with
VkCustomResolveCreateInfoEXT::customResolve as
VK_FALSE
VUID-vkCmdDrawIndirectByteCount2EXT-None-11861
If
the dynamicRenderingUnusedAttachments feature is not enabled and
the current render pass instance was begun with
vkCmdBeginRendering and contains a custom resolve, the bound
graphics pipeline must have been created with a
VkCustomResolveCreateInfoEXT::colorAttachmentCount equal to
VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawIndirectByteCount2EXT-None-11862
If
the dynamicRenderingUnusedAttachments feature is not enabled, and
the current render pass instance was begun with
vkCmdBeginRendering, it contains a custom resolve, and
VkRenderingInfo::colorAttachmentCount greater than 0, then
each element of the VkRenderingInfo::pColorAttachments array
with an resolveImageView not equal to VK_NULL_HANDLE must
have been created with a VkFormat equal to the corresponding
element of
VkCustomResolveCreateInfoEXT::pColorAttachmentFormats used
to create the bound graphics pipeline
VUID-vkCmdDrawIndirectByteCount2EXT-None-11863
If
the dynamicRenderingUnusedAttachments feature is not enabled, and
the current render pass instance was begun with
vkCmdBeginRendering, it contains a custom resolve, and
VkRenderingInfo::colorAttachmentCount greater than 0, then
each element of the VkRenderingInfo::pColorAttachments array
with an resolveImageView equal to VK_NULL_HANDLE must have
the corresponding element of
VkCustomResolveCreateInfoEXT::pColorAttachmentFormats used
to create the bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-dynamicRenderingUnusedAttachments-11864
If the dynamicRenderingUnusedAttachments feature is enabled, the
current render pass instance was begun with vkCmdBeginRendering,
it contains a custom resolve, and
VkRenderingInfo::colorAttachmentCount greater than 0, then
each element of the VkRenderingInfo::pColorAttachments array
with an resolveImageView not equal to VK_NULL_HANDLE must
have been created with a VkFormat equal to the corresponding
element of
VkCustomResolveCreateInfoEXT::pColorAttachmentFormats used
to create the bound graphics pipeline, or the corresponding element of
VkCustomResolveCreateInfoEXT::pColorAttachmentFormats, if it
exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-None-11865
If the current render pass instance was begun with
vkCmdBeginRendering, it contains a custom resolve,
the
dynamicRenderingUnusedAttachments
feature is not enabled,
and VkRenderingInfo::pDepthAttachment→resolveImageView was
VK_NULL_HANDLE, the value of
VkCustomResolveCreateInfoEXT::depthAttachmentFormat used to
create the bound graphics pipeline must be equal to
VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-None-11866
If current render pass instance was begun with
vkCmdBeginRendering, it contains a custom resolve,
the
dynamicRenderingUnusedAttachments
feature is not enabled,
and VkRenderingInfo::pDepthAttachment→resolveImageView was
not VK_NULL_HANDLE, the value of
VkCustomResolveCreateInfoEXT::depthAttachmentFormat used to
create the bound graphics pipeline must be equal to the VkFormat
used to create
VkRenderingInfo::pDepthAttachment→resolveImageView
VUID-vkCmdDrawIndirectByteCount2EXT-dynamicRenderingUnusedAttachments-11867
If the current render pass instance was begun with
vkCmdBeginRendering, it contains a custom resolve, the
dynamicRenderingUnusedAttachments feature is enabled,
VkRenderingInfo::pDepthAttachment→resolveImageView was not
VK_NULL_HANDLE, and the value of
VkCustomResolveCreateInfoEXT::depthAttachmentFormat used to
create the bound graphics pipeline was not equal to the VkFormat
used to create
VkRenderingInfo::pDepthAttachment→resolveImageView, the
value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-None-11868
If the current render pass instance was begun with
vkCmdBeginRendering, it contains a custom resolve,
the
dynamicRenderingUnusedAttachments
feature is not enabled,
and VkRenderingInfo::pStencilAttachment→resolveImageView
was VK_NULL_HANDLE, the value of
VkCustomResolveCreateInfoEXT::stencilAttachmentFormat used
to create the bound graphics pipeline must be equal to
VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-None-11869
If current render pass instance was begun with
vkCmdBeginRendering, it contains a custom resolve,
the
dynamicRenderingUnusedAttachments
feature is not enabled,
and VkRenderingInfo::pStencilAttachment→resolveImageView
was not VK_NULL_HANDLE, the value of
VkCustomResolveCreateInfoEXT::stencilAttachmentFormat used
to create the bound graphics pipeline must be equal to the
VkFormat used to create
VkRenderingInfo::pStencilAttachment→resolveImageView
VUID-vkCmdDrawIndirectByteCount2EXT-dynamicRenderingUnusedAttachments-11870
If the current render pass instance was begun with
vkCmdBeginRendering, it contains a custom resolve, the
dynamicRenderingUnusedAttachments feature is enabled,
VkRenderingInfo::pStencilAttachment→resolveImageView was
not VK_NULL_HANDLE, and the value of
VkCustomResolveCreateInfoEXT::stencilAttachmentFormat used
to create the bound graphics pipeline was not equal to the
VkFormat used to create
VkRenderingInfo::pStencilAttachment→resolveImageView, the
value of the format must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCount2EXT-colorAttachmentCount-11871
If the current render pass instance was begun with
vkCmdBeginRendering with a
VkRenderingInfo::colorAttachmentCount parameter greater than
0 and vkCmdBeginCustomResolveEXT has been recorded in the render
pass instance, then for each element of the
VkRenderingInfo::pColorAttachments array with a
resolveImageView not equal to VK_NULL_HANDLE, the
resolveImageView must have been created with a sample count equal
to the value of rasterizationSamples for the bound graphics
pipeline
VUID-vkCmdDrawIndirectByteCount2EXT-pDepthAttachment-11872
If the current render pass instance was begun with
vkCmdBeginRendering, vkCmdBeginCustomResolveEXT has been
recorded in the render pass instance, and
VkRenderingInfo::pDepthAttachment→resolveImageView was not
VK_NULL_HANDLE, the value of rasterizationSamples for the
bound graphics pipeline must be equal to the sample count used to
create VkRenderingInfo::pDepthAttachment→resolveImageView
VUID-vkCmdDrawIndirectByteCount2EXT-pStencilAttachment-11873
If the current render pass instance was begun with
vkCmdBeginRendering, vkCmdBeginCustomResolveEXT has been
recorded in the render pass instance,
VkRenderingInfo::pStencilAttachment→resolveImageView was
not VK_NULL_HANDLE, the value of rasterizationSamples for
the bound graphics pipeline must be equal to the sample count used to
create VkRenderingInfo::pStencilAttachment→resolveImageView
VUID-vkCmdDrawIndirectByteCount2EXT-customResolve-11529
If a shader object is bound to the fragment stage, the current render
pass instance was begun with vkCmdBeginRendering, a fragment
density map attachment is active, and vkCmdBeginCustomResolveEXT
has been called, then the fragment shader object bound must have been
created with VkCustomResolveCreateInfoEXT::customResolve as
VK_TRUE
VUID-vkCmdDrawIndirectByteCount2EXT-customResolve-11530
If a shader object is bound to the fragment stage, the current render
pass instance was begun with vkCmdBeginRendering and contains a
custom resolve, a fragment density map attachment is active, and
vkCmdBeginCustomResolveEXT has not yet been called, then the
fragment shader object bound must have been created with
VkCustomResolveCreateInfoEXT::customResolve as
VK_FALSE
VUID-vkCmdDrawIndirectByteCount2EXT-None-04007
All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound
VUID-vkCmdDrawIndirectByteCount2EXT-None-04008
If the nullDescriptor feature is not
enabled, all vertex input bindings accessed via vertex input variables
declared in the vertex shader entry point’s interface must not be
VK_NULL_HANDLE
VUID-vkCmdDrawIndirectByteCount2EXT-None-02721
If the robustBufferAccess feature
is not enabled,
and that pipeline was created without enabling
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS for
vertexInputs,
then for a given vertex buffer binding, any attribute data fetched must
be entirely contained within the corresponding vertex buffer binding, as
described in Vertex Input Description
VUID-vkCmdDrawIndirectByteCount2EXT-format-10389
For each vertex attribute accessed by this command, if its
VkVertexInputAttributeDescription::format
or VkVertexInputAttributeDescription2EXT::format
is a packed format,
and the legacyVertexAttributes feature is not enabled,
the value of attribAddress, calculated as described in
Vertex Input Calculation, must
be a multiple of the size of the format
VUID-vkCmdDrawIndirectByteCount2EXT-format-10390
For each vertex attribute accessed by this command, if its
VkVertexInputAttributeDescription::format
or VkVertexInputAttributeDescription2EXT::format
is not a packed format,
and either the legacyVertexAttributes feature is not enabled or format
has 64-bit components,
the value of attribAddress, calculated as described in
Vertex Input Calculation, must
be a multiple of the component size of the format
VUID-vkCmdDrawIndirectByteCount2EXT-None-07842
If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage
or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then vkCmdSetPrimitiveTopology must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-dynamicPrimitiveTopologyUnrestricted-07500
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled
and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE,
then the primitiveTopology parameter of
vkCmdSetPrimitiveTopology must be of the same
topology class as the pipeline
VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndirectByteCount2EXT-primitiveTopology-10286
If a VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage is bound, then
the current value of
primitiveTopology must be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-primitiveTopology-10747
If vkCmdSetPrimitiveTopology set primitiveTopology to
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST prior to this drawing command,
then a VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage must be
bound
VUID-vkCmdDrawIndirectByteCount2EXT-primitiveTopology-10748
If vkCmdSetPrimitiveTopology set primitiveTopology to
VK_PRIMITIVE_TOPOLOGY_POINT_LIST prior to this drawing command,
the maintenance5 feature is not
enabled,
both a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT and
VK_SHADER_STAGE_GEOMETRY_BIT stage are not bound, then the
Vertex Execution Model must have a PointSize decorated
variable that is statically written to
VUID-vkCmdDrawIndirectByteCount2EXT-pStrides-04913
If the bound graphics pipeline was created with the
VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE dynamic state
enabled,
but without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state
enabled,
then vkCmdBindVertexBuffers2 with a non-NULL pStrides
parameter
or vkCmdBindVertexBuffers3KHR with setStride set to
VK_TRUEmust have been called and not subsequently invalidated in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirectByteCount2EXT-None-13118
If the bound graphics pipeline was created without the
VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE dynamic state
enabled,
without the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state
enabled,
and vkCmdBindVertexBuffers3KHR was called and not subsequently
invalidated in the current command buffer
prior to this draw command, the value of setStride in each of its
pBindInfos elements must have been VK_FALSE
VUID-vkCmdDrawIndirectByteCount2EXT-None-04914
If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage
or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled then vkCmdSetVertexInputEXT must have been called and not subsequently invalidated in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirectByteCount2EXT-Input-07939
If the vertexAttributeRobustness feature is not enabled, and the maintenance9 feature is not enabled, and there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage
or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location
VUID-vkCmdDrawIndirectByteCount2EXT-Input-08734
If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage
or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and either the legacyVertexAttributes feature is not enabled or the SPIR-V Type associated with a given Input variable of the corresponding Location in the Vertex Execution Model OpEntryPoint is 64-bit, then the numeric type associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be the same as VkVertexInputAttributeDescription2EXT::format
VUID-vkCmdDrawIndirectByteCount2EXT-format-08936
If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage
or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then the scalar width associated with all Input variables of the corresponding Location in the Vertex Execution Model OpEntryPoint must be 64-bit
VUID-vkCmdDrawIndirectByteCount2EXT-format-08937
If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage
or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and the scalar width associated with a Location decorated Input variable in the Vertex Execution Model OpEntryPoint is 64-bit, then the corresponding VkVertexInputAttributeDescription2EXT::format must have a 64-bit component
VUID-vkCmdDrawIndirectByteCount2EXT-None-09203
If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage
or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled and VkVertexInputAttributeDescription2EXT::format has a 64-bit component, then all Input variables at the corresponding Location in the Vertex Execution Model OpEntryPoint must not use components that are not present in the format
VUID-vkCmdDrawIndirectByteCount2EXT-None-04875
If there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage
or the bound graphics pipeline state was created with both a VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage and the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of primitiveTopology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, then vkCmdSetPatchControlPointsEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-04879
If there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage
or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-None-09637
If the primitiveTopologyListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage
or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled, then vkCmdSetPrimitiveRestartEnable must be VK_FALSE
VUID-vkCmdDrawIndirectByteCount2EXT-None-10909
If the primitiveTopologyPatchListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage
or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE
VUID-vkCmdDrawIndirectByteCount2EXT-stage-06481
The bound graphics pipeline must not have been created with the
VkPipelineShaderStageCreateInfo::stage member of any element
of VkGraphicsPipelineCreateInfo::pStages set to
VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT
VUID-vkCmdDrawIndirectByteCount2EXT-None-08885
There must be no shader object bound to either of the
VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT
stages
VUID-vkCmdDrawIndirectByteCount2EXT-None-07619
If
a shader object is bound to the
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage or
a graphics pipeline is bound which was created with both a
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage and the
VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state
enabled, then vkCmdSetTessellationDomainOriginEXT must have been
called and not subsequently invalidated in
the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCount2EXT-OpExecutionMode-12239
If a shader is bound to both the
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stages, and if both
stages contain an OpExecutionMode instruction specifying the type
of subdivision, they must be the same
VUID-vkCmdDrawIndirectByteCount2EXT-OpExecutionMode-12240
If a shader is bound to both the
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stages, and if both
stages contain an OpExecutionMode instruction specifying the
orientation of triangles, they must be the same
VUID-vkCmdDrawIndirectByteCount2EXT-OpExecutionMode-12241
If a shader is bound to both the
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stages, and if both
stages contain an OpExecutionMode instruction specifying the
segment spacing, they must be the same
VUID-vkCmdDrawIndirectByteCount2EXT-OpExecutionMode-12242
If a shader is bound to both the
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT and
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stages, and if both
stages contain an OpExecutionMode instruction specifying the output
patch size, they must be the same
VUID-vkCmdDrawIndirectByteCount2EXT-pNext-09461
If the bound graphics pipeline state was created with
VkPipelineVertexInputDivisorStateCreateInfo in the pNext
chain of VkGraphicsPipelineCreateInfo::pVertexInputState,
any member of
VkPipelineVertexInputDivisorStateCreateInfo::pVertexBindingDivisors
has a value other than 1 in divisor, and
VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance
is VK_FALSE, then firstInstance must be 0
VUID-vkCmdDrawIndirectByteCount2EXT-None-09462
If
shader objects are used for drawing or
the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any
member of the pVertexBindingDescriptions parameter to the
vkCmdSetVertexInputEXT call that sets this dynamic state has a
value other than 1 in divisor, and
VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance
is VK_FALSE, then firstInstance must be 0
VUID-vkCmdDrawIndirectByteCount2EXT-counterOffset-09474
counterOffset must be a multiple of 4
VUID-vkCmdDrawIndirectByteCount2EXT-transformFeedback-02287
VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedbackmust be enabled
VUID-vkCmdDrawIndirectByteCount2EXT-transformFeedbackDraw-02288
The implementation must support
VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw
VUID-vkCmdDrawIndirectByteCount2EXT-vertexStride-02289
vertexStride must be greater than 0 and less than or equal to
VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataStride
VUID-vkCmdDrawIndirectByteCount2EXT-vertexStride-09475
vertexStride must be a multiple of 4
VUID-vkCmdDrawIndirectByteCount2EXT-commandBuffer-02646
commandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndirectByteCount2EXT-pInfo-13061
The VkBuffer that pInfo→counterRange was queried from must
have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit
set
VUID-vkCmdDrawIndirectByteCount2EXT-pInfo-13062
pInfo→counterRange.address must be a multiple of 4
Valid Usage (Implicit)
VUID-vkCmdDrawIndirectByteCount2EXT-commandBuffer-parameter
commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndirectByteCount2EXT-pCounterInfo-parameter
pCounterInfo must be a valid pointer to a valid VkBindTransformFeedbackBuffer2InfoEXT structure
VUID-vkCmdDrawIndirectByteCount2EXT-commandBuffer-recording
commandBuffer must be in the recording state
VUID-vkCmdDrawIndirectByteCount2EXT-commandBuffer-cmdpool
The VkCommandPool that commandBuffer was allocated from must support VK_QUEUE_GRAPHICS_BIT operations
VUID-vkCmdDrawIndirectByteCount2EXT-renderpass
This command must only be called inside of a render pass instance
VUID-vkCmdDrawIndirectByteCount2EXT-suspended
This command must not be called between suspended render pass instances
VUID-vkCmdDrawIndirectByteCount2EXT-videocoding
This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized