vkCmdDrawMeshTasksIndirectCountEXT
To record an indirect mesh tasks drawing command with the draw count sourced from a buffer, call:
void vkCmdDrawMeshTasksIndirectCountEXT(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
VkBuffer countBuffer,
VkDeviceSize countBufferOffset,
uint32_t maxDrawCount,
uint32_t stride);
commandBuffer
is the command buffer into which the command is recorded.buffer
is the buffer containing draw parameters.offset
is the byte offset intobuffer
where parameters begin.countBuffer
is the buffer containing the draw count.countBufferOffset
is the byte offset intocountBuffer
where the draw count begins.maxDrawCount
specifies the maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified incountBuffer
andmaxDrawCount
.stride
is the byte stride between successive sets of draw parameters.
vkCmdDrawMeshTasksIndirectCountEXT
behaves similarly to
vkCmdDrawMeshTasksIndirectEXT except that the draw count is read by
the device from a buffer during execution.
The command will read an unsigned 32-bit integer from countBuffer
located at countBufferOffset
and use this as the draw count.
Valid Usage
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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 layerCount
must be 1
VUID-vkCmdDrawMeshTasksIndirectCountEXT-unnormalizedCoordinates-09636
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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08600
For each set n that is statically used by a bound shader, 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-vkCmdDrawMeshTasksIndirectCountEXT-None-08601
For each push constant that is statically used by a bound shader, a push constant 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 , as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-08602
If the maintenance4
feature is not
enabled, then for each push constant that is statically used by
a bound shader, a push constant 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
, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08114
Descriptors in each bound descriptor set, specified via
vkCmdBindDescriptorSets, must be valid as described by
descriptor validity if they are statically used
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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08609
If the VkPipeline object bound to the pipeline bind point used by
this command
or any VkShaderEXT bound to a stage corresponding to the pipeline
bind point used by this command
accesses a VkSampler object that uses unnormalized coordinates,
that sampler must not be used to sample from any VkImage with a
VkImageView of the type VK_IMAGE_VIEW_TYPE_3D
,
VK_IMAGE_VIEW_TYPE_CUBE
, VK_IMAGE_VIEW_TYPE_1D_ARRAY
,
VK_IMAGE_VIEW_TYPE_2D_ARRAY
or
VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08610
If the VkPipeline object bound to the pipeline bind point used by
this command
or any VkShaderEXT bound to a stage corresponding to the pipeline
bind point used by this command
accesses a VkSampler object that uses unnormalized coordinates,
that sampler must not be used with any of the SPIR-V OpImageSample*
or OpImageSparseSample*
instructions with ImplicitLod
, Dref
or Proj
in their name, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08611
If the VkPipeline object bound to the pipeline bind point used by
this command
or any VkShaderEXT bound to a stage corresponding to the pipeline
bind point used by this command
accesses a VkSampler object that uses unnormalized coordinates,
that sampler must not be used with any of the SPIR-V OpImageSample*
or OpImageSparseSample*
instructions that includes a LOD bias or any
offset values, in any shader stage
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08607
If the shaderObject
is enabled, either
a valid pipeline must be bound to the pipeline bind point used by this
command, or a valid combination of valid and VK_NULL_HANDLE shader
objects must be bound to every supported shader stage corresponding to
the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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_EXT
or
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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_EXT
or
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-06550
If a bound shader accesses a VkSampler or
VkImageView object that enables
sampler Y′CBCR conversion, that object
must only be used with OpImageSample*
or OpImageSparseSample*
instructions
VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-06551
If a bound shader accesses a VkSampler or
VkImageView object that enables
sampler Y′CBCR conversion, that object
must not use the ConstOffset
and Offset
operands
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-format-07753
If a VkImageView is accessed as a result of this command, then the
numeric type of the image view’s format
and the Sampled
Type
operand of the OpTypeImage
must
match
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-08795
If a VkImageView
created with a format other than VK_FORMAT_A8_UNORM_KHR
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-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-08796
If a VkImageView created with the format
VK_FORMAT_A8_UNORM_KHR
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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06971
If OpImageWeightedSampleQCOM
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-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06972
If OpImageWeightedSampleQCOM
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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06977
If OpImageWeightedSampleQCOM
, 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-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06978
If any command other than OpImageWeightedSampleQCOM
,
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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07288
Any shader invocation executed by this command mustterminate
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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, the image subresource identified by that descriptor must
be in the image layout identified when the descriptor was written
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07748
If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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 currently
bound VkFramebuffer as specified by
Fragment Input Attachment
Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthInputAttachmentIndex-09595
Input attachment views accessed in a dynamic render pass with a
InputAttachmentIndex
referenced by
VkRenderingInputAttachmentIndexInfoKHR, or no
InputAttachmentIndex
if
VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex
or
VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex
are NULL
, must be created with a VkImageView that is compatible
with the corresponding color, depth, or stencil attachment in
VkRenderingInfo
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthInputAttachmentIndex-09596
Input attachment views accessed in a dynamic render pass via a shader
object must have an InputAttachmentIndex
if both
VkRenderingInputAttachmentIndexInfoKHR:pDepthInputAttachmentIndex
and
VkRenderingInputAttachmentIndexInfoKHR:pStencilInputAttachmentIndex
are non-NULL
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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
VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-09000
If a color attachment is written by any prior command in this subpass or
by the load, store, or resolve operations for this subpass,
it is not in the
VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
image layout,
and
either:-
the VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
is
set on the currently bound pipeline
or
- the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included
VK_IMAGE_ASPECT_COLOR_BIT
and- there is no currently bound graphics pipeline or
- the currently bound graphics pipeline was created with
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09001
If a depth attachment is written by any prior command in this subpass or
by the load, store, or resolve operations for this subpass,
it is not in the
VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
image layout,
and
either:-
the
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
is set on the currently bound pipeline
or
- the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included
VK_IMAGE_ASPECT_DEPTH_BIT
and- there is no currently bound graphics pipeline or
- the currently bound graphics pipeline was created with
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09002
If a stencil attachment is written by any prior command in this subpass
or by the load, store, or resolve operations for this subpass,
it is not in the
VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
image layout,
and
either:-
the
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
is set on the currently bound pipeline
or
- the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included
VK_IMAGE_ASPECT_STENCIL_BIT
and- there is no currently bound graphics pipeline or
- the currently bound graphics pipeline was created with
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
it must not be accessed in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-06539
If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07833
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_LINE_WIDTH
dynamic state enabled then
vkCmdSetLineWidth must have been called and not subsequently
invalidated in the current command buffer
prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08617
If a shader object is bound to any graphics stage, and the most recent
call to vkCmdSetRasterizerDiscardEnable in the current command
buffer set rasterizerDiscardEnable
to VK_FALSE
, and the most
recent call to vkCmdSetPolygonModeEXT in the current command
buffer set polygonMode
to VK_POLYGON_MODE_LINE
,
vkCmdSetLineWidth must have been called and not subsequently
invalidated in the current command buffer
prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08618
If a shader object is bound to any graphics stage, and the most recent
call to vkCmdSetRasterizerDiscardEnable in the current command
buffer set rasterizerDiscardEnable
to VK_FALSE
, and the most
recent call to vkCmdSetPrimitiveTopology in the current command
buffer set primitiveTopology
to any line topology,
vkCmdSetLineWidth must have been called and not subsequently
invalidated in the current command buffer
prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08619
If a shader object that outputs line primitives is bound to the
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
or
VK_SHADER_STAGE_GEOMETRY_BIT
stage, and the most recent call to
vkCmdSetRasterizerDiscardEnable in the current command buffer set
rasterizerDiscardEnable
to VK_FALSE
, vkCmdSetLineWidthmust have been called and not subsequently invalidated in the current command buffer prior to this drawing
command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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 vkCmdSetDepthBounds
or vkCmdSetDepthBias2EXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing
command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07835
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_BLEND_CONSTANTS
dynamic state enabled then
vkCmdSetBlendConstants must have been called and not subsequently
invalidated in the current command buffer
prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08621
If 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 most recent call to
vkCmdSetColorBlendEnableEXT in the current command buffer set any
element of pColorBlendEnables
to VK_TRUE
, and the most
recent call to vkCmdSetColorBlendEquationEXT in the current
command buffer set the same element of pColorBlendEquations
to a
VkColorBlendEquationEXT
structure with any VkBlendFactor
member with a value of 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
,
vkCmdSetBlendConstants must have been called and not subsequently
invalidated in the current command buffer
prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-02689
If the bound graphics pipeline was created with
VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable
set to VK_TRUE
and the current subpass has a depth/stencil
attachment, then that attachment must have been created with the
VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT
bit set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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
, then
vkCmdSetDepthWriteEnable must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-blendEnable-04727
If rasterization is not disabled in the bound graphics pipeline, then
for each color attachment in the subpass, if the corresponding image
view’s format features do not
contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
, then the
blendEnable
member of the corresponding element of the
pAttachments
member of pColorBlendState
must be
VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08643
If 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
, then for each color attachment in the render pass, if
the corresponding image view’s
format features do not contain
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
, then the
corresponding member of pColorBlendEnables
in the most recent call
to vkCmdSetColorBlendEnableEXT
in the current command buffer that
affected that attachment index must have been VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07284
If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:- the VK_AMD_mixed_attachment_samples extension
- the VK_NV_framebuffer_mixed_samples extension
- the
multisampledRenderToSingleSampled
feature
then rasterizationSamples
for the currently bound graphics pipeline
must be the same as the current subpass color and/or depth/stencil
attachments
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08644
If a shader object is bound to any graphics stage, and the most recent
call to vkCmdSetRasterizerDiscardEnable in the current command
buffer set rasterizerDiscardEnable
to VK_FALSE
,
and none of the following is enabled:- the VK_AMD_mixed_attachment_samples extension
- the VK_NV_framebuffer_mixed_samples extension
- the
multisampledRenderToSingleSampled
feature
then the most recent call to vkCmdSetRasterizationSamplesEXT in the
current command buffer must have set rasterizationSamples
to be the
same as the number of samples for the current render pass color and/or
depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08876
If a shader object is bound to any graphics stage, the current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-viewMask-06178
If the current render pass instance was begun with
vkCmdBeginRendering, the currently bound graphics pipeline must
have been created with a
VkPipelineRenderingCreateInfo::viewMask
equal to
VkRenderingInfo::viewMask
VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06179
If
the dynamicRenderingUnusedAttachments
feature is not enabled and
the current render pass instance was begun with
vkCmdBeginRendering, the currently bound graphics pipeline must
have been created with a
VkPipelineRenderingCreateInfo::colorAttachmentCount
equal to
VkRenderingInfo::colorAttachmentCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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 currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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 currently bound pipeline equal to
VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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 currently bound graphics pipeline, or the corresponding
element of
VkPipelineRenderingCreateInfo::pColorAttachmentFormats
, if
it exists, must be VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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_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 currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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_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 currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09364
If the current render pass instance was begun with
vkCmdBeginRendering,
there is no shader object bound to any graphics stage,
and the currently 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-vkCmdDrawMeshTasksIndirectCountEXT-None-09365
If the current render pass instance was begun with
vkCmdBeginRendering,
there is no shader object bound to any graphics stage,
and the currently 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-vkCmdDrawMeshTasksIndirectCountEXT-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_ANDROID
resolve mode,
then vkCmdSetColorBlendEnableEXT must have set blend enable to
VK_FALSE
prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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_ANDROID
resolve mode,
then vkCmdSetRasterizationSamplesEXT must have set
rasterizationSamples
to VK_SAMPLE_COUNT_1_BIT
prior to this
drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09368
If the current render pass instance was begun with
vkCmdBeginRendering,
there is no shader object bound to any graphics stage,
and the currently 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-vkCmdDrawMeshTasksIndirectCountEXT-None-09369
If the current render pass instance was begun with
vkCmdBeginRendering,
there is no shader object bound to any graphics stage,
and the currently 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-vkCmdDrawMeshTasksIndirectCountEXT-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_ANDROID
resolve mode,
then vkCmdSetFragmentShadingRateKHR must have set
pFragmentSize→width
to 1
prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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_ANDROID
resolve mode,
then vkCmdSetFragmentShadingRateKHR must have set
pFragmentSize→height
to 1
prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07749
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT
dynamic state enabled then
vkCmdSetColorWriteEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08646
If the colorWriteEnable
feature is
enabled on the device, 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
, then
vkCmdSetColorWriteEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-attachmentCount-07750
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT
dynamic state enabled then
the attachmentCount
parameter of vkCmdSetColorWriteEnableEXT
must be greater than or equal to the
VkPipelineColorBlendStateCreateInfo
::attachmentCount
of the
currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08647
If the colorWriteEnable
feature is
enabled on the device, 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
, 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 color attachments in the current
render pass instance
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07751
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT
dynamic state enabled 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-vkCmdDrawMeshTasksIndirectCountEXT-None-07880
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT
dynamic state
enabled then vkCmdSetDiscardRectangleEnableEXT must have been
called and not subsequently invalidated in
the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09236
If the VK_EXT_discard_rectangles extension is enabled, and a
shader object is bound to any graphics stage, and the most recent call
to vkCmdSetRasterizerDiscardEnable in the current command buffer
set rasterizerDiscardEnable
to VK_FALSE
, and the most recent
call to vkCmdSetDiscardRectangleEnableEXT in the current command
buffer set discardRectangleEnable
to VK_TRUE
, then
vkCmdSetDiscardRectangleEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08648
If the VK_EXT_discard_rectangles extension is enabled, and a
shader object is bound to any graphics stage, and the most recent call
to vkCmdSetRasterizerDiscardEnable in the current command buffer
set rasterizerDiscardEnable
to VK_FALSE
, then
vkCmdSetDiscardRectangleEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07881
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT
dynamic state enabled
then vkCmdSetDiscardRectangleModeEXT must have been called and
not subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08649
If the VK_EXT_discard_rectangles extension is enabled, and a
shader object is bound to any graphics stage, and the most recent call
to vkCmdSetRasterizerDiscardEnable in the current command buffer
set rasterizerDiscardEnable
to VK_FALSE
, and the most recent
call to vkCmdSetDiscardRectangleEnableEXT in the current command
buffer set discardRectangleEnable
to VK_TRUE
, then
vkCmdSetDiscardRectangleModeEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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 currently bound graphics pipeline must be equal to
VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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 currently bound graphics pipeline must be equal to the
VkFormat used to create
VkRenderingInfo::pDepthAttachment→imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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 currently 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-vkCmdDrawMeshTasksIndirectCountEXT-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 currently bound graphics pipeline must be equal to
VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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 currently bound graphics pipeline must be equal to the
VkFormat used to create
VkRenderingInfo::pStencilAttachment→imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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 currently 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-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06183
If the current render pass instance was begun with
vkCmdBeginRendering and
VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView
was not VK_NULL_HANDLE, the currently bound graphics pipeline
must have been created with
VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06184
If the current render pass instance was begun with
vkCmdBeginRendering and
VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView
was not VK_NULL_HANDLE, the currently bound graphics pipeline
must have been created with
VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06185
If the currently 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 currently bound
graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-06186
If the current render pass instance was begun with
vkCmdBeginRendering, the currently 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 currently bound
graphics pipeline must be equal to the sample count used to create
VkRenderingInfo::pDepthAttachment→imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-06187
If the current render pass instance was begun with
vkCmdBeginRendering, the currently 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 currently bound
graphics pipeline must be equal to the sample count used to create
VkRenderingInfo::pStencilAttachment→imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07285
If
the currently bound pipeline was created without a
[VkAttachmentSampleCountInfoAMD](/man/VkAttachmentSampleCountInfoAMD)
or
VkAttachmentSampleCountInfoNV
structure, and
the multisampledRenderToSingleSampled
feature is not enabled, 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 currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07286
If
the currently bound pipeline was created without a
[VkAttachmentSampleCountInfoAMD](/man/VkAttachmentSampleCountInfoAMD)
or
VkAttachmentSampleCountInfoNV
structure, and
the multisampledRenderToSingleSampled
feature is not enabled, and
VkRenderingInfo::pDepthAttachment→imageView
was not
VK_NULL_HANDLE, the value of rasterizationSamples
for the
currently bound graphics pipeline must be equal to the sample count
used to create VkRenderingInfo::pDepthAttachment→imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07287
If
the currently bound pipeline was created without a
[VkAttachmentSampleCountInfoAMD](/man/VkAttachmentSampleCountInfoAMD)
or
VkAttachmentSampleCountInfoNV
structure, and
the multisampledRenderToSingleSampled
feature is not enabled, and
VkRenderingInfo::pStencilAttachment→imageView
was not
VK_NULL_HANDLE, the value of rasterizationSamples
for the
currently bound graphics pipeline must be equal to the sample count
used to create
VkRenderingInfo::pStencilAttachment→imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pNext-07935
If this command has been 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 currently bound
graphics pipeline must be equal to
VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderPass-06198
If the current render pass instance was begun with
vkCmdBeginRendering, the currently bound pipeline must have been
created with a VkGraphicsPipelineCreateInfo::renderPass
equal to VK_NULL_HANDLE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorAttachments-08963
If the current render pass instance was begun with
vkCmdBeginRendering, 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-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-08964
If the current render pass instance was begun with
vkCmdBeginRendering, there is a graphics pipeline bound, depth
test is enabled, depth write 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-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-08965
If the current render pass instance was begun with
vkCmdBeginRendering, 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07627
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT
dynamic state enabled then
vkCmdSetColorBlendEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08657
If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT
stage, and both the most recent call to
vkCmdSetRasterizerDiscardEnable in the current command buffer set
rasterizerDiscardEnable
to 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-vkCmdDrawMeshTasksIndirectCountEXT-None-07628
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT
dynamic state enabled
then vkCmdSetColorBlendEquationEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08658
If 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 most recent call to
vkCmdSetColorBlendEnableEXT for any attachment set that
attachment’s value in pColorBlendEnables
to VK_TRUE
, then
vkCmdSetColorBlendEquationEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07629
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT
dynamic state enabled then
vkCmdSetColorWriteMaskEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08659
If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT
stage, and both the most recent call to
vkCmdSetRasterizerDiscardEnable in the current command buffer set
rasterizerDiscardEnable
to 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-vkCmdDrawMeshTasksIndirectCountEXT-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 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07634
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT
dynamic state enabled
then vkCmdSetSampleLocationsEnableEXT must have been called and
not subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08664
If the VK_EXT_sample_locations extension is enabled, and a
shader object is bound to any graphics stage, and the most recent call
to vkCmdSetRasterizerDiscardEnable in the current command buffer
set rasterizerDiscardEnable
to VK_FALSE
, then
vkCmdSetSampleLocationsEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07635
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT
dynamic state enabled
then vkCmdSetColorBlendAdvancedEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09416
If the VK_EXT_blend_operation_advanced 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
, then at least one of vkCmdSetColorBlendEquationEXT
and vkCmdSetColorBlendAdvancedEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07637
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT
dynamic state enabled
then vkCmdSetLineRasterizationModeEXT must have been called and
not subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08666
If the VK_KHR_line_rasterization or
VK_EXT_line_rasterization extension is enabled, and a shader
object is bound to any graphics stage, and the most recent call to
vkCmdSetRasterizerDiscardEnable in the current command buffer set
rasterizerDiscardEnable
to VK_FALSE
, and the most recent
call to vkCmdSetPolygonModeEXT in the current command buffer set
polygonMode
to VK_POLYGON_MODE_LINE
, then
vkCmdSetLineRasterizationModeEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08667
If the VK_KHR_line_rasterization or
VK_EXT_line_rasterization extension is enabled, and a shader
object is bound to the VK_SHADER_STAGE_VERTEX_BIT
stage, and the
most recent call to vkCmdSetRasterizerDiscardEnable in the current
command buffer set rasterizerDiscardEnable
to VK_FALSE
, and
the most recent call to vkCmdSetPrimitiveTopology in the current
command buffer set primitiveTopology
to any line topology, then
vkCmdSetLineRasterizationModeEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08668
If the VK_KHR_line_rasterization or
VK_EXT_line_rasterization extension is enabled, and a shader
object that outputs line primitives is bound to the
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
or
VK_SHADER_STAGE_GEOMETRY_BIT
stage, and the most recent call to
vkCmdSetRasterizerDiscardEnable in the current command buffer set
rasterizerDiscardEnable
to VK_FALSE
, then
vkCmdSetLineRasterizationModeEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07638
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT
dynamic state enabled
then vkCmdSetLineStippleEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08669
If the VK_KHR_line_rasterization or
VK_EXT_line_rasterization extension is enabled, and a shader
object is bound to any graphics stage, and the most recent call to
vkCmdSetRasterizerDiscardEnable in the current command buffer set
rasterizerDiscardEnable
to VK_FALSE
, and the most recent
call to vkCmdSetPolygonModeEXT in the current command buffer set
polygonMode
to VK_POLYGON_MODE_LINE
, then
vkCmdSetLineStippleEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08670
If the VK_KHR_line_rasterization or
VK_EXT_line_rasterization extension is enabled, and a shader
object is bound to the VK_SHADER_STAGE_VERTEX_BIT
stage, and the
most recent call to vkCmdSetRasterizerDiscardEnable in the current
command buffer set rasterizerDiscardEnable
to VK_FALSE
, and
the most recent call to vkCmdSetPrimitiveTopology in the current
command buffer set primitiveTopology
to any line topology, then
vkCmdSetLineStippleEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08671
If the VK_KHR_line_rasterization or
VK_EXT_line_rasterization extension is enabled, and a shader
object that outputs line primitives is bound to the
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
or
VK_SHADER_STAGE_GEOMETRY_BIT
stage, and the most recent call to
vkCmdSetRasterizerDiscardEnable in the current command buffer set
rasterizerDiscardEnable
to VK_FALSE
, then
vkCmdSetLineStippleEnableEXT must have been called and not
subsequently invalidated in the current
command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07849
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_LINE_STIPPLE_KHR
dynamic state enabled then
vkCmdSetLineStippleKHRmust have been called and not subsequently invalidated in the current command buffer prior to this drawing
command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08672
If the VK_KHR_line_rasterization or
VK_EXT_line_rasterization extension is enabled, and a shader
object is bound to any graphics stage, and the most recent call to
vkCmdSetRasterizerDiscardEnable in the current command buffer set
rasterizerDiscardEnable
to VK_FALSE
, and the most recent
call to vkCmdSetLineStippleEnableEXT in the current command buffer
set stippledLineEnable
to VK_TRUE
, then
vkCmdSetLineStippleEXT must have been called and not subsequently
invalidated in the current command buffer
prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07642
If the VK_NV_fragment_coverage_to_color extension 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_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-vkCmdDrawMeshTasksIndirectCountEXT-None-07643
If the VK_NV_fragment_coverage_to_color extension 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_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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-pipelineFragmentShadingRate-09238
If the pipelineFragmentShadingRate
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_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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-pColorBlendEnables-07470
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT
state enabled and the last
call to vkCmdSetColorBlendEnableEXT set pColorBlendEnables
for any attachment to VK_TRUE
, then for those attachments in the
subpass the corresponding image view’s
format features must contain
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07476
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT
dynamic state enabled then
vkCmdSetColorBlendEnableEXT must have been called in the current
command buffer prior to this drawing command, and the attachments
specified by the firstAttachment
and attachmentCount
parameters of vkCmdSetColorBlendEnableEXT
calls must specify an
enable for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09417
If 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
, then vkCmdSetColorBlendEnableEXT must have been
called in the current command buffer prior to this drawing command, and
the attachments specified by the firstAttachment
and
attachmentCount
parameters of vkCmdSetColorBlendEnableEXT
calls must specify an enable for all active color attachments in the
current subpass
VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07477
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT
dynamic state enabled
then vkCmdSetColorBlendEquationEXT must have been called in the
current command buffer prior to this drawing command, and the
attachments specified by the firstAttachment
and
attachmentCount
parameters of vkCmdSetColorBlendEquationEXT
calls must specify the blend equations for all active color attachments
in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09418
If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT
stage, and both the most recent call to
vkCmdSetRasterizerDiscardEnable in the current command buffer set
rasterizerDiscardEnable
to VK_FALSE
and there are color
attachments bound, then vkCmdSetColorBlendEquationEXT must have
been called in the current command buffer prior to this drawing command,
and the attachments specified by the firstAttachment
and
attachmentCount
parameters of vkCmdSetColorBlendEquationEXT
calls must specify the blend equations for all active color attachments
in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07478
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT
dynamic state enabled then
vkCmdSetColorWriteMaskEXT must have been called in the current
command buffer prior to this drawing command, and the attachments
specified by the firstAttachment
and attachmentCount
parameters of vkCmdSetColorWriteMaskEXT
calls must specify the
color write mask for all active color attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09419
If 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
, then vkCmdSetColorWriteMaskEXT must have been
called in the current command buffer prior to this drawing command, and
the attachments specified by the firstAttachment
and
attachmentCount
parameters of vkCmdSetColorWriteMaskEXT
calls must specify the color write mask for all active color
attachments in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07479
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT
dynamic state enabled
then vkCmdSetColorBlendAdvancedEXT must have been called in the
current command buffer prior to this drawing command, and the
attachments specified by the firstAttachment
and
attachmentCount
parameters of vkCmdSetColorBlendAdvancedEXT
calls must specify the advanced blend equations for all active color
attachments in the current subpass where blending is enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-advancedBlendMaxColorAttachments-07480
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT
and
VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT
dynamic states enabled and
the last calls to vkCmdSetColorBlendEnableEXT and
vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then
the number of active color attachments in the current subpass must not
exceed advancedBlendMaxColorAttachments
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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, and the current subpass has a
depth/stencil attachment, then that attachment must have been created
with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT
bit set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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.sampleLocationGridSize.width
in the last call
to vkCmdSetSampleLocationsEXT must evenly divide
VkMultisamplePropertiesEXT::sampleLocationGridSize.width
as
returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a
samples
parameter equaling rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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.sampleLocationGridSize.height
in the last call
to vkCmdSetSampleLocationsEXT must evenly divide
VkMultisamplePropertiesEXT::sampleLocationGridSize.height
as
returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a
samples
parameter equaling rasterizationSamples
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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::sampleLocationGridSize.width
as
returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a
samples
parameter equaling the value of rasterizationSamples
in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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::sampleLocationGridSize.height
as
returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a
samples
parameter equaling the value of rasterizationSamples
in the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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 subpass
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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 currently bound
pipeline state, then the current rasterizationSamples
must be the
same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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 the current subpass
must have a 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-vkCmdDrawMeshTasksIndirectCountEXT-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 the current subpass
must have a 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-vkCmdDrawMeshTasksIndirectCountEXT-coverageReductionMode-07491
If this VK_NV_coverage_reduction_mode extension is enabled, the
bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV
and
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT
states enabled, the
current coverage reduction mode coverageReductionMode
, then the
current rasterizationSamples
, and the sample counts for the color
and depth/stencil attachments (if the subpass has them) must be a valid
combination returned by
vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07494
If the VK_NV_framebuffer_mixed_samples extension is enabled,
and if the current subpass has any color attachments and
rasterizationSamples
of the last call to
vkCmdSetRasterizationSamplesEXT is greater than the number of
color samples, then the pipeline sampleShadingEnable
must be
VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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_KHR
, then the
stippledRectangularLines
feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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_KHR
, then the
stippledBresenhamLines
feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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_KHR
, then the
stippledSmoothLines
feature
must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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_KHR
, then the
stippledRectangularLines
feature must be enabled and
VkPhysicalDeviceLimits::strictLines
must be VK_TRUE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-conservativePointAndLineRasterization-07499
If the bound graphics pipeline state was created with the
VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT
dynamic state
enabled, conservativePointAndLineRasterization
is not supported, and the
effective primitive topology output by the last pre-rasterization shader
stage is a line or point, then the conservativeRasterizationMode
set by the last call to vkCmdSetConservativeRasterizationModeEXTmust be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stage-07073
If the currently 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-07850
If dynamic state was inherited from VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08694
If there is no bound graphics pipeline, and both the
taskShader
and meshShader
features are enabled, and a valid VkShaderEXT
is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT
stage, and that
VkShaderEXT
was created without the
VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT
flag, a valid
VkShaderEXT
must be bound to the
VK_SHADER_STAGE_TASK_BIT_EXT
stage
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08695
If there is no bound graphics pipeline, and both the
taskShader
and meshShader
features are enabled, and a valid VkShaderEXT
is bound the to the VK_SHADER_STAGE_MESH_BIT_EXT
stage, and that
VkShaderEXT
was created with the
VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT
flag, there must be no
VkShaderEXT
bound to the VK_SHADER_STAGE_TASK_BIT_EXT
stage
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-08878
All bound graphics shader objects must have been created with identical or identically defined push constant ranges
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08879
All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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_ANDROID
, and a fragment
shader is bound, it must not declare the DepthReplacing
or
StencilRefReplacingEXT
execution modes
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-09116
If
a shader object is bound to any graphics stage
or
the currently 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 vkCmdSetColorWriteMaskEXTmust 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-09548
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
VkRenderingAttachmentLocationInfoKHR::pColorAttachmentLocations
set by vkCmdSetRenderingAttachmentLocationsKHR must match the
value set for the corresponding element in the currently bound pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09549
If the current render pass was begun with vkCmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the currently bound pipeline must match those set for the current render pass instance via VkRenderingInputAttachmentIndexInfoKHR
VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-stage-06480
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_VERTEX_BIT
,
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
,
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
or
VK_SHADER_STAGE_GEOMETRY_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07074
Transform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pipelineStatistics-07076
The pipelineStatistics
member used to create any active
Pipeline Statistics Query must not contain
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT
,
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT
,
VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT
,
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT
,
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT
,
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT
,
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT
,
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT
,
or
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02708
If buffer
is non-sparse then it must be bound completely and
contiguously to a single VkDeviceMemory
object
VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02709
buffer
must have been created with the
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT
bit set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-offset-02710
offset
must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02714
If countBuffer
is non-sparse then it must be bound completely and
contiguously to a single VkDeviceMemory
object
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02715
countBuffer
must have been created with the
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT
bit set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-02716
countBufferOffset
must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02717
The count stored in countBuffer
must be less than or equal to
VkPhysicalDeviceLimits
::maxDrawIndirectCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-04129
(countBufferOffset
+ sizeof
(uint32_t)) must be
less than or equal to the size of countBuffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stride-07096
stride
must be a multiple of 4
and must be greater than or
equal to sizeof
(VkDrawMeshTasksIndirectCommandEXT
)
VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxDrawCount-07097
If maxDrawCount
is greater than or equal to 1
,
(stride
× (maxDrawCount
- 1) + offset
+ sizeof
(VkDrawMeshTasksIndirectCommandEXT
)) must be
less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07098
If the count stored in countBuffer
is equal to 1
,
(offset
+
sizeof
(VkDrawMeshTasksIndirectCommandEXT
)) must be less
than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07099
If the count stored in countBuffer
is greater than 1
,
(stride
× (drawCount
- 1) + offset
+ sizeof
(VkDrawMeshTasksIndirectCommandEXT
)) must be
less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100
The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
must contain a shader stage using the MeshEXT
Execution
Model
Valid Usage (Implicit)
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter
commandBuffer
must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-parameter
buffer
must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-parameter
countBuffer
must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-recording
commandBuffer
must be in the recording state
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-cmdpool
The VkCommandPool
that commandBuffer
was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderpass
This command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksIndirectCountEXT-videocoding
This command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commonparent
Each of buffer
, commandBuffer
, and countBuffer
must have been created, allocated, or retrieved from the same VkDevice
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized - Host access to the
VkCommandPool
thatcommandBuffer
was allocated from must be externally synchronized ::