绘制命令
绘制命令(名称中带有 Draw 的命令)在图形管线中触发工作。绘制命令记录到命令缓冲区中,并且当由队列执行时,将产生按照绑定的图形管线执行的工作,或者如果启用了 shaderObject 特性,则产生绑定到图形阶段的任何着色器对象。在将任何绘制命令记录到该命令缓冲区之前,必须将图形管线或一个或多个图形着色器对象的组合绑定到命令缓冲区。
可以通过两种模式实现绘制
每个绘制都由零个或多个顶点和零个或多个实例组成,这些顶点和实例由设备处理并导致图元的组装。图元根据VkGraphicsPipelineCreateInfo结构的pInputAssemblyState成员组装,该成员的类型为VkPipelineInputAssemblyStateCreateInfo
// Provided by VK_VERSION_1_0
typedef struct VkPipelineInputAssemblyStateCreateInfo {
VkStructureType sType;
const void* pNext;
VkPipelineInputAssemblyStateCreateFlags flags;
VkPrimitiveTopology topology;
VkBool32 primitiveRestartEnable;
} VkPipelineInputAssemblyStateCreateInfo;
-
sType是一个VkStructureType值,用于标识此结构。 -
pNext为NULL或指向扩展此结构的结构的指针。 -
flags保留供将来使用。 -
topology是一个VkPrimitiveTopology,定义图元拓扑,如下所述。 -
primitiveRestartEnable控制是否将特殊的顶点索引值视为重新开始图元的组装。此启用仅适用于索引绘制(vkCmdDrawIndexed,vkCmdDrawMultiIndexedEXT和vkCmdDrawIndexedIndirect),并且当 Vulkan 1.4 或vkCmdBindIndexBuffer2或vkCmdBindIndexBuffer的indexType参数等于VK_INDEX_TYPE_UINT32时,特殊索引值是 0xFFFFFFFF;当indexType等于VK_INDEX_TYPE_UINT8时,特殊索引值是 0xFF;或者当indexType等于VK_INDEX_TYPE_UINT16时,特殊索引值是 0xFFFF。对于“列表”拓扑,不允许图元重启,除非启用了primitiveTopologyPatchListRestart(对于VK_PRIMITIVE_TOPOLOGY_PATCH_LIST)或primitiveTopologyListRestart(对于所有其他列表拓扑)特性之一。
重新开始图元的组装会丢弃最近的索引值(如果这些元素形成了不完整的图元),并使用后续索引重新开始图元组装,但仅组装紧随其后的元素,直到最初指定的元素结束。在将 vertexOffset 值添加到索引值之前,执行图元重启索引值比较。
-
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252
如果未启用primitiveTopologyListRestart特性,并且topology为VK_PRIMITIVE_TOPOLOGY_POINT_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST、VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY或VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,则primitiveRestartEnable必须为VK_FALSE -
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253
如果未启用primitiveTopologyPatchListRestart特性,并且topology为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,则primitiveRestartEnable必须为VK_FALSE -
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429
如果未启用geometryShader特性,则topology必须不是VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY、VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY、VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY或VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY中的任何一个 -
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430
如果未启用tessellationShader功能,则topology必须 不能为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST。 -
VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452
如果启用了VK_KHR_portability_subset扩展,并且 VkPhysicalDevicePortabilitySubsetFeaturesKHR::triangleFans为VK_FALSE,则topology必须 不能为VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN。
-
VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sType
sType必须 为VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO。 -
VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNext
pNext必须 为NULL。 -
VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmask
flags必须 为0。 -
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameter
topology必须 为有效的 VkPrimitiveTopology 值。
// Provided by VK_VERSION_1_0
typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
VkPipelineInputAssemblyStateCreateFlags 是用于设置掩码的位掩码类型,但目前保留供将来使用。
要动态控制是否将特殊的顶点索引值视为重新开始图元的组装,请调用
// Provided by VK_VERSION_1_3
void vkCmdSetPrimitiveRestartEnable(
VkCommandBuffer commandBuffer,
VkBool32 primitiveRestartEnable);
或等效命令
// Provided by VK_EXT_extended_dynamic_state2, VK_EXT_shader_object
void vkCmdSetPrimitiveRestartEnableEXT(
VkCommandBuffer commandBuffer,
VkBool32 primitiveRestartEnable);
-
commandBuffer是将记录命令的命令缓冲区。 -
primitiveRestartEnable控制是否将特殊的顶点索引值视为重新开始图元的组装。它的行为方式与VkPipelineInputAssemblyStateCreateInfo::primitiveRestartEnable相同。
当使用 着色器对象 进行绘制,或者当图形管线在 VkPipelineDynamicStateCreateInfo::pDynamicStates 中设置了 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE 时创建时,此命令将为后续绘制命令设置图元重启启用。否则,此状态由用于创建当前活动管线的 VkPipelineInputAssemblyStateCreateInfo::primitiveRestartEnable 值指定。
-
VUID-vkCmdSetPrimitiveRestartEnable-None-08970
以下至少有一项必须为真-
启用了
extendedDynamicState2功能 -
启用了
shaderObject功能 -
用于创建
commandBuffer的 VkInstance 父级的 VkApplicationInfo::apiVersion值大于或等于 1.3 版本
-
-
VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-parameter
commandBuffer必须 为有效的 VkCommandBuffer 句柄。 -
VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-recording
commandBuffer必须 处于记录状态。 -
VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-cmdpool
分配commandBuffer的VkCommandPool必须 支持图形操作。 -
VUID-vkCmdSetPrimitiveRestartEnable-videocoding
此命令必须仅在视频编码范围之外调用。
-
对
commandBuffer的主机访问必须进行外部同步。 -
对分配
commandBuffer的VkCommandPool的主机访问必须进行外部同步。
图元拓扑
图元拓扑 决定了如何将连续的顶点组织成图元,并确定了图形管线开始时使用的图元类型。管线后续阶段的有效拓扑会受到曲面细分或几何着色(如果使用)的改变,并且取决于这些着色器的执行模式。在网格着色的情况下,唯一有效的拓扑由网格着色器的执行模式定义。
VkPrimitiveTopology 定义的图元拓扑包括:
// Provided by VK_VERSION_1_0
typedef enum VkPrimitiveTopology {
VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
} VkPrimitiveTopology;
-
VK_PRIMITIVE_TOPOLOGY_POINT_LIST指定一系列单独的点图元。 -
VK_PRIMITIVE_TOPOLOGY_LINE_LIST指定一系列单独的线图元。 -
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP指定一系列连接的线图元,连续的线共享一个顶点。 -
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST指定一系列单独的三角形图元。 -
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP指定一系列连接的三角形图元,连续的三角形共享一条边。 -
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN指定一系列连接的三角形图元,所有三角形共享一个公共顶点。如果启用了VK_KHR_portability_subset扩展,并且 VkPhysicalDevicePortabilitySubsetFeaturesKHR::triangleFans为VK_FALSE,则实现不支持三角形扇,并且必须不使用VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN。 -
VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY指定一系列具有邻接关系的单独线图元。 -
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY指定一系列具有邻接关系的连接线图元,连续的图元共享三个顶点。 -
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY指定一系列具有邻接关系的单独三角形图元。 -
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY指定具有邻接关系的连接三角形图元,连续的三角形共享一条边。 -
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST指定单独的补丁图元。
下面将详细描述每个图元拓扑及其从顶点列表的构造,并提供支持图,根据以下键值:
顶点 |
3 维空间中的一个点。图中选择的位置是任意的,仅用于说明。 |
|
顶点编号 |
所提供顶点数据中顶点的序列位置。 |
|
触发顶点 |
主要图元中的触发顶点。尾部倾斜于相关图元。用于平面着色。 |
|
图元边 |
连接主图元点的边。 |
|
邻接边 |
这些线连接的点不构成主要图元,只能在几何着色器中访问。 |
|
绕序 |
图元内顶点定义的相对顺序,用于正面判定。此排序没有特定的起点或终点。 |
图表附有数学定义,其中顶点(v)和图元(p)从0开始编号;v0是提供数据中的第一个顶点,而p0是由顶点和拓扑结构定义的一组图元中的第一个图元。
要动态设置图元拓扑,请调用
// Provided by VK_VERSION_1_3
void vkCmdSetPrimitiveTopology(
VkCommandBuffer commandBuffer,
VkPrimitiveTopology primitiveTopology);
或等效命令
// Provided by VK_EXT_extended_dynamic_state, VK_EXT_shader_object
void vkCmdSetPrimitiveTopologyEXT(
VkCommandBuffer commandBuffer,
VkPrimitiveTopology primitiveTopology);
-
commandBuffer是将记录命令的命令缓冲区。 -
primitiveTopology指定用于绘制的图元拓扑。
当使用着色器对象进行绘制时,或者当图形管线在VkPipelineDynamicStateCreateInfo::pDynamicStates中设置了VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY时创建时,此命令将为后续的绘制命令设置图元拓扑。否则,此状态由用于创建当前活动管线的VkPipelineInputAssemblyStateCreateInfo::topology值指定。
-
VUID-vkCmdSetPrimitiveTopology-None-08971
以下至少有一项必须为真-
extendedDynamicState功能已启用 -
启用了
shaderObject功能 -
用于创建
commandBuffer的 VkInstance 父级的 VkApplicationInfo::apiVersion值大于或等于 1.3 版本
-
-
VUID-vkCmdSetPrimitiveTopology-commandBuffer-parameter
commandBuffer必须 为有效的 VkCommandBuffer 句柄。 -
VUID-vkCmdSetPrimitiveTopology-primitiveTopology-parameter
primitiveTopology必须 是一个有效的 VkPrimitiveTopology 值 -
VUID-vkCmdSetPrimitiveTopology-commandBuffer-recording
commandBuffer必须 处于记录状态。 -
VUID-vkCmdSetPrimitiveTopology-commandBuffer-cmdpool
分配commandBuffer的VkCommandPool必须 支持图形操作。 -
VUID-vkCmdSetPrimitiveTopology-videocoding
此命令必须仅在视频编码范围之外调用。
-
对
commandBuffer的主机访问必须进行外部同步。 -
对分配
commandBuffer的VkCommandPool的主机访问必须进行外部同步。
拓扑类
图元拓扑结构分为以下拓扑类
| 拓扑类 | 图元拓扑 |
|---|---|
点 |
|
线 |
|
三角形 |
|
补丁 |
|
点列表
当拓扑结构为 VK_PRIMITIVE_TOPOLOGY_POINT_LIST 时,每个连续的顶点根据以下等式定义一个单独的点图元:
-
pi = {vi}
由于只有一个顶点,因此该顶点是主导顶点。生成的图元数量等于vertexCount。
线列表
当图元拓扑为 VK_PRIMITIVE_TOPOLOGY_LINE_LIST 时,每一对连续的顶点根据以下等式定义一个单独的线图元:
-
pi = {v2i, v2i+1}
生成的图元数量等于 ⌊vertexCount/2⌋。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT 时,pi 的主导顶点为 v2i。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT 时,pi 的主导顶点为 v2i+1。
线带
当图元拓扑为 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP 时,每个顶点和后续顶点根据以下等式定义一个线图元:
-
pi = {vi, vi+1}
生成的图元数量等于 max(0,vertexCount-1)。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT 时,pi 的主导顶点为 vi。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT 时,pi 的主导顶点为 vi+1。
三角形列表
当图元拓扑为 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST 时,每组连续的三个顶点根据以下等式定义一个单独的三角形图元:
-
pi = {v3i, v3i+1, v3i+2}
生成的图元数量等于 ⌊vertexCount/3⌋。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT 时,pi 的主导顶点为 v3i。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT 时,pi 的主导顶点为 v3i+2。
三角形带
当图元拓扑为 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP 时,每个顶点以及其后的两个顶点根据以下等式定义一个三角形图元:
-
pi = {vi, vi+(1+i%2), vi+(2-i%2)}
生成的图元数量等于 max(0,vertexCount-2)。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT 时,pi 的主导顶点为 vi。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT 时,pi 的主导顶点为 vi+2。
|
每个连续三角形中顶点的顺序相反,因此整个带中的绕序是一致的。 |
三角形扇
当图元拓扑为 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN 时,三角形图元是围绕一个共享的公共顶点定义的,根据以下等式:
-
pi = {vi+1, vi+2, v0}
生成的图元数量等于 max(0,vertexCount-2)。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT 时,pi 的主导顶点为 vi+1。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT 时,pi 的主导顶点为 vi+2。
|
如果启用了 |
带邻接的线列表
当图元拓扑为 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY 时,每组连续的四个顶点根据以下等式定义一个带邻接的线图元:
-
pi = {v4i, v4i+1, v4i+2,v4i+3}
一个线图元由总图元的第二个和第三个顶点描述,其余两个顶点只能在几何着色器中访问。
生成的图元数量等于⌊vertexCount/4⌋。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT 时,pi 的触发顶点为 v4i+1。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT 时,pi 的触发顶点为 v4i+2。
带邻接的线段条
当图元拓扑为 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY 时,每个顶点和其后的顶点定义一个带邻接的线段图元,根据以下公式:
-
pi = {vi, vi+1, vi+2, vi+3}
一个线图元由总图元的第二个和第三个顶点描述,其余两个顶点只能在几何着色器中访问。
生成的图元数量等于 max(0, vertexCount-3)。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT 时,pi 的主导顶点为 vi+1。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT 时,pi 的主导顶点为 vi+2。
带邻接的三角形列表
当图元拓扑为 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY 时,每连续的六个顶点定义一个带邻接的三角形图元,根据以下公式:
-
pi = {v6i, v6i+1, v6i+2, v6i+3, v6i+4, v6i+5}
一个三角形图元由整个图元的第一个、第三个和第五个顶点描述,其余三个顶点仅在几何着色器中可访问。
生成的图元数量等于 ⌊vertexCount/6⌋。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT 时,pi 的触发顶点为 v6i。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT 时,pi 的触发顶点为 v6i+4。
带邻接的三角形条带
当图元拓扑为 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY 时,每个顶点和其后的 5 个顶点定义一个带邻接的三角形图元。
生成的图元数量,n,等于 ⌊max(0, vertexCount - 4)/2⌋。
如果 n=1,则图元定义为
-
p = {v0, v1, v2, v5, v4, v3}
如果 n>1,则整个图元由条带中不同位置的不同顶点组成
-
pi = {v2i, v2i+1, v2i+2, v2i+6, v2i+4, v2i+3} 当 i=0 时
-
pi = {v2i, v2i+3, v2i+4, v2i+6, v2i+2, v2i-2} 当 i>0, i<n-1 且 i%2=1 时
-
pi = {v2i, v2i-2, v2i+2, v2i+6, v2i+4, v2i+3} 当 i>0, i<n-1 且 i%2=0 时
-
pi = {v2i, v2i+3, v2i+4, v2i+5, v2i+2, v2i-2} 当 i=n-1 且 i%2=1 时
-
pi = {v2i, v2i-2, v2i+2, v2i+5, v2i+4, v2i+3} 当 i=n-1 且 i%2=0 时
在所有情况下,三角形图元由整个图元的第一个、第三个和第五个顶点描述,其余三个顶点仅在几何着色器中可访问。
|
每个连续三角形中顶点的顺序都会改变,以使整个条带中的缠绕顺序保持一致。 |
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT 时,pi 的触发顶点始终为 v2i。
当 provokingVertexMode 为 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT 时,pi 的触发顶点始终为 v2i+4。
面片列表
当图元拓扑为 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST 时,每连续的 m 个顶点定义一个面片图元,根据以下公式:
-
pi = {vmi, vmi+1, …, vmi+(m-2), vmi+(m-1)}
其中 m 等于 VkPipelineTessellationStateCreateInfo::patchControlPoints。
面片列表永远不会传递给顶点后处理,因此没有为面片图元定义触发顶点。生成的图元数量等于 ⌊vertexCount/m⌋。
构成面片的顶点没有隐含的几何形状,它们用作细分着色器和固定功能细分器的输入,以生成新的点、线或三角形图元。
图元顺序
-
提交顺序决定初始顺序
-
对于间接绘制命令,VkDrawIndirectCommand的访问实例在
buffer中存储的顺序,从较低的间接缓冲区地址到较高的地址。 -
如果绘制命令包含多个实例,则执行实例的顺序,从较低编号的实例到较高的实例。
-
绘制命令指定的图元顺序
在此顺序中,实现进一步对图元进行排序
图元顺序稍后用于定义光栅化顺序,它决定了片段将结果输出到帧缓冲区的顺序。
可编程图元着色
一旦图元被组装完成,它们就会进入管线的顶点着色阶段。如果绘制包含多个实例,那么这组图元将被多次发送到顶点着色阶段,每个实例一次。
顶点着色是否发生在作为不完整图元一部分被丢弃的顶点上是实现相关的,但如果确实发生,则它的操作就好像它们是完整图元中的顶点一样,并且此类调用可以产生副作用。
顶点着色从图元组装阶段接收两个每个顶点的输入 - vertexIndex 和 instanceIndex。这些值是如何生成的在下面定义,每个命令都有定义。
绘制命令大致分为两类
-
非索引绘制命令向顶点着色器提供一个连续的
vertexIndex。这个连续的索引由设备自动生成(有关指定由vertexIndex索引的顶点属性,以及将包含这些属性的顶点缓冲区绑定到命令缓冲区的详细信息,请参见 固定功能顶点处理)。这些命令是 -
索引绘制命令从索引缓冲区读取索引值,并使用它来计算顶点着色器的
vertexIndex值。这些命令是
要将索引缓冲区绑定到命令缓冲区,请调用
// Provided by VK_VERSION_1_0
void vkCmdBindIndexBuffer(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
VkIndexType indexType);
-
commandBuffer是要记录命令的命令缓冲区。 -
buffer是要绑定的缓冲区。 -
offset是buffer内的起始偏移量(以字节为单位),用于索引缓冲区地址计算。 -
indexType是一个 VkIndexType 值,用于指定索引的大小。
如果启用了 maintenance6 功能,则 buffer 可以 是 VK_NULL_HANDLE。如果 buffer 是 VK_NULL_HANDLE 并且启用了 nullDescriptor 功能,则每次获取的索引都会得到零值。
-
VUID-vkCmdBindIndexBuffer-offset-08782
offset必须 小于buffer的大小 -
VUID-vkCmdBindIndexBuffer-offset-08783
offset和支持buffer的VkDeviceMemory对象的范围的基址之和,必须 是indexType指示的类型大小的倍数 -
VUID-vkCmdBindIndexBuffer-buffer-08784
创建buffer时 必须 使用VK_BUFFER_USAGE_INDEX_BUFFER_BIT标志 -
VUID-vkCmdBindIndexBuffer-buffer-08785
如果buffer不是稀疏的,那么它 必须 完全且连续地绑定到单个VkDeviceMemory对象 -
VUID-vkCmdBindIndexBuffer-indexType-08786
indexType必须 不是VK_INDEX_TYPE_NONE_KHR -
VUID-vkCmdBindIndexBuffer-indexType-08787
如果indexType是VK_INDEX_TYPE_UINT8,则 必须 启用indexTypeUint8功能 -
VUID-vkCmdBindIndexBuffer-None-09493
如果未启用maintenance6功能,则buffer必须 不是 VK_NULL_HANDLE -
VUID-vkCmdBindIndexBuffer-buffer-09494
如果buffer是 VK_NULL_HANDLE,则 offset 必须 为零
-
VUID-vkCmdBindIndexBuffer-commandBuffer-parameter
commandBuffer必须 为有效的 VkCommandBuffer 句柄。 -
VUID-vkCmdBindIndexBuffer-buffer-parameter
如果buffer不是 VK_NULL_HANDLE,则buffer必须 是有效的 VkBuffer 句柄 -
VUID-vkCmdBindIndexBuffer-indexType-parameter
indexType必须 是有效的 VkIndexType 值 -
VUID-vkCmdBindIndexBuffer-commandBuffer-recording
commandBuffer必须 处于记录状态。 -
VUID-vkCmdBindIndexBuffer-commandBuffer-cmdpool
分配commandBuffer的VkCommandPool必须 支持图形操作。 -
VUID-vkCmdBindIndexBuffer-commonparent
buffer和commandBuffer(均为非忽略参数的有效句柄) 必须 从相同的 VkDevice 创建、分配或检索。
-
对
commandBuffer的主机访问必须进行外部同步。 -
对分配
commandBuffer的VkCommandPool的主机访问必须进行外部同步。
要将索引缓冲区及其大小绑定到命令缓冲区,请调用
// Provided by VK_VERSION_1_4
void vkCmdBindIndexBuffer2(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
VkDeviceSize size,
VkIndexType indexType);
或等效命令
// Provided by VK_KHR_maintenance5
void vkCmdBindIndexBuffer2KHR(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
VkDeviceSize size,
VkIndexType indexType);
-
commandBuffer是要记录命令的命令缓冲区。 -
buffer是要绑定的缓冲区。 -
offset是buffer内的起始偏移量(以字节为单位),用于索引缓冲区地址计算。 -
size是从buffer绑定的索引数据的大小(以字节为单位)。 -
indexType是一个 VkIndexType 值,用于指定索引的大小。
size 指定从 offset 开始的索引缓冲区的绑定大小。如果 size 是 VK_WHOLE_SIZE,则绑定大小是从 offset 到 buffer 末尾。
如果启用了 maintenance6 功能,则 buffer 可以 是 VK_NULL_HANDLE。如果 buffer 是 VK_NULL_HANDLE 并且启用了 nullDescriptor 功能,则每次获取的索引都会得到零值。
-
VUID-vkCmdBindIndexBuffer2-offset-08782
offset必须 小于buffer的大小 -
VUID-vkCmdBindIndexBuffer2-offset-08783
offset和支持buffer的VkDeviceMemory对象的范围的基址之和,必须 是indexType指示的类型大小的倍数 -
VUID-vkCmdBindIndexBuffer2-buffer-08784
创建buffer时 必须 使用VK_BUFFER_USAGE_INDEX_BUFFER_BIT标志 -
VUID-vkCmdBindIndexBuffer2-buffer-08785
如果buffer不是稀疏的,那么它 必须 完全且连续地绑定到单个VkDeviceMemory对象 -
VUID-vkCmdBindIndexBuffer2-indexType-08786
indexType必须 不是VK_INDEX_TYPE_NONE_KHR -
VUID-vkCmdBindIndexBuffer2-indexType-08787
如果indexType是VK_INDEX_TYPE_UINT8,则 必须 启用indexTypeUint8功能 -
VUID-vkCmdBindIndexBuffer2-None-09493
如果未启用maintenance6功能,则buffer必须 不是 VK_NULL_HANDLE -
VUID-vkCmdBindIndexBuffer2-buffer-09494
如果buffer是 VK_NULL_HANDLE,则 offset 必须 为零 -
VUID-vkCmdBindIndexBuffer2-size-08767
如果size不是VK_WHOLE_SIZE,则size必须 是indexType指示的类型大小的倍数 -
VUID-vkCmdBindIndexBuffer2-size-08768
如果size不是VK_WHOLE_SIZE,则offset和size之和 必须 小于或等于buffer的大小
-
VUID-vkCmdBindIndexBuffer2-commandBuffer-parameter
commandBuffer必须 为有效的 VkCommandBuffer 句柄。 -
VUID-vkCmdBindIndexBuffer2-buffer-parameter
如果buffer不是 VK_NULL_HANDLE,则buffer必须 是有效的 VkBuffer 句柄 -
VUID-vkCmdBindIndexBuffer2-indexType-parameter
indexType必须 是有效的 VkIndexType 值 -
VUID-vkCmdBindIndexBuffer2-commandBuffer-recording
commandBuffer必须 处于记录状态。 -
VUID-vkCmdBindIndexBuffer2-commandBuffer-cmdpool
分配commandBuffer的VkCommandPool必须 支持图形操作。 -
VUID-vkCmdBindIndexBuffer2-commonparent
buffer和commandBuffer(均为非忽略参数的有效句柄) 必须 从相同的 VkDevice 创建、分配或检索。
-
对
commandBuffer的主机访问必须进行外部同步。 -
对分配
commandBuffer的VkCommandPool的主机访问必须进行外部同步。
vkCmdBindIndexBuffer2::indexType 和 vkCmdBindIndexBuffer::indexType 的可能值,用于指定索引的大小,如下所示:
// Provided by VK_VERSION_1_0
typedef enum VkIndexType {
VK_INDEX_TYPE_UINT16 = 0,
VK_INDEX_TYPE_UINT32 = 1,
// Provided by VK_VERSION_1_4
VK_INDEX_TYPE_UINT8 = 1000265000,
// Provided by VK_KHR_acceleration_structure
VK_INDEX_TYPE_NONE_KHR = 1000165000,
// Provided by VK_NV_ray_tracing
VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
// Provided by VK_EXT_index_type_uint8
VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8,
// Provided by VK_KHR_index_type_uint8
VK_INDEX_TYPE_UINT8_KHR = VK_INDEX_TYPE_UINT8,
} VkIndexType;
-
VK_INDEX_TYPE_UINT16指定索引是 16 位无符号整数值。 -
VK_INDEX_TYPE_UINT32指定索引是 32 位无符号整数值。 -
VK_INDEX_TYPE_NONE_KHR指定不提供任何索引。 -
VK_INDEX_TYPE_UINT8指定索引是 8 位无符号整数值。
每个绘制命令的参数直接在命令中指定,或者从缓冲区内存中读取,具体取决于命令。从缓冲区内存中获取参数的绘制命令称为间接绘制命令。
所有绘制命令都与 robustBufferAccess 功能交互。
要记录非索引绘制,请调用
// Provided by VK_VERSION_1_0
void vkCmdDraw(
VkCommandBuffer commandBuffer,
uint32_t vertexCount,
uint32_t instanceCount,
uint32_t firstVertex,
uint32_t firstInstance);
-
commandBuffer是要记录命令的命令缓冲区。 -
vertexCount是要绘制的顶点数。 -
instanceCount是要绘制的实例数。 -
firstVertex是要绘制的第一个顶点的索引。 -
firstInstance是要绘制的第一个实例的实例 ID。
当执行命令时,将使用当前的图元拓扑和 vertexCount 个连续的顶点索引来组装图元,其中第一个 vertexIndex 值等于 firstVertex。图元将绘制 instanceCount 次,instanceIndex 从 firstInstance 开始,并为每个实例按顺序递增。组装好的图元将执行绑定的图形管线。
-
VUID-vkCmdDraw-magFilter-04553
如果使用magFilter或minFilter等于VK_FILTER_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDraw-magFilter-09598
如果使用magFilter或minFilter等于VK_FILTER_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDraw-mipmapMode-04770
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDraw-mipmapMode-09599
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDraw-unnormalizedCoordinates-09635
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的levelCount和layerCount必须为 1 -
VUID-vkCmdDraw-None-08609
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的viewType必须为VK_IMAGE_VIEW_TYPE_1D或VK_IMAGE_VIEW_TYPE_2D -
VUID-vkCmdDraw-None-08610
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用,其名称中包含ImplicitLod、Dref或Proj -
VUID-vkCmdDraw-None-08611
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何包含 LOD 偏差或任何偏移值的 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDraw-None-06479
如果 VkImageView 使用 深度比较进行采样,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT -
VUID-vkCmdDraw-None-02691
如果由于此命令而使用原子操作访问 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT -
VUID-vkCmdDraw-None-07888
如果此命令导致使用原子操作访问VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER描述符,则存储纹理缓冲区视图的格式特性必须包含VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT。 -
VUID-vkCmdDraw-None-02692
如果此命令导致使用VK_FILTER_CUBIC_EXT采样 VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT。 -
VUID-vkCmdDraw-None-02693
如果未启用 VK_EXT_filter_cubic 扩展,且此命令导致使用VK_FILTER_CUBIC_EXT采样任何 VkImageView,则该图像视图的 VkImageViewType必须不能为VK_IMAGE_VIEW_TYPE_3D、VK_IMAGE_VIEW_TYPE_CUBE或VK_IMAGE_VIEW_TYPE_CUBE_ARRAY。 -
VUID-vkCmdDraw-filterCubic-02694
此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDraw-filterCubicMinmax-02695
此命令导致使用VK_FILTER_CUBIC_EXT采样且缩减模式为VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波以及 minmax 滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDraw-cubicRangeClamp-09212
如果未启用cubicRangeClamp特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerReductionModeCreateInfo::reductionMode必须不能等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM。 -
VUID-vkCmdDraw-reductionMode-09213
此命令导致使用 VkSamplerReductionModeCreateInfo::reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM采样的任何 VkImageView必须使用VK_FILTER_CUBIC_EXT进行采样。 -
VUID-vkCmdDraw-selectableCubicWeights-09214
如果未启用selectableCubicWeights特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights必须等于VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM。 -
VUID-vkCmdDraw-flags-02696
此命令导致采样的任何使用包含VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV的 VkImageCreateInfo::flags创建的 VkImage必须仅使用VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE的 VkSamplerAddressMode 进行采样。 -
VUID-vkCmdDraw-OpTypeImage-07027
对于任何作为存储图像写入,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDraw-OpTypeImage-07028
对于任何作为存储图像读取,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDraw-OpTypeImage-07029
对于任何作为存储纹理缓冲区写入,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDraw-OpTypeImage-07030
对于任何作为存储纹理缓冲区读取,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDraw-None-08600
对于 绑定着色器静态使用的每个集合 *n*,必须在同一管线绑定点将描述符集绑定到 *n*,其 VkPipelineLayout 与集合 *n* 兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDraw-None-08601
对于 绑定着色器静态使用的每个推送常量,必须为同一管线绑定点设置推送常量值,其 VkPipelineLayout 与推送常量兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDraw-None-10068
对于绑定的着色器使用的每个资源数组,用于访问数组元素的索引必须小于此命令所使用描述符集中标识绑定的描述符计数。 -
VUID-vkCmdDraw-maintenance4-08602
如果未启用maintenance4特性,则对于绑定的着色器静态使用的每个推送常量,必须已为同一管线绑定点设置了推送常量值,该管线绑定点具有与用于创建当前VkPipeline的VkPipelineLayout或用于创建当前VkShaderEXT的VkDescriptorSetLayout和VkPushConstantRange数组兼容的用于推送常量的VkPipelineLayout,如管线布局兼容性中所述。 -
VUID-vkCmdDraw-None-08114
如果通过vkCmdBindDescriptorSets指定的每个绑定描述符集中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline静态使用,且绑定的VkPipeline不是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须按照描述符有效性的描述是有效的。 -
VUID-vkCmdDraw-None-08115
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdBindDescriptorSets指定的,则绑定的VkPipeline必须是在没有VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的情况下创建的。 -
VUID-vkCmdDraw-None-08116
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline动态使用,且绑定的VkPipeline是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须是有效的。 -
VUID-vkCmdDraw-None-08604
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的任何阶段对应的VkShaderEXT动态使用,则必须是有效的。 -
VUID-vkCmdDraw-None-08117
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdSetDescriptorBufferOffsetsEXT指定的,则绑定的VkPipeline必须是在使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的。 -
VUID-vkCmdDraw-None-08119
如果描述符在创建时使用了VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkPipeline中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDraw-None-08605
如果描述符在创建时使用了VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkDescriptorSetLayout的VkShaderEXT中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDraw-None-08606
如果未启用shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点。 -
VUID-vkCmdDraw-None-08608
如果将管线绑定到此命令使用的管线绑定点,则自该管线绑定后,必须没有对绑定到此命令使用的管线绑定点的VkPipeline对象中静态指定的任何状态进行动态状态设置命令的任何调用。 -
VUID-vkCmdDraw-None-08607
如果启用了shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点,或者必须将有效和VK_NULL_HANDLE着色器对象的有效组合绑定到与此命令使用的管线绑定点对应的每个受支持的着色器阶段。 -
VUID-vkCmdDraw-uniformBuffers-06935
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问统一缓冲区,且该阶段的创建没有启用uniformBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDraw-None-08612
如果未启用robustBufferAccess特性,且绑定到与此命令使用的管线绑定点对应的阶段的任何VkShaderEXT访问统一缓冲区,则该VkShaderEXT必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDraw-storageBuffers-06936
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问存储缓冲区,且该阶段的创建没有启用storageBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDraw-None-08613
如果未启用robustBufferAccess特性,并且绑定到此命令所用管线绑定点的阶段的任何VkShaderEXT访问了存储缓冲区,则它必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值 -
VUID-vkCmdDraw-commandBuffer-02707
如果commandBuffer是一个未受保护的命令缓冲区,并且不支持protectedNoFault,则绑定的着色器访问的任何资源必须不是受保护的资源 -
VUID-vkCmdDraw-None-06550
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须仅与OpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDraw-ConstOffset-06551
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须不使用ConstOffset和Offset操作数 -
VUID-vkCmdDraw-viewType-07752
如果通过此命令访问VkImageView,则图像视图的viewType必须与SPIR-V 图像维度和 Vulkan ImageView 类型之间的兼容性中描述的OpTypeImage的Dim操作数匹配 -
VUID-vkCmdDraw-format-07753
如果通过此命令访问VkImageView,则图像视图的format的数值类型和OpTypeImage的SampledType操作数必须匹配 -
VUID-vkCmdDraw-OpImageWrite-08795
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM以外的格式创建的VkImageView,则该指令的Texel操作数的Type必须具有至少与图像视图的格式一样多的组件 -
VUID-vkCmdDraw-OpImageWrite-08796
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM格式创建的VkImageView,则该指令的Texel操作数的Type必须具有四个组件 -
VUID-vkCmdDraw-OpImageWrite-04469
如果通过此命令使用OpImageWrite访问VkBufferView,则该指令的Texel操作数的Type必须具有至少与缓冲区视图的格式一样多的组件 -
VUID-vkCmdDraw-SampledType-04470
如果通过此命令访问具有64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDraw-SampledType-04471
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDraw-SampledType-04472
如果通过此命令访问具有64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDraw-SampledType-04473
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDraw-sparseImageInt64Atomics-04474
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkImage对象 -
VUID-vkCmdDraw-sparseImageInt64Atomics-04475
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkBuffer对象 -
VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06971
如果使用OpImageWeightedSampleQCOM来采样通过此命令获得的VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM -
VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06972
如果OpImageWeightedSampleQCOM使用通过此命令获得的VkImageView作为采样权重图像,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM -
VUID-vkCmdDraw-OpImageBoxFilterQCOM-06973
如果使用OpImageBoxFilterQCOM对 VkImageView 进行采样以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM -
VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974
如果使用OpImageBlockMatchSSDQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06975
如果使用OpImageBlockMatchSADQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06976
如果使用OpImageBlockMatchSADQCOM或OpImageBlockMatchSSDQCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06977
如果OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM使用 VkSampler 作为此命令的结果,则采样器必须使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06978
如果除OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM之外的任何命令使用 VkSampler 作为此命令的结果,则采样器必须未使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDraw-OpImageBlockMatchWindow-09215
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDraw-OpImageBlockMatchWindow-09216
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式必须是单分量格式 -
VUID-vkCmdDraw-OpImageBlockMatchWindow-09217
如果OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDraw-None-07288
此命令执行的任何着色器调用必须终止 -
VUID-vkCmdDraw-None-09600
如果访问类型等于VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE、VK_DESCRIPTOR_TYPE_STORAGE_IMAGE或VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT的描述符以作为此命令的结果,则该描述符标识的所有图像子资源必须位于写入描述符时标识的图像布局中 -
VUID-vkCmdDraw-renderPass-02684
当前的渲染过程必须与创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的renderPass成员兼容 -
VUID-vkCmdDraw-subpass-02685
当前渲染过程的子过程索引必须等于创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的subpass成员 -
VUID-vkCmdDraw-None-07748
如果任何着色器静态访问输入附件,则必须通过描述符集将有效的描述符绑定到管道 -
VUID-vkCmdDraw-OpTypeImage-07468
如果此管道执行的任何着色器访问Dim操作数为SubpassData的OpTypeImage变量,则它必须使用与当前子过程中有效的输入附件相对应的InputAttachmentIndex进行修饰 -
VUID-vkCmdDraw-None-07469
在子过程中访问的输入附件视图必须使用与相应子过程定义相同的 VkFormat 创建,并且使用 VkImageView 创建,该 VkImageView 与绑定 VkFramebuffer 中子过程的pInputAttachments[InputAttachmentIndex] 引用的附件兼容,如片段输入附件兼容性中所述 -
VUID-vkCmdDraw-pDepthInputAttachmentIndex-09595
在动态渲染过程中访问的、由VkRenderingInputAttachmentIndexInfo 引用的InputAttachmentIndex的输入附件视图,或者如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex或 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex为NULL则没有InputAttachmentIndex的输入附件视图,必须使用与 VkRenderingInfo 中的相应颜色、深度或模板附件兼容的 VkImageView 创建 -
VUID-vkCmdDraw-pDepthInputAttachmentIndex-09596
如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex和 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex均不为NULL,则通过着色器对象在动态渲染过程中访问的输入附件视图必须具有InputAttachmentIndex -
VUID-vkCmdDraw-InputAttachmentIndex-09597
如果通过着色器对象在动态渲染过程中访问的输入附件视图具有InputAttachmentIndex,则InputAttachmentIndex必须与VkRenderingInputAttachmentIndexInfo 中的索引匹配 -
VUID-vkCmdDraw-None-06537
当前渲染通道中用作附件的内存后备图像子资源必须不能以任何方式写入,除非作为此命令的附件。 -
VUID-vkCmdDraw-None-09000
如果颜色附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_COLOR_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDraw-None-09001
如果深度附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_DEPTH_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDraw-None-09002
如果模板附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_STENCIL_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDraw-None-09003
如果附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则此命令必须不能以任何方式访问它,除非作为附件、存储图像或采样图像。 -
VUID-vkCmdDraw-None-06539
如果当前子通道中任何先前记录的命令以任何方式访问了用作此子通道附件的图像子资源,而非作为附件,则此命令必须不能将该图像子资源作为附件写入。 -
VUID-vkCmdDraw-None-06886
如果当前渲染通道实例使用深度/模板附件,且其深度方面为只读布局,则必须禁用深度写入。 -
VUID-vkCmdDraw-None-06887
如果当前渲染通道实例使用深度/模板附件,且其模板方面为只读布局,并且前向和后向writeMask都不为零,并且启用了模板测试,则所有模板操作必须为VK_STENCIL_OP_KEEP。 -
VUID-vkCmdDraw-None-07831
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_VIEWPORT动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewport,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDraw-None-07832
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SCISSOR动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetScissor,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDraw-None-07833
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_LINE_WIDTH动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDraw-None-08617
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDraw-None-08618
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDraw-None-08619
如果输出线图元的着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDraw-None-07834
如果着色器对象绑定到任何图形阶段,或者绑定了一个创建时启用了VK_DYNAMIC_STATE_DEPTH_BIAS动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBiasEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBias 或 vkCmdSetDepthBias2EXT,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDraw-None-07835
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_BLEND_CONSTANTS动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetBlendConstants,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDraw-None-08621
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEnableEXT 将pColorBlendEnables的任何元素设置为VK_TRUE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEquationEXT 将pColorBlendEquations的相同元素设置为一个VkColorBlendEquationEXT结构,其中任何 VkBlendFactor 成员的值为VK_BLEND_FACTOR_CONSTANT_COLOR,VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,VK_BLEND_FACTOR_CONSTANT_ALPHA或VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetBlendConstants 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07836
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBoundsTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetDepthBounds 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07837
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilCompareMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07838
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_WRITE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilWriteMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07839
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_REFERENCE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilReference 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688
如果绘制记录在启用了多视图的渲染通道实例中,则最大实例索引**必须**小于或等于 VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex。 -
VUID-vkCmdDraw-sampleLocationsEnable-02689
如果绑定的图形管线是使用 VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable设置为VK_TRUE创建的,并且当前子通道具有深度/模板附件,则该附件**必须**已使用VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位集创建。 -
VUID-vkCmdDraw-None-07634
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-06666
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且sampleLocationsEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07840
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_CULL_MODE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetCullMode 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07841
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_FRONT_FACE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetFrontFace 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07843
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDraw-None-07844
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthWriteEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDraw-None-07845
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_COMPARE_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且depthTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthCompareOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDraw-None-07846
如果启用了depthBounds功能,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthBoundsTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDraw-None-07847
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDraw-None-07848
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDraw-viewportCount-03417
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDraw-scissorCount-03418
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetScissorWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDraw-viewportCount-03419
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时同时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则vkCmdSetViewportWithCount的viewportCount参数必须与vkCmdSetScissorWithCount的scissorCount参数匹配。 -
VUID-vkCmdDraw-viewportCount-04137
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportWScalingStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDraw-viewportCount-04138
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWScalingNV,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDraw-None-08636
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则上次调用 vkCmdSetViewportWScalingNV 中的viewportCount参数必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDraw-viewportCount-04139
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDraw-shadingRateImage-09233
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetCoarseSampleOrderNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDraw-shadingRateImage-09234
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewportShadingRatePaletteNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDraw-None-08637
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则最后一次调用 vkCmdSetViewportShadingRatePaletteNV 中的viewportCount参数必须大于或等于最后一次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04141
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportSwizzleStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount创建。 -
VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04142
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportExclusiveScissorStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount创建。 -
VUID-vkCmdDraw-None-07878
如果启用了exclusiveScissor功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorEnableNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDraw-None-07879
如果启用了exclusiveScissor功能,着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV动态状态创建的图形管线,并且当前命令缓冲区中最近一次调用 vkCmdSetExclusiveScissorEnableNV 将pExclusiveScissorEnables的任何元素设置为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDraw-None-04876
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetRasterizerDiscardEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDraw-None-04877
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBiasEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDraw-logicOp-04878
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT,或者绑定了使用启用VK_DYNAMIC_STATE_LOGIC_OP_EXT动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且logicOpEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLogicOpEXT,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,绑定的图形管线是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且绑定的图形管线的任何着色器阶段写入到PrimitiveShadingRateKHR内置变量,则在执行此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-08642
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,并且绑定到图形阶段的任何着色器对象写入了PrimitiveShadingRateKHR内置变量,那么在执行此绘制命令之前,当前命令缓冲区中必须调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDraw-blendEnable-04727
如果绑定的图形管线中没有禁用光栅化,那么对于子通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则pColorBlendState的pAttachments成员中相应元素的blendEnable成员必须为VK_FALSE。 -
VUID-vkCmdDraw-None-08643
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么对于渲染通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则在当前命令缓冲区中最近一次调用vkCmdSetColorBlendEnableEXT中影响该附件索引的pColorBlendEnables的相应成员必须为VK_FALSE。 -
VUID-vkCmdDraw-multisampledRenderToSingleSampled-07284
如果绑定的图形管线中没有禁用光栅化,并且以下任何一项均未启用那么绑定图形管线的
rasterizationSamples必须与当前子通道颜色和/或深度/模板附件相同。 -
VUID-vkCmdDraw-None-08644
如果着色器对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且以下任何一项均未启用那么在当前命令缓冲区中最近一次调用 vkCmdSetRasterizationSamplesEXT 必须已将
rasterizationSamples设置为与当前渲染通道颜色和/或深度/模板附件的样本数相同。 -
VUID-vkCmdDraw-None-08876
如果着色器对象绑定到任何图形阶段,则当前渲染通道实例必须已通过 vkCmdBeginRendering 开始。 -
VUID-vkCmdDraw-imageView-06172
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDraw-imageView-06173
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDraw-imageView-06174
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDraw-imageView-06175
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDraw-imageView-06176
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDraw-imageView-06177
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDraw-viewMask-06178
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::viewMask相等的 VkPipelineRenderingCreateInfo::viewMask创建。 -
VUID-vkCmdDraw-colorAttachmentCount-06179
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::colorAttachmentCount相等的 VkPipelineRenderingCreateInfo::colorAttachmentCount创建。 -
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08910
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建。 -
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08912
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView等于 VK_NULL_HANDLE 的元素必须使用于创建绑定管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08911
如果启用了dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建,或者如果 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的对应元素存在,则必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDraw-colorAttachmentCount-09362
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,VkRenderingInfo::colorAttachmentCount等于1,并且没有任何着色器对象绑定到任何图形阶段,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个resolveImageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDraw-None-09363
如果没有着色器对象绑定到任何图形阶段,当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount等于1开始的,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDraw-None-09364
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDraw-None-09365
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDraw-None-09366
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDraw-rasterizationSamples-09367
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDraw-None-09368
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDraw-None-09369
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDraw-pFragmentSize-09370
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDraw-pFragmentSize-09371
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDraw-None-07749
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDraw-None-08646
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDraw-attachmentCount-07750
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于绑定图形管线的VkPipelineColorBlendStateCreateInfo::attachmentCount -
VUID-vkCmdDraw-None-08647
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在当前命令缓冲区中最近一次调用vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于当前渲染过程实例中的颜色附件数量 -
VUID-vkCmdDraw-None-07751
如果启用了VK_EXT_discard_rectangles扩展,绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中包含了一个 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDraw-rasterizerDiscardEnable-09236
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中不包含 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDraw-None-07880
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须调用 vkCmdSetDiscardRectangleEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDraw-None-07881
如果启用了VK_EXT_discard_rectangles扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须调用过 vkCmdSetDiscardRectangleModeEXT,并且在当前命令缓冲区中没有后续失效。 -
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08913
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08914
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat。 -
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08915
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值不等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08916
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08917
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat。 -
VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08918
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值不等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDraw-imageView-06183
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR创建的。 -
VUID-vkCmdDraw-imageView-06184
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT创建的。 -
VUID-vkCmdDraw-colorAttachmentCount-06185
如果绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的pColorAttachmentSamples成员的相应元素相同的采样计数创建。 -
VUID-vkCmdDraw-pDepthAttachment-06186
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDraw-pStencilAttachment-06187
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDraw-multisampledRenderToSingleSampled-07285
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与绑定图形管线的rasterizationSamples值相同的采样计数创建。 -
VUID-vkCmdDraw-multisampledRenderToSingleSampled-07286
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDraw-multisampledRenderToSingleSampled-07287
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDraw-pNext-07935
如果此命令是在使用 vkCmdBeginRendering 启动的渲染通道实例内调用的,并且 VkRenderingInfo 的pNext链包含一个 VkMultisampledRenderToSingleSampledInfoEXT 结构,其中multisampledRenderToSingleSampledEnable等于VK_TRUE,那么绑定图形管线的rasterizationSamples的值必须等于 VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples。 -
VUID-vkCmdDraw-renderPass-06198
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,那么绑定的管线必须使用 VkGraphicsPipelineCreateInfo::renderPass等于 VK_NULL_HANDLE 创建。 -
VUID-vkCmdDraw-pColorAttachments-08963
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,并且存在一个绑定了片段着色器的图形管线,该片段着色器静态写入颜色附件,颜色写入掩码不为零,颜色写入已启用,并且 VkRenderingInfo::pColorAttachments->imageView的相应元素不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的相应元素必须不是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDraw-pDepthAttachment-08964
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了深度测试、启用了深度写入,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDraw-pStencilAttachment-08965
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了模板测试,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708
如果primitivesGeneratedQueryWithRasterizerDiscard功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则 必须 不启用光栅化丢弃。 -
VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709
如果primitivesGeneratedQueryWithNonZeroStreams功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则绑定的图形管线 必须 不是使用VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream中的非零值创建的。 -
VUID-vkCmdDraw-None-07620
如果启用了depthClamp功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetDepthClampEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07621
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_POLYGON_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetPolygonModeEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07622
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetRasterizationSamplesEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07623
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_MASK_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetSampleMaskEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-alphaToCoverageEnable-08919
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的,并且在上次调用 vkCmdSetAlphaToCoverageEnableEXT 时alphaToCoverageEnable为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDraw-alphaToCoverageEnable-08920
如果有 shader 对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetAlphaToCoverageEnableEXT 时将alphaToCoverageEnable设置为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDraw-None-07624
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToCoverageEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07625
如果启用了alphaToOne功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToOneEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07626
如果启用了logicOp功能,并且有 shader 对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetLogicOpEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07627
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态创建的,则在本次绘制命令之前, 必须 已调用 vkCmdSetColorBlendEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-08657
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDraw-None-07628
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDraw-None-08658
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且最近一次针对任何附件调用 vkCmdSetColorBlendEnableEXT 时将该附件在pColorBlendEnables中的值设置为VK_TRUE,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDraw-None-07629
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDraw-None-08659
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDraw-None-07630
如果启用了geometryStreams特性,并且着色器对象绑定到VK_SHADER_STAGE_GEOMETRY_BIT阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetRasterizationStreamEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDraw-None-07631
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在当前绘制命令之前,必须调用过 vkCmdSetConservativeRasterizationModeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDraw-None-07632
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT动态状态的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且conservativeRasterizationMode的当前值为VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,则在当前绘制命令之前,必须调用过 vkCmdSetExtraPrimitiveOverestimationSizeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDraw-None-07633
如果启用了depthClipEnable特性,并且着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetDepthClipEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDraw-None-07635
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendAdvancedEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDraw-rasterizerDiscardEnable-09416
如果启用了VK_EXT_blend_operation_advanced扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在当前绘制命令之前,必须至少调用过 vkCmdSetColorBlendEquationEXT 和 vkCmdSetColorBlendAdvancedEXT 中的一个,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDraw-None-07636
如果启用了VK_EXT_provoking_vertex扩展,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT动态状态的图形管线,并且 当前值 的rasterizerDiscardEnable为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetProvokingVertexModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDraw-None-07637
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDraw-None-08666
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDraw-None-08667
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDraw-None-08668
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDraw-None-07638
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDraw-None-08669
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDraw-None-08670
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDraw-None-08671
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDraw-None-07849
如果启用了stippledRectangularLines、stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且着色器对象绑定到任何图形阶段,或者使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE动态状态创建的绑定图形管线状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stippledLineEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetLineStipple 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDraw-None-07639
如果启用了depthClipControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClipNegativeOneToOneEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDraw-None-09650
如果启用了depthClampControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT动态状态创建的图形管线,并且depthClampEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClampRangeEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDraw-None-07640
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportWScalingEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDraw-None-07641
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportSwizzleNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDraw-None-07642
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDraw-None-07643
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageToColorEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorLocationNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDraw-None-07644
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationModeNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDraw-None-07645
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationMode的当前值不是VK_COVERAGE_MODULATION_MODE_NONE_NV的任何值,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationTableEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDraw-None-07646
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationTableEnable的当前值为VK_TRUE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageModulationTableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07647
如果启用了shadingRateImage特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetShadingRateImageEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-pipelineFragmentShadingRate-09238
如果启用了pipelineFragmentShadingRate特性,并且绑定了一个着色器对象到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetFragmentShadingRateKHR,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07648
如果启用了representativeFragmentTest特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetRepresentativeFragmentTestEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-None-07649
如果启用了coverageReductionMode特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageReductionModeNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDraw-pColorBlendEnables-07470
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT状态的情况下创建的,并且最后一次调用 vkCmdSetColorBlendEnableEXT 为任何附件将pColorBlendEnables设置为VK_TRUE,那么对于子通道中的这些附件,相应的图像视图的 格式特性 必须 包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT。 -
VUID-vkCmdDraw-rasterizationSamples-07471
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前子通道不使用任何颜色和/或深度/模板附件,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 遵循 零附件子通道 的规则。 -
VUID-vkCmdDraw-samples-07472
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态且禁用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于用于创建绑定的图形管线的 VkPipelineMultisampleStateCreateInfo::rasterizationSamples参数。 -
VUID-vkCmdDraw-samples-07473
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples参数。 -
VUID-vkCmdDraw-rasterizationSamples-07474
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且multisampledRenderToSingleSampled特性未启用,并且既没有启用VK_AMD_mixed_attachment_samples扩展,也没有启用VK_NV_framebuffer_mixed_samples扩展,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与当前子通道的颜色和/或深度/模板附件相同。 -
VUID-vkCmdDraw-None-09211
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,或者一个着色器对象被绑定到任何图形阶段,并且当前渲染通道实例包含一个multisampledRenderToSingleSampledEnable等于VK_TRUE的 VkMultisampledRenderToSingleSampledInfoEXT 结构,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与该结构的rasterizationSamples成员相同。 -
VUID-vkCmdDraw-firstAttachment-07476
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态的情况下创建的,那么在此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件 必须 为当前子通道中的所有活动颜色附件指定启用。 -
VUID-vkCmdDraw-rasterizerDiscardEnable-09417
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件启用。 -
VUID-vkCmdDraw-firstAttachment-07477
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDraw-rasterizerDiscardEnable-09418
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且存在绑定的颜色附件,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDraw-firstAttachment-07478
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDraw-rasterizerDiscardEnable-09419
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDraw-firstAttachment-07479
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendAdvancedEXT,并且vkCmdSetColorBlendAdvancedEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定高级混合方程式。 -
VUID-vkCmdDraw-advancedBlendMaxColorAttachments-07480
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT和VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,并且最近一次调用 vkCmdSetColorBlendEnableEXT 和 vkCmdSetColorBlendAdvancedEXT 已启用高级混合,则当前子通道中的活动颜色附件的数量必须不超过advancedBlendMaxColorAttachments。 -
VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-07481
如果未启用primitivesGeneratedQueryWithNonZeroStreams功能,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,并且绑定的图形管线创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT状态,则最近一次调用 vkCmdSetRasterizationStreamEXT 必须已将rasterizationStream设置为零。 -
VUID-vkCmdDraw-sampleLocationsPerPixel-07482
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态并禁用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于绑定图形管线创建时使用的 VkPipelineMultisampleStateCreateInfo 结构的rasterizationSamples成员。 -
VUID-vkCmdDraw-sampleLocationsPerPixel-07483
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于最近一次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples参数。 -
VUID-vkCmdDraw-sampleLocationsEnable-07484
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,并且当前子通道具有深度/模板附件,则该附件的创建必须设置了VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位。 -
VUID-vkCmdDraw-sampleLocationsEnable-07485
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中sampleLocationsInfo.sampleLocationGridSize.width必须能被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者是通过 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回的,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDraw-sampleLocationsEnable-07486
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则上次调用 vkCmdSetSampleLocationsEXT 中的sampleLocationsInfo.sampleLocationGridSize.height**必须** 可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDraw-sampleLocationsEnable-07487
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则片段着色器代码**必须**不得静态使用扩展指令InterpolateAtSample。 -
VUID-vkCmdDraw-sampleLocationsEnable-07936
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.width**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDraw-sampleLocationsEnable-07937
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.height**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDraw-sampleLocationsEnable-07938
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationsPerPixel**必须**等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples。 -
VUID-vkCmdDraw-coverageModulationTableEnable-07488
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageModulationTableEnableNV 将coverageModulationTableEnable设置为VK_TRUE,则上次调用 vkCmdSetCoverageModulationTableNV 中的coverageModulationTableCount参数**必须**等于当前的rasterizationSamples除以当前子通道中的颜色样本数量。 -
VUID-vkCmdDraw-rasterizationSamples-07489
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且当前子通道具有深度/模板附件,且在绑定的管线中启用了深度测试、模板测试或深度边界测试,则当前的rasterizationSamples**必须**与深度/模板附件的样本计数相同。 -
VUID-vkCmdDraw-coverageToColorEnable-07490
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDraw-rasterizerDiscardEnable-09420
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDraw-coverageReductionMode-07491
如果启用了VK_NV_coverage_reduction_mode扩展,并且绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前的覆盖率缩减模式coverageReductionMode、当前的rasterizationSamples以及颜色和深度/模板附件(如果子通道有这些附件)的采样计数 必须 是 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV 返回的有效组合。 -
VUID-vkCmdDraw-viewportCount-07492
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但未启用VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么绑定的图形管线 必须 是使用 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数创建的。 -
VUID-vkCmdDraw-viewportCount-07493
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDraw-viewportCount-09421
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDraw-rasterizationSamples-07494
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且如果当前子通道有任何颜色附件,且上次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples大于颜色采样数,那么管线的sampleShadingEnable必须 为VK_FALSE。 -
VUID-vkCmdDraw-stippledLineEnable-07495
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR,那么stippledRectangularLines特性 必须 启用。 -
VUID-vkCmdDraw-stippledLineEnable-07496
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_BRESENHAM,那么stippledBresenhamLines特性 必须 启用。 -
VUID-vkCmdDraw-stippledLineEnable-07497
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,那么stippledSmoothLines特性 必须 启用。 -
VUID-vkCmdDraw-stippledLineEnable-07498
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_DEFAULT,那么stippledRectangularLines特性 必须 启用,并且 VkPhysicalDeviceLimits::strictLines必须 为VK_TRUE。 -
VUID-vkCmdDraw-conservativePointAndLineRasterization-07499
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且不支持conservativePointAndLineRasterization,并且最后一个光栅化前着色器阶段输出的有效图元拓扑结构为直线或点,那么上次调用 vkCmdSetConservativeRasterizationModeEXT 设置的conservativeRasterizationMode必须 为VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT。 -
VUID-vkCmdDraw-stage-07073
如果绑定的管线是使用 VkPipelineShaderStageCreateInfo::stage成员,该成员是 VkGraphicsPipelineCreateInfo::pStages的一个元素,设置为VK_SHADER_STAGE_VERTEX_BIT、VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT、VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT创建的,那么 网格着色器查询 必须 未处于活动状态。 -
VUID-vkCmdDraw-None-08877
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,当前命令缓冲区中 必须 调用过 vkCmdSetAttachmentFeedbackLoopEnableEXT 并且没有随后被 无效化。 -
VUID-vkCmdDraw-None-07850
如果动态状态是从 VkCommandBufferInheritanceViewportScissorInfoNV 继承的,则它必须在本绘图命令之前在当前命令缓冲区中设置。 -
VUID-vkCmdDraw-None-08688
如果未绑定图形管线,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_FRAGMENT_BIT元素。 -
VUID-vkCmdDraw-None-08689
如果未绑定图形管线,且启用了taskShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_TASK_BIT_EXT元素。 -
VUID-vkCmdDraw-None-08690
如果未绑定图形管线,且启用了meshShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_MESH_BIT_EXT元素。 -
VUID-vkCmdDraw-None-08693
如果未绑定图形管线,并且至少启用了taskShader和meshShader特性中的一个,则VK_SHADER_STAGE_VERTEX_BIT或VK_SHADER_STAGE_MESH_BIT_EXT阶段之一必须绑定有效的VkShaderEXT,而另一个必须未绑定VkShaderEXT。 -
VUID-vkCmdDraw-None-08694
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是在没有VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志的情况下创建的,则必须将有效的VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDraw-None-08695
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是使用VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志创建的,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDraw-None-08696
如果未绑定图形管线,并且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDraw-None-08698
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则同一 vkCreateShadersEXT 调用中所有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的着色器也必须绑定。 -
VUID-vkCmdDraw-None-08699
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则在同一 vkCreateShadersEXT 调用中,着色器没有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的阶段之间的任何阶段必须未绑定任何VkShaderEXT。 -
VUID-vkCmdDraw-None-08879
所有绑定的图形着色器对象必须使用相同或相同定义的描述符集布局数组创建。 -
VUID-vkCmdDraw-colorAttachmentCount-09372
如果当前渲染通道实例是使用 vkCmdBeginRendering 和一个 VkRenderingInfo::colorAttachmentCount等于1开始的,且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,并且绑定了片段着色器,则它必须不声明DepthReplacing或StencilRefReplacingEXT执行模式。 -
VUID-vkCmdDraw-pDynamicStates-08715
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpDepthAttachmentReadEXT,则上次调用 vkCmdSetDepthWriteEnable 的depthWriteEnable参数必须为VK_FALSE。 -
VUID-vkCmdDraw-pDynamicStates-08716
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_STENCIL_WRITE_MASK创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpStencilAttachmentReadEXT,则上次调用 vkCmdSetStencilWriteMask 的writeMask参数必须为0。 -
VUID-vkCmdDraw-None-09116
如果将着色器对象绑定到任何图形阶段,或者使用VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT创建了绑定的图形管线,并且任何颜色附件的格式为VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,则 vkCmdSetColorWriteMaskEXT 的pColorWriteMasks参数的相应元素必须包含VK_COLOR_COMPONENT_R_BIT、VK_COLOR_COMPONENT_G_BIT和VK_COLOR_COMPONENT_B_BIT中的全部,或全部都不包含。 -
VUID-vkCmdDraw-maxFragmentDualSrcAttachments-09239
如果任何附件启用了混合,并且该附件的源或目标混合因子使用了辅助颜色输入,则在此命令执行的FragmentExecutionModel中静态使用的任何输出附件的Location最大值必须小于maxFragmentDualSrcAttachments。 -
VUID-vkCmdDraw-None-09548
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则由vkCmdSetRenderingAttachmentLocations设置的VkRenderingAttachmentLocationInfo::pColorAttachmentLocations的每个元素的值必须与绑定的管道中相应元素的值匹配。 -
VUID-vkCmdDraw-None-09549
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则绑定管道中的输入附件索引映射必须与通过VkRenderingInputAttachmentIndexInfo为当前渲染通道实例设置的索引映射匹配。 -
VUID-vkCmdDraw-None-09642
如果当前渲染通道是通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始的,则绑定的图形管线必须使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建。 -
VUID-vkCmdDraw-None-09643
如果绑定的图形管线是使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建的,则当前渲染通道必须通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始。
-
VUID-vkCmdDraw-commandBuffer-02712
如果commandBuffer是一个受保护的命令缓冲区,并且不支持protectedNoFault,则此命令使用的管道绑定点所绑定的VkPipeline对象写入的任何资源必须不是不受保护的资源。 -
VUID-vkCmdDraw-commandBuffer-02713
如果commandBuffer是一个受保护的命令缓冲区,并且不支持protectedNoFault,则此命令使用的管道绑定点所绑定的VkPipeline对象中,除了帧缓冲区空间和计算阶段之外的管道阶段必须不写入任何资源。 -
VUID-vkCmdDraw-commandBuffer-04617
如果绑定到此命令使用的管道绑定点的VkPipeline的任何着色器阶段使用了RayQueryKHR功能,则commandBuffer必须不是受保护的命令缓冲区。
-
VUID-vkCmdDraw-None-04007
通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须绑定有效的或VK_NULL_HANDLE 缓冲区。 -
VUID-vkCmdDraw-None-04008
如果未启用nullDescriptor功能,则通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须不是VK_NULL_HANDLE。 -
VUID-vkCmdDraw-None-02721
如果未启用robustBufferAccess功能,并且该管道的创建没有为vertexInputs启用VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,则对于给定的顶点缓冲区绑定,提取的任何属性数据必须完全包含在相应的顶点缓冲区绑定中,如顶点输入描述中所述。 -
VUID-vkCmdDraw-format-10389
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format是打包格式,并且未启用legacyVertexAttributes,则根据顶点输入计算计算的attribAddress值必须是format的大小的倍数。 -
VUID-vkCmdDraw-format-10390
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format不是打包格式,并且要么未启用legacyVertexAttributes,要么format具有 64 位组件,则根据顶点输入计算计算的attribAddress值必须是format的组件大小的倍数。 -
VUID-vkCmdDraw-None-07842
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是使用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态启用的,那么在本次绘制命令之前,必须调用过 vkCmdSetPrimitiveTopology 并且没有在当前命令缓冲区中被后续失效。 -
VUID-vkCmdDraw-dynamicPrimitiveTopologyUnrestricted-07500
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态且dynamicPrimitiveTopologyUnrestricted为VK_FALSE的情况下创建的,则vkCmdSetPrimitiveTopology的primitiveTopology参数必须与管线 VkPipelineInputAssemblyStateCreateInfo::topology状态具有相同的图元拓扑类别。 -
VUID-vkCmdDraw-primitiveTopology-10286
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,那么在执行此绘制命令之前,vkCmdSetPrimitiveTopology 必须将primitiveTopology设置为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST。 -
VUID-vkCmdDraw-pStrides-04913
如果绑定的图形管线是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE动态状态但未启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdBindVertexBuffers2 且未在当前命令缓冲区中随后被失效,并且 vkCmdBindVertexBuffers2 的pStrides参数必须不为NULL。 -
VUID-vkCmdDraw-None-04914
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetVertexInputEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDraw-Input-07939
如果vertexAttributeRobustness未启用,并且有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在VertexExecutionModelOpEntryPoint中,所有使用Location修饰的Input存储类变量必须包含 VkVertexInputAttributeDescription2EXT::location中的一个位置。 -
VUID-vkCmdDraw-Input-08734
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且legacyVertexAttributes功能未启用,或者在VertexExecutionModelOpEntryPoint中,与给定Location的Input变量关联的 SPIR-V 类型是 64 位的,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的数值类型必须与 VkVertexInputAttributeDescription2EXT::format相同。 -
VUID-vkCmdDraw-format-08936
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的标量宽度必须为 64 位。 -
VUID-vkCmdDraw-format-08937
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且在VertexExecutionModelOpEntryPoint中,与Location修饰的Input变量关联的标量宽度是 64 位的,那么对应的 VkVertexInputAttributeDescription2EXT::format必须具有 64 位分量。 -
VUID-vkCmdDraw-None-09203
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,对应Location的所有Input变量必须不使用格式中不存在的分量。 -
VUID-vkCmdDraw-None-04875
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT动态状态的情况下创建的,并且primitiveTopology的当前值 为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,那么在执行此绘制命令之前,必须调用过 vkCmdSetPatchControlPointsEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDraw-None-04879
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetPrimitiveRestartEnable 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDraw-None-09637
如果primitiveTopologyListRestart功能未启用,拓扑为VK_PRIMITIVE_TOPOLOGY_POINT_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST、VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY或VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么 vkCmdSetPrimitiveRestartEnable 必须为VK_FALSE。 -
VUID-vkCmdDraw-stage-06481
绑定的图形管线必须不是使用 VkPipelineShaderStageCreateInfo::stage成员(该成员是 VkGraphicsPipelineCreateInfo::pStages的任意元素的成员)设置为VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT的情况下创建的。 -
VUID-vkCmdDraw-None-08885
必须没有着色器对象绑定到VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDraw-None-07619
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT阶段,或者绑定了一个使用启用VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须调用过 vkCmdSetTessellationDomainOriginEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDraw-None-08684
如果没有绑定图形管线,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_VERTEX_BIT元素 -
VUID-vkCmdDraw-None-08685
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT元素 -
VUID-vkCmdDraw-None-08686
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT元素 -
VUID-vkCmdDraw-None-08687
如果没有绑定图形管线,且启用了geometryShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_GEOMETRY_BIT元素
-
VUID-vkCmdDraw-pNext-09461
如果绑定的图形管线状态是通过 VkPipelineVertexInputDivisorStateCreateInfo 在 VkGraphicsPipelineCreateInfo::pVertexInputState的pNext链中创建的,VkPipelineVertexInputDivisorStateCreateInfo::pVertexBindingDivisors的任何成员在divisor中的值不是1,并且 VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance为VK_FALSE,则firstInstance必须为0 -
VUID-vkCmdDraw-None-09462
如果使用着色器对象进行绘制,或者绑定的图形管线状态启用了VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态,则 vkCmdSetVertexInputEXT 调用中设置此动态状态的pVertexBindingDescriptions参数的任何成员在divisor中的值不是1,并且 VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance为VK_FALSE,则firstInstance必须为0
-
VUID-vkCmdDraw-commandBuffer-parameter
commandBuffer必须 为有效的 VkCommandBuffer 句柄。 -
VUID-vkCmdDraw-commandBuffer-recording
commandBuffer必须 处于记录状态。 -
VUID-vkCmdDraw-commandBuffer-cmdpool
分配commandBuffer的VkCommandPool必须 支持图形操作。
-
对
commandBuffer的主机访问必须进行外部同步。 -
对分配
commandBuffer的VkCommandPool的主机访问必须进行外部同步。
要记录索引绘制,请调用
// Provided by VK_VERSION_1_0
void vkCmdDrawIndexed(
VkCommandBuffer commandBuffer,
uint32_t indexCount,
uint32_t instanceCount,
uint32_t firstIndex,
int32_t vertexOffset,
uint32_t firstInstance);
-
commandBuffer是要记录命令的命令缓冲区。 -
indexCount是要绘制的顶点数。 -
instanceCount是要绘制的实例数。 -
firstIndex是索引缓冲区内的基本索引。 -
vertexOffset是在索引到顶点缓冲区之前添加到顶点索引的值。 -
firstInstance是要绘制的第一个实例的实例 ID。
执行命令时,将使用当前图元拓扑和 indexCount 个顶点来组装图元,这些顶点的索引是从索引缓冲区中检索的。索引缓冲区被视为一个紧密打包的无符号整数数组,其大小由vkCmdBindIndexBuffer2::indexType 或 vkCmdBindIndexBuffer::indexType 参数定义,该参数用于绑定缓冲区。
第一个顶点索引位于绑定索引缓冲区内的偏移量 firstIndex × indexSize + offset 处,其中 offset 是由 vkCmdBindIndexBuffer 或 vkCmdBindIndexBuffer2 指定的偏移量,indexSize 是由 indexType 指定的类型的字节大小。后续索引值从索引缓冲区中的连续位置检索。索引首先与图元重启值进行比较,然后零扩展为 32 位(如果 indexType 是 VK_INDEX_TYPE_UINT8 或 VK_INDEX_TYPE_UINT16),并加上 vertexOffset,然后再作为 vertexIndex 值提供。
图元绘制 instanceCount 次,instanceIndex 从 firstInstance 开始,每次实例递增。组装的图元执行绑定的图形管线。
-
VUID-vkCmdDrawIndexed-magFilter-04553
如果使用magFilter或minFilter等于VK_FILTER_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawIndexed-magFilter-09598
如果使用magFilter或minFilter等于VK_FILTER_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawIndexed-mipmapMode-04770
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawIndexed-mipmapMode-09599
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawIndexed-unnormalizedCoordinates-09635
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的levelCount和layerCount必须为 1 -
VUID-vkCmdDrawIndexed-None-08609
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的viewType必须为VK_IMAGE_VIEW_TYPE_1D或VK_IMAGE_VIEW_TYPE_2D -
VUID-vkCmdDrawIndexed-None-08610
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用,其名称中包含ImplicitLod、Dref或Proj -
VUID-vkCmdDrawIndexed-None-08611
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何包含 LOD 偏差或任何偏移值的 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawIndexed-None-06479
如果 VkImageView 使用 深度比较进行采样,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT -
VUID-vkCmdDrawIndexed-None-02691
如果由于此命令而使用原子操作访问 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT -
VUID-vkCmdDrawIndexed-None-07888
如果此命令导致使用原子操作访问VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER描述符,则存储纹理缓冲区视图的格式特性必须包含VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT。 -
VUID-vkCmdDrawIndexed-None-02692
如果此命令导致使用VK_FILTER_CUBIC_EXT采样 VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT。 -
VUID-vkCmdDrawIndexed-None-02693
如果未启用 VK_EXT_filter_cubic 扩展,且此命令导致使用VK_FILTER_CUBIC_EXT采样任何 VkImageView,则该图像视图的 VkImageViewType必须不能为VK_IMAGE_VIEW_TYPE_3D、VK_IMAGE_VIEW_TYPE_CUBE或VK_IMAGE_VIEW_TYPE_CUBE_ARRAY。 -
VUID-vkCmdDrawIndexed-filterCubic-02694
此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawIndexed-filterCubicMinmax-02695
此命令导致使用VK_FILTER_CUBIC_EXT采样且缩减模式为VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波以及 minmax 滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawIndexed-cubicRangeClamp-09212
如果未启用cubicRangeClamp特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerReductionModeCreateInfo::reductionMode必须不能等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM。 -
VUID-vkCmdDrawIndexed-reductionMode-09213
此命令导致使用 VkSamplerReductionModeCreateInfo::reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM采样的任何 VkImageView必须使用VK_FILTER_CUBIC_EXT进行采样。 -
VUID-vkCmdDrawIndexed-selectableCubicWeights-09214
如果未启用selectableCubicWeights特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights必须等于VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM。 -
VUID-vkCmdDrawIndexed-flags-02696
此命令导致采样的任何使用包含VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV的 VkImageCreateInfo::flags创建的 VkImage必须仅使用VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE的 VkSamplerAddressMode 进行采样。 -
VUID-vkCmdDrawIndexed-OpTypeImage-07027
对于任何作为存储图像写入,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndexed-OpTypeImage-07028
对于任何作为存储图像读取,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndexed-OpTypeImage-07029
对于任何作为存储纹理缓冲区写入,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndexed-OpTypeImage-07030
对于任何作为存储纹理缓冲区读取,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndexed-None-08600
对于 绑定着色器静态使用的每个集合 *n*,必须在同一管线绑定点将描述符集绑定到 *n*,其 VkPipelineLayout 与集合 *n* 兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawIndexed-None-08601
对于 绑定着色器静态使用的每个推送常量,必须为同一管线绑定点设置推送常量值,其 VkPipelineLayout 与推送常量兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawIndexed-None-10068
对于绑定的着色器使用的每个资源数组,用于访问数组元素的索引必须小于此命令所使用描述符集中标识绑定的描述符计数。 -
VUID-vkCmdDrawIndexed-maintenance4-08602
如果未启用maintenance4特性,则对于绑定的着色器静态使用的每个推送常量,必须已为同一管线绑定点设置了推送常量值,该管线绑定点具有与用于创建当前VkPipeline的VkPipelineLayout或用于创建当前VkShaderEXT的VkDescriptorSetLayout和VkPushConstantRange数组兼容的用于推送常量的VkPipelineLayout,如管线布局兼容性中所述。 -
VUID-vkCmdDrawIndexed-None-08114
如果通过vkCmdBindDescriptorSets指定的每个绑定描述符集中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline静态使用,且绑定的VkPipeline不是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须按照描述符有效性的描述是有效的。 -
VUID-vkCmdDrawIndexed-None-08115
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdBindDescriptorSets指定的,则绑定的VkPipeline必须是在没有VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawIndexed-None-08116
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline动态使用,且绑定的VkPipeline是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须是有效的。 -
VUID-vkCmdDrawIndexed-None-08604
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的任何阶段对应的VkShaderEXT动态使用,则必须是有效的。 -
VUID-vkCmdDrawIndexed-None-08117
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdSetDescriptorBufferOffsetsEXT指定的,则绑定的VkPipeline必须是在使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的。 -
VUID-vkCmdDrawIndexed-None-08119
如果描述符在创建时使用了VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkPipeline中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawIndexed-None-08605
如果描述符在创建时使用了VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkDescriptorSetLayout的VkShaderEXT中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawIndexed-None-08606
如果未启用shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点。 -
VUID-vkCmdDrawIndexed-None-08608
如果将管线绑定到此命令使用的管线绑定点,则自该管线绑定后,必须没有对绑定到此命令使用的管线绑定点的VkPipeline对象中静态指定的任何状态进行动态状态设置命令的任何调用。 -
VUID-vkCmdDrawIndexed-None-08607
如果启用了shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点,或者必须将有效和VK_NULL_HANDLE着色器对象的有效组合绑定到与此命令使用的管线绑定点对应的每个受支持的着色器阶段。 -
VUID-vkCmdDrawIndexed-uniformBuffers-06935
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问统一缓冲区,且该阶段的创建没有启用uniformBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndexed-None-08612
如果未启用robustBufferAccess特性,且绑定到与此命令使用的管线绑定点对应的阶段的任何VkShaderEXT访问统一缓冲区,则该VkShaderEXT必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndexed-storageBuffers-06936
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问存储缓冲区,且该阶段的创建没有启用storageBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndexed-None-08613
如果未启用robustBufferAccess特性,并且绑定到此命令所用管线绑定点的阶段的任何VkShaderEXT访问了存储缓冲区,则它必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值 -
VUID-vkCmdDrawIndexed-commandBuffer-02707
如果commandBuffer是一个未受保护的命令缓冲区,并且不支持protectedNoFault,则绑定的着色器访问的任何资源必须不是受保护的资源 -
VUID-vkCmdDrawIndexed-None-06550
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须仅与OpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawIndexed-ConstOffset-06551
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须不使用ConstOffset和Offset操作数 -
VUID-vkCmdDrawIndexed-viewType-07752
如果通过此命令访问VkImageView,则图像视图的viewType必须与SPIR-V 图像维度和 Vulkan ImageView 类型之间的兼容性中描述的OpTypeImage的Dim操作数匹配 -
VUID-vkCmdDrawIndexed-format-07753
如果通过此命令访问VkImageView,则图像视图的format的数值类型和OpTypeImage的SampledType操作数必须匹配 -
VUID-vkCmdDrawIndexed-OpImageWrite-08795
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM以外的格式创建的VkImageView,则该指令的Texel操作数的Type必须具有至少与图像视图的格式一样多的组件 -
VUID-vkCmdDrawIndexed-OpImageWrite-08796
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM格式创建的VkImageView,则该指令的Texel操作数的Type必须具有四个组件 -
VUID-vkCmdDrawIndexed-OpImageWrite-04469
如果通过此命令使用OpImageWrite访问VkBufferView,则该指令的Texel操作数的Type必须具有至少与缓冲区视图的格式一样多的组件 -
VUID-vkCmdDrawIndexed-SampledType-04470
如果通过此命令访问具有64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawIndexed-SampledType-04471
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawIndexed-SampledType-04472
如果通过此命令访问具有64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawIndexed-SampledType-04473
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkImage对象 -
VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04475
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkBuffer对象 -
VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06971
如果使用OpImageWeightedSampleQCOM来采样通过此命令获得的VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM -
VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06972
如果OpImageWeightedSampleQCOM使用通过此命令获得的VkImageView作为采样权重图像,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM -
VUID-vkCmdDrawIndexed-OpImageBoxFilterQCOM-06973
如果使用OpImageBoxFilterQCOM对 VkImageView 进行采样以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM -
VUID-vkCmdDrawIndexed-OpImageBlockMatchSSDQCOM-06974
如果使用OpImageBlockMatchSSDQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06975
如果使用OpImageBlockMatchSADQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06976
如果使用OpImageBlockMatchSADQCOM或OpImageBlockMatchSSDQCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06977
如果OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM使用 VkSampler 作为此命令的结果,则采样器必须使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06978
如果除OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM之外的任何命令使用 VkSampler 作为此命令的结果,则采样器必须未使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09215
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09216
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式必须是单分量格式 -
VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09217
如果OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawIndexed-None-07288
此命令执行的任何着色器调用必须终止 -
VUID-vkCmdDrawIndexed-None-09600
如果访问类型等于VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE、VK_DESCRIPTOR_TYPE_STORAGE_IMAGE或VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT的描述符以作为此命令的结果,则该描述符标识的所有图像子资源必须位于写入描述符时标识的图像布局中 -
VUID-vkCmdDrawIndexed-renderPass-02684
当前的渲染过程必须与创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的renderPass成员兼容 -
VUID-vkCmdDrawIndexed-subpass-02685
当前渲染过程的子过程索引必须等于创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的subpass成员 -
VUID-vkCmdDrawIndexed-None-07748
如果任何着色器静态访问输入附件,则必须通过描述符集将有效的描述符绑定到管道 -
VUID-vkCmdDrawIndexed-OpTypeImage-07468
如果此管道执行的任何着色器访问Dim操作数为SubpassData的OpTypeImage变量,则它必须使用与当前子过程中有效的输入附件相对应的InputAttachmentIndex进行修饰 -
VUID-vkCmdDrawIndexed-None-07469
在子过程中访问的输入附件视图必须使用与相应子过程定义相同的 VkFormat 创建,并且使用 VkImageView 创建,该 VkImageView 与绑定 VkFramebuffer 中子过程的pInputAttachments[InputAttachmentIndex] 引用的附件兼容,如片段输入附件兼容性中所述 -
VUID-vkCmdDrawIndexed-pDepthInputAttachmentIndex-09595
在动态渲染过程中访问的、由VkRenderingInputAttachmentIndexInfo 引用的InputAttachmentIndex的输入附件视图,或者如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex或 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex为NULL则没有InputAttachmentIndex的输入附件视图,必须使用与 VkRenderingInfo 中的相应颜色、深度或模板附件兼容的 VkImageView 创建 -
VUID-vkCmdDrawIndexed-pDepthInputAttachmentIndex-09596
如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex和 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex均不为NULL,则通过着色器对象在动态渲染过程中访问的输入附件视图必须具有InputAttachmentIndex -
VUID-vkCmdDrawIndexed-InputAttachmentIndex-09597
如果通过着色器对象在动态渲染过程中访问的输入附件视图具有InputAttachmentIndex,则InputAttachmentIndex必须与VkRenderingInputAttachmentIndexInfo 中的索引匹配 -
VUID-vkCmdDrawIndexed-None-06537
当前渲染通道中用作附件的内存后备图像子资源必须不能以任何方式写入,除非作为此命令的附件。 -
VUID-vkCmdDrawIndexed-None-09000
如果颜色附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_COLOR_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndexed-None-09001
如果深度附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_DEPTH_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndexed-None-09002
如果模板附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_STENCIL_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndexed-None-09003
如果附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则此命令必须不能以任何方式访问它,除非作为附件、存储图像或采样图像。 -
VUID-vkCmdDrawIndexed-None-06539
如果当前子通道中任何先前记录的命令以任何方式访问了用作此子通道附件的图像子资源,而非作为附件,则此命令必须不能将该图像子资源作为附件写入。 -
VUID-vkCmdDrawIndexed-None-06886
如果当前渲染通道实例使用深度/模板附件,且其深度方面为只读布局,则必须禁用深度写入。 -
VUID-vkCmdDrawIndexed-None-06887
如果当前渲染通道实例使用深度/模板附件,且其模板方面为只读布局,并且前向和后向writeMask都不为零,并且启用了模板测试,则所有模板操作必须为VK_STENCIL_OP_KEEP。 -
VUID-vkCmdDrawIndexed-None-07831
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_VIEWPORT动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewport,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexed-None-07832
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SCISSOR动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetScissor,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexed-None-07833
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_LINE_WIDTH动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexed-None-08617
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexed-None-08618
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexed-None-08619
如果输出线图元的着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexed-None-07834
如果着色器对象绑定到任何图形阶段,或者绑定了一个创建时启用了VK_DYNAMIC_STATE_DEPTH_BIAS动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBiasEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBias 或 vkCmdSetDepthBias2EXT,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexed-None-07835
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_BLEND_CONSTANTS动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetBlendConstants,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexed-None-08621
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEnableEXT 将pColorBlendEnables的任何元素设置为VK_TRUE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEquationEXT 将pColorBlendEquations的相同元素设置为一个VkColorBlendEquationEXT结构,其中任何 VkBlendFactor 成员的值为VK_BLEND_FACTOR_CONSTANT_COLOR,VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,VK_BLEND_FACTOR_CONSTANT_ALPHA或VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetBlendConstants 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07836
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBoundsTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetDepthBounds 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07837
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilCompareMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07838
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_WRITE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilWriteMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07839
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_REFERENCE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilReference 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688
如果绘制记录在启用了多视图的渲染通道实例中,则最大实例索引**必须**小于或等于 VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex。 -
VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689
如果绑定的图形管线是使用 VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable设置为VK_TRUE创建的,并且当前子通道具有深度/模板附件,则该附件**必须**已使用VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位集创建。 -
VUID-vkCmdDrawIndexed-None-07634
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-06666
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且sampleLocationsEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07840
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_CULL_MODE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetCullMode 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07841
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_FRONT_FACE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetFrontFace 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07843
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexed-None-07844
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthWriteEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexed-None-07845
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_COMPARE_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且depthTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthCompareOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexed-None-07846
如果启用了depthBounds功能,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthBoundsTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexed-None-07847
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexed-None-07848
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexed-viewportCount-03417
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexed-scissorCount-03418
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetScissorWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexed-viewportCount-03419
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时同时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则vkCmdSetViewportWithCount的viewportCount参数必须与vkCmdSetScissorWithCount的scissorCount参数匹配。 -
VUID-vkCmdDrawIndexed-viewportCount-04137
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportWScalingStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexed-viewportCount-04138
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWScalingNV,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexed-None-08636
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则上次调用 vkCmdSetViewportWScalingNV 中的viewportCount参数必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexed-viewportCount-04139
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexed-shadingRateImage-09233
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetCoarseSampleOrderNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexed-shadingRateImage-09234
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewportShadingRatePaletteNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexed-None-08637
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则最后一次调用 vkCmdSetViewportShadingRatePaletteNV 中的viewportCount参数必须大于或等于最后一次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04141
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportSwizzleStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount创建。 -
VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04142
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportExclusiveScissorStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount创建。 -
VUID-vkCmdDrawIndexed-None-07878
如果启用了exclusiveScissor功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorEnableNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexed-None-07879
如果启用了exclusiveScissor功能,着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV动态状态创建的图形管线,并且当前命令缓冲区中最近一次调用 vkCmdSetExclusiveScissorEnableNV 将pExclusiveScissorEnables的任何元素设置为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexed-None-04876
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetRasterizerDiscardEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexed-None-04877
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBiasEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexed-logicOp-04878
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT,或者绑定了使用启用VK_DYNAMIC_STATE_LOGIC_OP_EXT动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且logicOpEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLogicOpEXT,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,绑定的图形管线是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且绑定的图形管线的任何着色器阶段写入到PrimitiveShadingRateKHR内置变量,则在执行此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-08642
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,并且绑定到图形阶段的任何着色器对象写入了PrimitiveShadingRateKHR内置变量,那么在执行此绘制命令之前,当前命令缓冲区中必须调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDrawIndexed-blendEnable-04727
如果绑定的图形管线中没有禁用光栅化,那么对于子通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则pColorBlendState的pAttachments成员中相应元素的blendEnable成员必须为VK_FALSE。 -
VUID-vkCmdDrawIndexed-None-08643
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么对于渲染通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则在当前命令缓冲区中最近一次调用vkCmdSetColorBlendEnableEXT中影响该附件索引的pColorBlendEnables的相应成员必须为VK_FALSE。 -
VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284
如果绑定的图形管线中没有禁用光栅化,并且以下任何一项均未启用那么绑定图形管线的
rasterizationSamples必须与当前子通道颜色和/或深度/模板附件相同。 -
VUID-vkCmdDrawIndexed-None-08644
如果着色器对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且以下任何一项均未启用那么在当前命令缓冲区中最近一次调用 vkCmdSetRasterizationSamplesEXT 必须已将
rasterizationSamples设置为与当前渲染通道颜色和/或深度/模板附件的样本数相同。 -
VUID-vkCmdDrawIndexed-None-08876
如果着色器对象绑定到任何图形阶段,则当前渲染通道实例必须已通过 vkCmdBeginRendering 开始。 -
VUID-vkCmdDrawIndexed-imageView-06172
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndexed-imageView-06173
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndexed-imageView-06174
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndexed-imageView-06175
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndexed-imageView-06176
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndexed-imageView-06177
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndexed-viewMask-06178
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::viewMask相等的 VkPipelineRenderingCreateInfo::viewMask创建。 -
VUID-vkCmdDrawIndexed-colorAttachmentCount-06179
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::colorAttachmentCount相等的 VkPipelineRenderingCreateInfo::colorAttachmentCount创建。 -
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08910
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建。 -
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08912
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView等于 VK_NULL_HANDLE 的元素必须使用于创建绑定管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08911
如果启用了dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建,或者如果 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的对应元素存在,则必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexed-colorAttachmentCount-09362
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,VkRenderingInfo::colorAttachmentCount等于1,并且没有任何着色器对象绑定到任何图形阶段,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个resolveImageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDrawIndexed-None-09363
如果没有着色器对象绑定到任何图形阶段,当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount等于1开始的,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDrawIndexed-None-09364
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDrawIndexed-None-09365
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDrawIndexed-None-09366
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDrawIndexed-rasterizationSamples-09367
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDrawIndexed-None-09368
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDrawIndexed-None-09369
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDrawIndexed-pFragmentSize-09370
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDrawIndexed-pFragmentSize-09371
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDrawIndexed-None-07749
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexed-None-08646
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexed-attachmentCount-07750
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于绑定图形管线的VkPipelineColorBlendStateCreateInfo::attachmentCount -
VUID-vkCmdDrawIndexed-None-08647
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在当前命令缓冲区中最近一次调用vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于当前渲染过程实例中的颜色附件数量 -
VUID-vkCmdDrawIndexed-None-07751
如果启用了VK_EXT_discard_rectangles扩展,绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中包含了一个 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09236
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中不包含 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexed-None-07880
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须调用 vkCmdSetDiscardRectangleEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexed-None-07881
如果启用了VK_EXT_discard_rectangles扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须调用过 vkCmdSetDiscardRectangleModeEXT,并且在当前命令缓冲区中没有后续失效。 -
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08913
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08914
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat。 -
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08915
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值不等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08916
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08917
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat。 -
VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08918
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值不等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexed-imageView-06183
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR创建的。 -
VUID-vkCmdDrawIndexed-imageView-06184
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT创建的。 -
VUID-vkCmdDrawIndexed-colorAttachmentCount-06185
如果绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的pColorAttachmentSamples成员的相应元素相同的采样计数创建。 -
VUID-vkCmdDrawIndexed-pDepthAttachment-06186
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndexed-pStencilAttachment-06187
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07285
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与绑定图形管线的rasterizationSamples值相同的采样计数创建。 -
VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07286
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07287
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndexed-pNext-07935
如果此命令是在使用 vkCmdBeginRendering 启动的渲染通道实例内调用的,并且 VkRenderingInfo 的pNext链包含一个 VkMultisampledRenderToSingleSampledInfoEXT 结构,其中multisampledRenderToSingleSampledEnable等于VK_TRUE,那么绑定图形管线的rasterizationSamples的值必须等于 VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples。 -
VUID-vkCmdDrawIndexed-renderPass-06198
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,那么绑定的管线必须使用 VkGraphicsPipelineCreateInfo::renderPass等于 VK_NULL_HANDLE 创建。 -
VUID-vkCmdDrawIndexed-pColorAttachments-08963
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,并且存在一个绑定了片段着色器的图形管线,该片段着色器静态写入颜色附件,颜色写入掩码不为零,颜色写入已启用,并且 VkRenderingInfo::pColorAttachments->imageView的相应元素不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的相应元素必须不是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexed-pDepthAttachment-08964
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了深度测试、启用了深度写入,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexed-pStencilAttachment-08965
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了模板测试,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithRasterizerDiscard-06708
如果primitivesGeneratedQueryWithRasterizerDiscard功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则 必须 不启用光栅化丢弃。 -
VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709
如果primitivesGeneratedQueryWithNonZeroStreams功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则绑定的图形管线 必须 不是使用VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream中的非零值创建的。 -
VUID-vkCmdDrawIndexed-None-07620
如果启用了depthClamp功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetDepthClampEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07621
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_POLYGON_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetPolygonModeEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07622
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetRasterizationSamplesEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07623
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_MASK_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetSampleMaskEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08919
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的,并且在上次调用 vkCmdSetAlphaToCoverageEnableEXT 时alphaToCoverageEnable为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08920
如果有 shader 对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetAlphaToCoverageEnableEXT 时将alphaToCoverageEnable设置为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDrawIndexed-None-07624
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToCoverageEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07625
如果启用了alphaToOne功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToOneEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07626
如果启用了logicOp功能,并且有 shader 对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetLogicOpEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07627
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态创建的,则在本次绘制命令之前, 必须 已调用 vkCmdSetColorBlendEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-08657
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexed-None-07628
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexed-None-08658
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且最近一次针对任何附件调用 vkCmdSetColorBlendEnableEXT 时将该附件在pColorBlendEnables中的值设置为VK_TRUE,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexed-None-07629
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexed-None-08659
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexed-None-07630
如果启用了geometryStreams特性,并且着色器对象绑定到VK_SHADER_STAGE_GEOMETRY_BIT阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetRasterizationStreamEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexed-None-07631
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在当前绘制命令之前,必须调用过 vkCmdSetConservativeRasterizationModeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexed-None-07632
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT动态状态的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且conservativeRasterizationMode的当前值为VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,则在当前绘制命令之前,必须调用过 vkCmdSetExtraPrimitiveOverestimationSizeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexed-None-07633
如果启用了depthClipEnable特性,并且着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetDepthClipEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexed-None-07635
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendAdvancedEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09416
如果启用了VK_EXT_blend_operation_advanced扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在当前绘制命令之前,必须至少调用过 vkCmdSetColorBlendEquationEXT 和 vkCmdSetColorBlendAdvancedEXT 中的一个,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexed-None-07636
如果启用了VK_EXT_provoking_vertex扩展,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT动态状态的图形管线,并且 当前值 的rasterizerDiscardEnable为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetProvokingVertexModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexed-None-07637
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexed-None-08666
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexed-None-08667
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexed-None-08668
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexed-None-07638
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexed-None-08669
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexed-None-08670
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexed-None-08671
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexed-None-07849
如果启用了stippledRectangularLines、stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且着色器对象绑定到任何图形阶段,或者使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE动态状态创建的绑定图形管线状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stippledLineEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetLineStipple 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexed-None-07639
如果启用了depthClipControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClipNegativeOneToOneEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexed-None-09650
如果启用了depthClampControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT动态状态创建的图形管线,并且depthClampEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClampRangeEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexed-None-07640
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportWScalingEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexed-None-07641
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportSwizzleNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexed-None-07642
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexed-None-07643
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageToColorEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorLocationNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexed-None-07644
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationModeNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexed-None-07645
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationMode的当前值不是VK_COVERAGE_MODULATION_MODE_NONE_NV的任何值,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationTableEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexed-None-07646
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationTableEnable的当前值为VK_TRUE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageModulationTableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07647
如果启用了shadingRateImage特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetShadingRateImageEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-pipelineFragmentShadingRate-09238
如果启用了pipelineFragmentShadingRate特性,并且绑定了一个着色器对象到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetFragmentShadingRateKHR,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07648
如果启用了representativeFragmentTest特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetRepresentativeFragmentTestEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-None-07649
如果启用了coverageReductionMode特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageReductionModeNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexed-pColorBlendEnables-07470
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT状态的情况下创建的,并且最后一次调用 vkCmdSetColorBlendEnableEXT 为任何附件将pColorBlendEnables设置为VK_TRUE,那么对于子通道中的这些附件,相应的图像视图的 格式特性 必须 包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT。 -
VUID-vkCmdDrawIndexed-rasterizationSamples-07471
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前子通道不使用任何颜色和/或深度/模板附件,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 遵循 零附件子通道 的规则。 -
VUID-vkCmdDrawIndexed-samples-07472
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态且禁用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于用于创建绑定的图形管线的 VkPipelineMultisampleStateCreateInfo::rasterizationSamples参数。 -
VUID-vkCmdDrawIndexed-samples-07473
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples参数。 -
VUID-vkCmdDrawIndexed-rasterizationSamples-07474
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且multisampledRenderToSingleSampled特性未启用,并且既没有启用VK_AMD_mixed_attachment_samples扩展,也没有启用VK_NV_framebuffer_mixed_samples扩展,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与当前子通道的颜色和/或深度/模板附件相同。 -
VUID-vkCmdDrawIndexed-None-09211
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,或者一个着色器对象被绑定到任何图形阶段,并且当前渲染通道实例包含一个multisampledRenderToSingleSampledEnable等于VK_TRUE的 VkMultisampledRenderToSingleSampledInfoEXT 结构,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与该结构的rasterizationSamples成员相同。 -
VUID-vkCmdDrawIndexed-firstAttachment-07476
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态的情况下创建的,那么在此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件 必须 为当前子通道中的所有活动颜色附件指定启用。 -
VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09417
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件启用。 -
VUID-vkCmdDrawIndexed-firstAttachment-07477
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09418
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且存在绑定的颜色附件,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDrawIndexed-firstAttachment-07478
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09419
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDrawIndexed-firstAttachment-07479
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendAdvancedEXT,并且vkCmdSetColorBlendAdvancedEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定高级混合方程式。 -
VUID-vkCmdDrawIndexed-advancedBlendMaxColorAttachments-07480
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT和VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,并且最近一次调用 vkCmdSetColorBlendEnableEXT 和 vkCmdSetColorBlendAdvancedEXT 已启用高级混合,则当前子通道中的活动颜色附件的数量必须不超过advancedBlendMaxColorAttachments。 -
VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-07481
如果未启用primitivesGeneratedQueryWithNonZeroStreams功能,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,并且绑定的图形管线创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT状态,则最近一次调用 vkCmdSetRasterizationStreamEXT 必须已将rasterizationStream设置为零。 -
VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07482
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态并禁用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于绑定图形管线创建时使用的 VkPipelineMultisampleStateCreateInfo 结构的rasterizationSamples成员。 -
VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07483
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于最近一次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples参数。 -
VUID-vkCmdDrawIndexed-sampleLocationsEnable-07484
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,并且当前子通道具有深度/模板附件,则该附件的创建必须设置了VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位。 -
VUID-vkCmdDrawIndexed-sampleLocationsEnable-07485
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中sampleLocationsInfo.sampleLocationGridSize.width必须能被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者是通过 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回的,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDrawIndexed-sampleLocationsEnable-07486
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则上次调用 vkCmdSetSampleLocationsEXT 中的sampleLocationsInfo.sampleLocationGridSize.height**必须** 可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDrawIndexed-sampleLocationsEnable-07487
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则片段着色器代码**必须**不得静态使用扩展指令InterpolateAtSample。 -
VUID-vkCmdDrawIndexed-sampleLocationsEnable-07936
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.width**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDrawIndexed-sampleLocationsEnable-07937
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.height**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDrawIndexed-sampleLocationsEnable-07938
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationsPerPixel**必须**等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples。 -
VUID-vkCmdDrawIndexed-coverageModulationTableEnable-07488
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageModulationTableEnableNV 将coverageModulationTableEnable设置为VK_TRUE,则上次调用 vkCmdSetCoverageModulationTableNV 中的coverageModulationTableCount参数**必须**等于当前的rasterizationSamples除以当前子通道中的颜色样本数量。 -
VUID-vkCmdDrawIndexed-rasterizationSamples-07489
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且当前子通道具有深度/模板附件,且在绑定的管线中启用了深度测试、模板测试或深度边界测试,则当前的rasterizationSamples**必须**与深度/模板附件的样本计数相同。 -
VUID-vkCmdDrawIndexed-coverageToColorEnable-07490
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09420
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDrawIndexed-coverageReductionMode-07491
如果启用了VK_NV_coverage_reduction_mode扩展,并且绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前的覆盖率缩减模式coverageReductionMode、当前的rasterizationSamples以及颜色和深度/模板附件(如果子通道有这些附件)的采样计数 必须 是 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV 返回的有效组合。 -
VUID-vkCmdDrawIndexed-viewportCount-07492
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但未启用VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么绑定的图形管线 必须 是使用 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数创建的。 -
VUID-vkCmdDrawIndexed-viewportCount-07493
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexed-viewportCount-09421
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexed-rasterizationSamples-07494
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且如果当前子通道有任何颜色附件,且上次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples大于颜色采样数,那么管线的sampleShadingEnable必须 为VK_FALSE。 -
VUID-vkCmdDrawIndexed-stippledLineEnable-07495
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR,那么stippledRectangularLines特性 必须 启用。 -
VUID-vkCmdDrawIndexed-stippledLineEnable-07496
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_BRESENHAM,那么stippledBresenhamLines特性 必须 启用。 -
VUID-vkCmdDrawIndexed-stippledLineEnable-07497
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,那么stippledSmoothLines特性 必须 启用。 -
VUID-vkCmdDrawIndexed-stippledLineEnable-07498
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_DEFAULT,那么stippledRectangularLines特性 必须 启用,并且 VkPhysicalDeviceLimits::strictLines必须 为VK_TRUE。 -
VUID-vkCmdDrawIndexed-conservativePointAndLineRasterization-07499
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且不支持conservativePointAndLineRasterization,并且最后一个光栅化前着色器阶段输出的有效图元拓扑结构为直线或点,那么上次调用 vkCmdSetConservativeRasterizationModeEXT 设置的conservativeRasterizationMode必须 为VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT。 -
VUID-vkCmdDrawIndexed-stage-07073
如果绑定的管线是使用 VkPipelineShaderStageCreateInfo::stage成员,该成员是 VkGraphicsPipelineCreateInfo::pStages的一个元素,设置为VK_SHADER_STAGE_VERTEX_BIT、VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT、VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT创建的,那么 网格着色器查询 必须 未处于活动状态。 -
VUID-vkCmdDrawIndexed-None-08877
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,当前命令缓冲区中 必须 调用过 vkCmdSetAttachmentFeedbackLoopEnableEXT 并且没有随后被 无效化。 -
VUID-vkCmdDrawIndexed-None-07850
如果动态状态是从 VkCommandBufferInheritanceViewportScissorInfoNV 继承的,则它必须在本绘图命令之前在当前命令缓冲区中设置。 -
VUID-vkCmdDrawIndexed-None-08688
如果未绑定图形管线,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_FRAGMENT_BIT元素。 -
VUID-vkCmdDrawIndexed-None-08689
如果未绑定图形管线,且启用了taskShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_TASK_BIT_EXT元素。 -
VUID-vkCmdDrawIndexed-None-08690
如果未绑定图形管线,且启用了meshShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_MESH_BIT_EXT元素。 -
VUID-vkCmdDrawIndexed-None-08693
如果未绑定图形管线,并且至少启用了taskShader和meshShader特性中的一个,则VK_SHADER_STAGE_VERTEX_BIT或VK_SHADER_STAGE_MESH_BIT_EXT阶段之一必须绑定有效的VkShaderEXT,而另一个必须未绑定VkShaderEXT。 -
VUID-vkCmdDrawIndexed-None-08694
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是在没有VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志的情况下创建的,则必须将有效的VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDrawIndexed-None-08695
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是使用VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志创建的,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDrawIndexed-None-08696
如果未绑定图形管线,并且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawIndexed-None-08698
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则同一 vkCreateShadersEXT 调用中所有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的着色器也必须绑定。 -
VUID-vkCmdDrawIndexed-None-08699
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则在同一 vkCreateShadersEXT 调用中,着色器没有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的阶段之间的任何阶段必须未绑定任何VkShaderEXT。 -
VUID-vkCmdDrawIndexed-None-08878
所有绑定的图形着色器对象必须使用相同或相同定义的推送常量范围创建。 -
VUID-vkCmdDrawIndexed-None-08879
所有绑定的图形着色器对象必须使用相同或相同定义的描述符集布局数组创建。 -
VUID-vkCmdDrawIndexed-colorAttachmentCount-09372
如果当前渲染通道实例是使用 vkCmdBeginRendering 和一个 VkRenderingInfo::colorAttachmentCount等于1开始的,且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,并且绑定了片段着色器,则它必须不声明DepthReplacing或StencilRefReplacingEXT执行模式。 -
VUID-vkCmdDrawIndexed-pDynamicStates-08715
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpDepthAttachmentReadEXT,则上次调用 vkCmdSetDepthWriteEnable 的depthWriteEnable参数必须为VK_FALSE。 -
VUID-vkCmdDrawIndexed-pDynamicStates-08716
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_STENCIL_WRITE_MASK创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpStencilAttachmentReadEXT,则上次调用 vkCmdSetStencilWriteMask 的writeMask参数必须为0。 -
VUID-vkCmdDrawIndexed-None-09116
如果将着色器对象绑定到任何图形阶段,或者使用VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT创建了绑定的图形管线,并且任何颜色附件的格式为VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,则 vkCmdSetColorWriteMaskEXT 的pColorWriteMasks参数的相应元素必须包含VK_COLOR_COMPONENT_R_BIT、VK_COLOR_COMPONENT_G_BIT和VK_COLOR_COMPONENT_B_BIT中的全部,或全部都不包含。 -
VUID-vkCmdDrawIndexed-maxFragmentDualSrcAttachments-09239
如果任何附件启用了混合,并且该附件的源或目标混合因子使用了辅助颜色输入,则在此命令执行的FragmentExecutionModel中静态使用的任何输出附件的Location最大值必须小于maxFragmentDualSrcAttachments。 -
VUID-vkCmdDrawIndexed-None-09548
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则由vkCmdSetRenderingAttachmentLocations设置的VkRenderingAttachmentLocationInfo::pColorAttachmentLocations的每个元素的值必须与绑定的管道中相应元素的值匹配。 -
VUID-vkCmdDrawIndexed-None-09549
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则绑定管道中的输入附件索引映射必须与通过VkRenderingInputAttachmentIndexInfo为当前渲染通道实例设置的索引映射匹配。 -
VUID-vkCmdDrawIndexed-None-09642
如果当前渲染通道是通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始的,则绑定的图形管线必须使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建。 -
VUID-vkCmdDrawIndexed-None-09643
如果绑定的图形管线是使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建的,则当前渲染通道必须通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始。
-
VUID-vkCmdDrawIndexed-commandBuffer-02712
如果commandBuffer是一个受保护的命令缓冲区,并且不支持protectedNoFault,则此命令使用的管道绑定点所绑定的VkPipeline对象写入的任何资源必须不是不受保护的资源。 -
VUID-vkCmdDrawIndexed-commandBuffer-02713
如果commandBuffer是一个受保护的命令缓冲区,并且不支持protectedNoFault,则此命令使用的管道绑定点所绑定的VkPipeline对象中,除了帧缓冲区空间和计算阶段之外的管道阶段必须不写入任何资源。 -
VUID-vkCmdDrawIndexed-commandBuffer-04617
如果绑定到此命令使用的管道绑定点的VkPipeline的任何着色器阶段使用了RayQueryKHR功能,则commandBuffer必须不是受保护的命令缓冲区。
-
VUID-vkCmdDrawIndexed-None-04007
通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须绑定有效的或VK_NULL_HANDLE 缓冲区。 -
VUID-vkCmdDrawIndexed-None-04008
如果未启用nullDescriptor功能,则通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须不是VK_NULL_HANDLE。 -
VUID-vkCmdDrawIndexed-None-02721
如果未启用robustBufferAccess功能,并且该管道的创建没有为vertexInputs启用VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,则对于给定的顶点缓冲区绑定,提取的任何属性数据必须完全包含在相应的顶点缓冲区绑定中,如顶点输入描述中所述。 -
VUID-vkCmdDrawIndexed-format-10389
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format是打包格式,并且未启用legacyVertexAttributes,则根据顶点输入计算计算的attribAddress值必须是format的大小的倍数。 -
VUID-vkCmdDrawIndexed-format-10390
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format不是打包格式,并且要么未启用legacyVertexAttributes,要么format具有 64 位组件,则根据顶点输入计算计算的attribAddress值必须是format的组件大小的倍数。 -
VUID-vkCmdDrawIndexed-None-07842
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是使用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态启用的,那么在本次绘制命令之前,必须调用过 vkCmdSetPrimitiveTopology 并且没有在当前命令缓冲区中被后续失效。 -
VUID-vkCmdDrawIndexed-dynamicPrimitiveTopologyUnrestricted-07500
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态且dynamicPrimitiveTopologyUnrestricted为VK_FALSE的情况下创建的,则vkCmdSetPrimitiveTopology的primitiveTopology参数必须与管线 VkPipelineInputAssemblyStateCreateInfo::topology状态具有相同的图元拓扑类别。 -
VUID-vkCmdDrawIndexed-primitiveTopology-10286
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,那么在执行此绘制命令之前,vkCmdSetPrimitiveTopology 必须将primitiveTopology设置为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST。 -
VUID-vkCmdDrawIndexed-pStrides-04913
如果绑定的图形管线是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE动态状态但未启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdBindVertexBuffers2 且未在当前命令缓冲区中随后被失效,并且 vkCmdBindVertexBuffers2 的pStrides参数必须不为NULL。 -
VUID-vkCmdDrawIndexed-None-04914
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetVertexInputEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexed-Input-07939
如果vertexAttributeRobustness未启用,并且有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在VertexExecutionModelOpEntryPoint中,所有使用Location修饰的Input存储类变量必须包含 VkVertexInputAttributeDescription2EXT::location中的一个位置。 -
VUID-vkCmdDrawIndexed-Input-08734
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且legacyVertexAttributes功能未启用,或者在VertexExecutionModelOpEntryPoint中,与给定Location的Input变量关联的 SPIR-V 类型是 64 位的,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的数值类型必须与 VkVertexInputAttributeDescription2EXT::format相同。 -
VUID-vkCmdDrawIndexed-format-08936
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的标量宽度必须为 64 位。 -
VUID-vkCmdDrawIndexed-format-08937
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且在VertexExecutionModelOpEntryPoint中,与Location修饰的Input变量关联的标量宽度是 64 位的,那么对应的 VkVertexInputAttributeDescription2EXT::format必须具有 64 位分量。 -
VUID-vkCmdDrawIndexed-None-09203
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,对应Location的所有Input变量必须不使用格式中不存在的分量。 -
VUID-vkCmdDrawIndexed-None-04875
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT动态状态的情况下创建的,并且primitiveTopology的当前值 为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,那么在执行此绘制命令之前,必须调用过 vkCmdSetPatchControlPointsEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexed-None-04879
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetPrimitiveRestartEnable 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexed-None-09637
如果primitiveTopologyListRestart功能未启用,拓扑为VK_PRIMITIVE_TOPOLOGY_POINT_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST、VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY或VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么 vkCmdSetPrimitiveRestartEnable 必须为VK_FALSE。 -
VUID-vkCmdDrawIndexed-stage-06481
绑定的图形管线必须不是使用 VkPipelineShaderStageCreateInfo::stage成员(该成员是 VkGraphicsPipelineCreateInfo::pStages的任意元素的成员)设置为VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawIndexed-None-08885
必须没有着色器对象绑定到VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawIndexed-None-07619
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT阶段,或者绑定了一个使用启用VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须调用过 vkCmdSetTessellationDomainOriginEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexed-None-08684
如果没有绑定图形管线,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_VERTEX_BIT元素 -
VUID-vkCmdDrawIndexed-None-08685
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT元素 -
VUID-vkCmdDrawIndexed-None-08686
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT元素 -
VUID-vkCmdDrawIndexed-None-08687
如果没有绑定图形管线,且启用了geometryShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_GEOMETRY_BIT元素
-
VUID-vkCmdDrawIndexed-None-07312
如果未启用maintenance6功能,则必须绑定有效的索引缓冲区。
-
VUID-vkCmdDrawIndexed-pNext-09461
如果绑定的图形管线状态是通过 VkPipelineVertexInputDivisorStateCreateInfo 在 VkGraphicsPipelineCreateInfo::pVertexInputState的pNext链中创建的,VkPipelineVertexInputDivisorStateCreateInfo::pVertexBindingDivisors的任何成员在divisor中的值不是1,并且 VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance为VK_FALSE,则firstInstance必须为0 -
VUID-vkCmdDrawIndexed-None-09462
如果使用着色器对象进行绘制,或者绑定的图形管线状态启用了VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态,则 vkCmdSetVertexInputEXT 调用中设置此动态状态的pVertexBindingDescriptions参数的任何成员在divisor中的值不是1,并且 VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance为VK_FALSE,则firstInstance必须为0
-
VUID-vkCmdDrawIndexed-robustBufferAccess2-08798
如果未启用robustBufferAccess2功能,则 (indexSize× (firstIndex+indexCount) +offset) 必须小于或等于绑定的索引缓冲区的大小。其中indexSize基于indexType指定的类型,并且索引缓冲区、indexType和offset通过vkCmdBindIndexBuffer或vkCmdBindIndexBuffer2指定。如果使用vkCmdBindIndexBuffer2绑定索引缓冲区,则绑定索引缓冲区的大小为 vkCmdBindIndexBuffer2::size。
-
VUID-vkCmdDrawIndexed-commandBuffer-parameter
commandBuffer必须 为有效的 VkCommandBuffer 句柄。 -
VUID-vkCmdDrawIndexed-commandBuffer-recording
commandBuffer必须 处于记录状态。 -
VUID-vkCmdDrawIndexed-commandBuffer-cmdpool
分配commandBuffer的VkCommandPool必须 支持图形操作。
-
对
commandBuffer的主机访问必须进行外部同步。 -
对分配
commandBuffer的VkCommandPool的主机访问必须进行外部同步。
要记录一系列没有状态变化的有序绘制,请调用
// Provided by VK_EXT_multi_draw
void vkCmdDrawMultiEXT(
VkCommandBuffer commandBuffer,
uint32_t drawCount,
const VkMultiDrawInfoEXT* pVertexInfo,
uint32_t instanceCount,
uint32_t firstInstance,
uint32_t stride);
-
commandBuffer是要记录命令的命令缓冲区。 -
drawCount是要执行的绘制次数,可以为零。 -
pVertexInfo是指向 VkMultiDrawInfoEXT 数组的指针,其中包含要绘制的顶点信息。 -
instanceCount是每次绘制的实例数。 -
firstInstance是每次绘制中第一个实例的实例 ID。 -
stride是pVertexInfo的连续元素之间的字节步幅。
记录的绘制次数为 drawCount,每次绘制都从 pVertexInfo 中顺序读取 firstVertex 和 vertexCount。对于每个记录的绘制,图元的组装方式与 vkCmdDraw 相同,并绘制 instanceCount 次,其中 instanceIndex 从 firstInstance 开始,并为每个实例顺序递增。
-
VUID-vkCmdDrawMultiEXT-magFilter-04553
如果使用magFilter或minFilter等于VK_FILTER_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawMultiEXT-magFilter-09598
如果使用magFilter或minFilter等于VK_FILTER_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawMultiEXT-mipmapMode-04770
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawMultiEXT-mipmapMode-09599
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawMultiEXT-unnormalizedCoordinates-09635
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的levelCount和layerCount必须为 1 -
VUID-vkCmdDrawMultiEXT-None-08609
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的viewType必须为VK_IMAGE_VIEW_TYPE_1D或VK_IMAGE_VIEW_TYPE_2D -
VUID-vkCmdDrawMultiEXT-None-08610
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用,其名称中包含ImplicitLod、Dref或Proj -
VUID-vkCmdDrawMultiEXT-None-08611
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何包含 LOD 偏差或任何偏移值的 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawMultiEXT-None-06479
如果 VkImageView 使用 深度比较进行采样,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT -
VUID-vkCmdDrawMultiEXT-None-02691
如果由于此命令而使用原子操作访问 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT -
VUID-vkCmdDrawMultiEXT-None-07888
如果此命令导致使用原子操作访问VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER描述符,则存储纹理缓冲区视图的格式特性必须包含VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT。 -
VUID-vkCmdDrawMultiEXT-None-02692
如果此命令导致使用VK_FILTER_CUBIC_EXT采样 VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT。 -
VUID-vkCmdDrawMultiEXT-None-02693
如果未启用 VK_EXT_filter_cubic 扩展,且此命令导致使用VK_FILTER_CUBIC_EXT采样任何 VkImageView,则该图像视图的 VkImageViewType必须不能为VK_IMAGE_VIEW_TYPE_3D、VK_IMAGE_VIEW_TYPE_CUBE或VK_IMAGE_VIEW_TYPE_CUBE_ARRAY。 -
VUID-vkCmdDrawMultiEXT-filterCubic-02694
此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawMultiEXT-filterCubicMinmax-02695
此命令导致使用VK_FILTER_CUBIC_EXT采样且缩减模式为VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波以及 minmax 滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawMultiEXT-cubicRangeClamp-09212
如果未启用cubicRangeClamp特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerReductionModeCreateInfo::reductionMode必须不能等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM。 -
VUID-vkCmdDrawMultiEXT-reductionMode-09213
此命令导致使用 VkSamplerReductionModeCreateInfo::reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM采样的任何 VkImageView必须使用VK_FILTER_CUBIC_EXT进行采样。 -
VUID-vkCmdDrawMultiEXT-selectableCubicWeights-09214
如果未启用selectableCubicWeights特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights必须等于VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM。 -
VUID-vkCmdDrawMultiEXT-flags-02696
此命令导致采样的任何使用包含VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV的 VkImageCreateInfo::flags创建的 VkImage必须仅使用VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE的 VkSamplerAddressMode 进行采样。 -
VUID-vkCmdDrawMultiEXT-OpTypeImage-07027
对于任何作为存储图像写入,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawMultiEXT-OpTypeImage-07028
对于任何作为存储图像读取,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawMultiEXT-OpTypeImage-07029
对于任何作为存储纹理缓冲区写入,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawMultiEXT-OpTypeImage-07030
对于任何作为存储纹理缓冲区读取,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawMultiEXT-None-08600
对于 绑定着色器静态使用的每个集合 *n*,必须在同一管线绑定点将描述符集绑定到 *n*,其 VkPipelineLayout 与集合 *n* 兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawMultiEXT-None-08601
对于 绑定着色器静态使用的每个推送常量,必须为同一管线绑定点设置推送常量值,其 VkPipelineLayout 与推送常量兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawMultiEXT-None-10068
对于绑定的着色器使用的每个资源数组,用于访问数组元素的索引必须小于此命令所使用描述符集中标识绑定的描述符计数。 -
VUID-vkCmdDrawMultiEXT-maintenance4-08602
如果未启用maintenance4特性,则对于绑定的着色器静态使用的每个推送常量,必须已为同一管线绑定点设置了推送常量值,该管线绑定点具有与用于创建当前VkPipeline的VkPipelineLayout或用于创建当前VkShaderEXT的VkDescriptorSetLayout和VkPushConstantRange数组兼容的用于推送常量的VkPipelineLayout,如管线布局兼容性中所述。 -
VUID-vkCmdDrawMultiEXT-None-08114
如果通过vkCmdBindDescriptorSets指定的每个绑定描述符集中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline静态使用,且绑定的VkPipeline不是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须按照描述符有效性的描述是有效的。 -
VUID-vkCmdDrawMultiEXT-None-08115
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdBindDescriptorSets指定的,则绑定的VkPipeline必须是在没有VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawMultiEXT-None-08116
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline动态使用,且绑定的VkPipeline是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须是有效的。 -
VUID-vkCmdDrawMultiEXT-None-08604
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的任何阶段对应的VkShaderEXT动态使用,则必须是有效的。 -
VUID-vkCmdDrawMultiEXT-None-08117
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdSetDescriptorBufferOffsetsEXT指定的,则绑定的VkPipeline必须是在使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的。 -
VUID-vkCmdDrawMultiEXT-None-08119
如果描述符在创建时使用了VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkPipeline中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawMultiEXT-None-08605
如果描述符在创建时使用了VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkDescriptorSetLayout的VkShaderEXT中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawMultiEXT-None-08606
如果未启用shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点。 -
VUID-vkCmdDrawMultiEXT-None-08608
如果将管线绑定到此命令使用的管线绑定点,则自该管线绑定后,必须没有对绑定到此命令使用的管线绑定点的VkPipeline对象中静态指定的任何状态进行动态状态设置命令的任何调用。 -
VUID-vkCmdDrawMultiEXT-None-08607
如果启用了shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点,或者必须将有效和VK_NULL_HANDLE着色器对象的有效组合绑定到与此命令使用的管线绑定点对应的每个受支持的着色器阶段。 -
VUID-vkCmdDrawMultiEXT-uniformBuffers-06935
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问统一缓冲区,且该阶段的创建没有启用uniformBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawMultiEXT-None-08612
如果未启用robustBufferAccess特性,且绑定到与此命令使用的管线绑定点对应的阶段的任何VkShaderEXT访问统一缓冲区,则该VkShaderEXT必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawMultiEXT-storageBuffers-06936
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问存储缓冲区,且该阶段的创建没有启用storageBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawMultiEXT-None-08613
如果未启用robustBufferAccess特性,并且绑定到此命令所用管线绑定点的阶段的任何VkShaderEXT访问了存储缓冲区,则它必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值 -
VUID-vkCmdDrawMultiEXT-commandBuffer-02707
如果commandBuffer是一个未受保护的命令缓冲区,并且不支持protectedNoFault,则绑定的着色器访问的任何资源必须不是受保护的资源 -
VUID-vkCmdDrawMultiEXT-None-06550
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须仅与OpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawMultiEXT-ConstOffset-06551
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须不使用ConstOffset和Offset操作数 -
VUID-vkCmdDrawMultiEXT-viewType-07752
如果通过此命令访问VkImageView,则图像视图的viewType必须与SPIR-V 图像维度和 Vulkan ImageView 类型之间的兼容性中描述的OpTypeImage的Dim操作数匹配 -
VUID-vkCmdDrawMultiEXT-format-07753
如果通过此命令访问VkImageView,则图像视图的format的数值类型和OpTypeImage的SampledType操作数必须匹配 -
VUID-vkCmdDrawMultiEXT-OpImageWrite-08795
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM以外的格式创建的VkImageView,则该指令的Texel操作数的Type必须具有至少与图像视图的格式一样多的组件 -
VUID-vkCmdDrawMultiEXT-OpImageWrite-08796
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM格式创建的VkImageView,则该指令的Texel操作数的Type必须具有四个组件 -
VUID-vkCmdDrawMultiEXT-OpImageWrite-04469
如果通过此命令使用OpImageWrite访问VkBufferView,则该指令的Texel操作数的Type必须具有至少与缓冲区视图的格式一样多的组件 -
VUID-vkCmdDrawMultiEXT-SampledType-04470
如果通过此命令访问具有64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawMultiEXT-SampledType-04471
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawMultiEXT-SampledType-04472
如果通过此命令访问具有64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawMultiEXT-SampledType-04473
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawMultiEXT-sparseImageInt64Atomics-04474
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkImage对象 -
VUID-vkCmdDrawMultiEXT-sparseImageInt64Atomics-04475
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkBuffer对象 -
VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06971
如果使用OpImageWeightedSampleQCOM来采样通过此命令获得的VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM -
VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06972
如果OpImageWeightedSampleQCOM使用通过此命令获得的VkImageView作为采样权重图像,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM -
VUID-vkCmdDrawMultiEXT-OpImageBoxFilterQCOM-06973
如果使用OpImageBoxFilterQCOM对 VkImageView 进行采样以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM -
VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSSDQCOM-06974
如果使用OpImageBlockMatchSSDQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06975
如果使用OpImageBlockMatchSADQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSADQCOM-06976
如果使用OpImageBlockMatchSADQCOM或OpImageBlockMatchSSDQCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06977
如果OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM使用 VkSampler 作为此命令的结果,则采样器必须使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06978
如果除OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM之外的任何命令使用 VkSampler 作为此命令的结果,则采样器必须未使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09215
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09216
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式必须是单分量格式 -
VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09217
如果OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawMultiEXT-None-07288
此命令执行的任何着色器调用必须终止 -
VUID-vkCmdDrawMultiEXT-None-09600
如果访问类型等于VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE、VK_DESCRIPTOR_TYPE_STORAGE_IMAGE或VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT的描述符以作为此命令的结果,则该描述符标识的所有图像子资源必须位于写入描述符时标识的图像布局中 -
VUID-vkCmdDrawMultiEXT-renderPass-02684
当前的渲染过程必须与创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的renderPass成员兼容 -
VUID-vkCmdDrawMultiEXT-subpass-02685
当前渲染过程的子过程索引必须等于创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的subpass成员 -
VUID-vkCmdDrawMultiEXT-None-07748
如果任何着色器静态访问输入附件,则必须通过描述符集将有效的描述符绑定到管道 -
VUID-vkCmdDrawMultiEXT-OpTypeImage-07468
如果此管道执行的任何着色器访问Dim操作数为SubpassData的OpTypeImage变量,则它必须使用与当前子过程中有效的输入附件相对应的InputAttachmentIndex进行修饰 -
VUID-vkCmdDrawMultiEXT-None-07469
在子过程中访问的输入附件视图必须使用与相应子过程定义相同的 VkFormat 创建,并且使用 VkImageView 创建,该 VkImageView 与绑定 VkFramebuffer 中子过程的pInputAttachments[InputAttachmentIndex] 引用的附件兼容,如片段输入附件兼容性中所述 -
VUID-vkCmdDrawMultiEXT-pDepthInputAttachmentIndex-09595
在动态渲染过程中访问的、由VkRenderingInputAttachmentIndexInfo 引用的InputAttachmentIndex的输入附件视图,或者如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex或 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex为NULL则没有InputAttachmentIndex的输入附件视图,必须使用与 VkRenderingInfo 中的相应颜色、深度或模板附件兼容的 VkImageView 创建 -
VUID-vkCmdDrawMultiEXT-pDepthInputAttachmentIndex-09596
如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex和 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex均不为NULL,则通过着色器对象在动态渲染过程中访问的输入附件视图必须具有InputAttachmentIndex -
VUID-vkCmdDrawMultiEXT-InputAttachmentIndex-09597
如果通过着色器对象在动态渲染过程中访问的输入附件视图具有InputAttachmentIndex,则InputAttachmentIndex必须与VkRenderingInputAttachmentIndexInfo 中的索引匹配 -
VUID-vkCmdDrawMultiEXT-None-06537
当前渲染通道中用作附件的内存后备图像子资源必须不能以任何方式写入,除非作为此命令的附件。 -
VUID-vkCmdDrawMultiEXT-None-09000
如果颜色附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_COLOR_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawMultiEXT-None-09001
如果深度附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_DEPTH_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawMultiEXT-None-09002
如果模板附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_STENCIL_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawMultiEXT-None-09003
如果附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则此命令必须不能以任何方式访问它,除非作为附件、存储图像或采样图像。 -
VUID-vkCmdDrawMultiEXT-None-06539
如果当前子通道中任何先前记录的命令以任何方式访问了用作此子通道附件的图像子资源,而非作为附件,则此命令必须不能将该图像子资源作为附件写入。 -
VUID-vkCmdDrawMultiEXT-None-06886
如果当前渲染通道实例使用深度/模板附件,且其深度方面为只读布局,则必须禁用深度写入。 -
VUID-vkCmdDrawMultiEXT-None-06887
如果当前渲染通道实例使用深度/模板附件,且其模板方面为只读布局,并且前向和后向writeMask都不为零,并且启用了模板测试,则所有模板操作必须为VK_STENCIL_OP_KEEP。 -
VUID-vkCmdDrawMultiEXT-None-07831
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_VIEWPORT动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewport,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiEXT-None-07832
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SCISSOR动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetScissor,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiEXT-None-07833
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_LINE_WIDTH动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiEXT-None-08617
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiEXT-None-08618
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiEXT-None-08619
如果输出线图元的着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiEXT-None-07834
如果着色器对象绑定到任何图形阶段,或者绑定了一个创建时启用了VK_DYNAMIC_STATE_DEPTH_BIAS动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBiasEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBias 或 vkCmdSetDepthBias2EXT,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiEXT-None-07835
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_BLEND_CONSTANTS动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetBlendConstants,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiEXT-None-08621
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEnableEXT 将pColorBlendEnables的任何元素设置为VK_TRUE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEquationEXT 将pColorBlendEquations的相同元素设置为一个VkColorBlendEquationEXT结构,其中任何 VkBlendFactor 成员的值为VK_BLEND_FACTOR_CONSTANT_COLOR,VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,VK_BLEND_FACTOR_CONSTANT_ALPHA或VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetBlendConstants 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07836
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBoundsTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetDepthBounds 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07837
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilCompareMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07838
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_WRITE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilWriteMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07839
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_REFERENCE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilReference 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688
如果绘制记录在启用了多视图的渲染通道实例中,则最大实例索引**必须**小于或等于 VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex。 -
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689
如果绑定的图形管线是使用 VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable设置为VK_TRUE创建的,并且当前子通道具有深度/模板附件,则该附件**必须**已使用VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位集创建。 -
VUID-vkCmdDrawMultiEXT-None-07634
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-06666
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且sampleLocationsEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07840
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_CULL_MODE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetCullMode 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07841
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_FRONT_FACE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetFrontFace 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07843
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07844
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthWriteEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07845
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_COMPARE_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且depthTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthCompareOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07846
如果启用了depthBounds功能,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthBoundsTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07847
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07848
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiEXT-viewportCount-03417
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiEXT-scissorCount-03418
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetScissorWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiEXT-viewportCount-03419
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时同时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则vkCmdSetViewportWithCount的viewportCount参数必须与vkCmdSetScissorWithCount的scissorCount参数匹配。 -
VUID-vkCmdDrawMultiEXT-viewportCount-04137
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportWScalingStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawMultiEXT-viewportCount-04138
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWScalingNV,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiEXT-None-08636
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则上次调用 vkCmdSetViewportWScalingNV 中的viewportCount参数必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawMultiEXT-viewportCount-04139
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawMultiEXT-shadingRateImage-09233
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetCoarseSampleOrderNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiEXT-shadingRateImage-09234
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewportShadingRatePaletteNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiEXT-None-08637
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则最后一次调用 vkCmdSetViewportShadingRatePaletteNV 中的viewportCount参数必须大于或等于最后一次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04141
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportSwizzleStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount创建。 -
VUID-vkCmdDrawMultiEXT-VkPipelineVieportCreateInfo-04142
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportExclusiveScissorStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount创建。 -
VUID-vkCmdDrawMultiEXT-None-07878
如果启用了exclusiveScissor功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorEnableNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiEXT-None-07879
如果启用了exclusiveScissor功能,着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV动态状态创建的图形管线,并且当前命令缓冲区中最近一次调用 vkCmdSetExclusiveScissorEnableNV 将pExclusiveScissorEnables的任何元素设置为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiEXT-None-04876
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetRasterizerDiscardEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiEXT-None-04877
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBiasEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiEXT-logicOp-04878
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT,或者绑定了使用启用VK_DYNAMIC_STATE_LOGIC_OP_EXT动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且logicOpEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLogicOpEXT,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,绑定的图形管线是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且绑定的图形管线的任何着色器阶段写入到PrimitiveShadingRateKHR内置变量,则在执行此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-08642
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,并且绑定到图形阶段的任何着色器对象写入了PrimitiveShadingRateKHR内置变量,那么在执行此绘制命令之前,当前命令缓冲区中必须调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDrawMultiEXT-blendEnable-04727
如果绑定的图形管线中没有禁用光栅化,那么对于子通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则pColorBlendState的pAttachments成员中相应元素的blendEnable成员必须为VK_FALSE。 -
VUID-vkCmdDrawMultiEXT-None-08643
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么对于渲染通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则在当前命令缓冲区中最近一次调用vkCmdSetColorBlendEnableEXT中影响该附件索引的pColorBlendEnables的相应成员必须为VK_FALSE。 -
VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07284
如果绑定的图形管线中没有禁用光栅化,并且以下任何一项均未启用那么绑定图形管线的
rasterizationSamples必须与当前子通道颜色和/或深度/模板附件相同。 -
VUID-vkCmdDrawMultiEXT-None-08644
如果着色器对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且以下任何一项均未启用那么在当前命令缓冲区中最近一次调用 vkCmdSetRasterizationSamplesEXT 必须已将
rasterizationSamples设置为与当前渲染通道颜色和/或深度/模板附件的样本数相同。 -
VUID-vkCmdDrawMultiEXT-None-08876
如果着色器对象绑定到任何图形阶段,则当前渲染通道实例必须已通过 vkCmdBeginRendering 开始。 -
VUID-vkCmdDrawMultiEXT-imageView-06172
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawMultiEXT-imageView-06173
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawMultiEXT-imageView-06174
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawMultiEXT-imageView-06175
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawMultiEXT-imageView-06176
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawMultiEXT-imageView-06177
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawMultiEXT-viewMask-06178
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::viewMask相等的 VkPipelineRenderingCreateInfo::viewMask创建。 -
VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::colorAttachmentCount相等的 VkPipelineRenderingCreateInfo::colorAttachmentCount创建。 -
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08910
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建。 -
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08912
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView等于 VK_NULL_HANDLE 的元素必须使用于创建绑定管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911
如果启用了dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建,或者如果 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的对应元素存在,则必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09362
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,VkRenderingInfo::colorAttachmentCount等于1,并且没有任何着色器对象绑定到任何图形阶段,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个resolveImageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDrawMultiEXT-None-09363
如果没有着色器对象绑定到任何图形阶段,当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount等于1开始的,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDrawMultiEXT-None-09364
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDrawMultiEXT-None-09365
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDrawMultiEXT-None-09366
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDrawMultiEXT-rasterizationSamples-09367
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDrawMultiEXT-None-09368
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDrawMultiEXT-None-09369
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDrawMultiEXT-pFragmentSize-09370
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDrawMultiEXT-pFragmentSize-09371
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDrawMultiEXT-None-07749
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawMultiEXT-None-08646
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawMultiEXT-attachmentCount-07750
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于绑定图形管线的VkPipelineColorBlendStateCreateInfo::attachmentCount -
VUID-vkCmdDrawMultiEXT-None-08647
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在当前命令缓冲区中最近一次调用vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于当前渲染过程实例中的颜色附件数量 -
VUID-vkCmdDrawMultiEXT-None-07751
如果启用了VK_EXT_discard_rectangles扩展,绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中包含了一个 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09236
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中不包含 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawMultiEXT-None-07880
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须调用 vkCmdSetDiscardRectangleEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawMultiEXT-None-07881
如果启用了VK_EXT_discard_rectangles扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须调用过 vkCmdSetDiscardRectangleModeEXT,并且在当前命令缓冲区中没有后续失效。 -
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08913
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08914
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat。 -
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08915
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值不等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08916
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08917
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat。 -
VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08918
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值不等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiEXT-imageView-06183
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR创建的。 -
VUID-vkCmdDrawMultiEXT-imageView-06184
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT创建的。 -
VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06185
如果绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的pColorAttachmentSamples成员的相应元素相同的采样计数创建。 -
VUID-vkCmdDrawMultiEXT-pDepthAttachment-06186
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07285
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与绑定图形管线的rasterizationSamples值相同的采样计数创建。 -
VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07286
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07287
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDrawMultiEXT-pNext-07935
如果此命令是在使用 vkCmdBeginRendering 启动的渲染通道实例内调用的,并且 VkRenderingInfo 的pNext链包含一个 VkMultisampledRenderToSingleSampledInfoEXT 结构,其中multisampledRenderToSingleSampledEnable等于VK_TRUE,那么绑定图形管线的rasterizationSamples的值必须等于 VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples。 -
VUID-vkCmdDrawMultiEXT-renderPass-06198
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,那么绑定的管线必须使用 VkGraphicsPipelineCreateInfo::renderPass等于 VK_NULL_HANDLE 创建。 -
VUID-vkCmdDrawMultiEXT-pColorAttachments-08963
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,并且存在一个绑定了片段着色器的图形管线,该片段着色器静态写入颜色附件,颜色写入掩码不为零,颜色写入已启用,并且 VkRenderingInfo::pColorAttachments->imageView的相应元素不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的相应元素必须不是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiEXT-pDepthAttachment-08964
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了深度测试、启用了深度写入,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiEXT-pStencilAttachment-08965
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了模板测试,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708
如果primitivesGeneratedQueryWithRasterizerDiscard功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则 必须 不启用光栅化丢弃。 -
VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-06709
如果primitivesGeneratedQueryWithNonZeroStreams功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则绑定的图形管线 必须 不是使用VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream中的非零值创建的。 -
VUID-vkCmdDrawMultiEXT-None-07620
如果启用了depthClamp功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetDepthClampEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07621
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_POLYGON_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetPolygonModeEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07622
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetRasterizationSamplesEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07623
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_MASK_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetSampleMaskEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-alphaToCoverageEnable-08919
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的,并且在上次调用 vkCmdSetAlphaToCoverageEnableEXT 时alphaToCoverageEnable为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDrawMultiEXT-alphaToCoverageEnable-08920
如果有 shader 对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetAlphaToCoverageEnableEXT 时将alphaToCoverageEnable设置为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDrawMultiEXT-None-07624
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToCoverageEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07625
如果启用了alphaToOne功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToOneEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07626
如果启用了logicOp功能,并且有 shader 对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetLogicOpEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07627
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态创建的,则在本次绘制命令之前, 必须 已调用 vkCmdSetColorBlendEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-08657
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiEXT-None-07628
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiEXT-None-08658
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且最近一次针对任何附件调用 vkCmdSetColorBlendEnableEXT 时将该附件在pColorBlendEnables中的值设置为VK_TRUE,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiEXT-None-07629
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiEXT-None-08659
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiEXT-None-07630
如果启用了geometryStreams特性,并且着色器对象绑定到VK_SHADER_STAGE_GEOMETRY_BIT阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetRasterizationStreamEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiEXT-None-07631
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在当前绘制命令之前,必须调用过 vkCmdSetConservativeRasterizationModeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiEXT-None-07632
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT动态状态的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且conservativeRasterizationMode的当前值为VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,则在当前绘制命令之前,必须调用过 vkCmdSetExtraPrimitiveOverestimationSizeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiEXT-None-07633
如果启用了depthClipEnable特性,并且着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetDepthClipEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiEXT-None-07635
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendAdvancedEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09416
如果启用了VK_EXT_blend_operation_advanced扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在当前绘制命令之前,必须至少调用过 vkCmdSetColorBlendEquationEXT 和 vkCmdSetColorBlendAdvancedEXT 中的一个,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiEXT-None-07636
如果启用了VK_EXT_provoking_vertex扩展,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT动态状态的图形管线,并且 当前值 的rasterizerDiscardEnable为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetProvokingVertexModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiEXT-None-07637
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiEXT-None-08666
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiEXT-None-08667
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiEXT-None-08668
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiEXT-None-07638
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiEXT-None-08669
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiEXT-None-08670
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiEXT-None-08671
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiEXT-None-07849
如果启用了stippledRectangularLines、stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且着色器对象绑定到任何图形阶段,或者使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE动态状态创建的绑定图形管线状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stippledLineEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetLineStipple 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiEXT-None-07639
如果启用了depthClipControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClipNegativeOneToOneEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiEXT-None-09650
如果启用了depthClampControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT动态状态创建的图形管线,并且depthClampEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClampRangeEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiEXT-None-07640
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportWScalingEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiEXT-None-07641
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportSwizzleNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiEXT-None-07642
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiEXT-None-07643
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageToColorEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorLocationNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiEXT-None-07644
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationModeNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiEXT-None-07645
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationMode的当前值不是VK_COVERAGE_MODULATION_MODE_NONE_NV的任何值,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationTableEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiEXT-None-07646
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationTableEnable的当前值为VK_TRUE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageModulationTableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07647
如果启用了shadingRateImage特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetShadingRateImageEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-pipelineFragmentShadingRate-09238
如果启用了pipelineFragmentShadingRate特性,并且绑定了一个着色器对象到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetFragmentShadingRateKHR,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07648
如果启用了representativeFragmentTest特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetRepresentativeFragmentTestEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-None-07649
如果启用了coverageReductionMode特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageReductionModeNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiEXT-pColorBlendEnables-07470
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT状态的情况下创建的,并且最后一次调用 vkCmdSetColorBlendEnableEXT 为任何附件将pColorBlendEnables设置为VK_TRUE,那么对于子通道中的这些附件,相应的图像视图的 格式特性 必须 包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT。 -
VUID-vkCmdDrawMultiEXT-rasterizationSamples-07471
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前子通道不使用任何颜色和/或深度/模板附件,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 遵循 零附件子通道 的规则。 -
VUID-vkCmdDrawMultiEXT-samples-07472
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态且禁用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于用于创建绑定的图形管线的 VkPipelineMultisampleStateCreateInfo::rasterizationSamples参数。 -
VUID-vkCmdDrawMultiEXT-samples-07473
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples参数。 -
VUID-vkCmdDrawMultiEXT-rasterizationSamples-07474
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且multisampledRenderToSingleSampled特性未启用,并且既没有启用VK_AMD_mixed_attachment_samples扩展,也没有启用VK_NV_framebuffer_mixed_samples扩展,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与当前子通道的颜色和/或深度/模板附件相同。 -
VUID-vkCmdDrawMultiEXT-None-09211
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,或者一个着色器对象被绑定到任何图形阶段,并且当前渲染通道实例包含一个multisampledRenderToSingleSampledEnable等于VK_TRUE的 VkMultisampledRenderToSingleSampledInfoEXT 结构,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与该结构的rasterizationSamples成员相同。 -
VUID-vkCmdDrawMultiEXT-firstAttachment-07476
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态的情况下创建的,那么在此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件 必须 为当前子通道中的所有活动颜色附件指定启用。 -
VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09417
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件启用。 -
VUID-vkCmdDrawMultiEXT-firstAttachment-07477
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09418
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且存在绑定的颜色附件,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDrawMultiEXT-firstAttachment-07478
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09419
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDrawMultiEXT-firstAttachment-07479
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendAdvancedEXT,并且vkCmdSetColorBlendAdvancedEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定高级混合方程式。 -
VUID-vkCmdDrawMultiEXT-advancedBlendMaxColorAttachments-07480
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT和VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,并且最近一次调用 vkCmdSetColorBlendEnableEXT 和 vkCmdSetColorBlendAdvancedEXT 已启用高级混合,则当前子通道中的活动颜色附件的数量必须不超过advancedBlendMaxColorAttachments。 -
VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-07481
如果未启用primitivesGeneratedQueryWithNonZeroStreams功能,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,并且绑定的图形管线创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT状态,则最近一次调用 vkCmdSetRasterizationStreamEXT 必须已将rasterizationStream设置为零。 -
VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07482
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态并禁用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于绑定图形管线创建时使用的 VkPipelineMultisampleStateCreateInfo 结构的rasterizationSamples成员。 -
VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07483
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于最近一次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples参数。 -
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07484
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,并且当前子通道具有深度/模板附件,则该附件的创建必须设置了VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位。 -
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07485
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中sampleLocationsInfo.sampleLocationGridSize.width必须能被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者是通过 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回的,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07486
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则上次调用 vkCmdSetSampleLocationsEXT 中的sampleLocationsInfo.sampleLocationGridSize.height**必须** 可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07487
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则片段着色器代码**必须**不得静态使用扩展指令InterpolateAtSample。 -
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07936
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.width**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07937
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.height**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07938
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationsPerPixel**必须**等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples。 -
VUID-vkCmdDrawMultiEXT-coverageModulationTableEnable-07488
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageModulationTableEnableNV 将coverageModulationTableEnable设置为VK_TRUE,则上次调用 vkCmdSetCoverageModulationTableNV 中的coverageModulationTableCount参数**必须**等于当前的rasterizationSamples除以当前子通道中的颜色样本数量。 -
VUID-vkCmdDrawMultiEXT-rasterizationSamples-07489
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且当前子通道具有深度/模板附件,且在绑定的管线中启用了深度测试、模板测试或深度边界测试,则当前的rasterizationSamples**必须**与深度/模板附件的样本计数相同。 -
VUID-vkCmdDrawMultiEXT-coverageToColorEnable-07490
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09420
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDrawMultiEXT-coverageReductionMode-07491
如果启用了VK_NV_coverage_reduction_mode扩展,并且绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前的覆盖率缩减模式coverageReductionMode、当前的rasterizationSamples以及颜色和深度/模板附件(如果子通道有这些附件)的采样计数 必须 是 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV 返回的有效组合。 -
VUID-vkCmdDrawMultiEXT-viewportCount-07492
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但未启用VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么绑定的图形管线 必须 是使用 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数创建的。 -
VUID-vkCmdDrawMultiEXT-viewportCount-07493
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawMultiEXT-viewportCount-09421
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawMultiEXT-rasterizationSamples-07494
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且如果当前子通道有任何颜色附件,且上次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples大于颜色采样数,那么管线的sampleShadingEnable必须 为VK_FALSE。 -
VUID-vkCmdDrawMultiEXT-stippledLineEnable-07495
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR,那么stippledRectangularLines特性 必须 启用。 -
VUID-vkCmdDrawMultiEXT-stippledLineEnable-07496
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_BRESENHAM,那么stippledBresenhamLines特性 必须 启用。 -
VUID-vkCmdDrawMultiEXT-stippledLineEnable-07497
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,那么stippledSmoothLines特性 必须 启用。 -
VUID-vkCmdDrawMultiEXT-stippledLineEnable-07498
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_DEFAULT,那么stippledRectangularLines特性 必须 启用,并且 VkPhysicalDeviceLimits::strictLines必须 为VK_TRUE。 -
VUID-vkCmdDrawMultiEXT-conservativePointAndLineRasterization-07499
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且不支持conservativePointAndLineRasterization,并且最后一个光栅化前着色器阶段输出的有效图元拓扑结构为直线或点,那么上次调用 vkCmdSetConservativeRasterizationModeEXT 设置的conservativeRasterizationMode必须 为VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT。 -
VUID-vkCmdDrawMultiEXT-stage-07073
如果绑定的管线是使用 VkPipelineShaderStageCreateInfo::stage成员,该成员是 VkGraphicsPipelineCreateInfo::pStages的一个元素,设置为VK_SHADER_STAGE_VERTEX_BIT、VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT、VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT创建的,那么 网格着色器查询 必须 未处于活动状态。 -
VUID-vkCmdDrawMultiEXT-None-08877
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,当前命令缓冲区中 必须 调用过 vkCmdSetAttachmentFeedbackLoopEnableEXT 并且没有随后被 无效化。 -
VUID-vkCmdDrawMultiEXT-None-07850
如果动态状态是从 VkCommandBufferInheritanceViewportScissorInfoNV 继承的,则它必须在本绘图命令之前在当前命令缓冲区中设置。 -
VUID-vkCmdDrawMultiEXT-None-08688
如果未绑定图形管线,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_FRAGMENT_BIT元素。 -
VUID-vkCmdDrawMultiEXT-None-08689
如果未绑定图形管线,且启用了taskShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_TASK_BIT_EXT元素。 -
VUID-vkCmdDrawMultiEXT-None-08690
如果未绑定图形管线,且启用了meshShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_MESH_BIT_EXT元素。 -
VUID-vkCmdDrawMultiEXT-None-08693
如果未绑定图形管线,并且至少启用了taskShader和meshShader特性中的一个,则VK_SHADER_STAGE_VERTEX_BIT或VK_SHADER_STAGE_MESH_BIT_EXT阶段之一必须绑定有效的VkShaderEXT,而另一个必须未绑定VkShaderEXT。 -
VUID-vkCmdDrawMultiEXT-None-08694
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是在没有VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志的情况下创建的,则必须将有效的VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDrawMultiEXT-None-08695
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是使用VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志创建的,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDrawMultiEXT-None-08696
如果未绑定图形管线,并且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawMultiEXT-None-08698
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则同一 vkCreateShadersEXT 调用中所有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的着色器也必须绑定。 -
VUID-vkCmdDrawMultiEXT-None-08699
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则在同一 vkCreateShadersEXT 调用中,着色器没有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的阶段之间的任何阶段必须未绑定任何VkShaderEXT。 -
VUID-vkCmdDrawMultiEXT-None-08878
所有绑定的图形着色器对象必须使用相同或相同定义的推送常量范围创建。 -
VUID-vkCmdDrawMultiEXT-None-08879
所有绑定的图形着色器对象必须使用相同或相同定义的描述符集布局数组创建。 -
VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09372
如果当前渲染通道实例是使用 vkCmdBeginRendering 和一个 VkRenderingInfo::colorAttachmentCount等于1开始的,且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,并且绑定了片段着色器,则它必须不声明DepthReplacing或StencilRefReplacingEXT执行模式。 -
VUID-vkCmdDrawMultiEXT-pDynamicStates-08715
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpDepthAttachmentReadEXT,则上次调用 vkCmdSetDepthWriteEnable 的depthWriteEnable参数必须为VK_FALSE。 -
VUID-vkCmdDrawMultiEXT-pDynamicStates-08716
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_STENCIL_WRITE_MASK创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpStencilAttachmentReadEXT,则上次调用 vkCmdSetStencilWriteMask 的writeMask参数必须为0。 -
VUID-vkCmdDrawMultiEXT-None-09116
如果将着色器对象绑定到任何图形阶段,或者使用VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT创建了绑定的图形管线,并且任何颜色附件的格式为VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,则 vkCmdSetColorWriteMaskEXT 的pColorWriteMasks参数的相应元素必须包含VK_COLOR_COMPONENT_R_BIT、VK_COLOR_COMPONENT_G_BIT和VK_COLOR_COMPONENT_B_BIT中的全部,或全部都不包含。 -
VUID-vkCmdDrawMultiEXT-maxFragmentDualSrcAttachments-09239
如果任何附件启用了混合,并且该附件的源或目标混合因子使用了辅助颜色输入,则在此命令执行的FragmentExecutionModel中静态使用的任何输出附件的Location最大值必须小于maxFragmentDualSrcAttachments。 -
VUID-vkCmdDrawMultiEXT-None-09548
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则由vkCmdSetRenderingAttachmentLocations设置的VkRenderingAttachmentLocationInfo::pColorAttachmentLocations的每个元素的值必须与绑定的管道中相应元素的值匹配。 -
VUID-vkCmdDrawMultiEXT-None-09549
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则绑定管道中的输入附件索引映射必须与通过VkRenderingInputAttachmentIndexInfo为当前渲染通道实例设置的索引映射匹配。 -
VUID-vkCmdDrawMultiEXT-None-09642
如果当前渲染通道是通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始的,则绑定的图形管线必须使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建。 -
VUID-vkCmdDrawMultiEXT-None-09643
如果绑定的图形管线是使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建的,则当前渲染通道必须通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始。
-
VUID-vkCmdDrawMultiEXT-commandBuffer-02712
如果commandBuffer是一个受保护的命令缓冲区,并且不支持protectedNoFault,则此命令使用的管道绑定点所绑定的VkPipeline对象写入的任何资源必须不是不受保护的资源。 -
VUID-vkCmdDrawMultiEXT-commandBuffer-02713
如果commandBuffer是一个受保护的命令缓冲区,并且不支持protectedNoFault,则此命令使用的管道绑定点所绑定的VkPipeline对象中,除了帧缓冲区空间和计算阶段之外的管道阶段必须不写入任何资源。 -
VUID-vkCmdDrawMultiEXT-commandBuffer-04617
如果绑定到此命令使用的管道绑定点的VkPipeline的任何着色器阶段使用了RayQueryKHR功能,则commandBuffer必须不是受保护的命令缓冲区。
-
VUID-vkCmdDrawMultiEXT-None-04007
通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须绑定有效的或VK_NULL_HANDLE 缓冲区。 -
VUID-vkCmdDrawMultiEXT-None-04008
如果未启用nullDescriptor功能,则通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须不是VK_NULL_HANDLE。 -
VUID-vkCmdDrawMultiEXT-None-02721
如果未启用robustBufferAccess功能,并且该管道的创建没有为vertexInputs启用VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,则对于给定的顶点缓冲区绑定,提取的任何属性数据必须完全包含在相应的顶点缓冲区绑定中,如顶点输入描述中所述。 -
VUID-vkCmdDrawMultiEXT-format-10389
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format是打包格式,并且未启用legacyVertexAttributes,则根据顶点输入计算计算的attribAddress值必须是format的大小的倍数。 -
VUID-vkCmdDrawMultiEXT-format-10390
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format不是打包格式,并且要么未启用legacyVertexAttributes,要么format具有 64 位组件,则根据顶点输入计算计算的attribAddress值必须是format的组件大小的倍数。 -
VUID-vkCmdDrawMultiEXT-None-07842
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是使用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态启用的,那么在本次绘制命令之前,必须调用过 vkCmdSetPrimitiveTopology 并且没有在当前命令缓冲区中被后续失效。 -
VUID-vkCmdDrawMultiEXT-dynamicPrimitiveTopologyUnrestricted-07500
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态且dynamicPrimitiveTopologyUnrestricted为VK_FALSE的情况下创建的,则vkCmdSetPrimitiveTopology的primitiveTopology参数必须与管线 VkPipelineInputAssemblyStateCreateInfo::topology状态具有相同的图元拓扑类别。 -
VUID-vkCmdDrawMultiEXT-primitiveTopology-10286
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,那么在执行此绘制命令之前,vkCmdSetPrimitiveTopology 必须将primitiveTopology设置为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST。 -
VUID-vkCmdDrawMultiEXT-pStrides-04913
如果绑定的图形管线是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE动态状态但未启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdBindVertexBuffers2 且未在当前命令缓冲区中随后被失效,并且 vkCmdBindVertexBuffers2 的pStrides参数必须不为NULL。 -
VUID-vkCmdDrawMultiEXT-None-04914
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetVertexInputEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiEXT-Input-07939
如果vertexAttributeRobustness未启用,并且有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在VertexExecutionModelOpEntryPoint中,所有使用Location修饰的Input存储类变量必须包含 VkVertexInputAttributeDescription2EXT::location中的一个位置。 -
VUID-vkCmdDrawMultiEXT-Input-08734
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且legacyVertexAttributes功能未启用,或者在VertexExecutionModelOpEntryPoint中,与给定Location的Input变量关联的 SPIR-V 类型是 64 位的,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的数值类型必须与 VkVertexInputAttributeDescription2EXT::format相同。 -
VUID-vkCmdDrawMultiEXT-format-08936
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的标量宽度必须为 64 位。 -
VUID-vkCmdDrawMultiEXT-format-08937
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且在VertexExecutionModelOpEntryPoint中,与Location修饰的Input变量关联的标量宽度是 64 位的,那么对应的 VkVertexInputAttributeDescription2EXT::format必须具有 64 位分量。 -
VUID-vkCmdDrawMultiEXT-None-09203
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,对应Location的所有Input变量必须不使用格式中不存在的分量。 -
VUID-vkCmdDrawMultiEXT-None-04875
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT动态状态的情况下创建的,并且primitiveTopology的当前值 为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,那么在执行此绘制命令之前,必须调用过 vkCmdSetPatchControlPointsEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiEXT-None-04879
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetPrimitiveRestartEnable 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiEXT-None-09637
如果primitiveTopologyListRestart功能未启用,拓扑为VK_PRIMITIVE_TOPOLOGY_POINT_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST、VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY或VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么 vkCmdSetPrimitiveRestartEnable 必须为VK_FALSE。 -
VUID-vkCmdDrawMultiEXT-stage-06481
绑定的图形管线必须不是使用 VkPipelineShaderStageCreateInfo::stage成员(该成员是 VkGraphicsPipelineCreateInfo::pStages的任意元素的成员)设置为VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawMultiEXT-None-08885
必须没有着色器对象绑定到VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawMultiEXT-None-07619
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT阶段,或者绑定了一个使用启用VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须调用过 vkCmdSetTessellationDomainOriginEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiEXT-None-08684
如果没有绑定图形管线,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_VERTEX_BIT元素 -
VUID-vkCmdDrawMultiEXT-None-08685
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT元素 -
VUID-vkCmdDrawMultiEXT-None-08686
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT元素 -
VUID-vkCmdDrawMultiEXT-None-08687
如果没有绑定图形管线,且启用了geometryShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_GEOMETRY_BIT元素
-
VUID-vkCmdDrawMultiEXT-pNext-09461
如果绑定的图形管线状态是通过 VkPipelineVertexInputDivisorStateCreateInfo 在 VkGraphicsPipelineCreateInfo::pVertexInputState的pNext链中创建的,VkPipelineVertexInputDivisorStateCreateInfo::pVertexBindingDivisors的任何成员在divisor中的值不是1,并且 VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance为VK_FALSE,则firstInstance必须为0 -
VUID-vkCmdDrawMultiEXT-None-09462
如果使用着色器对象进行绘制,或者绑定的图形管线状态启用了VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态,则 vkCmdSetVertexInputEXT 调用中设置此动态状态的pVertexBindingDescriptions参数的任何成员在divisor中的值不是1,并且 VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance为VK_FALSE,则firstInstance必须为0
-
VUID-vkCmdDrawMultiEXT-None-04933
必须启用multiDraw功能 -
VUID-vkCmdDrawMultiEXT-drawCount-04934
drawCount必须 小于VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount -
VUID-vkCmdDrawMultiEXT-drawCount-04935
如果drawCount大于零,则pVertexInfo必须 是指向包含一个或多个有效 VkMultiDrawInfoEXT 结构实例的内存的有效指针 -
VUID-vkCmdDrawMultiEXT-drawCount-09628
如果drawCount大于1,则stride必须 是4的倍数,并且必须 大于或等于sizeof(VkMultiDrawInfoEXT)
-
VUID-vkCmdDrawMultiEXT-commandBuffer-parameter
commandBuffer必须 为有效的 VkCommandBuffer 句柄。 -
VUID-vkCmdDrawMultiEXT-commandBuffer-recording
commandBuffer必须 处于记录状态。 -
VUID-vkCmdDrawMultiEXT-commandBuffer-cmdpool
分配commandBuffer的VkCommandPool必须 支持图形操作。
-
对
commandBuffer的主机访问必须进行外部同步。 -
对分配
commandBuffer的VkCommandPool的主机访问必须进行外部同步。
要记录在它们之间没有状态变化的索引绘制的有序序列,请调用
// Provided by VK_EXT_multi_draw
void vkCmdDrawMultiIndexedEXT(
VkCommandBuffer commandBuffer,
uint32_t drawCount,
const VkMultiDrawIndexedInfoEXT* pIndexInfo,
uint32_t instanceCount,
uint32_t firstInstance,
uint32_t stride,
const int32_t* pVertexOffset);
-
commandBuffer是要记录命令的命令缓冲区。 -
drawCount是要执行的绘制次数,可以为零。 -
pIndexInfo是指向 VkMultiDrawIndexedInfoEXT 数组的指针,其中包含要绘制的索引信息。 -
instanceCount是每次绘制的实例数。 -
firstInstance是每次绘制中第一个实例的实例 ID。 -
stride是pIndexInfo的连续元素之间的字节步幅。 -
pVertexOffset是NULL,或者是指向在索引到顶点缓冲区之前添加到顶点索引的值的指针。当指定时,将忽略VkMultiDrawIndexedInfoEXT::offset。
记录的绘制次数为 drawCount,每次绘制都从 pIndexInfo 中按顺序读取一个 firstIndex 和一个 indexCount。 对于每次记录的绘制,基元的组装方式与 vkCmdDrawIndexed 相同,并使用从 firstInstance 开始的 instanceIndex 顺序绘制 instanceCount 次。如果 pVertexOffset 为 NULL,则还会从 pIndexInfo 读取 vertexOffset,否则将使用从解引用 pVertexOffset 获得的值。
-
VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553
如果使用magFilter或minFilter等于VK_FILTER_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawMultiIndexedEXT-magFilter-09598
如果使用magFilter或minFilter等于VK_FILTER_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawMultiIndexedEXT-mipmapMode-04770
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawMultiIndexedEXT-mipmapMode-09599
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawMultiIndexedEXT-unnormalizedCoordinates-09635
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的levelCount和layerCount必须为 1 -
VUID-vkCmdDrawMultiIndexedEXT-None-08609
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的viewType必须为VK_IMAGE_VIEW_TYPE_1D或VK_IMAGE_VIEW_TYPE_2D -
VUID-vkCmdDrawMultiIndexedEXT-None-08610
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用,其名称中包含ImplicitLod、Dref或Proj -
VUID-vkCmdDrawMultiIndexedEXT-None-08611
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何包含 LOD 偏差或任何偏移值的 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawMultiIndexedEXT-None-06479
如果 VkImageView 使用 深度比较进行采样,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT -
VUID-vkCmdDrawMultiIndexedEXT-None-02691
如果由于此命令而使用原子操作访问 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT -
VUID-vkCmdDrawMultiIndexedEXT-None-07888
如果此命令导致使用原子操作访问VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER描述符,则存储纹理缓冲区视图的格式特性必须包含VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT。 -
VUID-vkCmdDrawMultiIndexedEXT-None-02692
如果此命令导致使用VK_FILTER_CUBIC_EXT采样 VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT。 -
VUID-vkCmdDrawMultiIndexedEXT-None-02693
如果未启用 VK_EXT_filter_cubic 扩展,且此命令导致使用VK_FILTER_CUBIC_EXT采样任何 VkImageView,则该图像视图的 VkImageViewType必须不能为VK_IMAGE_VIEW_TYPE_3D、VK_IMAGE_VIEW_TYPE_CUBE或VK_IMAGE_VIEW_TYPE_CUBE_ARRAY。 -
VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694
此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawMultiIndexedEXT-filterCubicMinmax-02695
此命令导致使用VK_FILTER_CUBIC_EXT采样且缩减模式为VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波以及 minmax 滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawMultiIndexedEXT-cubicRangeClamp-09212
如果未启用cubicRangeClamp特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerReductionModeCreateInfo::reductionMode必须不能等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM。 -
VUID-vkCmdDrawMultiIndexedEXT-reductionMode-09213
此命令导致使用 VkSamplerReductionModeCreateInfo::reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM采样的任何 VkImageView必须使用VK_FILTER_CUBIC_EXT进行采样。 -
VUID-vkCmdDrawMultiIndexedEXT-selectableCubicWeights-09214
如果未启用selectableCubicWeights特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights必须等于VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM。 -
VUID-vkCmdDrawMultiIndexedEXT-flags-02696
此命令导致采样的任何使用包含VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV的 VkImageCreateInfo::flags创建的 VkImage必须仅使用VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE的 VkSamplerAddressMode 进行采样。 -
VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07027
对于任何作为存储图像写入,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07028
对于任何作为存储图像读取,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07029
对于任何作为存储纹理缓冲区写入,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07030
对于任何作为存储纹理缓冲区读取,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08600
对于 绑定着色器静态使用的每个集合 *n*,必须在同一管线绑定点将描述符集绑定到 *n*,其 VkPipelineLayout 与集合 *n* 兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08601
对于 绑定着色器静态使用的每个推送常量,必须为同一管线绑定点设置推送常量值,其 VkPipelineLayout 与推送常量兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawMultiIndexedEXT-None-10068
对于绑定的着色器使用的每个资源数组,用于访问数组元素的索引必须小于此命令所使用描述符集中标识绑定的描述符计数。 -
VUID-vkCmdDrawMultiIndexedEXT-maintenance4-08602
如果未启用maintenance4特性,则对于绑定的着色器静态使用的每个推送常量,必须已为同一管线绑定点设置了推送常量值,该管线绑定点具有与用于创建当前VkPipeline的VkPipelineLayout或用于创建当前VkShaderEXT的VkDescriptorSetLayout和VkPushConstantRange数组兼容的用于推送常量的VkPipelineLayout,如管线布局兼容性中所述。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08114
如果通过vkCmdBindDescriptorSets指定的每个绑定描述符集中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline静态使用,且绑定的VkPipeline不是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须按照描述符有效性的描述是有效的。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08115
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdBindDescriptorSets指定的,则绑定的VkPipeline必须是在没有VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08116
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline动态使用,且绑定的VkPipeline是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须是有效的。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08604
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的任何阶段对应的VkShaderEXT动态使用,则必须是有效的。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08117
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdSetDescriptorBufferOffsetsEXT指定的,则绑定的VkPipeline必须是在使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08119
如果描述符在创建时使用了VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkPipeline中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08605
如果描述符在创建时使用了VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkDescriptorSetLayout的VkShaderEXT中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08606
如果未启用shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08608
如果将管线绑定到此命令使用的管线绑定点,则自该管线绑定后,必须没有对绑定到此命令使用的管线绑定点的VkPipeline对象中静态指定的任何状态进行动态状态设置命令的任何调用。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08607
如果启用了shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点,或者必须将有效和VK_NULL_HANDLE着色器对象的有效组合绑定到与此命令使用的管线绑定点对应的每个受支持的着色器阶段。 -
VUID-vkCmdDrawMultiIndexedEXT-uniformBuffers-06935
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问统一缓冲区,且该阶段的创建没有启用uniformBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08612
如果未启用robustBufferAccess特性,且绑定到与此命令使用的管线绑定点对应的阶段的任何VkShaderEXT访问统一缓冲区,则该VkShaderEXT必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawMultiIndexedEXT-storageBuffers-06936
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问存储缓冲区,且该阶段的创建没有启用storageBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08613
如果未启用robustBufferAccess特性,并且绑定到此命令所用管线绑定点的阶段的任何VkShaderEXT访问了存储缓冲区,则它必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值 -
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707
如果commandBuffer是一个未受保护的命令缓冲区,并且不支持protectedNoFault,则绑定的着色器访问的任何资源必须不是受保护的资源 -
VUID-vkCmdDrawMultiIndexedEXT-None-06550
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须仅与OpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-06551
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须不使用ConstOffset和Offset操作数 -
VUID-vkCmdDrawMultiIndexedEXT-viewType-07752
如果通过此命令访问VkImageView,则图像视图的viewType必须与SPIR-V 图像维度和 Vulkan ImageView 类型之间的兼容性中描述的OpTypeImage的Dim操作数匹配 -
VUID-vkCmdDrawMultiIndexedEXT-format-07753
如果通过此命令访问VkImageView,则图像视图的format的数值类型和OpTypeImage的SampledType操作数必须匹配 -
VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-08795
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM以外的格式创建的VkImageView,则该指令的Texel操作数的Type必须具有至少与图像视图的格式一样多的组件 -
VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-08796
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM格式创建的VkImageView,则该指令的Texel操作数的Type必须具有四个组件 -
VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-04469
如果通过此命令使用OpImageWrite访问VkBufferView,则该指令的Texel操作数的Type必须具有至少与缓冲区视图的格式一样多的组件 -
VUID-vkCmdDrawMultiIndexedEXT-SampledType-04470
如果通过此命令访问具有64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawMultiIndexedEXT-SampledType-04471
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawMultiIndexedEXT-SampledType-04472
如果通过此命令访问具有64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawMultiIndexedEXT-SampledType-04473
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawMultiIndexedEXT-sparseImageInt64Atomics-04474
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkImage对象 -
VUID-vkCmdDrawMultiIndexedEXT-sparseImageInt64Atomics-04475
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkBuffer对象 -
VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06971
如果使用OpImageWeightedSampleQCOM来采样通过此命令获得的VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM -
VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06972
如果OpImageWeightedSampleQCOM使用通过此命令获得的VkImageView作为采样权重图像,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM -
VUID-vkCmdDrawMultiIndexedEXT-OpImageBoxFilterQCOM-06973
如果使用OpImageBoxFilterQCOM对 VkImageView 进行采样以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM -
VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSSDQCOM-06974
如果使用OpImageBlockMatchSSDQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06975
如果使用OpImageBlockMatchSADQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSADQCOM-06976
如果使用OpImageBlockMatchSADQCOM或OpImageBlockMatchSSDQCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06977
如果OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM使用 VkSampler 作为此命令的结果,则采样器必须使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06978
如果除OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM之外的任何命令使用 VkSampler 作为此命令的结果,则采样器必须未使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09215
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09216
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式必须是单分量格式 -
VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09217
如果OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawMultiIndexedEXT-None-07288
此命令执行的任何着色器调用必须终止 -
VUID-vkCmdDrawMultiIndexedEXT-None-09600
如果访问类型等于VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE、VK_DESCRIPTOR_TYPE_STORAGE_IMAGE或VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT的描述符以作为此命令的结果,则该描述符标识的所有图像子资源必须位于写入描述符时标识的图像布局中 -
VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684
当前的渲染过程必须与创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的renderPass成员兼容 -
VUID-vkCmdDrawMultiIndexedEXT-subpass-02685
当前渲染过程的子过程索引必须等于创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的subpass成员 -
VUID-vkCmdDrawMultiIndexedEXT-None-07748
如果任何着色器静态访问输入附件,则必须通过描述符集将有效的描述符绑定到管道 -
VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07468
如果此管道执行的任何着色器访问Dim操作数为SubpassData的OpTypeImage变量,则它必须使用与当前子过程中有效的输入附件相对应的InputAttachmentIndex进行修饰 -
VUID-vkCmdDrawMultiIndexedEXT-None-07469
在子过程中访问的输入附件视图必须使用与相应子过程定义相同的 VkFormat 创建,并且使用 VkImageView 创建,该 VkImageView 与绑定 VkFramebuffer 中子过程的pInputAttachments[InputAttachmentIndex] 引用的附件兼容,如片段输入附件兼容性中所述 -
VUID-vkCmdDrawMultiIndexedEXT-pDepthInputAttachmentIndex-09595
在动态渲染过程中访问的、由VkRenderingInputAttachmentIndexInfo 引用的InputAttachmentIndex的输入附件视图,或者如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex或 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex为NULL则没有InputAttachmentIndex的输入附件视图,必须使用与 VkRenderingInfo 中的相应颜色、深度或模板附件兼容的 VkImageView 创建 -
VUID-vkCmdDrawMultiIndexedEXT-pDepthInputAttachmentIndex-09596
如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex和 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex均不为NULL,则通过着色器对象在动态渲染过程中访问的输入附件视图必须具有InputAttachmentIndex -
VUID-vkCmdDrawMultiIndexedEXT-InputAttachmentIndex-09597
如果通过着色器对象在动态渲染过程中访问的输入附件视图具有InputAttachmentIndex,则InputAttachmentIndex必须与VkRenderingInputAttachmentIndexInfo 中的索引匹配 -
VUID-vkCmdDrawMultiIndexedEXT-None-06537
当前渲染通道中用作附件的内存后备图像子资源必须不能以任何方式写入,除非作为此命令的附件。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09000
如果颜色附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_COLOR_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawMultiIndexedEXT-None-09001
如果深度附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_DEPTH_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawMultiIndexedEXT-None-09002
如果模板附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_STENCIL_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawMultiIndexedEXT-None-09003
如果附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则此命令必须不能以任何方式访问它,除非作为附件、存储图像或采样图像。 -
VUID-vkCmdDrawMultiIndexedEXT-None-06539
如果当前子通道中任何先前记录的命令以任何方式访问了用作此子通道附件的图像子资源,而非作为附件,则此命令必须不能将该图像子资源作为附件写入。 -
VUID-vkCmdDrawMultiIndexedEXT-None-06886
如果当前渲染通道实例使用深度/模板附件,且其深度方面为只读布局,则必须禁用深度写入。 -
VUID-vkCmdDrawMultiIndexedEXT-None-06887
如果当前渲染通道实例使用深度/模板附件,且其模板方面为只读布局,并且前向和后向writeMask都不为零,并且启用了模板测试,则所有模板操作必须为VK_STENCIL_OP_KEEP。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07831
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_VIEWPORT动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewport,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07832
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SCISSOR动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetScissor,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07833
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_LINE_WIDTH动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08617
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08618
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08619
如果输出线图元的着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07834
如果着色器对象绑定到任何图形阶段,或者绑定了一个创建时启用了VK_DYNAMIC_STATE_DEPTH_BIAS动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBiasEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBias 或 vkCmdSetDepthBias2EXT,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07835
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_BLEND_CONSTANTS动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetBlendConstants,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08621
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEnableEXT 将pColorBlendEnables的任何元素设置为VK_TRUE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEquationEXT 将pColorBlendEquations的相同元素设置为一个VkColorBlendEquationEXT结构,其中任何 VkBlendFactor 成员的值为VK_BLEND_FACTOR_CONSTANT_COLOR,VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,VK_BLEND_FACTOR_CONSTANT_ALPHA或VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetBlendConstants 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07836
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBoundsTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetDepthBounds 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07837
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilCompareMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07838
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_WRITE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilWriteMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07839
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_REFERENCE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilReference 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688
如果绘制记录在启用了多视图的渲染通道实例中,则最大实例索引**必须**小于或等于 VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex。 -
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-02689
如果绑定的图形管线是使用 VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable设置为VK_TRUE创建的,并且当前子通道具有深度/模板附件,则该附件**必须**已使用VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位集创建。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07634
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-06666
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且sampleLocationsEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07840
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_CULL_MODE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetCullMode 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07841
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_FRONT_FACE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetFrontFace 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07843
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07844
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthWriteEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07845
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_COMPARE_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且depthTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthCompareOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07846
如果启用了depthBounds功能,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthBoundsTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07847
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07848
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetScissorWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时同时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则vkCmdSetViewportWithCount的viewportCount参数必须与vkCmdSetScissorWithCount的scissorCount参数匹配。 -
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04137
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportWScalingStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04138
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWScalingNV,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08636
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则上次调用 vkCmdSetViewportWScalingNV 中的viewportCount参数必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04139
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09233
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetCoarseSampleOrderNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09234
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewportShadingRatePaletteNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08637
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则最后一次调用 vkCmdSetViewportShadingRatePaletteNV 中的viewportCount参数必须大于或等于最后一次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04141
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportSwizzleStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount创建。 -
VUID-vkCmdDrawMultiIndexedEXT-VkPipelineVieportCreateInfo-04142
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportExclusiveScissorStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount创建。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07878
如果启用了exclusiveScissor功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorEnableNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07879
如果启用了exclusiveScissor功能,着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV动态状态创建的图形管线,并且当前命令缓冲区中最近一次调用 vkCmdSetExclusiveScissorEnableNV 将pExclusiveScissorEnables的任何元素设置为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-04876
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetRasterizerDiscardEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-04877
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBiasEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiIndexedEXT-logicOp-04878
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT,或者绑定了使用启用VK_DYNAMIC_STATE_LOGIC_OP_EXT动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且logicOpEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLogicOpEXT,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,绑定的图形管线是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且绑定的图形管线的任何着色器阶段写入到PrimitiveShadingRateKHR内置变量,则在执行此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-08642
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,并且绑定到图形阶段的任何着色器对象写入了PrimitiveShadingRateKHR内置变量,那么在执行此绘制命令之前,当前命令缓冲区中必须调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727
如果绑定的图形管线中没有禁用光栅化,那么对于子通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则pColorBlendState的pAttachments成员中相应元素的blendEnable成员必须为VK_FALSE。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08643
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么对于渲染通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则在当前命令缓冲区中最近一次调用vkCmdSetColorBlendEnableEXT中影响该附件索引的pColorBlendEnables的相应成员必须为VK_FALSE。 -
VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07284
如果绑定的图形管线中没有禁用光栅化,并且以下任何一项均未启用那么绑定图形管线的
rasterizationSamples必须与当前子通道颜色和/或深度/模板附件相同。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08644
如果着色器对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且以下任何一项均未启用那么在当前命令缓冲区中最近一次调用 vkCmdSetRasterizationSamplesEXT 必须已将
rasterizationSamples设置为与当前渲染通道颜色和/或深度/模板附件的样本数相同。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08876
如果着色器对象绑定到任何图形阶段,则当前渲染通道实例必须已通过 vkCmdBeginRendering 开始。 -
VUID-vkCmdDrawMultiIndexedEXT-imageView-06172
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawMultiIndexedEXT-imageView-06173
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawMultiIndexedEXT-imageView-06174
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawMultiIndexedEXT-imageView-06175
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawMultiIndexedEXT-imageView-06176
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawMultiIndexedEXT-imageView-06177
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::viewMask相等的 VkPipelineRenderingCreateInfo::viewMask创建。 -
VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::colorAttachmentCount相等的 VkPipelineRenderingCreateInfo::colorAttachmentCount创建。 -
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08910
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建。 -
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08912
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView等于 VK_NULL_HANDLE 的元素必须使用于创建绑定管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08911
如果启用了dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建,或者如果 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的对应元素存在,则必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09362
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,VkRenderingInfo::colorAttachmentCount等于1,并且没有任何着色器对象绑定到任何图形阶段,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个resolveImageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09363
如果没有着色器对象绑定到任何图形阶段,当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount等于1开始的,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09364
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09365
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09366
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-09367
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09368
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDrawMultiIndexedEXT-None-09369
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09370
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09371
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDrawMultiIndexedEXT-None-07749
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawMultiIndexedEXT-None-08646
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawMultiIndexedEXT-attachmentCount-07750
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于绑定图形管线的VkPipelineColorBlendStateCreateInfo::attachmentCount -
VUID-vkCmdDrawMultiIndexedEXT-None-08647
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在当前命令缓冲区中最近一次调用vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于当前渲染过程实例中的颜色附件数量 -
VUID-vkCmdDrawMultiIndexedEXT-None-07751
如果启用了VK_EXT_discard_rectangles扩展,绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中包含了一个 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09236
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中不包含 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawMultiIndexedEXT-None-07880
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须调用 vkCmdSetDiscardRectangleEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawMultiIndexedEXT-None-07881
如果启用了VK_EXT_discard_rectangles扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须调用过 vkCmdSetDiscardRectangleModeEXT,并且在当前命令缓冲区中没有后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08913
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08914
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat。 -
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08915
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值不等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08916
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08917
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat。 -
VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08918
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值不等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiIndexedEXT-imageView-06183
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR创建的。 -
VUID-vkCmdDrawMultiIndexedEXT-imageView-06184
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT创建的。 -
VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06185
如果绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的pColorAttachmentSamples成员的相应元素相同的采样计数创建。 -
VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06186
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07285
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与绑定图形管线的rasterizationSamples值相同的采样计数创建。 -
VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07286
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07287
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDrawMultiIndexedEXT-pNext-07935
如果此命令是在使用 vkCmdBeginRendering 启动的渲染通道实例内调用的,并且 VkRenderingInfo 的pNext链包含一个 VkMultisampledRenderToSingleSampledInfoEXT 结构,其中multisampledRenderToSingleSampledEnable等于VK_TRUE,那么绑定图形管线的rasterizationSamples的值必须等于 VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples。 -
VUID-vkCmdDrawMultiIndexedEXT-renderPass-06198
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,那么绑定的管线必须使用 VkGraphicsPipelineCreateInfo::renderPass等于 VK_NULL_HANDLE 创建。 -
VUID-vkCmdDrawMultiIndexedEXT-pColorAttachments-08963
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,并且存在一个绑定了片段着色器的图形管线,该片段着色器静态写入颜色附件,颜色写入掩码不为零,颜色写入已启用,并且 VkRenderingInfo::pColorAttachments->imageView的相应元素不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的相应元素必须不是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-08964
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了深度测试、启用了深度写入,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-08965
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了模板测试,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708
如果primitivesGeneratedQueryWithRasterizerDiscard功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则 必须 不启用光栅化丢弃。 -
VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-06709
如果primitivesGeneratedQueryWithNonZeroStreams功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则绑定的图形管线 必须 不是使用VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream中的非零值创建的。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07620
如果启用了depthClamp功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetDepthClampEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07621
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_POLYGON_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetPolygonModeEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07622
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetRasterizationSamplesEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07623
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_MASK_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetSampleMaskEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08919
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的,并且在上次调用 vkCmdSetAlphaToCoverageEnableEXT 时alphaToCoverageEnable为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08920
如果有 shader 对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetAlphaToCoverageEnableEXT 时将alphaToCoverageEnable设置为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07624
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToCoverageEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07625
如果启用了alphaToOne功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToOneEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07626
如果启用了logicOp功能,并且有 shader 对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetLogicOpEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07627
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态创建的,则在本次绘制命令之前, 必须 已调用 vkCmdSetColorBlendEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08657
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07628
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08658
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且最近一次针对任何附件调用 vkCmdSetColorBlendEnableEXT 时将该附件在pColorBlendEnables中的值设置为VK_TRUE,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07629
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08659
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07630
如果启用了geometryStreams特性,并且着色器对象绑定到VK_SHADER_STAGE_GEOMETRY_BIT阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetRasterizationStreamEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07631
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在当前绘制命令之前,必须调用过 vkCmdSetConservativeRasterizationModeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07632
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT动态状态的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且conservativeRasterizationMode的当前值为VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,则在当前绘制命令之前,必须调用过 vkCmdSetExtraPrimitiveOverestimationSizeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07633
如果启用了depthClipEnable特性,并且着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetDepthClipEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07635
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendAdvancedEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09416
如果启用了VK_EXT_blend_operation_advanced扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在当前绘制命令之前,必须至少调用过 vkCmdSetColorBlendEquationEXT 和 vkCmdSetColorBlendAdvancedEXT 中的一个,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07636
如果启用了VK_EXT_provoking_vertex扩展,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT动态状态的图形管线,并且 当前值 的rasterizerDiscardEnable为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetProvokingVertexModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiIndexedEXT-None-07637
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiIndexedEXT-None-08666
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiIndexedEXT-None-08667
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiIndexedEXT-None-08668
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiIndexedEXT-None-07638
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiIndexedEXT-None-08669
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiIndexedEXT-None-08670
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiIndexedEXT-None-08671
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawMultiIndexedEXT-None-07849
如果启用了stippledRectangularLines、stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且着色器对象绑定到任何图形阶段,或者使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE动态状态创建的绑定图形管线状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stippledLineEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetLineStipple 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07639
如果启用了depthClipControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClipNegativeOneToOneEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09650
如果启用了depthClampControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT动态状态创建的图形管线,并且depthClampEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClampRangeEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07640
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportWScalingEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07641
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportSwizzleNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07642
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07643
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageToColorEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorLocationNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07644
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationModeNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07645
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationMode的当前值不是VK_COVERAGE_MODULATION_MODE_NONE_NV的任何值,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationTableEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07646
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationTableEnable的当前值为VK_TRUE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageModulationTableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07647
如果启用了shadingRateImage特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetShadingRateImageEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-pipelineFragmentShadingRate-09238
如果启用了pipelineFragmentShadingRate特性,并且绑定了一个着色器对象到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetFragmentShadingRateKHR,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07648
如果启用了representativeFragmentTest特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetRepresentativeFragmentTestEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07649
如果启用了coverageReductionMode特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageReductionModeNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawMultiIndexedEXT-pColorBlendEnables-07470
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT状态的情况下创建的,并且最后一次调用 vkCmdSetColorBlendEnableEXT 为任何附件将pColorBlendEnables设置为VK_TRUE,那么对于子通道中的这些附件,相应的图像视图的 格式特性 必须 包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT。 -
VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07471
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前子通道不使用任何颜色和/或深度/模板附件,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 遵循 零附件子通道 的规则。 -
VUID-vkCmdDrawMultiIndexedEXT-samples-07472
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态且禁用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于用于创建绑定的图形管线的 VkPipelineMultisampleStateCreateInfo::rasterizationSamples参数。 -
VUID-vkCmdDrawMultiIndexedEXT-samples-07473
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples参数。 -
VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07474
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且multisampledRenderToSingleSampled特性未启用,并且既没有启用VK_AMD_mixed_attachment_samples扩展,也没有启用VK_NV_framebuffer_mixed_samples扩展,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与当前子通道的颜色和/或深度/模板附件相同。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09211
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,或者一个着色器对象被绑定到任何图形阶段,并且当前渲染通道实例包含一个multisampledRenderToSingleSampledEnable等于VK_TRUE的 VkMultisampledRenderToSingleSampledInfoEXT 结构,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与该结构的rasterizationSamples成员相同。 -
VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07476
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态的情况下创建的,那么在此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件 必须 为当前子通道中的所有活动颜色附件指定启用。 -
VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09417
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件启用。 -
VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07477
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09418
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且存在绑定的颜色附件,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07478
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09419
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07479
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendAdvancedEXT,并且vkCmdSetColorBlendAdvancedEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定高级混合方程式。 -
VUID-vkCmdDrawMultiIndexedEXT-advancedBlendMaxColorAttachments-07480
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT和VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,并且最近一次调用 vkCmdSetColorBlendEnableEXT 和 vkCmdSetColorBlendAdvancedEXT 已启用高级混合,则当前子通道中的活动颜色附件的数量必须不超过advancedBlendMaxColorAttachments。 -
VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-07481
如果未启用primitivesGeneratedQueryWithNonZeroStreams功能,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,并且绑定的图形管线创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT状态,则最近一次调用 vkCmdSetRasterizationStreamEXT 必须已将rasterizationStream设置为零。 -
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07482
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态并禁用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于绑定图形管线创建时使用的 VkPipelineMultisampleStateCreateInfo 结构的rasterizationSamples成员。 -
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07483
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于最近一次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples参数。 -
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07484
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,并且当前子通道具有深度/模板附件,则该附件的创建必须设置了VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位。 -
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07485
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中sampleLocationsInfo.sampleLocationGridSize.width必须能被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者是通过 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回的,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07486
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则上次调用 vkCmdSetSampleLocationsEXT 中的sampleLocationsInfo.sampleLocationGridSize.height**必须** 可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07487
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则片段着色器代码**必须**不得静态使用扩展指令InterpolateAtSample。 -
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07936
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.width**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07937
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.height**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07938
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationsPerPixel**必须**等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples。 -
VUID-vkCmdDrawMultiIndexedEXT-coverageModulationTableEnable-07488
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageModulationTableEnableNV 将coverageModulationTableEnable设置为VK_TRUE,则上次调用 vkCmdSetCoverageModulationTableNV 中的coverageModulationTableCount参数**必须**等于当前的rasterizationSamples除以当前子通道中的颜色样本数量。 -
VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07489
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且当前子通道具有深度/模板附件,且在绑定的管线中启用了深度测试、模板测试或深度边界测试,则当前的rasterizationSamples**必须**与深度/模板附件的样本计数相同。 -
VUID-vkCmdDrawMultiIndexedEXT-coverageToColorEnable-07490
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09420
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDrawMultiIndexedEXT-coverageReductionMode-07491
如果启用了VK_NV_coverage_reduction_mode扩展,并且绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前的覆盖率缩减模式coverageReductionMode、当前的rasterizationSamples以及颜色和深度/模板附件(如果子通道有这些附件)的采样计数 必须 是 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV 返回的有效组合。 -
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07492
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但未启用VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么绑定的图形管线 必须 是使用 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数创建的。 -
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07493
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-09421
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07494
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且如果当前子通道有任何颜色附件,且上次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples大于颜色采样数,那么管线的sampleShadingEnable必须 为VK_FALSE。 -
VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07495
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR,那么stippledRectangularLines特性 必须 启用。 -
VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07496
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_BRESENHAM,那么stippledBresenhamLines特性 必须 启用。 -
VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07497
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,那么stippledSmoothLines特性 必须 启用。 -
VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07498
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_DEFAULT,那么stippledRectangularLines特性 必须 启用,并且 VkPhysicalDeviceLimits::strictLines必须 为VK_TRUE。 -
VUID-vkCmdDrawMultiIndexedEXT-conservativePointAndLineRasterization-07499
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且不支持conservativePointAndLineRasterization,并且最后一个光栅化前着色器阶段输出的有效图元拓扑结构为直线或点,那么上次调用 vkCmdSetConservativeRasterizationModeEXT 设置的conservativeRasterizationMode必须 为VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT。 -
VUID-vkCmdDrawMultiIndexedEXT-stage-07073
如果绑定的管线是使用 VkPipelineShaderStageCreateInfo::stage成员,该成员是 VkGraphicsPipelineCreateInfo::pStages的一个元素,设置为VK_SHADER_STAGE_VERTEX_BIT、VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT、VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT创建的,那么 网格着色器查询 必须 未处于活动状态。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08877
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,当前命令缓冲区中 必须 调用过 vkCmdSetAttachmentFeedbackLoopEnableEXT 并且没有随后被 无效化。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07850
如果动态状态是从 VkCommandBufferInheritanceViewportScissorInfoNV 继承的,则它必须在本绘图命令之前在当前命令缓冲区中设置。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08688
如果未绑定图形管线,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_FRAGMENT_BIT元素。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08689
如果未绑定图形管线,且启用了taskShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_TASK_BIT_EXT元素。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08690
如果未绑定图形管线,且启用了meshShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_MESH_BIT_EXT元素。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08693
如果未绑定图形管线,并且至少启用了taskShader和meshShader特性中的一个,则VK_SHADER_STAGE_VERTEX_BIT或VK_SHADER_STAGE_MESH_BIT_EXT阶段之一必须绑定有效的VkShaderEXT,而另一个必须未绑定VkShaderEXT。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08694
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是在没有VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志的情况下创建的,则必须将有效的VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08695
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是使用VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志创建的,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08696
如果未绑定图形管线,并且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08698
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则同一 vkCreateShadersEXT 调用中所有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的着色器也必须绑定。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08699
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则在同一 vkCreateShadersEXT 调用中,着色器没有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的阶段之间的任何阶段必须未绑定任何VkShaderEXT。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08878
所有绑定的图形着色器对象必须使用相同或相同定义的推送常量范围创建。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08879
所有绑定的图形着色器对象必须使用相同或相同定义的描述符集布局数组创建。 -
VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09372
如果当前渲染通道实例是使用 vkCmdBeginRendering 和一个 VkRenderingInfo::colorAttachmentCount等于1开始的,且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,并且绑定了片段着色器,则它必须不声明DepthReplacing或StencilRefReplacingEXT执行模式。 -
VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08715
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpDepthAttachmentReadEXT,则上次调用 vkCmdSetDepthWriteEnable 的depthWriteEnable参数必须为VK_FALSE。 -
VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08716
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_STENCIL_WRITE_MASK创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpStencilAttachmentReadEXT,则上次调用 vkCmdSetStencilWriteMask 的writeMask参数必须为0。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09116
如果将着色器对象绑定到任何图形阶段,或者使用VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT创建了绑定的图形管线,并且任何颜色附件的格式为VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,则 vkCmdSetColorWriteMaskEXT 的pColorWriteMasks参数的相应元素必须包含VK_COLOR_COMPONENT_R_BIT、VK_COLOR_COMPONENT_G_BIT和VK_COLOR_COMPONENT_B_BIT中的全部,或全部都不包含。 -
VUID-vkCmdDrawMultiIndexedEXT-maxFragmentDualSrcAttachments-09239
如果任何附件启用了混合,并且该附件的源或目标混合因子使用了辅助颜色输入,则在此命令执行的FragmentExecutionModel中静态使用的任何输出附件的Location最大值必须小于maxFragmentDualSrcAttachments。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09548
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则由vkCmdSetRenderingAttachmentLocations设置的VkRenderingAttachmentLocationInfo::pColorAttachmentLocations的每个元素的值必须与绑定的管道中相应元素的值匹配。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09549
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则绑定管道中的输入附件索引映射必须与通过VkRenderingInputAttachmentIndexInfo为当前渲染通道实例设置的索引映射匹配。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09642
如果当前渲染通道是通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始的,则绑定的图形管线必须使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09643
如果绑定的图形管线是使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建的,则当前渲染通道必须通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始。
-
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712
如果commandBuffer是一个受保护的命令缓冲区,并且不支持protectedNoFault,则此命令使用的管道绑定点所绑定的VkPipeline对象写入的任何资源必须不是不受保护的资源。 -
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02713
如果commandBuffer是一个受保护的命令缓冲区,并且不支持protectedNoFault,则此命令使用的管道绑定点所绑定的VkPipeline对象中,除了帧缓冲区空间和计算阶段之外的管道阶段必须不写入任何资源。 -
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-04617
如果绑定到此命令使用的管道绑定点的VkPipeline的任何着色器阶段使用了RayQueryKHR功能,则commandBuffer必须不是受保护的命令缓冲区。
-
VUID-vkCmdDrawMultiIndexedEXT-None-04007
通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须绑定有效的或VK_NULL_HANDLE 缓冲区。 -
VUID-vkCmdDrawMultiIndexedEXT-None-04008
如果未启用nullDescriptor功能,则通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须不是VK_NULL_HANDLE。 -
VUID-vkCmdDrawMultiIndexedEXT-None-02721
如果未启用robustBufferAccess功能,并且该管道的创建没有为vertexInputs启用VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,则对于给定的顶点缓冲区绑定,提取的任何属性数据必须完全包含在相应的顶点缓冲区绑定中,如顶点输入描述中所述。 -
VUID-vkCmdDrawMultiIndexedEXT-format-10389
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format是打包格式,并且未启用legacyVertexAttributes,则根据顶点输入计算计算的attribAddress值必须是format的大小的倍数。 -
VUID-vkCmdDrawMultiIndexedEXT-format-10390
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format不是打包格式,并且要么未启用legacyVertexAttributes,要么format具有 64 位组件,则根据顶点输入计算计算的attribAddress值必须是format的组件大小的倍数。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07842
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是使用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态启用的,那么在本次绘制命令之前,必须调用过 vkCmdSetPrimitiveTopology 并且没有在当前命令缓冲区中被后续失效。 -
VUID-vkCmdDrawMultiIndexedEXT-dynamicPrimitiveTopologyUnrestricted-07500
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态且dynamicPrimitiveTopologyUnrestricted为VK_FALSE的情况下创建的,则vkCmdSetPrimitiveTopology的primitiveTopology参数必须与管线 VkPipelineInputAssemblyStateCreateInfo::topology状态具有相同的图元拓扑类别。 -
VUID-vkCmdDrawMultiIndexedEXT-primitiveTopology-10286
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,那么在执行此绘制命令之前,vkCmdSetPrimitiveTopology 必须将primitiveTopology设置为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST。 -
VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913
如果绑定的图形管线是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE动态状态但未启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdBindVertexBuffers2 且未在当前命令缓冲区中随后被失效,并且 vkCmdBindVertexBuffers2 的pStrides参数必须不为NULL。 -
VUID-vkCmdDrawMultiIndexedEXT-None-04914
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetVertexInputEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiIndexedEXT-Input-07939
如果vertexAttributeRobustness未启用,并且有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在VertexExecutionModelOpEntryPoint中,所有使用Location修饰的Input存储类变量必须包含 VkVertexInputAttributeDescription2EXT::location中的一个位置。 -
VUID-vkCmdDrawMultiIndexedEXT-Input-08734
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且legacyVertexAttributes功能未启用,或者在VertexExecutionModelOpEntryPoint中,与给定Location的Input变量关联的 SPIR-V 类型是 64 位的,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的数值类型必须与 VkVertexInputAttributeDescription2EXT::format相同。 -
VUID-vkCmdDrawMultiIndexedEXT-format-08936
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的标量宽度必须为 64 位。 -
VUID-vkCmdDrawMultiIndexedEXT-format-08937
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且在VertexExecutionModelOpEntryPoint中,与Location修饰的Input变量关联的标量宽度是 64 位的,那么对应的 VkVertexInputAttributeDescription2EXT::format必须具有 64 位分量。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09203
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,对应Location的所有Input变量必须不使用格式中不存在的分量。 -
VUID-vkCmdDrawMultiIndexedEXT-None-04875
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT动态状态的情况下创建的,并且primitiveTopology的当前值 为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,那么在执行此绘制命令之前,必须调用过 vkCmdSetPatchControlPointsEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-04879
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetPrimitiveRestartEnable 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-09637
如果primitiveTopologyListRestart功能未启用,拓扑为VK_PRIMITIVE_TOPOLOGY_POINT_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST、VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY或VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么 vkCmdSetPrimitiveRestartEnable 必须为VK_FALSE。 -
VUID-vkCmdDrawMultiIndexedEXT-stage-06481
绑定的图形管线必须不是使用 VkPipelineShaderStageCreateInfo::stage成员(该成员是 VkGraphicsPipelineCreateInfo::pStages的任意元素的成员)设置为VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08885
必须没有着色器对象绑定到VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawMultiIndexedEXT-None-07619
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT阶段,或者绑定了一个使用启用VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须调用过 vkCmdSetTessellationDomainOriginEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawMultiIndexedEXT-None-08684
如果没有绑定图形管线,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_VERTEX_BIT元素 -
VUID-vkCmdDrawMultiIndexedEXT-None-08685
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT元素 -
VUID-vkCmdDrawMultiIndexedEXT-None-08686
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT元素 -
VUID-vkCmdDrawMultiIndexedEXT-None-08687
如果没有绑定图形管线,且启用了geometryShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_GEOMETRY_BIT元素
-
VUID-vkCmdDrawMultiIndexedEXT-None-07312
如果未启用maintenance6功能,则必须绑定有效的索引缓冲区。
-
VUID-vkCmdDrawMultiIndexedEXT-pNext-09461
如果绑定的图形管线状态是通过 VkPipelineVertexInputDivisorStateCreateInfo 在 VkGraphicsPipelineCreateInfo::pVertexInputState的pNext链中创建的,VkPipelineVertexInputDivisorStateCreateInfo::pVertexBindingDivisors的任何成员在divisor中的值不是1,并且 VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance为VK_FALSE,则firstInstance必须为0 -
VUID-vkCmdDrawMultiIndexedEXT-None-09462
如果使用着色器对象进行绘制,或者绑定的图形管线状态启用了VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态,则 vkCmdSetVertexInputEXT 调用中设置此动态状态的pVertexBindingDescriptions参数的任何成员在divisor中的值不是1,并且 VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance为VK_FALSE,则firstInstance必须为0
-
VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-08798
如果未启用robustBufferAccess2功能,则 (indexSize× (firstIndex+indexCount) +offset) 必须小于或等于绑定的索引缓冲区的大小。其中indexSize基于indexType指定的类型,并且索引缓冲区、indexType和offset通过vkCmdBindIndexBuffer或vkCmdBindIndexBuffer2指定。如果使用vkCmdBindIndexBuffer2绑定索引缓冲区,则绑定索引缓冲区的大小为 vkCmdBindIndexBuffer2::size。 -
VUID-vkCmdDrawMultiIndexedEXT-None-04937
必须启用multiDraw功能 -
VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939
drawCount必须 小于VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount -
VUID-vkCmdDrawMultiIndexedEXT-drawCount-04940
如果drawCount大于零,则pIndexInfo必须是指向包含一个或多个有效的 VkMultiDrawIndexedInfoEXT 结构实例的内存的有效指针。 -
VUID-vkCmdDrawMultiIndexedEXT-drawCount-09629
如果drawCount大于1,则stride必须是4的倍数,并且必须大于或等于sizeof(VkMultiDrawIndexedInfoEXT)。
-
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter
commandBuffer必须 为有效的 VkCommandBuffer 句柄。 -
VUID-vkCmdDrawMultiIndexedEXT-pVertexOffset-parameter
如果pVertexOffset不是NULL,则pVertexOffset必须是指向有效int32_t值的有效指针。 -
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-recording
commandBuffer必须 处于记录状态。 -
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-cmdpool
分配commandBuffer的VkCommandPool必须 支持图形操作。
-
对
commandBuffer的主机访问必须进行外部同步。 -
对分配
commandBuffer的VkCommandPool的主机访问必须进行外部同步。
VkMultiDrawInfoEXT 结构定义如下:
// Provided by VK_EXT_multi_draw
typedef struct VkMultiDrawInfoEXT {
uint32_t firstVertex;
uint32_t vertexCount;
} VkMultiDrawInfoEXT;
-
firstVertex是要绘制的第一个顶点。 -
vertexCount是要绘制的顶点数。
VkMultiDrawInfoEXT 的成员与 vkCmdDraw 中的 firstVertex 和 vertexCount 参数具有相同的含义。
VkMultiDrawIndexedInfoEXT 结构的定义如下:
// Provided by VK_EXT_multi_draw
typedef struct VkMultiDrawIndexedInfoEXT {
uint32_t firstIndex;
uint32_t indexCount;
int32_t vertexOffset;
} VkMultiDrawIndexedInfoEXT;
-
firstIndex是要绘制的第一个索引。 -
indexCount是要绘制的顶点数。 -
vertexOffset是在索引到索引多重绘制的顶点缓冲区之前添加到顶点索引的值。
VkMultiDrawIndexedInfoEXT 的 firstIndex、indexCount 和 vertexOffset 成员分别与 vkCmdDrawIndexed 的 firstIndex、indexCount 和 vertexOffset 参数具有相同的含义。
要记录非索引的间接绘制命令,请调用:
// Provided by VK_VERSION_1_0
void vkCmdDrawIndirect(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
uint32_t drawCount,
uint32_t stride);
-
commandBuffer是要记录命令的命令缓冲区。 -
buffer是包含绘制参数的缓冲区。 -
offset是buffer中参数开始的字节偏移量。 -
drawCount是要执行的绘制次数,可以为零。 -
stride是连续的绘制参数集之间的字节步长。
vkCmdDrawIndirect 的行为类似于 vkCmdDraw,不同之处在于,参数在执行期间由设备从缓冲区读取。该命令执行 drawCount 次绘制,参数从 buffer 中的 offset 开始,每次连续绘制增加 stride 字节。每次绘制的参数都编码在 VkDrawIndirectCommand 结构数组中。如果 drawCount 小于或等于 1,则忽略 stride。
-
VUID-vkCmdDrawIndirect-magFilter-04553
如果使用magFilter或minFilter等于VK_FILTER_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawIndirect-magFilter-09598
如果使用magFilter或minFilter等于VK_FILTER_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawIndirect-mipmapMode-04770
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawIndirect-mipmapMode-09599
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawIndirect-unnormalizedCoordinates-09635
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的levelCount和layerCount必须为 1 -
VUID-vkCmdDrawIndirect-None-08609
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的viewType必须为VK_IMAGE_VIEW_TYPE_1D或VK_IMAGE_VIEW_TYPE_2D -
VUID-vkCmdDrawIndirect-None-08610
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用,其名称中包含ImplicitLod、Dref或Proj -
VUID-vkCmdDrawIndirect-None-08611
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何包含 LOD 偏差或任何偏移值的 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawIndirect-None-06479
如果 VkImageView 使用 深度比较进行采样,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT -
VUID-vkCmdDrawIndirect-None-02691
如果由于此命令而使用原子操作访问 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT -
VUID-vkCmdDrawIndirect-None-07888
如果此命令导致使用原子操作访问VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER描述符,则存储纹理缓冲区视图的格式特性必须包含VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT。 -
VUID-vkCmdDrawIndirect-None-02692
如果此命令导致使用VK_FILTER_CUBIC_EXT采样 VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT。 -
VUID-vkCmdDrawIndirect-None-02693
如果未启用 VK_EXT_filter_cubic 扩展,且此命令导致使用VK_FILTER_CUBIC_EXT采样任何 VkImageView,则该图像视图的 VkImageViewType必须不能为VK_IMAGE_VIEW_TYPE_3D、VK_IMAGE_VIEW_TYPE_CUBE或VK_IMAGE_VIEW_TYPE_CUBE_ARRAY。 -
VUID-vkCmdDrawIndirect-filterCubic-02694
此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawIndirect-filterCubicMinmax-02695
此命令导致使用VK_FILTER_CUBIC_EXT采样且缩减模式为VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波以及 minmax 滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawIndirect-cubicRangeClamp-09212
如果未启用cubicRangeClamp特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerReductionModeCreateInfo::reductionMode必须不能等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM。 -
VUID-vkCmdDrawIndirect-reductionMode-09213
此命令导致使用 VkSamplerReductionModeCreateInfo::reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM采样的任何 VkImageView必须使用VK_FILTER_CUBIC_EXT进行采样。 -
VUID-vkCmdDrawIndirect-selectableCubicWeights-09214
如果未启用selectableCubicWeights特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights必须等于VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM。 -
VUID-vkCmdDrawIndirect-flags-02696
此命令导致采样的任何使用包含VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV的 VkImageCreateInfo::flags创建的 VkImage必须仅使用VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE的 VkSamplerAddressMode 进行采样。 -
VUID-vkCmdDrawIndirect-OpTypeImage-07027
对于任何作为存储图像写入,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndirect-OpTypeImage-07028
对于任何作为存储图像读取,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndirect-OpTypeImage-07029
对于任何作为存储纹理缓冲区写入,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndirect-OpTypeImage-07030
对于任何作为存储纹理缓冲区读取,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndirect-None-08600
对于 绑定着色器静态使用的每个集合 *n*,必须在同一管线绑定点将描述符集绑定到 *n*,其 VkPipelineLayout 与集合 *n* 兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawIndirect-None-08601
对于 绑定着色器静态使用的每个推送常量,必须为同一管线绑定点设置推送常量值,其 VkPipelineLayout 与推送常量兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawIndirect-None-10068
对于绑定的着色器使用的每个资源数组,用于访问数组元素的索引必须小于此命令所使用描述符集中标识绑定的描述符计数。 -
VUID-vkCmdDrawIndirect-maintenance4-08602
如果未启用maintenance4特性,则对于绑定的着色器静态使用的每个推送常量,必须已为同一管线绑定点设置了推送常量值,该管线绑定点具有与用于创建当前VkPipeline的VkPipelineLayout或用于创建当前VkShaderEXT的VkDescriptorSetLayout和VkPushConstantRange数组兼容的用于推送常量的VkPipelineLayout,如管线布局兼容性中所述。 -
VUID-vkCmdDrawIndirect-None-08114
如果通过vkCmdBindDescriptorSets指定的每个绑定描述符集中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline静态使用,且绑定的VkPipeline不是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须按照描述符有效性的描述是有效的。 -
VUID-vkCmdDrawIndirect-None-08115
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdBindDescriptorSets指定的,则绑定的VkPipeline必须是在没有VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawIndirect-None-08116
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline动态使用,且绑定的VkPipeline是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须是有效的。 -
VUID-vkCmdDrawIndirect-None-08604
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的任何阶段对应的VkShaderEXT动态使用,则必须是有效的。 -
VUID-vkCmdDrawIndirect-None-08117
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdSetDescriptorBufferOffsetsEXT指定的,则绑定的VkPipeline必须是在使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的。 -
VUID-vkCmdDrawIndirect-None-08119
如果描述符在创建时使用了VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkPipeline中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawIndirect-None-08605
如果描述符在创建时使用了VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkDescriptorSetLayout的VkShaderEXT中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawIndirect-None-08606
如果未启用shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点。 -
VUID-vkCmdDrawIndirect-None-08608
如果将管线绑定到此命令使用的管线绑定点,则自该管线绑定后,必须没有对绑定到此命令使用的管线绑定点的VkPipeline对象中静态指定的任何状态进行动态状态设置命令的任何调用。 -
VUID-vkCmdDrawIndirect-None-08607
如果启用了shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点,或者必须将有效和VK_NULL_HANDLE着色器对象的有效组合绑定到与此命令使用的管线绑定点对应的每个受支持的着色器阶段。 -
VUID-vkCmdDrawIndirect-uniformBuffers-06935
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问统一缓冲区,且该阶段的创建没有启用uniformBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndirect-None-08612
如果未启用robustBufferAccess特性,且绑定到与此命令使用的管线绑定点对应的阶段的任何VkShaderEXT访问统一缓冲区,则该VkShaderEXT必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndirect-storageBuffers-06936
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问存储缓冲区,且该阶段的创建没有启用storageBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndirect-None-08613
如果未启用robustBufferAccess特性,并且绑定到此命令所用管线绑定点的阶段的任何VkShaderEXT访问了存储缓冲区,则它必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值 -
VUID-vkCmdDrawIndirect-commandBuffer-02707
如果commandBuffer是一个未受保护的命令缓冲区,并且不支持protectedNoFault,则绑定的着色器访问的任何资源必须不是受保护的资源 -
VUID-vkCmdDrawIndirect-None-06550
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须仅与OpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawIndirect-ConstOffset-06551
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须不使用ConstOffset和Offset操作数 -
VUID-vkCmdDrawIndirect-viewType-07752
如果通过此命令访问VkImageView,则图像视图的viewType必须与SPIR-V 图像维度和 Vulkan ImageView 类型之间的兼容性中描述的OpTypeImage的Dim操作数匹配 -
VUID-vkCmdDrawIndirect-format-07753
如果通过此命令访问VkImageView,则图像视图的format的数值类型和OpTypeImage的SampledType操作数必须匹配 -
VUID-vkCmdDrawIndirect-OpImageWrite-08795
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM以外的格式创建的VkImageView,则该指令的Texel操作数的Type必须具有至少与图像视图的格式一样多的组件 -
VUID-vkCmdDrawIndirect-OpImageWrite-08796
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM格式创建的VkImageView,则该指令的Texel操作数的Type必须具有四个组件 -
VUID-vkCmdDrawIndirect-OpImageWrite-04469
如果通过此命令使用OpImageWrite访问VkBufferView,则该指令的Texel操作数的Type必须具有至少与缓冲区视图的格式一样多的组件 -
VUID-vkCmdDrawIndirect-SampledType-04470
如果通过此命令访问具有64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawIndirect-SampledType-04471
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawIndirect-SampledType-04472
如果通过此命令访问具有64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawIndirect-SampledType-04473
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04474
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkImage对象 -
VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04475
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkBuffer对象 -
VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06971
如果使用OpImageWeightedSampleQCOM来采样通过此命令获得的VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM -
VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06972
如果OpImageWeightedSampleQCOM使用通过此命令获得的VkImageView作为采样权重图像,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM -
VUID-vkCmdDrawIndirect-OpImageBoxFilterQCOM-06973
如果使用OpImageBoxFilterQCOM对 VkImageView 进行采样以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM -
VUID-vkCmdDrawIndirect-OpImageBlockMatchSSDQCOM-06974
如果使用OpImageBlockMatchSSDQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06975
如果使用OpImageBlockMatchSADQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06976
如果使用OpImageBlockMatchSADQCOM或OpImageBlockMatchSSDQCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06977
如果OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM使用 VkSampler 作为此命令的结果,则采样器必须使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06978
如果除OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM之外的任何命令使用 VkSampler 作为此命令的结果,则采样器必须未使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09215
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09216
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式必须是单分量格式 -
VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09217
如果OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawIndirect-None-07288
此命令执行的任何着色器调用必须终止 -
VUID-vkCmdDrawIndirect-None-09600
如果访问类型等于VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE、VK_DESCRIPTOR_TYPE_STORAGE_IMAGE或VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT的描述符以作为此命令的结果,则该描述符标识的所有图像子资源必须位于写入描述符时标识的图像布局中 -
VUID-vkCmdDrawIndirect-renderPass-02684
当前的渲染过程必须与创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的renderPass成员兼容 -
VUID-vkCmdDrawIndirect-subpass-02685
当前渲染过程的子过程索引必须等于创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的subpass成员 -
VUID-vkCmdDrawIndirect-None-07748
如果任何着色器静态访问输入附件,则必须通过描述符集将有效的描述符绑定到管道 -
VUID-vkCmdDrawIndirect-OpTypeImage-07468
如果此管道执行的任何着色器访问Dim操作数为SubpassData的OpTypeImage变量,则它必须使用与当前子过程中有效的输入附件相对应的InputAttachmentIndex进行修饰 -
VUID-vkCmdDrawIndirect-None-07469
在子过程中访问的输入附件视图必须使用与相应子过程定义相同的 VkFormat 创建,并且使用 VkImageView 创建,该 VkImageView 与绑定 VkFramebuffer 中子过程的pInputAttachments[InputAttachmentIndex] 引用的附件兼容,如片段输入附件兼容性中所述 -
VUID-vkCmdDrawIndirect-pDepthInputAttachmentIndex-09595
在动态渲染过程中访问的、由VkRenderingInputAttachmentIndexInfo 引用的InputAttachmentIndex的输入附件视图,或者如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex或 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex为NULL则没有InputAttachmentIndex的输入附件视图,必须使用与 VkRenderingInfo 中的相应颜色、深度或模板附件兼容的 VkImageView 创建 -
VUID-vkCmdDrawIndirect-pDepthInputAttachmentIndex-09596
如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex和 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex均不为NULL,则通过着色器对象在动态渲染过程中访问的输入附件视图必须具有InputAttachmentIndex -
VUID-vkCmdDrawIndirect-InputAttachmentIndex-09597
如果通过着色器对象在动态渲染过程中访问的输入附件视图具有InputAttachmentIndex,则InputAttachmentIndex必须与VkRenderingInputAttachmentIndexInfo 中的索引匹配 -
VUID-vkCmdDrawIndirect-None-06537
当前渲染通道中用作附件的内存后备图像子资源必须不能以任何方式写入,除非作为此命令的附件。 -
VUID-vkCmdDrawIndirect-None-09000
如果颜色附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_COLOR_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndirect-None-09001
如果深度附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_DEPTH_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndirect-None-09002
如果模板附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_STENCIL_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndirect-None-09003
如果附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则此命令必须不能以任何方式访问它,除非作为附件、存储图像或采样图像。 -
VUID-vkCmdDrawIndirect-None-06539
如果当前子通道中任何先前记录的命令以任何方式访问了用作此子通道附件的图像子资源,而非作为附件,则此命令必须不能将该图像子资源作为附件写入。 -
VUID-vkCmdDrawIndirect-None-06886
如果当前渲染通道实例使用深度/模板附件,且其深度方面为只读布局,则必须禁用深度写入。 -
VUID-vkCmdDrawIndirect-None-06887
如果当前渲染通道实例使用深度/模板附件,且其模板方面为只读布局,并且前向和后向writeMask都不为零,并且启用了模板测试,则所有模板操作必须为VK_STENCIL_OP_KEEP。 -
VUID-vkCmdDrawIndirect-None-07831
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_VIEWPORT动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewport,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirect-None-07832
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SCISSOR动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetScissor,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirect-None-07833
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_LINE_WIDTH动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirect-None-08617
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirect-None-08618
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirect-None-08619
如果输出线图元的着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirect-None-07834
如果着色器对象绑定到任何图形阶段,或者绑定了一个创建时启用了VK_DYNAMIC_STATE_DEPTH_BIAS动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBiasEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBias 或 vkCmdSetDepthBias2EXT,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirect-None-07835
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_BLEND_CONSTANTS动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetBlendConstants,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirect-None-08621
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEnableEXT 将pColorBlendEnables的任何元素设置为VK_TRUE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEquationEXT 将pColorBlendEquations的相同元素设置为一个VkColorBlendEquationEXT结构,其中任何 VkBlendFactor 成员的值为VK_BLEND_FACTOR_CONSTANT_COLOR,VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,VK_BLEND_FACTOR_CONSTANT_ALPHA或VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetBlendConstants 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07836
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBoundsTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetDepthBounds 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07837
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilCompareMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07838
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_WRITE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilWriteMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07839
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_REFERENCE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilReference 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688
如果绘制记录在启用了多视图的渲染通道实例中,则最大实例索引**必须**小于或等于 VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex。 -
VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689
如果绑定的图形管线是使用 VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable设置为VK_TRUE创建的,并且当前子通道具有深度/模板附件,则该附件**必须**已使用VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位集创建。 -
VUID-vkCmdDrawIndirect-None-07634
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-06666
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且sampleLocationsEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07840
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_CULL_MODE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetCullMode 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07841
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_FRONT_FACE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetFrontFace 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07843
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirect-None-07844
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthWriteEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirect-None-07845
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_COMPARE_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且depthTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthCompareOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirect-None-07846
如果启用了depthBounds功能,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthBoundsTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirect-None-07847
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirect-None-07848
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirect-viewportCount-03417
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirect-scissorCount-03418
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetScissorWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirect-viewportCount-03419
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时同时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则vkCmdSetViewportWithCount的viewportCount参数必须与vkCmdSetScissorWithCount的scissorCount参数匹配。 -
VUID-vkCmdDrawIndirect-viewportCount-04137
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportWScalingStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndirect-viewportCount-04138
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWScalingNV,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirect-None-08636
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则上次调用 vkCmdSetViewportWScalingNV 中的viewportCount参数必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndirect-viewportCount-04139
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndirect-shadingRateImage-09233
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetCoarseSampleOrderNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirect-shadingRateImage-09234
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewportShadingRatePaletteNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirect-None-08637
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则最后一次调用 vkCmdSetViewportShadingRatePaletteNV 中的viewportCount参数必须大于或等于最后一次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04141
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportSwizzleStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount创建。 -
VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04142
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportExclusiveScissorStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount创建。 -
VUID-vkCmdDrawIndirect-None-07878
如果启用了exclusiveScissor功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorEnableNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirect-None-07879
如果启用了exclusiveScissor功能,着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV动态状态创建的图形管线,并且当前命令缓冲区中最近一次调用 vkCmdSetExclusiveScissorEnableNV 将pExclusiveScissorEnables的任何元素设置为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirect-None-04876
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetRasterizerDiscardEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirect-None-04877
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBiasEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirect-logicOp-04878
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT,或者绑定了使用启用VK_DYNAMIC_STATE_LOGIC_OP_EXT动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且logicOpEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLogicOpEXT,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,绑定的图形管线是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且绑定的图形管线的任何着色器阶段写入到PrimitiveShadingRateKHR内置变量,则在执行此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,并且绑定到图形阶段的任何着色器对象写入了PrimitiveShadingRateKHR内置变量,那么在执行此绘制命令之前,当前命令缓冲区中必须调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDrawIndirect-blendEnable-04727
如果绑定的图形管线中没有禁用光栅化,那么对于子通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则pColorBlendState的pAttachments成员中相应元素的blendEnable成员必须为VK_FALSE。 -
VUID-vkCmdDrawIndirect-None-08643
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么对于渲染通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则在当前命令缓冲区中最近一次调用vkCmdSetColorBlendEnableEXT中影响该附件索引的pColorBlendEnables的相应成员必须为VK_FALSE。 -
VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07284
如果绑定的图形管线中没有禁用光栅化,并且以下任何一项均未启用那么绑定图形管线的
rasterizationSamples必须与当前子通道颜色和/或深度/模板附件相同。 -
VUID-vkCmdDrawIndirect-None-08644
如果着色器对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且以下任何一项均未启用那么在当前命令缓冲区中最近一次调用 vkCmdSetRasterizationSamplesEXT 必须已将
rasterizationSamples设置为与当前渲染通道颜色和/或深度/模板附件的样本数相同。 -
VUID-vkCmdDrawIndirect-None-08876
如果着色器对象绑定到任何图形阶段,则当前渲染通道实例必须已通过 vkCmdBeginRendering 开始。 -
VUID-vkCmdDrawIndirect-imageView-06172
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndirect-imageView-06173
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndirect-imageView-06174
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndirect-imageView-06175
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndirect-imageView-06176
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndirect-imageView-06177
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndirect-viewMask-06178
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::viewMask相等的 VkPipelineRenderingCreateInfo::viewMask创建。 -
VUID-vkCmdDrawIndirect-colorAttachmentCount-06179
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::colorAttachmentCount相等的 VkPipelineRenderingCreateInfo::colorAttachmentCount创建。 -
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08910
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建。 -
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08912
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView等于 VK_NULL_HANDLE 的元素必须使用于创建绑定管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08911
如果启用了dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建,或者如果 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的对应元素存在,则必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirect-colorAttachmentCount-09362
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,VkRenderingInfo::colorAttachmentCount等于1,并且没有任何着色器对象绑定到任何图形阶段,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个resolveImageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDrawIndirect-None-09363
如果没有着色器对象绑定到任何图形阶段,当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount等于1开始的,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDrawIndirect-None-09364
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDrawIndirect-None-09365
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDrawIndirect-None-09366
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDrawIndirect-rasterizationSamples-09367
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDrawIndirect-None-09368
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDrawIndirect-None-09369
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDrawIndirect-pFragmentSize-09370
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDrawIndirect-pFragmentSize-09371
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDrawIndirect-None-07749
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndirect-None-08646
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndirect-attachmentCount-07750
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于绑定图形管线的VkPipelineColorBlendStateCreateInfo::attachmentCount -
VUID-vkCmdDrawIndirect-None-08647
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在当前命令缓冲区中最近一次调用vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于当前渲染过程实例中的颜色附件数量 -
VUID-vkCmdDrawIndirect-None-07751
如果启用了VK_EXT_discard_rectangles扩展,绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中包含了一个 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09236
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中不包含 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndirect-None-07880
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须调用 vkCmdSetDiscardRectangleEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndirect-None-07881
如果启用了VK_EXT_discard_rectangles扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须调用过 vkCmdSetDiscardRectangleModeEXT,并且在当前命令缓冲区中没有后续失效。 -
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08913
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08914
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat。 -
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08915
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值不等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08916
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08917
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat。 -
VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08918
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值不等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirect-imageView-06183
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR创建的。 -
VUID-vkCmdDrawIndirect-imageView-06184
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT创建的。 -
VUID-vkCmdDrawIndirect-colorAttachmentCount-06185
如果绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的pColorAttachmentSamples成员的相应元素相同的采样计数创建。 -
VUID-vkCmdDrawIndirect-pDepthAttachment-06186
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndirect-pStencilAttachment-06187
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07285
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与绑定图形管线的rasterizationSamples值相同的采样计数创建。 -
VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07286
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07287
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndirect-pNext-07935
如果此命令是在使用 vkCmdBeginRendering 启动的渲染通道实例内调用的,并且 VkRenderingInfo 的pNext链包含一个 VkMultisampledRenderToSingleSampledInfoEXT 结构,其中multisampledRenderToSingleSampledEnable等于VK_TRUE,那么绑定图形管线的rasterizationSamples的值必须等于 VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples。 -
VUID-vkCmdDrawIndirect-renderPass-06198
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,那么绑定的管线必须使用 VkGraphicsPipelineCreateInfo::renderPass等于 VK_NULL_HANDLE 创建。 -
VUID-vkCmdDrawIndirect-pColorAttachments-08963
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,并且存在一个绑定了片段着色器的图形管线,该片段着色器静态写入颜色附件,颜色写入掩码不为零,颜色写入已启用,并且 VkRenderingInfo::pColorAttachments->imageView的相应元素不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的相应元素必须不是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirect-pDepthAttachment-08964
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了深度测试、启用了深度写入,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirect-pStencilAttachment-08965
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了模板测试,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708
如果primitivesGeneratedQueryWithRasterizerDiscard功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则 必须 不启用光栅化丢弃。 -
VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709
如果primitivesGeneratedQueryWithNonZeroStreams功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则绑定的图形管线 必须 不是使用VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream中的非零值创建的。 -
VUID-vkCmdDrawIndirect-None-07620
如果启用了depthClamp功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetDepthClampEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07621
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_POLYGON_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetPolygonModeEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07622
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetRasterizationSamplesEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07623
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_MASK_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetSampleMaskEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08919
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的,并且在上次调用 vkCmdSetAlphaToCoverageEnableEXT 时alphaToCoverageEnable为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08920
如果有 shader 对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetAlphaToCoverageEnableEXT 时将alphaToCoverageEnable设置为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDrawIndirect-None-07624
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToCoverageEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07625
如果启用了alphaToOne功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToOneEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07626
如果启用了logicOp功能,并且有 shader 对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetLogicOpEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07627
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态创建的,则在本次绘制命令之前, 必须 已调用 vkCmdSetColorBlendEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-08657
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirect-None-07628
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirect-None-08658
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且最近一次针对任何附件调用 vkCmdSetColorBlendEnableEXT 时将该附件在pColorBlendEnables中的值设置为VK_TRUE,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirect-None-07629
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirect-None-08659
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirect-None-07630
如果启用了geometryStreams特性,并且着色器对象绑定到VK_SHADER_STAGE_GEOMETRY_BIT阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetRasterizationStreamEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirect-None-07631
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在当前绘制命令之前,必须调用过 vkCmdSetConservativeRasterizationModeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirect-None-07632
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT动态状态的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且conservativeRasterizationMode的当前值为VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,则在当前绘制命令之前,必须调用过 vkCmdSetExtraPrimitiveOverestimationSizeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirect-None-07633
如果启用了depthClipEnable特性,并且着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetDepthClipEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirect-None-07635
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendAdvancedEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09416
如果启用了VK_EXT_blend_operation_advanced扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在当前绘制命令之前,必须至少调用过 vkCmdSetColorBlendEquationEXT 和 vkCmdSetColorBlendAdvancedEXT 中的一个,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirect-None-07636
如果启用了VK_EXT_provoking_vertex扩展,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT动态状态的图形管线,并且 当前值 的rasterizerDiscardEnable为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetProvokingVertexModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirect-None-07637
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirect-None-08666
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirect-None-08667
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirect-None-08668
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirect-None-07638
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirect-None-08669
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirect-None-08670
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirect-None-08671
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirect-None-07849
如果启用了stippledRectangularLines、stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且着色器对象绑定到任何图形阶段,或者使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE动态状态创建的绑定图形管线状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stippledLineEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetLineStipple 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirect-None-07639
如果启用了depthClipControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClipNegativeOneToOneEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirect-None-09650
如果启用了depthClampControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT动态状态创建的图形管线,并且depthClampEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClampRangeEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirect-None-07640
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportWScalingEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirect-None-07641
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportSwizzleNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirect-None-07642
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirect-None-07643
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageToColorEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorLocationNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirect-None-07644
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationModeNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirect-None-07645
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationMode的当前值不是VK_COVERAGE_MODULATION_MODE_NONE_NV的任何值,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationTableEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirect-None-07646
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationTableEnable的当前值为VK_TRUE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageModulationTableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07647
如果启用了shadingRateImage特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetShadingRateImageEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-pipelineFragmentShadingRate-09238
如果启用了pipelineFragmentShadingRate特性,并且绑定了一个着色器对象到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetFragmentShadingRateKHR,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07648
如果启用了representativeFragmentTest特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetRepresentativeFragmentTestEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-None-07649
如果启用了coverageReductionMode特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageReductionModeNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirect-pColorBlendEnables-07470
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT状态的情况下创建的,并且最后一次调用 vkCmdSetColorBlendEnableEXT 为任何附件将pColorBlendEnables设置为VK_TRUE,那么对于子通道中的这些附件,相应的图像视图的 格式特性 必须 包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT。 -
VUID-vkCmdDrawIndirect-rasterizationSamples-07471
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前子通道不使用任何颜色和/或深度/模板附件,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 遵循 零附件子通道 的规则。 -
VUID-vkCmdDrawIndirect-samples-07472
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态且禁用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于用于创建绑定的图形管线的 VkPipelineMultisampleStateCreateInfo::rasterizationSamples参数。 -
VUID-vkCmdDrawIndirect-samples-07473
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples参数。 -
VUID-vkCmdDrawIndirect-rasterizationSamples-07474
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且multisampledRenderToSingleSampled特性未启用,并且既没有启用VK_AMD_mixed_attachment_samples扩展,也没有启用VK_NV_framebuffer_mixed_samples扩展,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与当前子通道的颜色和/或深度/模板附件相同。 -
VUID-vkCmdDrawIndirect-None-09211
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,或者一个着色器对象被绑定到任何图形阶段,并且当前渲染通道实例包含一个multisampledRenderToSingleSampledEnable等于VK_TRUE的 VkMultisampledRenderToSingleSampledInfoEXT 结构,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与该结构的rasterizationSamples成员相同。 -
VUID-vkCmdDrawIndirect-firstAttachment-07476
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态的情况下创建的,那么在此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件 必须 为当前子通道中的所有活动颜色附件指定启用。 -
VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09417
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件启用。 -
VUID-vkCmdDrawIndirect-firstAttachment-07477
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09418
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且存在绑定的颜色附件,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDrawIndirect-firstAttachment-07478
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09419
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDrawIndirect-firstAttachment-07479
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendAdvancedEXT,并且vkCmdSetColorBlendAdvancedEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定高级混合方程式。 -
VUID-vkCmdDrawIndirect-advancedBlendMaxColorAttachments-07480
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT和VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,并且最近一次调用 vkCmdSetColorBlendEnableEXT 和 vkCmdSetColorBlendAdvancedEXT 已启用高级混合,则当前子通道中的活动颜色附件的数量必须不超过advancedBlendMaxColorAttachments。 -
VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481
如果未启用primitivesGeneratedQueryWithNonZeroStreams功能,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,并且绑定的图形管线创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT状态,则最近一次调用 vkCmdSetRasterizationStreamEXT 必须已将rasterizationStream设置为零。 -
VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07482
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态并禁用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于绑定图形管线创建时使用的 VkPipelineMultisampleStateCreateInfo 结构的rasterizationSamples成员。 -
VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07483
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于最近一次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples参数。 -
VUID-vkCmdDrawIndirect-sampleLocationsEnable-07484
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,并且当前子通道具有深度/模板附件,则该附件的创建必须设置了VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位。 -
VUID-vkCmdDrawIndirect-sampleLocationsEnable-07485
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中sampleLocationsInfo.sampleLocationGridSize.width必须能被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者是通过 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回的,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDrawIndirect-sampleLocationsEnable-07486
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则上次调用 vkCmdSetSampleLocationsEXT 中的sampleLocationsInfo.sampleLocationGridSize.height**必须** 可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDrawIndirect-sampleLocationsEnable-07487
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则片段着色器代码**必须**不得静态使用扩展指令InterpolateAtSample。 -
VUID-vkCmdDrawIndirect-sampleLocationsEnable-07936
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.width**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDrawIndirect-sampleLocationsEnable-07937
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.height**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDrawIndirect-sampleLocationsEnable-07938
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationsPerPixel**必须**等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples。 -
VUID-vkCmdDrawIndirect-coverageModulationTableEnable-07488
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageModulationTableEnableNV 将coverageModulationTableEnable设置为VK_TRUE,则上次调用 vkCmdSetCoverageModulationTableNV 中的coverageModulationTableCount参数**必须**等于当前的rasterizationSamples除以当前子通道中的颜色样本数量。 -
VUID-vkCmdDrawIndirect-rasterizationSamples-07489
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且当前子通道具有深度/模板附件,且在绑定的管线中启用了深度测试、模板测试或深度边界测试,则当前的rasterizationSamples**必须**与深度/模板附件的样本计数相同。 -
VUID-vkCmdDrawIndirect-coverageToColorEnable-07490
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09420
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDrawIndirect-coverageReductionMode-07491
如果启用了VK_NV_coverage_reduction_mode扩展,并且绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前的覆盖率缩减模式coverageReductionMode、当前的rasterizationSamples以及颜色和深度/模板附件(如果子通道有这些附件)的采样计数 必须 是 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV 返回的有效组合。 -
VUID-vkCmdDrawIndirect-viewportCount-07492
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但未启用VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么绑定的图形管线 必须 是使用 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数创建的。 -
VUID-vkCmdDrawIndirect-viewportCount-07493
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndirect-viewportCount-09421
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndirect-rasterizationSamples-07494
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且如果当前子通道有任何颜色附件,且上次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples大于颜色采样数,那么管线的sampleShadingEnable必须 为VK_FALSE。 -
VUID-vkCmdDrawIndirect-stippledLineEnable-07495
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR,那么stippledRectangularLines特性 必须 启用。 -
VUID-vkCmdDrawIndirect-stippledLineEnable-07496
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_BRESENHAM,那么stippledBresenhamLines特性 必须 启用。 -
VUID-vkCmdDrawIndirect-stippledLineEnable-07497
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,那么stippledSmoothLines特性 必须 启用。 -
VUID-vkCmdDrawIndirect-stippledLineEnable-07498
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_DEFAULT,那么stippledRectangularLines特性 必须 启用,并且 VkPhysicalDeviceLimits::strictLines必须 为VK_TRUE。 -
VUID-vkCmdDrawIndirect-conservativePointAndLineRasterization-07499
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且不支持conservativePointAndLineRasterization,并且最后一个光栅化前着色器阶段输出的有效图元拓扑结构为直线或点,那么上次调用 vkCmdSetConservativeRasterizationModeEXT 设置的conservativeRasterizationMode必须 为VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT。 -
VUID-vkCmdDrawIndirect-stage-07073
如果绑定的管线是使用 VkPipelineShaderStageCreateInfo::stage成员,该成员是 VkGraphicsPipelineCreateInfo::pStages的一个元素,设置为VK_SHADER_STAGE_VERTEX_BIT、VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT、VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT创建的,那么 网格着色器查询 必须 未处于活动状态。 -
VUID-vkCmdDrawIndirect-None-08877
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,当前命令缓冲区中 必须 调用过 vkCmdSetAttachmentFeedbackLoopEnableEXT 并且没有随后被 无效化。 -
VUID-vkCmdDrawIndirect-None-07850
如果动态状态是从 VkCommandBufferInheritanceViewportScissorInfoNV 继承的,则它必须在本绘图命令之前在当前命令缓冲区中设置。 -
VUID-vkCmdDrawIndirect-None-08688
如果未绑定图形管线,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_FRAGMENT_BIT元素。 -
VUID-vkCmdDrawIndirect-None-08689
如果未绑定图形管线,且启用了taskShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_TASK_BIT_EXT元素。 -
VUID-vkCmdDrawIndirect-None-08690
如果未绑定图形管线,且启用了meshShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_MESH_BIT_EXT元素。 -
VUID-vkCmdDrawIndirect-None-08693
如果未绑定图形管线,并且至少启用了taskShader和meshShader特性中的一个,则VK_SHADER_STAGE_VERTEX_BIT或VK_SHADER_STAGE_MESH_BIT_EXT阶段之一必须绑定有效的VkShaderEXT,而另一个必须未绑定VkShaderEXT。 -
VUID-vkCmdDrawIndirect-None-08694
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是在没有VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志的情况下创建的,则必须将有效的VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDrawIndirect-None-08695
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是使用VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志创建的,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDrawIndirect-None-08696
如果未绑定图形管线,并且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawIndirect-None-08698
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则同一 vkCreateShadersEXT 调用中所有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的着色器也必须绑定。 -
VUID-vkCmdDrawIndirect-None-08699
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则在同一 vkCreateShadersEXT 调用中,着色器没有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的阶段之间的任何阶段必须未绑定任何VkShaderEXT。 -
VUID-vkCmdDrawIndirect-None-08878
所有绑定的图形着色器对象必须使用相同或相同定义的推送常量范围创建。 -
VUID-vkCmdDrawIndirect-None-08879
所有绑定的图形着色器对象必须使用相同或相同定义的描述符集布局数组创建。 -
VUID-vkCmdDrawIndirect-colorAttachmentCount-09372
如果当前渲染通道实例是使用 vkCmdBeginRendering 和一个 VkRenderingInfo::colorAttachmentCount等于1开始的,且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,并且绑定了片段着色器,则它必须不声明DepthReplacing或StencilRefReplacingEXT执行模式。 -
VUID-vkCmdDrawIndirect-pDynamicStates-08715
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpDepthAttachmentReadEXT,则上次调用 vkCmdSetDepthWriteEnable 的depthWriteEnable参数必须为VK_FALSE。 -
VUID-vkCmdDrawIndirect-pDynamicStates-08716
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_STENCIL_WRITE_MASK创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpStencilAttachmentReadEXT,则上次调用 vkCmdSetStencilWriteMask 的writeMask参数必须为0。 -
VUID-vkCmdDrawIndirect-None-09116
如果将着色器对象绑定到任何图形阶段,或者使用VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT创建了绑定的图形管线,并且任何颜色附件的格式为VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,则 vkCmdSetColorWriteMaskEXT 的pColorWriteMasks参数的相应元素必须包含VK_COLOR_COMPONENT_R_BIT、VK_COLOR_COMPONENT_G_BIT和VK_COLOR_COMPONENT_B_BIT中的全部,或全部都不包含。 -
VUID-vkCmdDrawIndirect-maxFragmentDualSrcAttachments-09239
如果任何附件启用了混合,并且该附件的源或目标混合因子使用了辅助颜色输入,则在此命令执行的FragmentExecutionModel中静态使用的任何输出附件的Location最大值必须小于maxFragmentDualSrcAttachments。 -
VUID-vkCmdDrawIndirect-None-09548
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则由vkCmdSetRenderingAttachmentLocations设置的VkRenderingAttachmentLocationInfo::pColorAttachmentLocations的每个元素的值必须与绑定的管道中相应元素的值匹配。 -
VUID-vkCmdDrawIndirect-None-09549
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则绑定管道中的输入附件索引映射必须与通过VkRenderingInputAttachmentIndexInfo为当前渲染通道实例设置的索引映射匹配。 -
VUID-vkCmdDrawIndirect-None-09642
如果当前渲染通道是通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始的,则绑定的图形管线必须使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建。 -
VUID-vkCmdDrawIndirect-None-09643
如果绑定的图形管线是使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建的,则当前渲染通道必须通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始。
-
VUID-vkCmdDrawIndirect-None-04007
通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须绑定有效的或VK_NULL_HANDLE 缓冲区。 -
VUID-vkCmdDrawIndirect-None-04008
如果未启用nullDescriptor功能,则通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须不是VK_NULL_HANDLE。 -
VUID-vkCmdDrawIndirect-None-02721
如果未启用robustBufferAccess功能,并且该管道的创建没有为vertexInputs启用VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,则对于给定的顶点缓冲区绑定,提取的任何属性数据必须完全包含在相应的顶点缓冲区绑定中,如顶点输入描述中所述。 -
VUID-vkCmdDrawIndirect-format-10389
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format是打包格式,并且未启用legacyVertexAttributes,则根据顶点输入计算计算的attribAddress值必须是format的大小的倍数。 -
VUID-vkCmdDrawIndirect-format-10390
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format不是打包格式,并且要么未启用legacyVertexAttributes,要么format具有 64 位组件,则根据顶点输入计算计算的attribAddress值必须是format的组件大小的倍数。 -
VUID-vkCmdDrawIndirect-None-07842
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是使用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态启用的,那么在本次绘制命令之前,必须调用过 vkCmdSetPrimitiveTopology 并且没有在当前命令缓冲区中被后续失效。 -
VUID-vkCmdDrawIndirect-dynamicPrimitiveTopologyUnrestricted-07500
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态且dynamicPrimitiveTopologyUnrestricted为VK_FALSE的情况下创建的,则vkCmdSetPrimitiveTopology的primitiveTopology参数必须与管线 VkPipelineInputAssemblyStateCreateInfo::topology状态具有相同的图元拓扑类别。 -
VUID-vkCmdDrawIndirect-primitiveTopology-10286
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,那么在执行此绘制命令之前,vkCmdSetPrimitiveTopology 必须将primitiveTopology设置为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST。 -
VUID-vkCmdDrawIndirect-pStrides-04913
如果绑定的图形管线是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE动态状态但未启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdBindVertexBuffers2 且未在当前命令缓冲区中随后被失效,并且 vkCmdBindVertexBuffers2 的pStrides参数必须不为NULL。 -
VUID-vkCmdDrawIndirect-None-04914
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetVertexInputEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirect-Input-07939
如果vertexAttributeRobustness未启用,并且有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在VertexExecutionModelOpEntryPoint中,所有使用Location修饰的Input存储类变量必须包含 VkVertexInputAttributeDescription2EXT::location中的一个位置。 -
VUID-vkCmdDrawIndirect-Input-08734
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且legacyVertexAttributes功能未启用,或者在VertexExecutionModelOpEntryPoint中,与给定Location的Input变量关联的 SPIR-V 类型是 64 位的,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的数值类型必须与 VkVertexInputAttributeDescription2EXT::format相同。 -
VUID-vkCmdDrawIndirect-format-08936
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的标量宽度必须为 64 位。 -
VUID-vkCmdDrawIndirect-format-08937
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且在VertexExecutionModelOpEntryPoint中,与Location修饰的Input变量关联的标量宽度是 64 位的,那么对应的 VkVertexInputAttributeDescription2EXT::format必须具有 64 位分量。 -
VUID-vkCmdDrawIndirect-None-09203
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,对应Location的所有Input变量必须不使用格式中不存在的分量。 -
VUID-vkCmdDrawIndirect-None-04875
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT动态状态的情况下创建的,并且primitiveTopology的当前值 为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,那么在执行此绘制命令之前,必须调用过 vkCmdSetPatchControlPointsEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirect-None-04879
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetPrimitiveRestartEnable 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirect-None-09637
如果primitiveTopologyListRestart功能未启用,拓扑为VK_PRIMITIVE_TOPOLOGY_POINT_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST、VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY或VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么 vkCmdSetPrimitiveRestartEnable 必须为VK_FALSE。 -
VUID-vkCmdDrawIndirect-stage-06481
绑定的图形管线必须不是使用 VkPipelineShaderStageCreateInfo::stage成员(该成员是 VkGraphicsPipelineCreateInfo::pStages的任意元素的成员)设置为VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawIndirect-None-08885
必须没有着色器对象绑定到VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawIndirect-None-07619
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT阶段,或者绑定了一个使用启用VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须调用过 vkCmdSetTessellationDomainOriginEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirect-None-08684
如果没有绑定图形管线,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_VERTEX_BIT元素 -
VUID-vkCmdDrawIndirect-None-08685
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT元素 -
VUID-vkCmdDrawIndirect-None-08686
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT元素 -
VUID-vkCmdDrawIndirect-None-08687
如果没有绑定图形管线,且启用了geometryShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_GEOMETRY_BIT元素
-
VUID-vkCmdDrawIndirect-drawCount-02718
如果multiDrawIndirect特性未启用,则drawCount必须 为0或1 -
VUID-vkCmdDrawIndirect-drawCount-02719
drawCount必须 小于或等于VkPhysicalDeviceLimits::maxDrawIndirectCount -
VUID-vkCmdDrawIndirect-drawCount-00476
如果drawCount大于1, 则stride必须 是4的倍数,并且必须大于或等于sizeof(VkDrawIndirectCommand) -
VUID-vkCmdDrawIndirect-drawCount-00487
如果drawCount等于1,则 (offset+sizeof(VkDrawIndirectCommand)) 必须 小于或等于buffer的大小。 -
VUID-vkCmdDrawIndirect-drawCount-00488
如果drawCount大于1,则 (stride× (drawCount- 1) +offset+sizeof(VkDrawIndirectCommand)) 必须 小于或等于buffer的大小。
-
VUID-vkCmdDrawIndirect-commandBuffer-parameter
commandBuffer必须 为有效的 VkCommandBuffer 句柄。 -
VUID-vkCmdDrawIndirect-buffer-parameter
buffer必须 是一个有效的 VkBuffer 句柄。 -
VUID-vkCmdDrawIndirect-commandBuffer-recording
commandBuffer必须 处于记录状态。 -
VUID-vkCmdDrawIndirect-commandBuffer-cmdpool
分配commandBuffer的VkCommandPool必须 支持图形操作。 -
VUID-vkCmdDrawIndirect-commonparent
buffer和commandBuffer都 必须 从同一个 VkDevice 创建、分配或检索。
-
对
commandBuffer的主机访问必须进行外部同步。 -
对分配
commandBuffer的VkCommandPool的主机访问必须进行外部同步。
VkDrawIndirectCommand 结构定义如下:
// Provided by VK_VERSION_1_0
typedef struct VkDrawIndirectCommand {
uint32_t vertexCount;
uint32_t instanceCount;
uint32_t firstVertex;
uint32_t firstInstance;
} VkDrawIndirectCommand;
-
vertexCount是要绘制的顶点数。 -
instanceCount是要绘制的实例数。 -
firstVertex是要绘制的第一个顶点的索引。 -
firstInstance是要绘制的第一个实例的实例 ID。
VkDrawIndirectCommand 的成员与 vkCmdDraw 中具有类似名称的参数具有相同的含义。
-
VUID-VkDrawIndirectCommand-pNext-09461
如果绑定的图形管线状态是通过 VkPipelineVertexInputDivisorStateCreateInfo 在 VkGraphicsPipelineCreateInfo::pVertexInputState的pNext链中创建的,VkPipelineVertexInputDivisorStateCreateInfo::pVertexBindingDivisors的任何成员在divisor中的值不是1,并且 VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance为VK_FALSE,则firstInstance必须为0 -
VUID-VkDrawIndirectCommand-None-09462
如果使用着色器对象进行绘制,或者绑定的图形管线状态启用了VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态,则 vkCmdSetVertexInputEXT 调用中设置此动态状态的pVertexBindingDescriptions参数的任何成员在divisor中的值不是1,并且 VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance为VK_FALSE,则firstInstance必须为0
-
VUID-VkDrawIndirectCommand-firstInstance-00501
如果未启用drawIndirectFirstInstance功能,则firstInstance必须 为0。
要记录一个从缓冲区获取绘制调用计数的非索引绘制调用,请调用:
// Provided by VK_VERSION_1_2
void vkCmdDrawIndirectCount(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
VkBuffer countBuffer,
VkDeviceSize countBufferOffset,
uint32_t maxDrawCount,
uint32_t stride);
或等效命令
// Provided by VK_KHR_draw_indirect_count
void vkCmdDrawIndirectCountKHR(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
VkBuffer countBuffer,
VkDeviceSize countBufferOffset,
uint32_t maxDrawCount,
uint32_t stride);
或等效命令
// Provided by VK_AMD_draw_indirect_count
void vkCmdDrawIndirectCountAMD(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
VkBuffer countBuffer,
VkDeviceSize countBufferOffset,
uint32_t maxDrawCount,
uint32_t stride);
-
commandBuffer是要记录命令的命令缓冲区。 -
buffer是包含绘制参数的缓冲区。 -
offset是buffer中参数开始的字节偏移量。 -
countBuffer是包含绘制计数的缓冲区。 -
countBufferOffset是countBuffer中绘制计数开始的字节偏移量。 -
maxDrawCount指定将要执行的最大绘制次数。实际执行的绘制调用次数是countBuffer中指定的计数和maxDrawCount中的最小值。 -
stride是连续的绘制参数集之间的字节步长。
vkCmdDrawIndirectCount 的行为类似于 vkCmdDrawIndirect,区别在于绘制计数是在执行期间由设备从缓冲区读取的。该命令将从位于 countBufferOffset 的 countBuffer 中读取一个无符号 32 位整数,并将其用作绘制计数。
-
VUID-vkCmdDrawIndirectCount-magFilter-04553
如果使用magFilter或minFilter等于VK_FILTER_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawIndirectCount-magFilter-09598
如果使用magFilter或minFilter等于VK_FILTER_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawIndirectCount-mipmapMode-04770
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawIndirectCount-mipmapMode-09599
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawIndirectCount-unnormalizedCoordinates-09635
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的levelCount和layerCount必须为 1 -
VUID-vkCmdDrawIndirectCount-None-08609
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的viewType必须为VK_IMAGE_VIEW_TYPE_1D或VK_IMAGE_VIEW_TYPE_2D -
VUID-vkCmdDrawIndirectCount-None-08610
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用,其名称中包含ImplicitLod、Dref或Proj -
VUID-vkCmdDrawIndirectCount-None-08611
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何包含 LOD 偏差或任何偏移值的 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawIndirectCount-None-06479
如果 VkImageView 使用 深度比较进行采样,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT -
VUID-vkCmdDrawIndirectCount-None-02691
如果由于此命令而使用原子操作访问 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT -
VUID-vkCmdDrawIndirectCount-None-07888
如果此命令导致使用原子操作访问VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER描述符,则存储纹理缓冲区视图的格式特性必须包含VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT。 -
VUID-vkCmdDrawIndirectCount-None-02692
如果此命令导致使用VK_FILTER_CUBIC_EXT采样 VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT。 -
VUID-vkCmdDrawIndirectCount-None-02693
如果未启用 VK_EXT_filter_cubic 扩展,且此命令导致使用VK_FILTER_CUBIC_EXT采样任何 VkImageView,则该图像视图的 VkImageViewType必须不能为VK_IMAGE_VIEW_TYPE_3D、VK_IMAGE_VIEW_TYPE_CUBE或VK_IMAGE_VIEW_TYPE_CUBE_ARRAY。 -
VUID-vkCmdDrawIndirectCount-filterCubic-02694
此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695
此命令导致使用VK_FILTER_CUBIC_EXT采样且缩减模式为VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波以及 minmax 滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawIndirectCount-cubicRangeClamp-09212
如果未启用cubicRangeClamp特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerReductionModeCreateInfo::reductionMode必须不能等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM。 -
VUID-vkCmdDrawIndirectCount-reductionMode-09213
此命令导致使用 VkSamplerReductionModeCreateInfo::reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM采样的任何 VkImageView必须使用VK_FILTER_CUBIC_EXT进行采样。 -
VUID-vkCmdDrawIndirectCount-selectableCubicWeights-09214
如果未启用selectableCubicWeights特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights必须等于VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM。 -
VUID-vkCmdDrawIndirectCount-flags-02696
此命令导致采样的任何使用包含VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV的 VkImageCreateInfo::flags创建的 VkImage必须仅使用VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE的 VkSamplerAddressMode 进行采样。 -
VUID-vkCmdDrawIndirectCount-OpTypeImage-07027
对于任何作为存储图像写入,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndirectCount-OpTypeImage-07028
对于任何作为存储图像读取,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndirectCount-OpTypeImage-07029
对于任何作为存储纹理缓冲区写入,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndirectCount-OpTypeImage-07030
对于任何作为存储纹理缓冲区读取,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndirectCount-None-08600
对于 绑定着色器静态使用的每个集合 *n*,必须在同一管线绑定点将描述符集绑定到 *n*,其 VkPipelineLayout 与集合 *n* 兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawIndirectCount-None-08601
对于 绑定着色器静态使用的每个推送常量,必须为同一管线绑定点设置推送常量值,其 VkPipelineLayout 与推送常量兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawIndirectCount-None-10068
对于绑定的着色器使用的每个资源数组,用于访问数组元素的索引必须小于此命令所使用描述符集中标识绑定的描述符计数。 -
VUID-vkCmdDrawIndirectCount-maintenance4-08602
如果未启用maintenance4特性,则对于绑定的着色器静态使用的每个推送常量,必须已为同一管线绑定点设置了推送常量值,该管线绑定点具有与用于创建当前VkPipeline的VkPipelineLayout或用于创建当前VkShaderEXT的VkDescriptorSetLayout和VkPushConstantRange数组兼容的用于推送常量的VkPipelineLayout,如管线布局兼容性中所述。 -
VUID-vkCmdDrawIndirectCount-None-08114
如果通过vkCmdBindDescriptorSets指定的每个绑定描述符集中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline静态使用,且绑定的VkPipeline不是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须按照描述符有效性的描述是有效的。 -
VUID-vkCmdDrawIndirectCount-None-08115
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdBindDescriptorSets指定的,则绑定的VkPipeline必须是在没有VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawIndirectCount-None-08116
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline动态使用,且绑定的VkPipeline是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须是有效的。 -
VUID-vkCmdDrawIndirectCount-None-08604
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的任何阶段对应的VkShaderEXT动态使用,则必须是有效的。 -
VUID-vkCmdDrawIndirectCount-None-08117
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdSetDescriptorBufferOffsetsEXT指定的,则绑定的VkPipeline必须是在使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的。 -
VUID-vkCmdDrawIndirectCount-None-08119
如果描述符在创建时使用了VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkPipeline中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawIndirectCount-None-08605
如果描述符在创建时使用了VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkDescriptorSetLayout的VkShaderEXT中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawIndirectCount-None-08606
如果未启用shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点。 -
VUID-vkCmdDrawIndirectCount-None-08608
如果将管线绑定到此命令使用的管线绑定点,则自该管线绑定后,必须没有对绑定到此命令使用的管线绑定点的VkPipeline对象中静态指定的任何状态进行动态状态设置命令的任何调用。 -
VUID-vkCmdDrawIndirectCount-None-08607
如果启用了shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点,或者必须将有效和VK_NULL_HANDLE着色器对象的有效组合绑定到与此命令使用的管线绑定点对应的每个受支持的着色器阶段。 -
VUID-vkCmdDrawIndirectCount-uniformBuffers-06935
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问统一缓冲区,且该阶段的创建没有启用uniformBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndirectCount-None-08612
如果未启用robustBufferAccess特性,且绑定到与此命令使用的管线绑定点对应的阶段的任何VkShaderEXT访问统一缓冲区,则该VkShaderEXT必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndirectCount-storageBuffers-06936
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问存储缓冲区,且该阶段的创建没有启用storageBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndirectCount-None-08613
如果未启用robustBufferAccess特性,并且绑定到此命令所用管线绑定点的阶段的任何VkShaderEXT访问了存储缓冲区,则它必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值 -
VUID-vkCmdDrawIndirectCount-commandBuffer-02707
如果commandBuffer是一个未受保护的命令缓冲区,并且不支持protectedNoFault,则绑定的着色器访问的任何资源必须不是受保护的资源 -
VUID-vkCmdDrawIndirectCount-None-06550
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须仅与OpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawIndirectCount-ConstOffset-06551
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须不使用ConstOffset和Offset操作数 -
VUID-vkCmdDrawIndirectCount-viewType-07752
如果通过此命令访问VkImageView,则图像视图的viewType必须与SPIR-V 图像维度和 Vulkan ImageView 类型之间的兼容性中描述的OpTypeImage的Dim操作数匹配 -
VUID-vkCmdDrawIndirectCount-format-07753
如果通过此命令访问VkImageView,则图像视图的format的数值类型和OpTypeImage的SampledType操作数必须匹配 -
VUID-vkCmdDrawIndirectCount-OpImageWrite-08795
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM以外的格式创建的VkImageView,则该指令的Texel操作数的Type必须具有至少与图像视图的格式一样多的组件 -
VUID-vkCmdDrawIndirectCount-OpImageWrite-08796
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM格式创建的VkImageView,则该指令的Texel操作数的Type必须具有四个组件 -
VUID-vkCmdDrawIndirectCount-OpImageWrite-04469
如果通过此命令使用OpImageWrite访问VkBufferView,则该指令的Texel操作数的Type必须具有至少与缓冲区视图的格式一样多的组件 -
VUID-vkCmdDrawIndirectCount-SampledType-04470
如果通过此命令访问具有64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawIndirectCount-SampledType-04471
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawIndirectCount-SampledType-04472
如果通过此命令访问具有64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawIndirectCount-SampledType-04473
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04474
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkImage对象 -
VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04475
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkBuffer对象 -
VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06971
如果使用OpImageWeightedSampleQCOM来采样通过此命令获得的VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM -
VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06972
如果OpImageWeightedSampleQCOM使用通过此命令获得的VkImageView作为采样权重图像,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM -
VUID-vkCmdDrawIndirectCount-OpImageBoxFilterQCOM-06973
如果使用OpImageBoxFilterQCOM对 VkImageView 进行采样以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM -
VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSSDQCOM-06974
如果使用OpImageBlockMatchSSDQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06975
如果使用OpImageBlockMatchSADQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSADQCOM-06976
如果使用OpImageBlockMatchSADQCOM或OpImageBlockMatchSSDQCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06977
如果OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM使用 VkSampler 作为此命令的结果,则采样器必须使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06978
如果除OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM之外的任何命令使用 VkSampler 作为此命令的结果,则采样器必须未使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09215
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09216
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式必须是单分量格式 -
VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09217
如果OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawIndirectCount-None-07288
此命令执行的任何着色器调用必须终止 -
VUID-vkCmdDrawIndirectCount-None-09600
如果访问类型等于VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE、VK_DESCRIPTOR_TYPE_STORAGE_IMAGE或VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT的描述符以作为此命令的结果,则该描述符标识的所有图像子资源必须位于写入描述符时标识的图像布局中 -
VUID-vkCmdDrawIndirectCount-renderPass-02684
当前的渲染过程必须与创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的renderPass成员兼容 -
VUID-vkCmdDrawIndirectCount-subpass-02685
当前渲染过程的子过程索引必须等于创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的subpass成员 -
VUID-vkCmdDrawIndirectCount-None-07748
如果任何着色器静态访问输入附件,则必须通过描述符集将有效的描述符绑定到管道 -
VUID-vkCmdDrawIndirectCount-OpTypeImage-07468
如果此管道执行的任何着色器访问Dim操作数为SubpassData的OpTypeImage变量,则它必须使用与当前子过程中有效的输入附件相对应的InputAttachmentIndex进行修饰 -
VUID-vkCmdDrawIndirectCount-None-07469
在子过程中访问的输入附件视图必须使用与相应子过程定义相同的 VkFormat 创建,并且使用 VkImageView 创建,该 VkImageView 与绑定 VkFramebuffer 中子过程的pInputAttachments[InputAttachmentIndex] 引用的附件兼容,如片段输入附件兼容性中所述 -
VUID-vkCmdDrawIndirectCount-pDepthInputAttachmentIndex-09595
在动态渲染过程中访问的、由VkRenderingInputAttachmentIndexInfo 引用的InputAttachmentIndex的输入附件视图,或者如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex或 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex为NULL则没有InputAttachmentIndex的输入附件视图,必须使用与 VkRenderingInfo 中的相应颜色、深度或模板附件兼容的 VkImageView 创建 -
VUID-vkCmdDrawIndirectCount-pDepthInputAttachmentIndex-09596
如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex和 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex均不为NULL,则通过着色器对象在动态渲染过程中访问的输入附件视图必须具有InputAttachmentIndex -
VUID-vkCmdDrawIndirectCount-InputAttachmentIndex-09597
如果通过着色器对象在动态渲染过程中访问的输入附件视图具有InputAttachmentIndex,则InputAttachmentIndex必须与VkRenderingInputAttachmentIndexInfo 中的索引匹配 -
VUID-vkCmdDrawIndirectCount-None-06537
当前渲染通道中用作附件的内存后备图像子资源必须不能以任何方式写入,除非作为此命令的附件。 -
-
绑定的管线上设置了
VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_COLOR_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
-
它必须不能以任何方式访问,除非作为此命令的附件。
VUID-vkCmdDrawIndirectCount-None-09001
如果深度附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT 图像布局中,并且满足以下任一条件:
-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_DEPTH_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
VUID-vkCmdDrawIndirectCount-None-09002
如果模板附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT 图像布局中,并且满足以下任一条件:
-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_STENCIL_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
VUID-vkCmdDrawIndirectCount-None-09003
如果附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则此命令必须不能以任何方式访问它,除非作为附件、存储图像或采样图像。
VUID-vkCmdDrawIndirectCount-None-06539
如果当前子通道中任何先前记录的命令以任何方式访问了用作此子通道附件的图像子资源,而非作为附件,则此命令必须不能将该图像子资源作为附件写入。
VUID-vkCmdDrawIndirectCount-None-06886
如果当前渲染通道实例使用深度/模板附件,且其深度方面为只读布局,则必须禁用深度写入。
VUID-vkCmdDrawIndirectCount-None-06887
如果当前渲染通道实例使用深度/模板附件,且其模板方面为只读布局,并且前向和后向 writeMask 都不为零,并且启用了模板测试,则所有模板操作必须为 VK_STENCIL_OP_KEEP。
VUID-vkCmdDrawIndirectCount-None-07831
如果绑定的图形管线状态创建时启用了 VK_DYNAMIC_STATE_VIEWPORT 动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewport,并且在当前命令缓冲区中没有被后续失效。
VUID-vkCmdDrawIndirectCount-None-07832
如果绑定的图形管线状态创建时启用了 VK_DYNAMIC_STATE_SCISSOR 动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetScissor,并且在当前命令缓冲区中没有被后续失效。
VUID-vkCmdDrawIndirectCount-None-07833
如果绑定的图形管线状态创建时启用了 VK_DYNAMIC_STATE_LINE_WIDTH 动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。
VUID-vkCmdDrawIndirectCount-None-08617
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将 polygonMode 设置为 VK_POLYGON_MODE_LINE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。
VUID-vkCmdDrawIndirectCount-None-08618
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将 primitiveTopology 设置为任何线拓扑,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。
VUID-vkCmdDrawIndirectCount-None-08619
如果输出线图元的着色器对象绑定到 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT 或 VK_SHADER_STAGE_GEOMETRY_BIT 阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。
VUID-vkCmdDrawIndirectCount-None-07834
如果着色器对象绑定到任何图形阶段,或者绑定了一个创建时启用了 VK_DYNAMIC_STATE_DEPTH_BIAS 动态状态的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 depthBiasEnable 的当前值为 VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBias 或 vkCmdSetDepthBias2EXT,并且在当前命令缓冲区中没有被后续失效。
VUID-vkCmdDrawIndirectCount-None-07835
如果绑定的图形管线状态创建时启用了 VK_DYNAMIC_STATE_BLEND_CONSTANTS 动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetBlendConstants,并且在当前命令缓冲区中没有被后续失效。
VUID-vkCmdDrawIndirectCount-None-08621
如果着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEnableEXT 将 pColorBlendEnables 的任何元素设置为 VK_TRUE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEquationEXT 将 pColorBlendEquations 的相同元素设置为一个 VkColorBlendEquationEXT 结构,其中任何 VkBlendFactor 成员的值为 VK_BLEND_FACTOR_CONSTANT_COLOR,VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,VK_BLEND_FACTOR_CONSTANT_ALPHA 或 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetBlendConstants 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07836
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_DEPTH_BOUNDS 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 depthBoundsTestEnable 的当前值为 VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetDepthBounds 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07837
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 stencilTestEnable 的当前值为 VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilCompareMask 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07838
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 stencilTestEnable 的当前值为 VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilWriteMask 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07839
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_STENCIL_REFERENCE 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 stencilTestEnable 的当前值为 VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilReference 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688
如果绘制记录在启用了多视图的渲染通道实例中,则最大实例索引**必须**小于或等于 VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex。
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689
如果绑定的图形管线是使用 VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable 设置为 VK_TRUE 创建的,并且当前子通道具有深度/模板附件,则该附件**必须**已使用 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT 位集创建。
VUID-vkCmdDrawIndirectCount-None-07634
如果启用了 VK_EXT_sample_locations 扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEnableEXT 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-06666
如果启用了 VK_EXT_sample_locations 扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 sampleLocationsEnable 的当前值为 VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEXT 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07840
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_CULL_MODE 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetCullMode 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07841
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_FRONT_FACE 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetFrontFace 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07843
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE 动态状态,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthTestEnable,并且在当前命令缓冲区中没有随后失效。
VUID-vkCmdDrawIndirectCount-None-07844
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE 动态状态,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthWriteEnable,并且在当前命令缓冲区中没有随后失效。
VUID-vkCmdDrawIndirectCount-None-07845
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP 动态状态,rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 depthTestEnable 的当前值为 VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthCompareOp,并且在当前命令缓冲区中没有随后失效。
VUID-vkCmdDrawIndirectCount-None-07846
如果启用了 depthBounds 功能,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE 动态状态,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthBoundsTestEnable,并且在当前命令缓冲区中没有随后失效。
VUID-vkCmdDrawIndirectCount-None-07847
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE 动态状态,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilTestEnable,并且在当前命令缓冲区中没有随后失效。
VUID-vkCmdDrawIndirectCount-None-07848
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了 VK_DYNAMIC_STATE_STENCIL_OP 动态状态,rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 stencilTestEnable 的当前值为 VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilOp,并且在当前命令缓冲区中没有随后失效。
VUID-vkCmdDrawIndirectCount-viewportCount-03417
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT 动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWithCount,并且在当前命令缓冲区中没有随后失效。
VUID-vkCmdDrawIndirectCount-scissorCount-03418
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT 动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetScissorWithCount,并且在当前命令缓冲区中没有随后失效。
VUID-vkCmdDrawIndirectCount-viewportCount-03419
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时同时启用了 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT 和 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT 动态状态,并且该状态未被继承,则 vkCmdSetViewportWithCount 的 viewportCount 参数必须与 vkCmdSetScissorWithCount 的 scissorCount 参数匹配。
VUID-vkCmdDrawIndirectCount-viewportCount-04137
如果绑定的图形管线状态在创建时启用了 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT 动态状态,但没有启用 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV 动态状态,则绑定的图形管线在创建时,VkPipelineViewportWScalingStateCreateInfoNV::viewportCount 必须大于或等于上次调用 vkCmdSetViewportWithCount 中的 viewportCount 参数。
VUID-vkCmdDrawIndirectCount-viewportCount-04138
如果启用了 VK_NV_clip_space_w_scaling 扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT 和 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV 动态状态,viewportWScalingEnable 的当前值为 VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWScalingNV,并且在当前命令缓冲区中没有随后失效。
VUID-vkCmdDrawIndirectCount-None-08636
如果启用了 VK_NV_clip_space_w_scaling 扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT 和 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV 动态状态,viewportWScalingEnable 的当前值为 VK_TRUE,则上次调用 vkCmdSetViewportWScalingNV 中的 viewportCount 参数必须大于或等于上次调用 vkCmdSetViewportWithCount 中的 viewportCount 参数。
VUID-vkCmdDrawIndirectCount-viewportCount-04139
如果绑定的图形管线状态在创建时启用了 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT 动态状态,但没有启用 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV 动态状态,则绑定的图形管线在创建时,VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount 必须大于或等于上次调用 vkCmdSetViewportWithCount 中的 viewportCount 参数。
VUID-vkCmdDrawIndirectCount-shadingRateImage-09233
如果启用了 shadingRateImage 功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV 创建的图形管线,且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetCoarseSampleOrderNV,且未在当前命令缓冲区中随后被失效。
VUID-vkCmdDrawIndirectCount-shadingRateImage-09234
如果启用了 shadingRateImage 功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT 和 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV 动态状态创建的图形管线,且 rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 shadingRateImageEnable 的当前值为 VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewportShadingRatePaletteNV,且未在当前命令缓冲区中随后被失效。
VUID-vkCmdDrawIndirectCount-None-08637
如果启用了 shadingRateImage 功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT 和 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV 动态状态创建的图形管线,且 rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 shadingRateImageEnable 的当前值为 VK_TRUE,则最后一次调用 vkCmdSetViewportShadingRatePaletteNV 中的 viewportCount 参数必须大于或等于最后一次调用 vkCmdSetViewportWithCount 中的 viewportCount 参数。
VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04141
如果绑定的图形管线状态是在启用 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT 动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportSwizzleStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中 viewportCount 参数的 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount 创建。
VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04142
如果绑定的图形管线状态是在启用 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT 动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportExclusiveScissorStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中 viewportCount 参数的 VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount 创建。
VUID-vkCmdDrawIndirectCount-None-07878
如果启用了 exclusiveScissor 功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV 动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorEnableNV,且未在当前命令缓冲区中随后被失效。
VUID-vkCmdDrawIndirectCount-None-07879
如果启用了 exclusiveScissor 功能,着色器对象绑定到任何图形管线阶段,或者绑定了使用启用 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV 动态状态创建的图形管线,并且当前命令缓冲区中最近一次调用 vkCmdSetExclusiveScissorEnableNV 将 pExclusiveScissorEnables 的任何元素设置为 VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorNV,且未在当前命令缓冲区中随后被失效。
VUID-vkCmdDrawIndirectCount-None-04876
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE 动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetRasterizerDiscardEnable,且未在当前命令缓冲区中随后被失效。
VUID-vkCmdDrawIndirectCount-None-04877
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBiasEnable,且未在当前命令缓冲区中随后被失效。
VUID-vkCmdDrawIndirectCount-logicOp-04878
如果着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT,或者绑定了使用启用 VK_DYNAMIC_STATE_LOGIC_OP_EXT 动态状态创建的图形管线,且 rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 logicOpEnable 的当前值为 VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLogicOpEXT,且未在当前命令缓冲区中随后被失效。
VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552
如果不支持 primitiveFragmentShadingRateWithMultipleViewports 限制,绑定的图形管线是在启用 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT 动态状态的情况下创建的,并且绑定的图形管线的任何着色器阶段写入到 PrimitiveShadingRateKHR 内置变量,则在执行此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetViewportWithCount,并且 vkCmdSetViewportWithCount 的 viewportCount 参数必须为 1。
VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642
如果不支持 primitiveFragmentShadingRateWithMultipleViewports 限制,并且绑定到图形阶段的任何着色器对象写入了 PrimitiveShadingRateKHR 内置变量,那么在执行此绘制命令之前,当前命令缓冲区中必须调用过 vkCmdSetViewportWithCount,并且 vkCmdSetViewportWithCount 的 viewportCount 参数必须为 1。
VUID-vkCmdDrawIndirectCount-blendEnable-04727
如果绑定的图形管线中没有禁用光栅化,那么对于子通道中的每个颜色附件,如果对应图像视图的格式特性不包含 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则 pColorBlendState 的 pAttachments 成员中相应元素的 blendEnable 成员必须为 VK_FALSE。
VUID-vkCmdDrawIndirectCount-None-08643
如果着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,那么对于渲染通道中的每个颜色附件,如果对应图像视图的格式特性不包含 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则在当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEnableEXT 中影响该附件索引的 pColorBlendEnables 的相应成员必须为 VK_FALSE。
VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07284
如果绑定的图形管线中没有禁用光栅化,并且以下任何一项均未启用
那么绑定图形管线的 rasterizationSamples 必须与当前子通道颜色和/或深度/模板附件相同。
VUID-vkCmdDrawIndirectCount-None-08644
如果着色器对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,并且以下任何一项均未启用
那么在当前命令缓冲区中最近一次调用 vkCmdSetRasterizationSamplesEXT 必须已将 rasterizationSamples 设置为与当前渲染通道颜色和/或深度/模板附件的样本数相同。
VUID-vkCmdDrawIndirectCount-None-08876
如果着色器对象绑定到任何图形阶段,则当前渲染通道实例必须已通过 vkCmdBeginRendering 开始。
VUID-vkCmdDrawIndirectCount-imageView-06172
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且 pDepthAttachment 的 imageView 成员不是 VK_NULL_HANDLE,并且 pDepthAttachment 的 layout 成员是 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。
VUID-vkCmdDrawIndirectCount-imageView-06173
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且 pStencilAttachment 的 imageView 成员不是 VK_NULL_HANDLE,并且 pStencilAttachment 的 layout 成员是 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。
VUID-vkCmdDrawIndirectCount-imageView-06174
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且 pDepthAttachment 的 imageView 成员不是 VK_NULL_HANDLE,并且 pDepthAttachment 的 layout 成员是 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,则此命令必须不向深度附件写入任何值。
VUID-vkCmdDrawIndirectCount-imageView-06175
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且 pStencilAttachment 的 imageView 成员不是 VK_NULL_HANDLE,并且 pStencilAttachment 的 layout 成员是 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。
VUID-vkCmdDrawIndirectCount-imageView-06176
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且 pDepthAttachment 的 imageView 成员不是 VK_NULL_HANDLE,并且 pDepthAttachment 的 layout 成员是 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。
VUID-vkCmdDrawIndirectCount-imageView-06177
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且 pStencilAttachment 的 imageView 成员不是 VK_NULL_HANDLE,并且 pStencilAttachment 的 layout 成员是 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。
VUID-vkCmdDrawIndirectCount-viewMask-06178
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::viewMask 相等的 VkPipelineRenderingCreateInfo::viewMask 创建。
VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179
如果未启用 dynamicRenderingUnusedAttachments 特性,并且当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::colorAttachmentCount 相等的 VkPipelineRenderingCreateInfo::colorAttachmentCount 创建。
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08910
如果未启用 dynamicRenderingUnusedAttachments 特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount 大于 0 开始的,则 VkRenderingInfo::pColorAttachments 数组中每个 imageView 不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats 对应的元素相同的 VkFormat 创建。
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08912
如果未启用 dynamicRenderingUnusedAttachments 特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount 大于 0 开始的,则 VkRenderingInfo::pColorAttachments 数组中每个 imageView 等于 VK_NULL_HANDLE 的元素必须使用于创建绑定管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats 对应的元素等于 VK_FORMAT_UNDEFINED。
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08911
如果启用了 dynamicRenderingUnusedAttachments 特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount 大于 0 开始的,则 VkRenderingInfo::pColorAttachments 数组中每个 imageView 不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats 对应的元素相同的 VkFormat 创建,或者如果 VkPipelineRenderingCreateInfo::pColorAttachmentFormats 的对应元素存在,则必须为 VK_FORMAT_UNDEFINED。
VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09362
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,VkRenderingInfo::colorAttachmentCount 等于 1,并且没有任何着色器对象绑定到任何图形阶段,并且颜色附件的解析模式为 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments 数组中每个 resolveImageView 不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat 值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat 值。
VUID-vkCmdDrawIndirectCount-None-09363
如果没有着色器对象绑定到任何图形阶段,当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount 等于 1 开始的,并且颜色附件的解析模式为 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments 数组中每个 imageView 不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat 值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat 值。
VUID-vkCmdDrawIndirectCount-None-09364
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat 值创建的,并且启用了 VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT 动态状态,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为 VK_FALSE。
VUID-vkCmdDrawIndirectCount-None-09365
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat 值创建的,并且启用了 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT 动态状态,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将 rasterizationSamples 设置为 VK_SAMPLE_COUNT_1_BIT。
VUID-vkCmdDrawIndirectCount-None-09366
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID 解析模式的颜色附件,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为 VK_FALSE。
VUID-vkCmdDrawIndirectCount-rasterizationSamples-09367
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID 解析模式的颜色附件,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将 rasterizationSamples 设置为 VK_SAMPLE_COUNT_1_BIT。
VUID-vkCmdDrawIndirectCount-None-09368
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat 值创建的,并且启用了 VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR 动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将 pFragmentSize->width 设置为 1
vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat 值创建的,并且启用了 VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR 动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将 pFragmentSize->height 设置为 1
VUID-vkCmdDrawIndirectCount-pFragmentSize-09370
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID 解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将 pFragmentSize->width 设置为 1
VUID-vkCmdDrawIndirectCount-pFragmentSize-09371
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID 解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将 pFragmentSize->height 设置为 1
VUID-vkCmdDrawIndirectCount-None-07749
如果绑定的图形管线状态是使用启用了 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT 动态状态创建的,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化
VUID-vkCmdDrawIndirectCount-None-08646
如果启用了 colorWriteEnable 特性,并且有一个着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化
VUID-vkCmdDrawIndirectCount-attachmentCount-07750
如果绑定的图形管线状态是使用启用了 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT 动态状态创建的,那么 vkCmdSetColorWriteEnableEXT 的 attachmentCount 参数必须大于或等于绑定图形管线的 VkPipelineColorBlendStateCreateInfo::attachmentCount
VUID-vkCmdDrawIndirectCount-None-08647
如果启用了 colorWriteEnable 特性,并且有一个着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,那么在当前命令缓冲区中最近一次调用 vkCmdSetColorWriteEnableEXT 的 attachmentCount 参数必须大于或等于当前渲染过程实例中的颜色附件数量
VUID-vkCmdDrawIndirectCount-None-07751
如果启用了 VK_EXT_discard_rectangles 扩展,绑定了一个使用启用了 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT 动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的 pNext 链中包含了一个 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 discardRectangleEnable 的当前值为 VK_TRUE,那么在执行此绘制命令之前,对于 VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount 中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化
VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09236
如果启用了 VK_EXT_discard_rectangles 扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT 动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的 pNext 链中不包含 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 discardRectangleEnable 的当前值为 VK_TRUE,那么在执行此绘制命令之前,对于 VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles 中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化
VUID-vkCmdDrawIndirectCount-None-07880
如果启用了 VK_EXT_discard_rectangles 扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT 动态状态创建的图形管线,rasterizerDiscardEnable 的当前值为 VK_FALSE,那么在执行此绘制命令之前,必须调用 vkCmdSetDiscardRectangleEnableEXT,且之后没有在当前命令缓冲区中被 无效化
VUID-vkCmdDrawIndirectCount-None-07881
如果启用了 VK_EXT_discard_rectangles 扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 discardRectangleEnable 的当前值为 VK_TRUE,那么在执行此绘制命令之前,必须调用过 vkCmdSetDiscardRectangleModeEXT,并且在当前命令缓冲区中没有后续失效。
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08913
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 dynamicRenderingUnusedAttachments 特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView 为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat 的值必须等于 VK_FORMAT_UNDEFINED。
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08914
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 dynamicRenderingUnusedAttachments 特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView 不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat 的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView 的 VkFormat。
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08915
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 dynamicRenderingUnusedAttachments 特性已启用,并且 VkRenderingInfo::pDepthAttachment->imageView 不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat 的值不等于用于创建 VkRenderingInfo::pDepthAttachment->imageView 的 VkFormat,那么该格式的值必须为 VK_FORMAT_UNDEFINED。
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08916
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 dynamicRenderingUnusedAttachments 特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView 为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat 的值必须等于 VK_FORMAT_UNDEFINED。
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08917
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 dynamicRenderingUnusedAttachments 特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView 不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat 的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView 的 VkFormat。
VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08918
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 dynamicRenderingUnusedAttachments 特性已启用,并且 VkRenderingInfo::pStencilAttachment->imageView 不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat 的值不等于用于创建 VkRenderingInfo::pStencilAttachment->imageView 的 VkFormat,那么该格式的值必须为 VK_FORMAT_UNDEFINED。
VUID-vkCmdDrawIndirectCount-imageView-06183
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView 不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR 创建的。
VUID-vkCmdDrawIndirectCount-imageView-06184
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView 不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT 创建的。
VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185
如果绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount 参数大于 0,那么 VkRenderingInfo::pColorAttachments 数组中每个 imageView 不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的 pColorAttachmentSamples 成员的相应元素相同的采样计数创建。
VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pDepthAttachment->imageView 不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的 depthStencilAttachmentSamples 成员的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView 的采样计数。
VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pStencilAttachment->imageView 不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的 depthStencilAttachmentSamples 成员的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView 的采样计数。
VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07285
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且 multisampledRenderToSingleSampled 功能未启用,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount 参数大于 0,那么 VkRenderingInfo::pColorAttachments 数组中每个 imageView 不等于 VK_NULL_HANDLE 的元素必须使用与绑定图形管线的 rasterizationSamples 值相同的采样计数创建。
VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07286
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且 multisampledRenderToSingleSampled 功能未启用,并且 VkRenderingInfo::pDepthAttachment->imageView 不是 VK_NULL_HANDLE,那么绑定图形管线的 rasterizationSamples 的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView 的采样计数。
VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07287
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且 multisampledRenderToSingleSampled 功能未启用,并且 VkRenderingInfo::pStencilAttachment->imageView 不是 VK_NULL_HANDLE,那么绑定图形管线的 rasterizationSamples 的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView 的采样计数。
VUID-vkCmdDrawIndirectCount-pNext-07935
如果此命令是在使用 vkCmdBeginRendering 启动的渲染通道实例内调用的,并且 VkRenderingInfo 的 pNext 链包含一个 VkMultisampledRenderToSingleSampledInfoEXT 结构,其中 multisampledRenderToSingleSampledEnable 等于 VK_TRUE,那么绑定图形管线的 rasterizationSamples 的值必须等于 VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples。
VUID-vkCmdDrawIndirectCount-renderPass-06198
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,那么绑定的管线必须使用 VkGraphicsPipelineCreateInfo::renderPass 等于 VK_NULL_HANDLE 创建。
VUID-vkCmdDrawIndirectCount-pColorAttachments-08963
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,并且存在一个绑定了片段着色器的图形管线,该片段着色器静态写入颜色附件,颜色写入掩码不为零,颜色写入已启用,并且 VkRenderingInfo::pColorAttachments->imageView 的相应元素不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats 的相应元素必须不是 VK_FORMAT_UNDEFINED。
VUID-vkCmdDrawIndirectCount-pDepthAttachment-08964
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了深度测试、启用了深度写入,并且 VkRenderingInfo::pDepthAttachment->imageView 不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat 必须 不能是 VK_FORMAT_UNDEFINED。
VUID-vkCmdDrawIndirectCount-pStencilAttachment-08965
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了模板测试,并且 VkRenderingInfo::pStencilAttachment->imageView 不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat 必须 不能是 VK_FORMAT_UNDEFINED。
VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708
如果 primitivesGeneratedQueryWithRasterizerDiscard 功能未启用,并且 VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT 查询处于活动状态,则 必须 不启用光栅化丢弃。
VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709
如果 primitivesGeneratedQueryWithNonZeroStreams 功能未启用,并且 VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT 查询处于活动状态,则绑定的图形管线 必须 不是使用 VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream 中的非零值创建的。
VUID-vkCmdDrawIndirectCount-None-07620
如果启用了 depthClamp 功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetDepthClampEnableEXT 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07621
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_POLYGON_MODE_EXT 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetPolygonModeEXT 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07622
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetRasterizationSamplesEXT 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07623
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_SAMPLE_MASK_EXT 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetSampleMaskEXT 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08919
如果绑定的图形管线状态是使用启用了 VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT 动态状态创建的,并且在上次调用 vkCmdSetAlphaToCoverageEnableEXT 时 alphaToCoverageEnable 为 VK_TRUE,则片段输出接口 必须 包含在 Location 0 的 Index 0 处用于 alpha Component 字的变量。
VUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08920
如果有 shader 对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetAlphaToCoverageEnableEXT 时将 alphaToCoverageEnable 设置为 VK_TRUE,则片段输出接口 必须 包含在 Location 0 的 Index 0 处用于 alpha Component 字的变量。
VUID-vkCmdDrawIndirectCount-None-07624
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToCoverageEnableEXT 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07625
如果启用了 alphaToOne 功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToOneEnableEXT 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07626
如果启用了 logicOp 功能,并且有 shader 对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetLogicOpEnableEXT 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07627
如果绑定的图形管线状态是使用启用了 VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT 动态状态创建的,则在本次绘制命令之前, 必须 已调用 vkCmdSetColorBlendEnableEXT 且未在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-08657
如果着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEnableEXT,且未在当前命令缓冲区中随后 失效。
VUID-vkCmdDrawIndirectCount-None-07628
如果绑定的图形管线状态创建时启用了 VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT 动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。
VUID-vkCmdDrawIndirectCount-None-08658
如果着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,并且最近一次针对任何附件调用 vkCmdSetColorBlendEnableEXT 时将该附件在 pColorBlendEnables 中的值设置为 VK_TRUE,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。
VUID-vkCmdDrawIndirectCount-None-07629
如果绑定的图形管线状态创建时启用了 VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT 动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。
VUID-vkCmdDrawIndirectCount-None-08659
如果着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。
VUID-vkCmdDrawIndirectCount-None-07630
如果启用了 geometryStreams 特性,并且着色器对象绑定到 VK_SHADER_STAGE_GEOMETRY_BIT 阶段,或者绑定了创建时启用了 VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT 动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetRasterizationStreamEXT,且未在当前命令缓冲区中随后 失效。
VUID-vkCmdDrawIndirectCount-None-07631
如果启用了 VK_EXT_conservative_rasterization 扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了 VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT 动态状态的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,则在当前绘制命令之前,必须调用过 vkCmdSetConservativeRasterizationModeEXT,且未在当前命令缓冲区中随后 失效。
VUID-vkCmdDrawIndirectCount-None-07632
如果启用了 VK_EXT_conservative_rasterization 扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了 VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT 动态状态的图形管线,rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 conservativeRasterizationMode 的当前值为 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,则在当前绘制命令之前,必须调用过 vkCmdSetExtraPrimitiveOverestimationSizeEXT,且未在当前命令缓冲区中随后 失效。
VUID-vkCmdDrawIndirectCount-None-07633
如果启用了 depthClipEnable 特性,并且着色器对象绑定到任何图形阶段,或者绑定了创建时启用了 VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT 动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetDepthClipEnableEXT,且未在当前命令缓冲区中随后 失效。
VUID-vkCmdDrawIndirectCount-None-07635
如果绑定的图形管线状态创建时启用了 VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT 动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendAdvancedEXT,且未在当前命令缓冲区中随后 失效。
VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09416
如果启用了 VK_EXT_blend_operation_advanced 扩展,并且着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,则在当前绘制命令之前,必须至少调用过 vkCmdSetColorBlendEquationEXT 和 vkCmdSetColorBlendAdvancedEXT 中的一个,且未在当前命令缓冲区中随后 失效。
VUID-vkCmdDrawIndirectCount-None-07636
如果启用了 VK_EXT_provoking_vertex 扩展,并且一个着色器对象被绑定到 VK_SHADER_STAGE_VERTEX_BIT 阶段,或者绑定了一个启用了 VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT 动态状态的图形管线,并且 当前值 的 rasterizerDiscardEnable 为 VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetProvokingVertexModeEXT 并且没有在当前命令缓冲区中随后被 失效
VUID-vkCmdDrawIndirectCount-None-07637
如果绑定的图形管线状态是使用启用了 VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT 动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效
VUID-vkCmdDrawIndirectCount-None-08666
如果启用了 stippledRectangularLines,stippledBresenhamLines 或 stippledSmoothLines 中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将 polygonMode 设置为 VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效
VUID-vkCmdDrawIndirectCount-None-08667
如果启用了 stippledRectangularLines,stippledBresenhamLines 或 stippledSmoothLines 中的任何一个功能,并且一个着色器对象被绑定到 VK_SHADER_STAGE_VERTEX_BIT 阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将 primitiveTopology 设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效
VUID-vkCmdDrawIndirectCount-None-08668
如果启用了 stippledRectangularLines,stippledBresenhamLines 或 stippledSmoothLines 中的任何一个功能,并且一个输出线图元的着色器对象被绑定到 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT 或 VK_SHADER_STAGE_GEOMETRY_BIT 阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效
VUID-vkCmdDrawIndirectCount-None-07638
如果绑定的图形管线状态是使用启用了 VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT 动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效
VUID-vkCmdDrawIndirectCount-None-08669
如果启用了 stippledRectangularLines,stippledBresenhamLines 或 stippledSmoothLines 中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将 polygonMode 设置为 VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效
VUID-vkCmdDrawIndirectCount-None-08670
如果启用了 stippledRectangularLines,stippledBresenhamLines 或 stippledSmoothLines 中的任何一个功能,并且一个着色器对象被绑定到 VK_SHADER_STAGE_VERTEX_BIT 阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将 primitiveTopology 设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效
VUID-vkCmdDrawIndirectCount-None-08671
如果启用了 stippledRectangularLines,stippledBresenhamLines 或 stippledSmoothLines 中的任何一个功能,并且一个输出线图元的着色器对象被绑定到 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT 或 VK_SHADER_STAGE_GEOMETRY_BIT 阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效
VUID-vkCmdDrawIndirectCount-None-07849
如果启用了 stippledRectangularLines、stippledBresenhamLines 或 stippledSmoothLines 中的任何一个功能,并且着色器对象绑定到任何图形阶段,或者使用启用了 VK_DYNAMIC_STATE_LINE_STIPPLE 动态状态创建的绑定图形管线状态,rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 stippledLineEnable 的当前值为 VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetLineStipple 并且没有在当前命令缓冲区中后续失效。
VUID-vkCmdDrawIndirectCount-None-07639
如果启用了 depthClipControl 功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT 动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClipNegativeOneToOneEXT 并且没有在当前命令缓冲区中后续失效。
VUID-vkCmdDrawIndirectCount-None-09650
如果启用了 depthClampControl 功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT 动态状态创建的图形管线,并且 depthClampEnable 的当前值为 VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClampRangeEXT 并且没有在当前命令缓冲区中后续失效。
VUID-vkCmdDrawIndirectCount-None-07640
如果启用了 VK_NV_clip_space_w_scaling 扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV 动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportWScalingEnableNV 并且没有在当前命令缓冲区中后续失效。
VUID-vkCmdDrawIndirectCount-None-07641
如果启用了 VK_NV_viewport_swizzle 扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV 动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportSwizzleNV 并且没有在当前命令缓冲区中后续失效。
VUID-vkCmdDrawIndirectCount-None-07642
如果启用了 VK_NV_fragment_coverage_to_color 扩展,并且着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorEnableNV 并且没有在当前命令缓冲区中后续失效。
VUID-vkCmdDrawIndirectCount-None-07643
如果启用了 VK_NV_fragment_coverage_to_color 扩展,并且着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV 动态状态创建的图形管线,rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 coverageToColorEnable 的当前值为 VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorLocationNV 并且没有在当前命令缓冲区中后续失效。
VUID-vkCmdDrawIndirectCount-None-07644
如果启用了 VK_NV_framebuffer_mixed_samples 扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationModeNV 并且没有在当前命令缓冲区中后续失效。
VUID-vkCmdDrawIndirectCount-None-07645
如果启用了 VK_NV_framebuffer_mixed_samples 扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV 动态状态创建的图形管线,rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 coverageModulationMode 的当前值不是 VK_COVERAGE_MODULATION_MODE_NONE_NV 的任何值,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationTableEnableNV 并且没有在当前命令缓冲区中后续失效。
VUID-vkCmdDrawIndirectCount-None-
如果启用了 VK_NV_framebuffer_mixed_samples 扩展,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV 动态状态的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,并且 coverageModulationTableEnable 的当前值为 VK_TRUE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageModulationTableNV,并且没有在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07647
如果启用了 shadingRateImage 特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了 VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV 动态状态的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetShadingRateImageEnableNV,并且没有在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-pipelineFragmentShadingRate-09238
如果启用了 pipelineFragmentShadingRate 特性,并且绑定了一个着色器对象到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,或者绑定了一个启用了 VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR 动态状态的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetFragmentShadingRateKHR,并且没有在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07648
如果启用了 representativeFragmentTest 特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了 VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV 动态状态的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetRepresentativeFragmentTestEnableNV,并且没有在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-None-07649
如果启用了 coverageReductionMode 特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了 VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV 动态状态的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageReductionModeNV,并且没有在当前命令缓冲区中随后失效。
VUID-vkCmdDrawIndirectCount-pColorBlendEnables-07470
如果绑定的图形管线状态是在启用 VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT 状态的情况下创建的,并且最后一次调用 vkCmdSetColorBlendEnableEXT 为任何附件将 pColorBlendEnables 设置为 VK_TRUE,那么对于子通道中的这些附件,相应的图像视图的 格式特性 必须 包含 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT。
VUID-vkCmdDrawIndirectCount-rasterizationSamples-07471
如果绑定的图形管线状态是在启用 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT 状态的情况下创建的,并且当前子通道不使用任何颜色和/或深度/模板附件,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的 rasterizationSamples 必须 遵循 零附件子通道 的规则。
VUID-vkCmdDrawIndirectCount-samples-07472
如果绑定的图形管线状态是在启用 VK_DYNAMIC_STATE_SAMPLE_MASK_EXT 状态且禁用 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT 状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的 samples 参数 必须 大于或等于用于创建绑定的图形管线的 VkPipelineMultisampleStateCreateInfo::rasterizationSamples 参数。
VUID-vkCmdDrawIndirectCount-samples-07473
如果绑定的图形管线状态是在启用 VK_DYNAMIC_STATE_SAMPLE_MASK_EXT 状态和 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT 状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的 samples 参数 必须 大于或等于最后一次调用 vkCmdSetRasterizationSamplesEXT 中的 rasterizationSamples 参数。
VUID-vkCmdDrawIndirectCount-rasterizationSamples-07474
如果绑定的图形管线状态是在启用 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT 状态的情况下创建的,并且 multisampledRenderToSingleSampled 特性未启用,并且既没有启用 VK_AMD_mixed_attachment_samples 扩展,也没有启用 VK_NV_framebuffer_mixed_samples 扩展,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的 rasterizationSamples 必须 与当前子通道的颜色和/或深度/模板附件相同。
VUID-vkCmdDrawIndirectCount-None-09211
如果绑定的图形管线状态是在启用 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT 状态的情况下创建的,或者一个着色器对象被绑定到任何图形阶段,并且当前渲染通道实例包含一个 multisampledRenderToSingleSampledEnable 等于 VK_TRUE 的 VkMultisampledRenderToSingleSampledInfoEXT 结构,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的 rasterizationSamples 必须 与该结构的 rasterizationSamples 成员相同。
VUID-vkCmdDrawIndirectCount-firstAttachment-07476
如果绑定的图形管线状态是在启用 VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT 动态状态的情况下创建的,那么在此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetColorBlendEnableEXT,并且 vkCmdSetColorBlendEnableEXT 调用的 firstAttachment 和 attachmentCount 参数指定的附件 必须 为当前子通道中的所有活动颜色附件指定启用。
VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09417
如果着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEnableEXT,并且 vkCmdSetColorBlendEnableEXT 调用的 firstAttachment 和 attachmentCount 参数指定的附件必须为当前子通道中的所有活动颜色附件启用。
VUID-vkCmdDrawIndirectCount-firstAttachment-07477
如果绑定的图形管线状态创建时启用了 VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT 动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且 vkCmdSetColorBlendEquationEXT 调用的 firstAttachment 和 attachmentCount 参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。
VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09418
如果着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,并且存在绑定的颜色附件,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且 vkCmdSetColorBlendEquationEXT 调用的 firstAttachment 和 attachmentCount 参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。
VUID-vkCmdDrawIndirectCount-firstAttachment-07478
如果绑定的图形管线状态创建时启用了 VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT 动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且 vkCmdSetColorWriteMaskEXT 调用的 firstAttachment 和 attachmentCount 参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。
VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09419
如果着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且 vkCmdSetColorWriteMaskEXT 调用的 firstAttachment 和 attachmentCount 参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。
VUID-vkCmdDrawIndirectCount-firstAttachment-07479
如果绑定的图形管线状态创建时启用了 VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT 动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendAdvancedEXT,并且 vkCmdSetColorBlendAdvancedEXT 调用的 firstAttachment 和 attachmentCount 参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定高级混合方程式。
VUID-vkCmdDrawIndirectCount-advancedBlendMaxColorAttachments-07480
如果绑定的图形管线状态创建时启用了 VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT 和 VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT 动态状态,并且最近一次调用 vkCmdSetColorBlendEnableEXT 和 vkCmdSetColorBlendAdvancedEXT 已启用高级混合,则当前子通道中的活动颜色附件的数量必须不超过 advancedBlendMaxColorAttachments。
VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481
如果未启用 primitivesGeneratedQueryWithNonZeroStreams 功能,并且 VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT 查询处于活动状态,并且绑定的图形管线创建时启用了 VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT 状态,则最近一次调用 vkCmdSetRasterizationStreamEXT 必须已将 rasterizationStream 设置为零。
VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07482
如果绑定的图形管线状态创建时启用了 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT 状态并禁用了 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT 状态,并且 sampleLocationsEnable 的当前值为 VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中 pSampleLocationsInfo 的 sampleLocationsPerPixel 成员必须等于绑定图形管线创建时使用的 VkPipelineMultisampleStateCreateInfo 结构的 rasterizationSamples 成员。
VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07483
如果绑定的图形管线状态创建时启用了 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT 状态和 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT 状态,并且 sampleLocationsEnable 的当前值为 VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中 pSampleLocationsInfo 的 sampleLocationsPerPixel 成员必须等于最近一次调用 vkCmdSetRasterizationSamplesEXT 的 rasterizationSamples 参数。
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07484
如果着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,或者绑定的图形管线创建时启用了 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT 状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中 sampleLocationsEnable 为 VK_TRUE,并且当前子通道具有深度/模板附件,则该附件的创建必须设置了 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT 位。
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07485
如果着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,或者绑定的图形管线状态创建时启用了 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT 状态和 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT 状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中 sampleLocationsEnable 为 VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中 sampleLocationsInfo.sampleLocationGridSize.width 必须能被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width 整除,后者是通过 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回的,且 samples 参数等于 rasterizationSamples。
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07486
如果着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,或者绑定的图形管线状态是在启用 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT 状态和 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT 状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时 sampleLocationsEnable 为 VK_TRUE,则上次调用 vkCmdSetSampleLocationsEXT 中的 sampleLocationsInfo.sampleLocationGridSize.height **必须** 可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height 整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且 samples 参数等于 rasterizationSamples。
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07487
如果着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,或者绑定的图形管线状态是在启用 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT 状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时 sampleLocationsEnable 为 VK_TRUE,则片段着色器代码**必须**不得静态使用扩展指令 InterpolateAtSample。
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07936
如果绑定的图形管线状态是在禁用 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT 状态和启用 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT 状态的情况下创建的,并且 sampleLocationsEnable 的当前值为 VK_TRUE,则 sampleLocationsInfo.sampleLocationGridSize.width **必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width 整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且 samples 参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的 rasterizationSamples 值。
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07937
如果绑定的图形管线状态是在禁用 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT 状态和启用 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT 状态的情况下创建的,并且 sampleLocationsEnable 的当前值为 VK_TRUE,则 sampleLocationsInfo.sampleLocationGridSize.height **必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height 整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且 samples 参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的 rasterizationSamples 值。
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07938
如果绑定的图形管线状态是在禁用 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT 状态和启用 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT 状态的情况下创建的,并且 sampleLocationsEnable 的当前值为 VK_TRUE,则 sampleLocationsInfo.sampleLocationsPerPixel **必须**等于上次调用 vkCmdSetRasterizationSamplesEXT 中的 rasterizationSamples。
VUID-vkCmdDrawIndirectCount-coverageModulationTableEnable-07488
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线状态是在启用 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV 状态的情况下创建的,并且上次调用 vkCmdSetCoverageModulationTableEnableNV 将 coverageModulationTableEnable 设置为 VK_TRUE,则上次调用 vkCmdSetCoverageModulationTableNV 中的 coverageModulationTableCount 参数**必须**等于当前的 rasterizationSamples 除以当前子通道中的颜色样本数量。
VUID-vkCmdDrawIndirectCount-rasterizationSamples-07489
如果启用了 VK_NV_framebuffer_mixed_samples 扩展,并且当前子通道具有深度/模板附件,且在绑定的管线中启用了深度测试、模板测试或深度边界测试,则当前的 rasterizationSamples **必须**与深度/模板附件的样本计数相同。
VUID-vkCmdDrawIndirectCount-coverageToColorEnable-07490
如果绑定的图形管线状态是在启用 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV 状态的情况下创建的,并且上次调用 vkCmdSetCoverageToColorEnableNV 将 coverageToColorEnable 设置为 VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的 coverageToColorLocation 选择的位置具有颜色附件,其 VkFormat 为 VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT 或 VK_FORMAT_R32_SINT。
VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09420
如果启用了 VK_NV_fragment_coverage_to_color 扩展,并且着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将 rasterizerDiscardEnable 设置为 VK_FALSE,并且上次调用 vkCmdSetCoverageToColorEnableNV 将 coverageToColorEnable 设置为 VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的 coverageToColorLocation 选择的位置具有颜色附件,其 VkFormat 为 VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT 或 VK_FORMAT_R32_SINT。
VUID-vkCmdDrawIndirectCount-coverageReductionMode-07491
如果启用了 VK_NV_coverage_reduction_mode 扩展,并且绑定的图形管线状态是在启用了 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV 和 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT 状态的情况下创建的,并且当前的覆盖率缩减模式 coverageReductionMode、当前的 rasterizationSamples 以及颜色和深度/模板附件(如果子通道有这些附件)的采样计数 必须 是 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV 返回的有效组合。
VUID-vkCmdDrawIndirectCount-viewportCount-07492
如果绑定的图形管线状态是在启用了 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT 动态状态,但未启用 VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV 动态状态的情况下创建的,那么绑定的图形管线 必须 是使用 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount 大于或等于上次调用 vkCmdSetViewportWithCount 中的 viewportCount 参数创建的。
VUID-vkCmdDrawIndirectCount-viewportCount-07493
如果绑定的图形管线状态是在启用了 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT 和 VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV 动态状态的情况下创建的,那么上次调用 vkCmdSetViewportSwizzleNV 中的 viewportCount 参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的 viewportCount 参数。
VUID-vkCmdDrawIndirectCount-viewportCount-09421
如果启用了 VK_NV_viewport_swizzle 扩展,并且着色器对象绑定到任何图形阶段,那么上次调用 vkCmdSetViewportSwizzleNV 中的 viewportCount 参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的 viewportCount 参数。
VUID-vkCmdDrawIndirectCount-rasterizationSamples-07494
如果启用了 VK_NV_framebuffer_mixed_samples 扩展,并且如果当前子通道有任何颜色附件,且上次调用 vkCmdSetRasterizationSamplesEXT 的 rasterizationSamples 大于颜色采样数,那么管线的 sampleShadingEnable 必须 为 VK_FALSE。
VUID-vkCmdDrawIndirectCount-stippledLineEnable-07495
如果绑定的图形管线状态是在启用了 VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT 或 VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT 动态状态的情况下创建的,并且如果当前的 stippledLineEnable 状态为 VK_TRUE,且当前的 lineRasterizationMode 状态为 VK_LINE_RASTERIZATION_MODE_RECTANGULAR,那么 stippledRectangularLines 特性 必须 启用。
VUID-vkCmdDrawIndirectCount-stippledLineEnable-07496
如果绑定的图形管线状态是在启用了 VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT 或 VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT 动态状态的情况下创建的,并且如果当前的 stippledLineEnable 状态为 VK_TRUE,且当前的 lineRasterizationMode 状态为 VK_LINE_RASTERIZATION_MODE_BRESENHAM,那么 stippledBresenhamLines 特性 必须 启用。
VUID-vkCmdDrawIndirectCount-stippledLineEnable-07497
如果绑定的图形管线状态是在启用了 VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT 或 VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT 动态状态的情况下创建的,并且如果当前的 stippledLineEnable 状态为 VK_TRUE,且当前的 lineRasterizationMode 状态为 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,那么 stippledSmoothLines 特性 必须 启用。
VUID-vkCmdDrawIndirectCount-stippledLineEnable-07498
如果绑定的图形管线状态是在启用了 VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT 或 VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT 动态状态的情况下创建的,并且如果当前的 stippledLineEnable 状态为 VK_TRUE,且当前的 lineRasterizationMode 状态为 VK_LINE_RASTERIZATION_MODE_DEFAULT,那么 stippledRectangularLines 特性 必须 启用,并且 VkPhysicalDeviceLimits::strictLines 必须 为 VK_TRUE。
VUID-vkCmdDrawIndirectCount-conservativePointAndLineRasterization-07499
如果绑定的图形管线状态是在启用了 VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT 动态状态的情况下创建的,并且不支持 conservativePointAndLineRasterization,并且最后一个光栅化前着色器阶段输出的有效图元拓扑结构为直线或点,那么上次调用 vkCmdSetConservativeRasterizationModeEXT 设置的 conservativeRasterizationMode 必须 为 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT。
VUID-vkCmdDrawIndirectCount-stage-07073
如果绑定的管线是使用 VkPipelineShaderStageCreateInfo::stage 成员,该成员是 VkGraphicsPipelineCreateInfo::pStages 的一个元素,设置为 VK_SHADER_STAGE_VERTEX_BIT、VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT、VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT 或 VK_SHADER_STAGE_GEOMETRY_BIT 创建的,那么 网格着色器查询 必须 未处于活动状态。
VUID-vkCmdDrawIndirectCount-None-08877
如果着色器对象绑定到 VK_SHADER_STAGE_FRAGMENT_BIT 阶段,或者绑定了使用启用了 VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT 动态状态创建的图形管线,并且 rasterizerDiscardEnable 的当前值为 VK_FALSE,那么在此绘制命令之前,当前命令缓冲区中 必须 调用过 vkCmdSetAttachmentFeedbackLoopEnableEXT 并且没有随后被 无效化。
VUID-vkCmdDrawIndirectCount-None-07850
如果动态状态是从 VkCommandBufferInheritanceViewportScissorInfoNV 继承的,则它必须在本绘图命令之前在当前命令缓冲区中设置。
VUID-vkCmdDrawIndirectCount-None-08688
如果未绑定图形管线,则必须在当前命令缓冲区中调用 vkCmdBindShadersEXT,且 pStages 必须包含 VK_SHADER_STAGE_FRAGMENT_BIT 元素。
VUID-vkCmdDrawIndirectCount-None-08689
如果未绑定图形管线,且启用了 taskShader 特性,则必须在当前命令缓冲区中调用 vkCmdBindShadersEXT,且 pStages 必须包含 VK_SHADER_STAGE_TASK_BIT_EXT 元素。
VUID-vkCmdDrawIndirectCount-None-08690
如果未绑定图形管线,且启用了 meshShader 特性,则必须在当前命令缓冲区中调用 vkCmdBindShadersEXT,且 pStages 必须包含 VK_SHADER_STAGE_MESH_BIT_EXT 元素。
VUID-vkCmdDrawIndirectCount-None-08693
如果未绑定图形管线,并且至少启用了 taskShader 和 meshShader 特性中的一个,则 VK_SHADER_STAGE_VERTEX_BIT 或 VK_SHADER_STAGE_MESH_BIT_EXT 阶段之一必须绑定有效的 VkShaderEXT,而另一个必须未绑定 VkShaderEXT。
VUID-vkCmdDrawIndirectCount-None-08694
如果未绑定图形管线,并且同时启用了 taskShader 和 meshShader 特性,且已将有效的 VkShaderEXT 绑定到 VK_SHADER_STAGE_MESH_BIT_EXT 阶段,并且该 VkShaderEXT 是在没有 VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT 标志的情况下创建的,则必须将有效的 VkShaderEXT 绑定到 VK_SHADER_STAGE_TASK_BIT_EXT 阶段。
VUID-vkCmdDrawIndirectCount-None-08695
如果未绑定图形管线,并且同时启用了 taskShader 和 meshShader 特性,且已将有效的 VkShaderEXT 绑定到 VK_SHADER_STAGE_MESH_BIT_EXT 阶段,并且该 VkShaderEXT 是使用 VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT 标志创建的,则必须没有 VkShaderEXT 绑定到 VK_SHADER_STAGE_TASK_BIT_EXT 阶段。
VUID-vkCmdDrawIndirectCount-None-08696
如果未绑定图形管线,并且已将有效的 VkShaderEXT 绑定到 VK_SHADER_STAGE_VERTEX_BIT 阶段,则必须没有 VkShaderEXT 绑定到 VK_SHADER_STAGE_TASK_BIT_EXT 阶段或 VK_SHADER_STAGE_MESH_BIT_EXT 阶段。
VUID-vkCmdDrawIndirectCount-None-08698
如果绑定了任何使用 VK_SHADER_CREATE_LINK_STAGE_BIT_EXT 标志创建的图形着色器,则同一 vkCreateShadersEXT 调用中所有使用 VK_SHADER_CREATE_LINK_STAGE_BIT_EXT 标志创建的着色器也必须绑定。
VUID-vkCmdDrawIndirectCount-None-08699
如果绑定了任何使用 VK_SHADER_CREATE_LINK_STAGE_BIT_EXT 标志创建的图形着色器,则在同一 vkCreateShadersEXT 调用中,着色器没有使用 VK_SHADER_CREATE_LINK_STAGE_BIT_EXT 标志创建的阶段之间的任何阶段必须未绑定任何 VkShaderEXT。
VUID-vkCmdDrawIndirectCount-None-08878
所有绑定的图形着色器对象必须使用相同或相同定义的推送常量范围创建。
VUID-vkCmdDrawIndirectCount-None-08879
所有绑定的图形着色器对象必须使用相同或相同定义的描述符集布局数组创建。
VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09372
如果当前渲染通道实例是使用 vkCmdBeginRendering 和一个 VkRenderingInfo::colorAttachmentCount 等于 1 开始的,且颜色附件的解析模式为 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,并且绑定了片段着色器,则它必须不声明 DepthReplacing 或 StencilRefReplacingEXT 执行模式。
VUID-vkCmdDrawIndirectCount-pDynamicStates-08715
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates 中设置的 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE 创建的,并且片段着色器声明了 EarlyFragmentTests 执行模式并使用 OpDepthAttachmentReadEXT,则上次调用 vkCmdSetDepthWriteEnable 的 depthWriteEnable 参数必须为 VK_FALSE。
VUID-vkCmdDrawIndirectCount-pDynamicStates-08716
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates 中设置的 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK 创建的,并且片段着色器声明了 EarlyFragmentTests 执行模式并使用 OpStencilAttachmentReadEXT,则上次调用 vkCmdSetStencilWriteMask 的 writeMask 参数必须为 0。
VUID-vkCmdDrawIndirectCount-None-09116
如果将着色器对象绑定到任何图形阶段,或者使用 VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT 创建了绑定的图形管线,并且任何颜色附件的格式为 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,则 vkCmdSetColorWriteMaskEXT 的 pColorWriteMasks 参数的相应元素必须包含 VK_COLOR_COMPONENT_R_BIT、VK_COLOR_COMPONENT_G_BIT 和 VK_COLOR_COMPONENT_B_BIT 中的全部,或全部都不包含。
VUID-vkCmdDrawIndirectCount-maxFragmentDualSrcAttachments-09239
如果任何附件启用了混合,并且该附件的源或目标混合因子使用了辅助颜色输入,则在此命令执行的Fragment Execution Model中静态使用的任何输出附件的 Location 最大值必须小于 maxFragmentDualSrcAttachments。
VUID-vkCmdDrawIndirectCount-None-09548
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则由vkCmdSetRenderingAttachmentLocations设置的VkRenderingAttachmentLocationInfo::pColorAttachmentLocations的每个元素的值必须与绑定的管道中相应元素的值匹配。
VUID-vkCmdDrawIndirectCount-None-09549
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则绑定管道中的输入附件索引映射必须与通过VkRenderingInputAttachmentIndexInfo为当前渲染通道实例设置的索引映射匹配。
VUID-vkCmdDrawIndirectCount-None-09642
如果当前渲染通道是通过带有 VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT 标志的 vkCmdBeginRendering 开始的,则绑定的图形管线必须使用 VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT 创建。
VUID-vkCmdDrawIndirectCount-None-09643
如果绑定的图形管线是使用 VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT 创建的,则当前渲染通道必须通过带有 VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT 标志的 vkCmdBeginRendering 开始。
-
VUID-vkCmdDrawIndirectCount-None-04007
通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须绑定有效的或VK_NULL_HANDLE 缓冲区。 -
VUID-vkCmdDrawIndirectCount-None-04008
如果未启用nullDescriptor功能,则通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须不是VK_NULL_HANDLE。 -
VUID-vkCmdDrawIndirectCount-None-02721
如果未启用robustBufferAccess功能,并且该管道的创建没有为vertexInputs启用VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,则对于给定的顶点缓冲区绑定,提取的任何属性数据必须完全包含在相应的顶点缓冲区绑定中,如顶点输入描述中所述。 -
VUID-vkCmdDrawIndirectCount-format-10389
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format是打包格式,并且未启用legacyVertexAttributes,则根据顶点输入计算计算的attribAddress值必须是format的大小的倍数。 -
VUID-vkCmdDrawIndirectCount-format-10390
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format不是打包格式,并且要么未启用legacyVertexAttributes,要么format具有 64 位组件,则根据顶点输入计算计算的attribAddress值必须是format的组件大小的倍数。 -
VUID-vkCmdDrawIndirectCount-None-07842
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是使用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态启用的,那么在本次绘制命令之前,必须调用过 vkCmdSetPrimitiveTopology 并且没有在当前命令缓冲区中被后续失效。 -
VUID-vkCmdDrawIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态且dynamicPrimitiveTopologyUnrestricted为VK_FALSE的情况下创建的,则vkCmdSetPrimitiveTopology的primitiveTopology参数必须与管线 VkPipelineInputAssemblyStateCreateInfo::topology状态具有相同的图元拓扑类别。 -
VUID-vkCmdDrawIndirectCount-primitiveTopology-10286
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,那么在执行此绘制命令之前,vkCmdSetPrimitiveTopology 必须将primitiveTopology设置为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST。 -
VUID-vkCmdDrawIndirectCount-pStrides-04913
如果绑定的图形管线是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE动态状态但未启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdBindVertexBuffers2 且未在当前命令缓冲区中随后被失效,并且 vkCmdBindVertexBuffers2 的pStrides参数必须不为NULL。 -
VUID-vkCmdDrawIndirectCount-None-04914
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetVertexInputEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectCount-Input-07939
如果vertexAttributeRobustness未启用,并且有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在VertexExecutionModelOpEntryPoint中,所有使用Location修饰的Input存储类变量必须包含 VkVertexInputAttributeDescription2EXT::location中的一个位置。 -
VUID-vkCmdDrawIndirectCount-Input-08734
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且legacyVertexAttributes功能未启用,或者在VertexExecutionModelOpEntryPoint中,与给定Location的Input变量关联的 SPIR-V 类型是 64 位的,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的数值类型必须与 VkVertexInputAttributeDescription2EXT::format相同。 -
VUID-vkCmdDrawIndirectCount-format-08936
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的标量宽度必须为 64 位。 -
VUID-vkCmdDrawIndirectCount-format-08937
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且在VertexExecutionModelOpEntryPoint中,与Location修饰的Input变量关联的标量宽度是 64 位的,那么对应的 VkVertexInputAttributeDescription2EXT::format必须具有 64 位分量。 -
VUID-vkCmdDrawIndirectCount-None-09203
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,对应Location的所有Input变量必须不使用格式中不存在的分量。 -
VUID-vkCmdDrawIndirectCount-None-04875
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT动态状态的情况下创建的,并且primitiveTopology的当前值 为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,那么在执行此绘制命令之前,必须调用过 vkCmdSetPatchControlPointsEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectCount-None-04879
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetPrimitiveRestartEnable 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectCount-None-09637
如果primitiveTopologyListRestart功能未启用,拓扑为VK_PRIMITIVE_TOPOLOGY_POINT_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST、VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY或VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么 vkCmdSetPrimitiveRestartEnable 必须为VK_FALSE。 -
VUID-vkCmdDrawIndirectCount-stage-06481
绑定的图形管线必须不是使用 VkPipelineShaderStageCreateInfo::stage成员(该成员是 VkGraphicsPipelineCreateInfo::pStages的任意元素的成员)设置为VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawIndirectCount-None-08885
必须没有着色器对象绑定到VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawIndirectCount-None-07619
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT阶段,或者绑定了一个使用启用VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须调用过 vkCmdSetTessellationDomainOriginEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectCount-None-08684
如果没有绑定图形管线,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_VERTEX_BIT元素 -
VUID-vkCmdDrawIndirectCount-None-08685
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT元素 -
VUID-vkCmdDrawIndirectCount-None-08686
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT元素 -
VUID-vkCmdDrawIndirectCount-None-08687
如果没有绑定图形管线,且启用了geometryShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_GEOMETRY_BIT元素
-
VUID-vkCmdDrawIndirectCount-countBuffer-02714
如果countBuffer不是稀疏的,则它必须完全且连续地绑定到单个VkDeviceMemory对象。 -
VUID-vkCmdDrawIndirectCount-countBuffer-02715
countBuffer必须已使用设置的VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT位创建。 -
VUID-vkCmdDrawIndirectCount-countBufferOffset-02716
countBufferOffset必须是4的倍数。 -
VUID-vkCmdDrawIndirectCount-countBuffer-02717
存储在countBuffer中的计数必须小于或等于VkPhysicalDeviceLimits::maxDrawIndirectCount。 -
VUID-vkCmdDrawIndirectCount-countBufferOffset-04129
(countBufferOffset+sizeof(uint32_t)) 必须小于或等于countBuffer的大小。 -
VUID-vkCmdDrawIndirectCount-None-04445
如果未启用drawIndirectCount功能,则必须不使用此函数。 -
VUID-vkCmdDrawIndirectCount-stride-03110
stride必须是4的倍数,并且必须大于或等于 sizeof(VkDrawIndirectCommand)。 -
VUID-vkCmdDrawIndirectCount-maxDrawCount-03111
如果maxDrawCount大于或等于1,则 (stride× (maxDrawCount- 1) +offset+ sizeof(VkDrawIndirectCommand)) 必须小于或等于buffer的大小。
-
VUID-vkCmdDrawIndirectCount-commandBuffer-parameter
commandBuffer必须 为有效的 VkCommandBuffer 句柄。 -
VUID-vkCmdDrawIndirectCount-buffer-parameter
buffer必须 是一个有效的 VkBuffer 句柄。 -
VUID-vkCmdDrawIndirectCount-countBuffer-parameter
countBuffer必须是有效的 VkBuffer 句柄。 -
VUID-vkCmdDrawIndirectCount-commandBuffer-recording
commandBuffer必须 处于记录状态。 -
VUID-vkCmdDrawIndirectCount-commandBuffer-cmdpool
分配commandBuffer的VkCommandPool必须 支持图形操作。 -
VUID-vkCmdDrawIndirectCount-commonparent
buffer、commandBuffer和countBuffer中的每一个必须是从同一个 VkDevice 创建、分配或检索的。
-
对
commandBuffer的主机访问必须进行外部同步。 -
对分配
commandBuffer的VkCommandPool的主机访问必须进行外部同步。
要记录索引间接绘制命令,请调用
// Provided by VK_VERSION_1_0
void vkCmdDrawIndexedIndirect(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
uint32_t drawCount,
uint32_t stride);
-
commandBuffer是要记录命令的命令缓冲区。 -
buffer是包含绘制参数的缓冲区。 -
offset是buffer中参数开始的字节偏移量。 -
drawCount是要执行的绘制次数,可以为零。 -
stride是连续的绘制参数集之间的字节步长。
vkCmdDrawIndexedIndirect 的行为类似于 vkCmdDrawIndexed,只是参数由设备在执行期间从缓冲区读取。该命令执行 drawCount 次绘制,参数从 buffer 开始,从 offset 开始,并且每次连续绘制增加 stride 个字节。每次绘制的参数都编码在 VkDrawIndexedIndirectCommand 结构的数组中。如果 drawCount 小于或等于 1,则忽略 stride。
-
VUID-vkCmdDrawIndexedIndirect-magFilter-04553
如果使用magFilter或minFilter等于VK_FILTER_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawIndexedIndirect-magFilter-09598
如果使用magFilter或minFilter等于VK_FILTER_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawIndexedIndirect-mipmapMode-09599
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawIndexedIndirect-unnormalizedCoordinates-09635
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的levelCount和layerCount必须为 1 -
VUID-vkCmdDrawIndexedIndirect-None-08609
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的viewType必须为VK_IMAGE_VIEW_TYPE_1D或VK_IMAGE_VIEW_TYPE_2D -
VUID-vkCmdDrawIndexedIndirect-None-08610
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用,其名称中包含ImplicitLod、Dref或Proj -
VUID-vkCmdDrawIndexedIndirect-None-08611
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何包含 LOD 偏差或任何偏移值的 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawIndexedIndirect-None-06479
如果 VkImageView 使用 深度比较进行采样,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT -
VUID-vkCmdDrawIndexedIndirect-None-02691
如果由于此命令而使用原子操作访问 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT -
VUID-vkCmdDrawIndexedIndirect-None-07888
如果此命令导致使用原子操作访问VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER描述符,则存储纹理缓冲区视图的格式特性必须包含VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT。 -
VUID-vkCmdDrawIndexedIndirect-None-02692
如果此命令导致使用VK_FILTER_CUBIC_EXT采样 VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT。 -
VUID-vkCmdDrawIndexedIndirect-None-02693
如果未启用 VK_EXT_filter_cubic 扩展,且此命令导致使用VK_FILTER_CUBIC_EXT采样任何 VkImageView,则该图像视图的 VkImageViewType必须不能为VK_IMAGE_VIEW_TYPE_3D、VK_IMAGE_VIEW_TYPE_CUBE或VK_IMAGE_VIEW_TYPE_CUBE_ARRAY。 -
VUID-vkCmdDrawIndexedIndirect-filterCubic-02694
此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695
此命令导致使用VK_FILTER_CUBIC_EXT采样且缩减模式为VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波以及 minmax 滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawIndexedIndirect-cubicRangeClamp-09212
如果未启用cubicRangeClamp特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerReductionModeCreateInfo::reductionMode必须不能等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM。 -
VUID-vkCmdDrawIndexedIndirect-reductionMode-09213
此命令导致使用 VkSamplerReductionModeCreateInfo::reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM采样的任何 VkImageView必须使用VK_FILTER_CUBIC_EXT进行采样。 -
VUID-vkCmdDrawIndexedIndirect-selectableCubicWeights-09214
如果未启用selectableCubicWeights特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights必须等于VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM。 -
VUID-vkCmdDrawIndexedIndirect-flags-02696
此命令导致采样的任何使用包含VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV的 VkImageCreateInfo::flags创建的 VkImage必须仅使用VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE的 VkSamplerAddressMode 进行采样。 -
VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07027
对于任何作为存储图像写入,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07028
对于任何作为存储图像读取,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07029
对于任何作为存储纹理缓冲区写入,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07030
对于任何作为存储纹理缓冲区读取,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndexedIndirect-None-08600
对于 绑定着色器静态使用的每个集合 *n*,必须在同一管线绑定点将描述符集绑定到 *n*,其 VkPipelineLayout 与集合 *n* 兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawIndexedIndirect-None-08601
对于 绑定着色器静态使用的每个推送常量,必须为同一管线绑定点设置推送常量值,其 VkPipelineLayout 与推送常量兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawIndexedIndirect-None-10068
对于绑定的着色器使用的每个资源数组,用于访问数组元素的索引必须小于此命令所使用描述符集中标识绑定的描述符计数。 -
VUID-vkCmdDrawIndexedIndirect-maintenance4-08602
如果未启用maintenance4特性,则对于绑定的着色器静态使用的每个推送常量,必须已为同一管线绑定点设置了推送常量值,该管线绑定点具有与用于创建当前VkPipeline的VkPipelineLayout或用于创建当前VkShaderEXT的VkDescriptorSetLayout和VkPushConstantRange数组兼容的用于推送常量的VkPipelineLayout,如管线布局兼容性中所述。 -
VUID-vkCmdDrawIndexedIndirect-None-08114
如果通过vkCmdBindDescriptorSets指定的每个绑定描述符集中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline静态使用,且绑定的VkPipeline不是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须按照描述符有效性的描述是有效的。 -
VUID-vkCmdDrawIndexedIndirect-None-08115
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdBindDescriptorSets指定的,则绑定的VkPipeline必须是在没有VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawIndexedIndirect-None-08116
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline动态使用,且绑定的VkPipeline是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须是有效的。 -
VUID-vkCmdDrawIndexedIndirect-None-08604
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的任何阶段对应的VkShaderEXT动态使用,则必须是有效的。 -
VUID-vkCmdDrawIndexedIndirect-None-08117
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdSetDescriptorBufferOffsetsEXT指定的,则绑定的VkPipeline必须是在使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的。 -
VUID-vkCmdDrawIndexedIndirect-None-08119
如果描述符在创建时使用了VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkPipeline中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawIndexedIndirect-None-08605
如果描述符在创建时使用了VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkDescriptorSetLayout的VkShaderEXT中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawIndexedIndirect-None-08606
如果未启用shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点。 -
VUID-vkCmdDrawIndexedIndirect-None-08608
如果将管线绑定到此命令使用的管线绑定点,则自该管线绑定后,必须没有对绑定到此命令使用的管线绑定点的VkPipeline对象中静态指定的任何状态进行动态状态设置命令的任何调用。 -
VUID-vkCmdDrawIndexedIndirect-None-08607
如果启用了shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点,或者必须将有效和VK_NULL_HANDLE着色器对象的有效组合绑定到与此命令使用的管线绑定点对应的每个受支持的着色器阶段。 -
VUID-vkCmdDrawIndexedIndirect-uniformBuffers-06935
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问统一缓冲区,且该阶段的创建没有启用uniformBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndexedIndirect-None-08612
如果未启用robustBufferAccess特性,且绑定到与此命令使用的管线绑定点对应的阶段的任何VkShaderEXT访问统一缓冲区,则该VkShaderEXT必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndexedIndirect-storageBuffers-06936
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问存储缓冲区,且该阶段的创建没有启用storageBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndexedIndirect-None-08613
如果未启用robustBufferAccess特性,并且绑定到此命令所用管线绑定点的阶段的任何VkShaderEXT访问了存储缓冲区,则它必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值 -
VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707
如果commandBuffer是一个未受保护的命令缓冲区,并且不支持protectedNoFault,则绑定的着色器访问的任何资源必须不是受保护的资源 -
VUID-vkCmdDrawIndexedIndirect-None-06550
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须仅与OpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须不使用ConstOffset和Offset操作数 -
VUID-vkCmdDrawIndexedIndirect-viewType-07752
如果通过此命令访问VkImageView,则图像视图的viewType必须与SPIR-V 图像维度和 Vulkan ImageView 类型之间的兼容性中描述的OpTypeImage的Dim操作数匹配 -
VUID-vkCmdDrawIndexedIndirect-format-07753
如果通过此命令访问VkImageView,则图像视图的format的数值类型和OpTypeImage的SampledType操作数必须匹配 -
VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08795
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM以外的格式创建的VkImageView,则该指令的Texel操作数的Type必须具有至少与图像视图的格式一样多的组件 -
VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08796
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM格式创建的VkImageView,则该指令的Texel操作数的Type必须具有四个组件 -
VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469
如果通过此命令使用OpImageWrite访问VkBufferView,则该指令的Texel操作数的Type必须具有至少与缓冲区视图的格式一样多的组件 -
VUID-vkCmdDrawIndexedIndirect-SampledType-04470
如果通过此命令访问具有64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawIndexedIndirect-SampledType-04471
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawIndexedIndirect-SampledType-04472
如果通过此命令访问具有64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawIndexedIndirect-SampledType-04473
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04474
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkImage对象 -
VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04475
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkBuffer对象 -
VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06971
如果使用OpImageWeightedSampleQCOM来采样通过此命令获得的VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM -
VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06972
如果OpImageWeightedSampleQCOM使用通过此命令获得的VkImageView作为采样权重图像,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM -
VUID-vkCmdDrawIndexedIndirect-OpImageBoxFilterQCOM-06973
如果使用OpImageBoxFilterQCOM对 VkImageView 进行采样以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM -
VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSSDQCOM-06974
如果使用OpImageBlockMatchSSDQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06975
如果使用OpImageBlockMatchSADQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06976
如果使用OpImageBlockMatchSADQCOM或OpImageBlockMatchSSDQCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06977
如果OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM使用 VkSampler 作为此命令的结果,则采样器必须使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06978
如果除OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM之外的任何命令使用 VkSampler 作为此命令的结果,则采样器必须未使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09215
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09216
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式必须是单分量格式 -
VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09217
如果OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawIndexedIndirect-None-07288
此命令执行的任何着色器调用必须终止 -
VUID-vkCmdDrawIndexedIndirect-None-09600
如果访问类型等于VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE、VK_DESCRIPTOR_TYPE_STORAGE_IMAGE或VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT的描述符以作为此命令的结果,则该描述符标识的所有图像子资源必须位于写入描述符时标识的图像布局中 -
VUID-vkCmdDrawIndexedIndirect-renderPass-02684
当前的渲染过程必须与创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的renderPass成员兼容 -
VUID-vkCmdDrawIndexedIndirect-subpass-02685
当前渲染过程的子过程索引必须等于创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的subpass成员 -
VUID-vkCmdDrawIndexedIndirect-None-07748
如果任何着色器静态访问输入附件,则必须通过描述符集将有效的描述符绑定到管道 -
VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07468
如果此管道执行的任何着色器访问Dim操作数为SubpassData的OpTypeImage变量,则它必须使用与当前子过程中有效的输入附件相对应的InputAttachmentIndex进行修饰 -
VUID-vkCmdDrawIndexedIndirect-None-07469
在子过程中访问的输入附件视图必须使用与相应子过程定义相同的 VkFormat 创建,并且使用 VkImageView 创建,该 VkImageView 与绑定 VkFramebuffer 中子过程的pInputAttachments[InputAttachmentIndex] 引用的附件兼容,如片段输入附件兼容性中所述 -
VUID-vkCmdDrawIndexedIndirect-pDepthInputAttachmentIndex-09595
在动态渲染过程中访问的、由VkRenderingInputAttachmentIndexInfo 引用的InputAttachmentIndex的输入附件视图,或者如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex或 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex为NULL则没有InputAttachmentIndex的输入附件视图,必须使用与 VkRenderingInfo 中的相应颜色、深度或模板附件兼容的 VkImageView 创建 -
VUID-vkCmdDrawIndexedIndirect-pDepthInputAttachmentIndex-09596
如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex和 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex均不为NULL,则通过着色器对象在动态渲染过程中访问的输入附件视图必须具有InputAttachmentIndex -
VUID-vkCmdDrawIndexedIndirect-InputAttachmentIndex-09597
如果通过着色器对象在动态渲染过程中访问的输入附件视图具有InputAttachmentIndex,则InputAttachmentIndex必须与VkRenderingInputAttachmentIndexInfo 中的索引匹配 -
VUID-vkCmdDrawIndexedIndirect-None-06537
当前渲染通道中用作附件的内存后备图像子资源必须不能以任何方式写入,除非作为此命令的附件。 -
VUID-vkCmdDrawIndexedIndirect-None-09000
如果颜色附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_COLOR_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndexedIndirect-None-09001
如果深度附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_DEPTH_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndexedIndirect-None-09002
如果模板附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_STENCIL_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndexedIndirect-None-09003
如果附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则此命令必须不能以任何方式访问它,除非作为附件、存储图像或采样图像。 -
VUID-vkCmdDrawIndexedIndirect-None-06539
如果当前子通道中任何先前记录的命令以任何方式访问了用作此子通道附件的图像子资源,而非作为附件,则此命令必须不能将该图像子资源作为附件写入。 -
VUID-vkCmdDrawIndexedIndirect-None-06886
如果当前渲染通道实例使用深度/模板附件,且其深度方面为只读布局,则必须禁用深度写入。 -
VUID-vkCmdDrawIndexedIndirect-None-06887
如果当前渲染通道实例使用深度/模板附件,且其模板方面为只读布局,并且前向和后向writeMask都不为零,并且启用了模板测试,则所有模板操作必须为VK_STENCIL_OP_KEEP。 -
VUID-vkCmdDrawIndexedIndirect-None-07831
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_VIEWPORT动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewport,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07832
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SCISSOR动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetScissor,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07833
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_LINE_WIDTH动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-08617
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-08618
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-08619
如果输出线图元的着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07834
如果着色器对象绑定到任何图形阶段,或者绑定了一个创建时启用了VK_DYNAMIC_STATE_DEPTH_BIAS动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBiasEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBias 或 vkCmdSetDepthBias2EXT,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07835
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_BLEND_CONSTANTS动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetBlendConstants,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-08621
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEnableEXT 将pColorBlendEnables的任何元素设置为VK_TRUE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEquationEXT 将pColorBlendEquations的相同元素设置为一个VkColorBlendEquationEXT结构,其中任何 VkBlendFactor 成员的值为VK_BLEND_FACTOR_CONSTANT_COLOR,VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,VK_BLEND_FACTOR_CONSTANT_ALPHA或VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetBlendConstants 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07836
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBoundsTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetDepthBounds 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07837
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilCompareMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07838
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_WRITE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilWriteMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07839
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_REFERENCE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilReference 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688
如果绘制记录在启用了多视图的渲染通道实例中,则最大实例索引**必须**小于或等于 VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex。 -
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689
如果绑定的图形管线是使用 VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable设置为VK_TRUE创建的,并且当前子通道具有深度/模板附件,则该附件**必须**已使用VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位集创建。 -
VUID-vkCmdDrawIndexedIndirect-None-07634
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-06666
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且sampleLocationsEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07840
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_CULL_MODE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetCullMode 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07841
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_FRONT_FACE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetFrontFace 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07843
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07844
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthWriteEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07845
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_COMPARE_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且depthTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthCompareOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07846
如果启用了depthBounds功能,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthBoundsTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07847
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07848
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirect-viewportCount-03417
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirect-scissorCount-03418
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetScissorWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirect-viewportCount-03419
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时同时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则vkCmdSetViewportWithCount的viewportCount参数必须与vkCmdSetScissorWithCount的scissorCount参数匹配。 -
VUID-vkCmdDrawIndexedIndirect-viewportCount-04137
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportWScalingStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexedIndirect-viewportCount-04138
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWScalingNV,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-08636
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则上次调用 vkCmdSetViewportWScalingNV 中的viewportCount参数必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexedIndirect-viewportCount-04139
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09233
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetCoarseSampleOrderNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09234
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewportShadingRatePaletteNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirect-None-08637
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则最后一次调用 vkCmdSetViewportShadingRatePaletteNV 中的viewportCount参数必须大于或等于最后一次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04141
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportSwizzleStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount创建。 -
VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04142
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportExclusiveScissorStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount创建。 -
VUID-vkCmdDrawIndexedIndirect-None-07878
如果启用了exclusiveScissor功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorEnableNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07879
如果启用了exclusiveScissor功能,着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV动态状态创建的图形管线,并且当前命令缓冲区中最近一次调用 vkCmdSetExclusiveScissorEnableNV 将pExclusiveScissorEnables的任何元素设置为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirect-None-04876
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetRasterizerDiscardEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirect-None-04877
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBiasEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirect-logicOp-04878
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT,或者绑定了使用启用VK_DYNAMIC_STATE_LOGIC_OP_EXT动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且logicOpEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLogicOpEXT,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,绑定的图形管线是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且绑定的图形管线的任何着色器阶段写入到PrimitiveShadingRateKHR内置变量,则在执行此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-08642
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,并且绑定到图形阶段的任何着色器对象写入了PrimitiveShadingRateKHR内置变量,那么在执行此绘制命令之前,当前命令缓冲区中必须调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDrawIndexedIndirect-blendEnable-04727
如果绑定的图形管线中没有禁用光栅化,那么对于子通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则pColorBlendState的pAttachments成员中相应元素的blendEnable成员必须为VK_FALSE。 -
VUID-vkCmdDrawIndexedIndirect-None-08643
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么对于渲染通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则在当前命令缓冲区中最近一次调用vkCmdSetColorBlendEnableEXT中影响该附件索引的pColorBlendEnables的相应成员必须为VK_FALSE。 -
VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07284
如果绑定的图形管线中没有禁用光栅化,并且以下任何一项均未启用那么绑定图形管线的
rasterizationSamples必须与当前子通道颜色和/或深度/模板附件相同。 -
VUID-vkCmdDrawIndexedIndirect-None-08644
如果着色器对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且以下任何一项均未启用那么在当前命令缓冲区中最近一次调用 vkCmdSetRasterizationSamplesEXT 必须已将
rasterizationSamples设置为与当前渲染通道颜色和/或深度/模板附件的样本数相同。 -
VUID-vkCmdDrawIndexedIndirect-None-08876
如果着色器对象绑定到任何图形阶段,则当前渲染通道实例必须已通过 vkCmdBeginRendering 开始。 -
VUID-vkCmdDrawIndexedIndirect-imageView-06172
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndexedIndirect-imageView-06173
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndexedIndirect-imageView-06174
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndexedIndirect-imageView-06175
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndexedIndirect-imageView-06176
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndexedIndirect-imageView-06177
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndexedIndirect-viewMask-06178
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::viewMask相等的 VkPipelineRenderingCreateInfo::viewMask创建。 -
VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::colorAttachmentCount相等的 VkPipelineRenderingCreateInfo::colorAttachmentCount创建。 -
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08910
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建。 -
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08912
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView等于 VK_NULL_HANDLE 的元素必须使用于创建绑定管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08911
如果启用了dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建,或者如果 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的对应元素存在,则必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09362
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,VkRenderingInfo::colorAttachmentCount等于1,并且没有任何着色器对象绑定到任何图形阶段,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个resolveImageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDrawIndexedIndirect-None-09363
如果没有着色器对象绑定到任何图形阶段,当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount等于1开始的,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDrawIndexedIndirect-None-09364
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDrawIndexedIndirect-None-09365
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDrawIndexedIndirect-None-09366
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-09367
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDrawIndexedIndirect-None-09368
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDrawIndexedIndirect-None-09369
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09370
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09371
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDrawIndexedIndirect-None-07749
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexedIndirect-None-08646
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexedIndirect-attachmentCount-07750
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于绑定图形管线的VkPipelineColorBlendStateCreateInfo::attachmentCount -
VUID-vkCmdDrawIndexedIndirect-None-08647
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在当前命令缓冲区中最近一次调用vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于当前渲染过程实例中的颜色附件数量 -
VUID-vkCmdDrawIndexedIndirect-None-07751
如果启用了VK_EXT_discard_rectangles扩展,绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中包含了一个 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09236
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中不包含 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexedIndirect-None-07880
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须调用 vkCmdSetDiscardRectangleEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexedIndirect-None-07881
如果启用了VK_EXT_discard_rectangles扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须调用过 vkCmdSetDiscardRectangleModeEXT,并且在当前命令缓冲区中没有后续失效。 -
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08913
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08914
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat。 -
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08915
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值不等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08916
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08917
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat。 -
VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08918
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值不等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirect-imageView-06183
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR创建的。 -
VUID-vkCmdDrawIndexedIndirect-imageView-06184
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT创建的。 -
VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185
如果绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的pColorAttachmentSamples成员的相应元素相同的采样计数创建。 -
VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07285
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与绑定图形管线的rasterizationSamples值相同的采样计数创建。 -
VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07286
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndexedIndirect-pNext-07935
如果此命令是在使用 vkCmdBeginRendering 启动的渲染通道实例内调用的,并且 VkRenderingInfo 的pNext链包含一个 VkMultisampledRenderToSingleSampledInfoEXT 结构,其中multisampledRenderToSingleSampledEnable等于VK_TRUE,那么绑定图形管线的rasterizationSamples的值必须等于 VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples。 -
VUID-vkCmdDrawIndexedIndirect-renderPass-06198
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,那么绑定的管线必须使用 VkGraphicsPipelineCreateInfo::renderPass等于 VK_NULL_HANDLE 创建。 -
VUID-vkCmdDrawIndexedIndirect-pColorAttachments-08963
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,并且存在一个绑定了片段着色器的图形管线,该片段着色器静态写入颜色附件,颜色写入掩码不为零,颜色写入已启用,并且 VkRenderingInfo::pColorAttachments->imageView的相应元素不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的相应元素必须不是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-08964
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了深度测试、启用了深度写入,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-08965
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了模板测试,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708
如果primitivesGeneratedQueryWithRasterizerDiscard功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则 必须 不启用光栅化丢弃。 -
VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709
如果primitivesGeneratedQueryWithNonZeroStreams功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则绑定的图形管线 必须 不是使用VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream中的非零值创建的。 -
VUID-vkCmdDrawIndexedIndirect-None-07620
如果启用了depthClamp功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetDepthClampEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07621
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_POLYGON_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetPolygonModeEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07622
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetRasterizationSamplesEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07623
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_MASK_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetSampleMaskEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08919
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的,并且在上次调用 vkCmdSetAlphaToCoverageEnableEXT 时alphaToCoverageEnable为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08920
如果有 shader 对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetAlphaToCoverageEnableEXT 时将alphaToCoverageEnable设置为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDrawIndexedIndirect-None-07624
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToCoverageEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07625
如果启用了alphaToOne功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToOneEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07626
如果启用了logicOp功能,并且有 shader 对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetLogicOpEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07627
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态创建的,则在本次绘制命令之前, 必须 已调用 vkCmdSetColorBlendEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-08657
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07628
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirect-None-08658
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且最近一次针对任何附件调用 vkCmdSetColorBlendEnableEXT 时将该附件在pColorBlendEnables中的值设置为VK_TRUE,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07629
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirect-None-08659
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07630
如果启用了geometryStreams特性,并且着色器对象绑定到VK_SHADER_STAGE_GEOMETRY_BIT阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetRasterizationStreamEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07631
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在当前绘制命令之前,必须调用过 vkCmdSetConservativeRasterizationModeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07632
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT动态状态的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且conservativeRasterizationMode的当前值为VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,则在当前绘制命令之前,必须调用过 vkCmdSetExtraPrimitiveOverestimationSizeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07633
如果启用了depthClipEnable特性,并且着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetDepthClipEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07635
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendAdvancedEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09416
如果启用了VK_EXT_blend_operation_advanced扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在当前绘制命令之前,必须至少调用过 vkCmdSetColorBlendEquationEXT 和 vkCmdSetColorBlendAdvancedEXT 中的一个,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07636
如果启用了VK_EXT_provoking_vertex扩展,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT动态状态的图形管线,并且 当前值 的rasterizerDiscardEnable为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetProvokingVertexModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirect-None-07637
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirect-None-08666
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirect-None-08667
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirect-None-08668
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirect-None-07638
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirect-None-08669
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirect-None-08670
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirect-None-08671
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirect-None-07849
如果启用了stippledRectangularLines、stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且着色器对象绑定到任何图形阶段,或者使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE动态状态创建的绑定图形管线状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stippledLineEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetLineStipple 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07639
如果启用了depthClipControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClipNegativeOneToOneEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-09650
如果启用了depthClampControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT动态状态创建的图形管线,并且depthClampEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClampRangeEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07640
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportWScalingEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07641
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportSwizzleNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07642
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07643
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageToColorEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorLocationNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07644
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationModeNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07645
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationMode的当前值不是VK_COVERAGE_MODULATION_MODE_NONE_NV的任何值,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationTableEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07646
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationTableEnable的当前值为VK_TRUE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageModulationTableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07647
如果启用了shadingRateImage特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetShadingRateImageEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-pipelineFragmentShadingRate-09238
如果启用了pipelineFragmentShadingRate特性,并且绑定了一个着色器对象到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetFragmentShadingRateKHR,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07648
如果启用了representativeFragmentTest特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetRepresentativeFragmentTestEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-None-07649
如果启用了coverageReductionMode特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageReductionModeNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirect-pColorBlendEnables-07470
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT状态的情况下创建的,并且最后一次调用 vkCmdSetColorBlendEnableEXT 为任何附件将pColorBlendEnables设置为VK_TRUE,那么对于子通道中的这些附件,相应的图像视图的 格式特性 必须 包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT。 -
VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07471
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前子通道不使用任何颜色和/或深度/模板附件,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 遵循 零附件子通道 的规则。 -
VUID-vkCmdDrawIndexedIndirect-samples-07472
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态且禁用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于用于创建绑定的图形管线的 VkPipelineMultisampleStateCreateInfo::rasterizationSamples参数。 -
VUID-vkCmdDrawIndexedIndirect-samples-07473
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples参数。 -
VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07474
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且multisampledRenderToSingleSampled特性未启用,并且既没有启用VK_AMD_mixed_attachment_samples扩展,也没有启用VK_NV_framebuffer_mixed_samples扩展,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与当前子通道的颜色和/或深度/模板附件相同。 -
VUID-vkCmdDrawIndexedIndirect-None-09211
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,或者一个着色器对象被绑定到任何图形阶段,并且当前渲染通道实例包含一个multisampledRenderToSingleSampledEnable等于VK_TRUE的 VkMultisampledRenderToSingleSampledInfoEXT 结构,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与该结构的rasterizationSamples成员相同。 -
VUID-vkCmdDrawIndexedIndirect-firstAttachment-07476
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态的情况下创建的,那么在此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件 必须 为当前子通道中的所有活动颜色附件指定启用。 -
VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09417
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件启用。 -
VUID-vkCmdDrawIndexedIndirect-firstAttachment-07477
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09418
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且存在绑定的颜色附件,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDrawIndexedIndirect-firstAttachment-07478
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09419
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDrawIndexedIndirect-firstAttachment-07479
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendAdvancedEXT,并且vkCmdSetColorBlendAdvancedEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定高级混合方程式。 -
VUID-vkCmdDrawIndexedIndirect-advancedBlendMaxColorAttachments-07480
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT和VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,并且最近一次调用 vkCmdSetColorBlendEnableEXT 和 vkCmdSetColorBlendAdvancedEXT 已启用高级混合,则当前子通道中的活动颜色附件的数量必须不超过advancedBlendMaxColorAttachments。 -
VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481
如果未启用primitivesGeneratedQueryWithNonZeroStreams功能,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,并且绑定的图形管线创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT状态,则最近一次调用 vkCmdSetRasterizationStreamEXT 必须已将rasterizationStream设置为零。 -
VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07482
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态并禁用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于绑定图形管线创建时使用的 VkPipelineMultisampleStateCreateInfo 结构的rasterizationSamples成员。 -
VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07483
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于最近一次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples参数。 -
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07484
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,并且当前子通道具有深度/模板附件,则该附件的创建必须设置了VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位。 -
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07485
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中sampleLocationsInfo.sampleLocationGridSize.width必须能被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者是通过 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回的,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07486
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则上次调用 vkCmdSetSampleLocationsEXT 中的sampleLocationsInfo.sampleLocationGridSize.height**必须** 可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07487
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则片段着色器代码**必须**不得静态使用扩展指令InterpolateAtSample。 -
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07936
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.width**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07937
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.height**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07938
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationsPerPixel**必须**等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples。 -
VUID-vkCmdDrawIndexedIndirect-coverageModulationTableEnable-07488
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageModulationTableEnableNV 将coverageModulationTableEnable设置为VK_TRUE,则上次调用 vkCmdSetCoverageModulationTableNV 中的coverageModulationTableCount参数**必须**等于当前的rasterizationSamples除以当前子通道中的颜色样本数量。 -
VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07489
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且当前子通道具有深度/模板附件,且在绑定的管线中启用了深度测试、模板测试或深度边界测试,则当前的rasterizationSamples**必须**与深度/模板附件的样本计数相同。 -
VUID-vkCmdDrawIndexedIndirect-coverageToColorEnable-07490
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09420
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDrawIndexedIndirect-coverageReductionMode-07491
如果启用了VK_NV_coverage_reduction_mode扩展,并且绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前的覆盖率缩减模式coverageReductionMode、当前的rasterizationSamples以及颜色和深度/模板附件(如果子通道有这些附件)的采样计数 必须 是 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV 返回的有效组合。 -
VUID-vkCmdDrawIndexedIndirect-viewportCount-07492
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但未启用VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么绑定的图形管线 必须 是使用 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数创建的。 -
VUID-vkCmdDrawIndexedIndirect-viewportCount-07493
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexedIndirect-viewportCount-09421
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07494
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且如果当前子通道有任何颜色附件,且上次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples大于颜色采样数,那么管线的sampleShadingEnable必须 为VK_FALSE。 -
VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07495
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR,那么stippledRectangularLines特性 必须 启用。 -
VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07496
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_BRESENHAM,那么stippledBresenhamLines特性 必须 启用。 -
VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07497
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,那么stippledSmoothLines特性 必须 启用。 -
VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07498
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_DEFAULT,那么stippledRectangularLines特性 必须 启用,并且 VkPhysicalDeviceLimits::strictLines必须 为VK_TRUE。 -
VUID-vkCmdDrawIndexedIndirect-conservativePointAndLineRasterization-07499
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且不支持conservativePointAndLineRasterization,并且最后一个光栅化前着色器阶段输出的有效图元拓扑结构为直线或点,那么上次调用 vkCmdSetConservativeRasterizationModeEXT 设置的conservativeRasterizationMode必须 为VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT。 -
VUID-vkCmdDrawIndexedIndirect-stage-07073
如果绑定的管线是使用 VkPipelineShaderStageCreateInfo::stage成员,该成员是 VkGraphicsPipelineCreateInfo::pStages的一个元素,设置为VK_SHADER_STAGE_VERTEX_BIT、VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT、VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT创建的,那么 网格着色器查询 必须 未处于活动状态。 -
VUID-vkCmdDrawIndexedIndirect-None-08877
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,当前命令缓冲区中 必须 调用过 vkCmdSetAttachmentFeedbackLoopEnableEXT 并且没有随后被 无效化。 -
VUID-vkCmdDrawIndexedIndirect-None-07850
如果动态状态是从 VkCommandBufferInheritanceViewportScissorInfoNV 继承的,则它必须在本绘图命令之前在当前命令缓冲区中设置。 -
VUID-vkCmdDrawIndexedIndirect-None-08688
如果未绑定图形管线,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_FRAGMENT_BIT元素。 -
VUID-vkCmdDrawIndexedIndirect-None-08689
如果未绑定图形管线,且启用了taskShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_TASK_BIT_EXT元素。 -
VUID-vkCmdDrawIndexedIndirect-None-08690
如果未绑定图形管线,且启用了meshShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_MESH_BIT_EXT元素。 -
VUID-vkCmdDrawIndexedIndirect-None-08693
如果未绑定图形管线,并且至少启用了taskShader和meshShader特性中的一个,则VK_SHADER_STAGE_VERTEX_BIT或VK_SHADER_STAGE_MESH_BIT_EXT阶段之一必须绑定有效的VkShaderEXT,而另一个必须未绑定VkShaderEXT。 -
VUID-vkCmdDrawIndexedIndirect-None-08694
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是在没有VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志的情况下创建的,则必须将有效的VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDrawIndexedIndirect-None-08695
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是使用VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志创建的,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDrawIndexedIndirect-None-08696
如果未绑定图形管线,并且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawIndexedIndirect-None-08698
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则同一 vkCreateShadersEXT 调用中所有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的着色器也必须绑定。 -
VUID-vkCmdDrawIndexedIndirect-None-08699
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则在同一 vkCreateShadersEXT 调用中,着色器没有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的阶段之间的任何阶段必须未绑定任何VkShaderEXT。 -
VUID-vkCmdDrawIndexedIndirect-None-08878
所有绑定的图形着色器对象必须使用相同或相同定义的推送常量范围创建。 -
VUID-vkCmdDrawIndexedIndirect-None-08879
所有绑定的图形着色器对象必须使用相同或相同定义的描述符集布局数组创建。 -
VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09372
如果当前渲染通道实例是使用 vkCmdBeginRendering 和一个 VkRenderingInfo::colorAttachmentCount等于1开始的,且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,并且绑定了片段着色器,则它必须不声明DepthReplacing或StencilRefReplacingEXT执行模式。 -
VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08715
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpDepthAttachmentReadEXT,则上次调用 vkCmdSetDepthWriteEnable 的depthWriteEnable参数必须为VK_FALSE。 -
VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08716
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_STENCIL_WRITE_MASK创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpStencilAttachmentReadEXT,则上次调用 vkCmdSetStencilWriteMask 的writeMask参数必须为0。 -
VUID-vkCmdDrawIndexedIndirect-None-09116
如果将着色器对象绑定到任何图形阶段,或者使用VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT创建了绑定的图形管线,并且任何颜色附件的格式为VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,则 vkCmdSetColorWriteMaskEXT 的pColorWriteMasks参数的相应元素必须包含VK_COLOR_COMPONENT_R_BIT、VK_COLOR_COMPONENT_G_BIT和VK_COLOR_COMPONENT_B_BIT中的全部,或全部都不包含。 -
VUID-vkCmdDrawIndexedIndirect-maxFragmentDualSrcAttachments-09239
如果任何附件启用了混合,并且该附件的源或目标混合因子使用了辅助颜色输入,则在此命令执行的FragmentExecutionModel中静态使用的任何输出附件的Location最大值必须小于maxFragmentDualSrcAttachments。 -
VUID-vkCmdDrawIndexedIndirect-None-09548
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则由vkCmdSetRenderingAttachmentLocations设置的VkRenderingAttachmentLocationInfo::pColorAttachmentLocations的每个元素的值必须与绑定的管道中相应元素的值匹配。 -
VUID-vkCmdDrawIndexedIndirect-None-09549
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则绑定管道中的输入附件索引映射必须与通过VkRenderingInputAttachmentIndexInfo为当前渲染通道实例设置的索引映射匹配。 -
VUID-vkCmdDrawIndexedIndirect-None-09642
如果当前渲染通道是通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始的,则绑定的图形管线必须使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建。 -
VUID-vkCmdDrawIndexedIndirect-None-09643
如果绑定的图形管线是使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建的,则当前渲染通道必须通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始。
-
VUID-vkCmdDrawIndexedIndirect-None-04007
通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须绑定有效的或VK_NULL_HANDLE 缓冲区。 -
VUID-vkCmdDrawIndexedIndirect-None-04008
如果未启用nullDescriptor功能,则通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须不是VK_NULL_HANDLE。 -
VUID-vkCmdDrawIndexedIndirect-None-02721
如果未启用robustBufferAccess功能,并且该管道的创建没有为vertexInputs启用VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,则对于给定的顶点缓冲区绑定,提取的任何属性数据必须完全包含在相应的顶点缓冲区绑定中,如顶点输入描述中所述。 -
VUID-vkCmdDrawIndexedIndirect-format-10389
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format是打包格式,并且未启用legacyVertexAttributes,则根据顶点输入计算计算的attribAddress值必须是format的大小的倍数。 -
VUID-vkCmdDrawIndexedIndirect-format-10390
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format不是打包格式,并且要么未启用legacyVertexAttributes,要么format具有 64 位组件,则根据顶点输入计算计算的attribAddress值必须是format的组件大小的倍数。 -
VUID-vkCmdDrawIndexedIndirect-None-07842
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是使用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态启用的,那么在本次绘制命令之前,必须调用过 vkCmdSetPrimitiveTopology 并且没有在当前命令缓冲区中被后续失效。 -
VUID-vkCmdDrawIndexedIndirect-dynamicPrimitiveTopologyUnrestricted-07500
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态且dynamicPrimitiveTopologyUnrestricted为VK_FALSE的情况下创建的,则vkCmdSetPrimitiveTopology的primitiveTopology参数必须与管线 VkPipelineInputAssemblyStateCreateInfo::topology状态具有相同的图元拓扑类别。 -
VUID-vkCmdDrawIndexedIndirect-primitiveTopology-10286
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,那么在执行此绘制命令之前,vkCmdSetPrimitiveTopology 必须将primitiveTopology设置为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST。 -
VUID-vkCmdDrawIndexedIndirect-pStrides-04913
如果绑定的图形管线是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE动态状态但未启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdBindVertexBuffers2 且未在当前命令缓冲区中随后被失效,并且 vkCmdBindVertexBuffers2 的pStrides参数必须不为NULL。 -
VUID-vkCmdDrawIndexedIndirect-None-04914
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetVertexInputEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirect-Input-07939
如果vertexAttributeRobustness未启用,并且有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在VertexExecutionModelOpEntryPoint中,所有使用Location修饰的Input存储类变量必须包含 VkVertexInputAttributeDescription2EXT::location中的一个位置。 -
VUID-vkCmdDrawIndexedIndirect-Input-08734
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且legacyVertexAttributes功能未启用,或者在VertexExecutionModelOpEntryPoint中,与给定Location的Input变量关联的 SPIR-V 类型是 64 位的,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的数值类型必须与 VkVertexInputAttributeDescription2EXT::format相同。 -
VUID-vkCmdDrawIndexedIndirect-format-08936
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的标量宽度必须为 64 位。 -
VUID-vkCmdDrawIndexedIndirect-format-08937
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且在VertexExecutionModelOpEntryPoint中,与Location修饰的Input变量关联的标量宽度是 64 位的,那么对应的 VkVertexInputAttributeDescription2EXT::format必须具有 64 位分量。 -
VUID-vkCmdDrawIndexedIndirect-None-09203
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,对应Location的所有Input变量必须不使用格式中不存在的分量。 -
VUID-vkCmdDrawIndexedIndirect-None-04875
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT动态状态的情况下创建的,并且primitiveTopology的当前值 为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,那么在执行此绘制命令之前,必须调用过 vkCmdSetPatchControlPointsEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirect-None-04879
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetPrimitiveRestartEnable 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirect-None-09637
如果primitiveTopologyListRestart功能未启用,拓扑为VK_PRIMITIVE_TOPOLOGY_POINT_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST、VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY或VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么 vkCmdSetPrimitiveRestartEnable 必须为VK_FALSE。 -
VUID-vkCmdDrawIndexedIndirect-stage-06481
绑定的图形管线必须不是使用 VkPipelineShaderStageCreateInfo::stage成员(该成员是 VkGraphicsPipelineCreateInfo::pStages的任意元素的成员)设置为VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawIndexedIndirect-None-08885
必须没有着色器对象绑定到VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawIndexedIndirect-None-07619
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT阶段,或者绑定了一个使用启用VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须调用过 vkCmdSetTessellationDomainOriginEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirect-None-08684
如果没有绑定图形管线,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_VERTEX_BIT元素 -
VUID-vkCmdDrawIndexedIndirect-None-08685
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT元素 -
VUID-vkCmdDrawIndexedIndirect-None-08686
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT元素 -
VUID-vkCmdDrawIndexedIndirect-None-08687
如果没有绑定图形管线,且启用了geometryShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_GEOMETRY_BIT元素
-
VUID-vkCmdDrawIndexedIndirect-buffer-02708
如果buffer不是稀疏的,那么它 必须 完全且连续地绑定到单个VkDeviceMemory对象 -
VUID-vkCmdDrawIndexedIndirect-buffer-02709
buffer必须 使用设置了VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT位来创建 -
VUID-vkCmdDrawIndexedIndirect-offset-02710
offset必须 是4的倍数 -
VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711
commandBuffer必须 不是受保护的命令缓冲区
-
VUID-vkCmdDrawIndexedIndirect-drawCount-02718
如果multiDrawIndirect特性未启用,则drawCount必须 为0或1 -
VUID-vkCmdDrawIndexedIndirect-drawCount-02719
drawCount必须 小于或等于VkPhysicalDeviceLimits::maxDrawIndirectCount
-
VUID-vkCmdDrawIndexedIndirect-None-07312
如果未启用maintenance6功能,则必须绑定有效的索引缓冲区。 -
VUID-vkCmdDrawIndexedIndirect-drawCount-00528
如果drawCount大于1,则stride必须是4的倍数,并且必须大于或等于sizeof(VkDrawIndexedIndirectCommand) -
VUID-vkCmdDrawIndexedIndirect-drawCount-00539
如果drawCount等于1,则 (offset+sizeof(VkDrawIndexedIndirectCommand)) 必须小于或等于buffer的大小 -
VUID-vkCmdDrawIndexedIndirect-drawCount-00540
如果drawCount大于1,则 (stride× (drawCount- 1) +offset+sizeof(VkDrawIndexedIndirectCommand)) 必须小于或等于buffer的大小
-
VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter
commandBuffer必须 为有效的 VkCommandBuffer 句柄。 -
VUID-vkCmdDrawIndexedIndirect-buffer-parameter
buffer必须 是一个有效的 VkBuffer 句柄。 -
VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording
commandBuffer必须 处于记录状态。 -
VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool
分配commandBuffer的VkCommandPool必须 支持图形操作。 -
VUID-vkCmdDrawIndexedIndirect-commonparent
buffer和commandBuffer都 必须 从同一个 VkDevice 创建、分配或检索。
-
对
commandBuffer的主机访问必须进行外部同步。 -
对分配
commandBuffer的VkCommandPool的主机访问必须进行外部同步。
VkDrawIndexedIndirectCommand 结构定义如下:
// Provided by VK_VERSION_1_0
typedef struct VkDrawIndexedIndirectCommand {
uint32_t indexCount;
uint32_t instanceCount;
uint32_t firstIndex;
int32_t vertexOffset;
uint32_t firstInstance;
} VkDrawIndexedIndirectCommand;
-
indexCount是要绘制的顶点数。 -
instanceCount是要绘制的实例数。 -
firstIndex是索引缓冲区内的基本索引。 -
vertexOffset是在索引到顶点缓冲区之前添加到顶点索引的值。 -
firstInstance是要绘制的第一个实例的实例 ID。
VkDrawIndexedIndirectCommand 的成员与 vkCmdDrawIndexed 中同名参数的含义相同。
-
VUID-VkDrawIndexedIndirectCommand-pNext-09461
如果绑定的图形管线状态是通过 VkPipelineVertexInputDivisorStateCreateInfo 在 VkGraphicsPipelineCreateInfo::pVertexInputState的pNext链中创建的,VkPipelineVertexInputDivisorStateCreateInfo::pVertexBindingDivisors的任何成员在divisor中的值不是1,并且 VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance为VK_FALSE,则firstInstance必须为0 -
VUID-VkDrawIndexedIndirectCommand-None-09462
如果使用着色器对象进行绘制,或者绑定的图形管线状态启用了VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态,则 vkCmdSetVertexInputEXT 调用中设置此动态状态的pVertexBindingDescriptions参数的任何成员在divisor中的值不是1,并且 VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance为VK_FALSE,则firstInstance必须为0
-
VUID-VkDrawIndexedIndirectCommand-robustBufferAccess2-08798
如果未启用robustBufferAccess2功能,则 (indexSize× (firstIndex+indexCount) +offset) 必须小于或等于绑定的索引缓冲区的大小。其中indexSize基于indexType指定的类型,并且索引缓冲区、indexType和offset通过vkCmdBindIndexBuffer或vkCmdBindIndexBuffer2指定。如果使用vkCmdBindIndexBuffer2绑定索引缓冲区,则绑定索引缓冲区的大小为 vkCmdBindIndexBuffer2::size。 -
VUID-VkDrawIndexedIndirectCommand-firstInstance-00554
如果未启用drawIndirectFirstInstance功能,则firstInstance必须 为0。
要记录从缓冲区获取绘制调用计数的索引绘制调用,请调用:
// Provided by VK_VERSION_1_2
void vkCmdDrawIndexedIndirectCount(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
VkBuffer countBuffer,
VkDeviceSize countBufferOffset,
uint32_t maxDrawCount,
uint32_t stride);
或等效命令
// Provided by VK_KHR_draw_indirect_count
void vkCmdDrawIndexedIndirectCountKHR(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
VkBuffer countBuffer,
VkDeviceSize countBufferOffset,
uint32_t maxDrawCount,
uint32_t stride);
或等效命令
// Provided by VK_AMD_draw_indirect_count
void vkCmdDrawIndexedIndirectCountAMD(
VkCommandBuffer commandBuffer,
VkBuffer buffer,
VkDeviceSize offset,
VkBuffer countBuffer,
VkDeviceSize countBufferOffset,
uint32_t maxDrawCount,
uint32_t stride);
-
commandBuffer是要记录命令的命令缓冲区。 -
buffer是包含绘制参数的缓冲区。 -
offset是buffer中参数开始的字节偏移量。 -
countBuffer是包含绘制计数的缓冲区。 -
countBufferOffset是countBuffer中绘制计数开始的字节偏移量。 -
maxDrawCount指定将要执行的最大绘制次数。实际执行的绘制调用次数是countBuffer中指定的计数和maxDrawCount中的最小值。 -
stride是连续的绘制参数集之间的字节步长。
vkCmdDrawIndexedIndirectCount 的行为类似于 vkCmdDrawIndexedIndirect,区别在于绘制计数由设备在执行期间从缓冲区读取。该命令将从位于 countBufferOffset 的 countBuffer 中读取一个无符号 32 位整数,并将其用作绘制计数。
-
VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553
如果使用magFilter或minFilter等于VK_FILTER_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawIndexedIndirectCount-magFilter-09598
如果使用magFilter或minFilter等于VK_FILTER_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawIndexedIndirectCount-mipmapMode-04770
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawIndexedIndirectCount-mipmapMode-09599
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawIndexedIndirectCount-unnormalizedCoordinates-09635
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的levelCount和layerCount必须为 1 -
VUID-vkCmdDrawIndexedIndirectCount-None-08609
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的viewType必须为VK_IMAGE_VIEW_TYPE_1D或VK_IMAGE_VIEW_TYPE_2D -
VUID-vkCmdDrawIndexedIndirectCount-None-08610
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用,其名称中包含ImplicitLod、Dref或Proj -
VUID-vkCmdDrawIndexedIndirectCount-None-08611
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何包含 LOD 偏差或任何偏移值的 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawIndexedIndirectCount-None-06479
如果 VkImageView 使用 深度比较进行采样,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT -
VUID-vkCmdDrawIndexedIndirectCount-None-02691
如果由于此命令而使用原子操作访问 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT -
VUID-vkCmdDrawIndexedIndirectCount-None-07888
如果此命令导致使用原子操作访问VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER描述符,则存储纹理缓冲区视图的格式特性必须包含VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT。 -
VUID-vkCmdDrawIndexedIndirectCount-None-02692
如果此命令导致使用VK_FILTER_CUBIC_EXT采样 VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT。 -
VUID-vkCmdDrawIndexedIndirectCount-None-02693
如果未启用 VK_EXT_filter_cubic 扩展,且此命令导致使用VK_FILTER_CUBIC_EXT采样任何 VkImageView,则该图像视图的 VkImageViewType必须不能为VK_IMAGE_VIEW_TYPE_3D、VK_IMAGE_VIEW_TYPE_CUBE或VK_IMAGE_VIEW_TYPE_CUBE_ARRAY。 -
VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694
此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695
此命令导致使用VK_FILTER_CUBIC_EXT采样且缩减模式为VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波以及 minmax 滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawIndexedIndirectCount-cubicRangeClamp-09212
如果未启用cubicRangeClamp特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerReductionModeCreateInfo::reductionMode必须不能等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM。 -
VUID-vkCmdDrawIndexedIndirectCount-reductionMode-09213
此命令导致使用 VkSamplerReductionModeCreateInfo::reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM采样的任何 VkImageView必须使用VK_FILTER_CUBIC_EXT进行采样。 -
VUID-vkCmdDrawIndexedIndirectCount-selectableCubicWeights-09214
如果未启用selectableCubicWeights特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights必须等于VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM。 -
VUID-vkCmdDrawIndexedIndirectCount-flags-02696
此命令导致采样的任何使用包含VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV的 VkImageCreateInfo::flags创建的 VkImage必须仅使用VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE的 VkSamplerAddressMode 进行采样。 -
VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07027
对于任何作为存储图像写入,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07028
对于任何作为存储图像读取,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07029
对于任何作为存储纹理缓冲区写入,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07030
对于任何作为存储纹理缓冲区读取,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08600
对于 绑定着色器静态使用的每个集合 *n*,必须在同一管线绑定点将描述符集绑定到 *n*,其 VkPipelineLayout 与集合 *n* 兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08601
对于 绑定着色器静态使用的每个推送常量,必须为同一管线绑定点设置推送常量值,其 VkPipelineLayout 与推送常量兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawIndexedIndirectCount-None-10068
对于绑定的着色器使用的每个资源数组,用于访问数组元素的索引必须小于此命令所使用描述符集中标识绑定的描述符计数。 -
VUID-vkCmdDrawIndexedIndirectCount-maintenance4-08602
如果未启用maintenance4特性,则对于绑定的着色器静态使用的每个推送常量,必须已为同一管线绑定点设置了推送常量值,该管线绑定点具有与用于创建当前VkPipeline的VkPipelineLayout或用于创建当前VkShaderEXT的VkDescriptorSetLayout和VkPushConstantRange数组兼容的用于推送常量的VkPipelineLayout,如管线布局兼容性中所述。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08114
如果通过vkCmdBindDescriptorSets指定的每个绑定描述符集中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline静态使用,且绑定的VkPipeline不是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须按照描述符有效性的描述是有效的。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08115
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdBindDescriptorSets指定的,则绑定的VkPipeline必须是在没有VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08116
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline动态使用,且绑定的VkPipeline是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须是有效的。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08604
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的任何阶段对应的VkShaderEXT动态使用,则必须是有效的。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08117
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdSetDescriptorBufferOffsetsEXT指定的,则绑定的VkPipeline必须是在使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08119
如果描述符在创建时使用了VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkPipeline中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08605
如果描述符在创建时使用了VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkDescriptorSetLayout的VkShaderEXT中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08606
如果未启用shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08608
如果将管线绑定到此命令使用的管线绑定点,则自该管线绑定后,必须没有对绑定到此命令使用的管线绑定点的VkPipeline对象中静态指定的任何状态进行动态状态设置命令的任何调用。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08607
如果启用了shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点,或者必须将有效和VK_NULL_HANDLE着色器对象的有效组合绑定到与此命令使用的管线绑定点对应的每个受支持的着色器阶段。 -
VUID-vkCmdDrawIndexedIndirectCount-uniformBuffers-06935
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问统一缓冲区,且该阶段的创建没有启用uniformBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08612
如果未启用robustBufferAccess特性,且绑定到与此命令使用的管线绑定点对应的阶段的任何VkShaderEXT访问统一缓冲区,则该VkShaderEXT必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndexedIndirectCount-storageBuffers-06936
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问存储缓冲区,且该阶段的创建没有启用storageBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08613
如果未启用robustBufferAccess特性,并且绑定到此命令所用管线绑定点的阶段的任何VkShaderEXT访问了存储缓冲区,则它必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值 -
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707
如果commandBuffer是一个未受保护的命令缓冲区,并且不支持protectedNoFault,则绑定的着色器访问的任何资源必须不是受保护的资源 -
VUID-vkCmdDrawIndexedIndirectCount-None-06550
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须仅与OpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawIndexedIndirectCount-ConstOffset-06551
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须不使用ConstOffset和Offset操作数 -
VUID-vkCmdDrawIndexedIndirectCount-viewType-07752
如果通过此命令访问VkImageView,则图像视图的viewType必须与SPIR-V 图像维度和 Vulkan ImageView 类型之间的兼容性中描述的OpTypeImage的Dim操作数匹配 -
VUID-vkCmdDrawIndexedIndirectCount-format-07753
如果通过此命令访问VkImageView,则图像视图的format的数值类型和OpTypeImage的SampledType操作数必须匹配 -
VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-08795
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM以外的格式创建的VkImageView,则该指令的Texel操作数的Type必须具有至少与图像视图的格式一样多的组件 -
VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-08796
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM格式创建的VkImageView,则该指令的Texel操作数的Type必须具有四个组件 -
VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-04469
如果通过此命令使用OpImageWrite访问VkBufferView,则该指令的Texel操作数的Type必须具有至少与缓冲区视图的格式一样多的组件 -
VUID-vkCmdDrawIndexedIndirectCount-SampledType-04470
如果通过此命令访问具有64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawIndexedIndirectCount-SampledType-04471
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawIndexedIndirectCount-SampledType-04472
如果通过此命令访问具有64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawIndexedIndirectCount-SampledType-04473
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04474
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkImage对象 -
VUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04475
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkBuffer对象 -
VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06971
如果使用OpImageWeightedSampleQCOM来采样通过此命令获得的VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM -
VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06972
如果OpImageWeightedSampleQCOM使用通过此命令获得的VkImageView作为采样权重图像,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM -
VUID-vkCmdDrawIndexedIndirectCount-OpImageBoxFilterQCOM-06973
如果使用OpImageBoxFilterQCOM对 VkImageView 进行采样以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM -
VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSSDQCOM-06974
如果使用OpImageBlockMatchSSDQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06975
如果使用OpImageBlockMatchSADQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSADQCOM-06976
如果使用OpImageBlockMatchSADQCOM或OpImageBlockMatchSSDQCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06977
如果OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM使用 VkSampler 作为此命令的结果,则采样器必须使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06978
如果除OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM之外的任何命令使用 VkSampler 作为此命令的结果,则采样器必须未使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09215
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09216
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式必须是单分量格式 -
VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09217
如果OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawIndexedIndirectCount-None-07288
此命令执行的任何着色器调用必须终止 -
VUID-vkCmdDrawIndexedIndirectCount-None-09600
如果访问类型等于VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE、VK_DESCRIPTOR_TYPE_STORAGE_IMAGE或VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT的描述符以作为此命令的结果,则该描述符标识的所有图像子资源必须位于写入描述符时标识的图像布局中 -
VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684
当前的渲染过程必须与创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的renderPass成员兼容 -
VUID-vkCmdDrawIndexedIndirectCount-subpass-02685
当前渲染过程的子过程索引必须等于创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的subpass成员 -
VUID-vkCmdDrawIndexedIndirectCount-None-07748
如果任何着色器静态访问输入附件,则必须通过描述符集将有效的描述符绑定到管道 -
VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07468
如果此管道执行的任何着色器访问Dim操作数为SubpassData的OpTypeImage变量,则它必须使用与当前子过程中有效的输入附件相对应的InputAttachmentIndex进行修饰 -
VUID-vkCmdDrawIndexedIndirectCount-None-07469
在子过程中访问的输入附件视图必须使用与相应子过程定义相同的 VkFormat 创建,并且使用 VkImageView 创建,该 VkImageView 与绑定 VkFramebuffer 中子过程的pInputAttachments[InputAttachmentIndex] 引用的附件兼容,如片段输入附件兼容性中所述 -
VUID-vkCmdDrawIndexedIndirectCount-pDepthInputAttachmentIndex-09595
在动态渲染过程中访问的、由VkRenderingInputAttachmentIndexInfo 引用的InputAttachmentIndex的输入附件视图,或者如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex或 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex为NULL则没有InputAttachmentIndex的输入附件视图,必须使用与 VkRenderingInfo 中的相应颜色、深度或模板附件兼容的 VkImageView 创建 -
VUID-vkCmdDrawIndexedIndirectCount-pDepthInputAttachmentIndex-09596
如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex和 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex均不为NULL,则通过着色器对象在动态渲染过程中访问的输入附件视图必须具有InputAttachmentIndex -
VUID-vkCmdDrawIndexedIndirectCount-InputAttachmentIndex-09597
如果通过着色器对象在动态渲染过程中访问的输入附件视图具有InputAttachmentIndex,则InputAttachmentIndex必须与VkRenderingInputAttachmentIndexInfo 中的索引匹配 -
VUID-vkCmdDrawIndexedIndirectCount-None-06537
当前渲染通道中用作附件的内存后备图像子资源必须不能以任何方式写入,除非作为此命令的附件。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09000
如果颜色附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_COLOR_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndexedIndirectCount-None-09001
如果深度附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_DEPTH_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndexedIndirectCount-None-09002
如果模板附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_STENCIL_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndexedIndirectCount-None-09003
如果附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则此命令必须不能以任何方式访问它,除非作为附件、存储图像或采样图像。 -
VUID-vkCmdDrawIndexedIndirectCount-None-06539
如果当前子通道中任何先前记录的命令以任何方式访问了用作此子通道附件的图像子资源,而非作为附件,则此命令必须不能将该图像子资源作为附件写入。 -
VUID-vkCmdDrawIndexedIndirectCount-None-06886
如果当前渲染通道实例使用深度/模板附件,且其深度方面为只读布局,则必须禁用深度写入。 -
VUID-vkCmdDrawIndexedIndirectCount-None-06887
如果当前渲染通道实例使用深度/模板附件,且其模板方面为只读布局,并且前向和后向writeMask都不为零,并且启用了模板测试,则所有模板操作必须为VK_STENCIL_OP_KEEP。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07831
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_VIEWPORT动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewport,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07832
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SCISSOR动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetScissor,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07833
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_LINE_WIDTH动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08617
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08618
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08619
如果输出线图元的着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07834
如果着色器对象绑定到任何图形阶段,或者绑定了一个创建时启用了VK_DYNAMIC_STATE_DEPTH_BIAS动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBiasEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBias 或 vkCmdSetDepthBias2EXT,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07835
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_BLEND_CONSTANTS动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetBlendConstants,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08621
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEnableEXT 将pColorBlendEnables的任何元素设置为VK_TRUE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEquationEXT 将pColorBlendEquations的相同元素设置为一个VkColorBlendEquationEXT结构,其中任何 VkBlendFactor 成员的值为VK_BLEND_FACTOR_CONSTANT_COLOR,VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,VK_BLEND_FACTOR_CONSTANT_ALPHA或VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetBlendConstants 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07836
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBoundsTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetDepthBounds 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07837
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilCompareMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07838
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_WRITE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilWriteMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07839
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_REFERENCE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilReference 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688
如果绘制记录在启用了多视图的渲染通道实例中,则最大实例索引**必须**小于或等于 VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex。 -
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689
如果绑定的图形管线是使用 VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable设置为VK_TRUE创建的,并且当前子通道具有深度/模板附件,则该附件**必须**已使用VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位集创建。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07634
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-06666
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且sampleLocationsEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07840
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_CULL_MODE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetCullMode 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07841
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_FRONT_FACE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetFrontFace 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07843
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07844
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthWriteEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07845
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_COMPARE_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且depthTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthCompareOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07846
如果启用了depthBounds功能,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthBoundsTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07847
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07848
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetScissorWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时同时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则vkCmdSetViewportWithCount的viewportCount参数必须与vkCmdSetScissorWithCount的scissorCount参数匹配。 -
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04137
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportWScalingStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04138
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWScalingNV,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08636
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则上次调用 vkCmdSetViewportWScalingNV 中的viewportCount参数必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04139
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09233
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetCoarseSampleOrderNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09234
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewportShadingRatePaletteNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08637
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则最后一次调用 vkCmdSetViewportShadingRatePaletteNV 中的viewportCount参数必须大于或等于最后一次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04141
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportSwizzleStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount创建。 -
VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04142
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportExclusiveScissorStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount创建。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07878
如果启用了exclusiveScissor功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorEnableNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07879
如果启用了exclusiveScissor功能,着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV动态状态创建的图形管线,并且当前命令缓冲区中最近一次调用 vkCmdSetExclusiveScissorEnableNV 将pExclusiveScissorEnables的任何元素设置为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-04876
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetRasterizerDiscardEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-04877
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBiasEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT,或者绑定了使用启用VK_DYNAMIC_STATE_LOGIC_OP_EXT动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且logicOpEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLogicOpEXT,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,绑定的图形管线是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且绑定的图形管线的任何着色器阶段写入到PrimitiveShadingRateKHR内置变量,则在执行此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-08642
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,并且绑定到图形阶段的任何着色器对象写入了PrimitiveShadingRateKHR内置变量,那么在执行此绘制命令之前,当前命令缓冲区中必须调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727
如果绑定的图形管线中没有禁用光栅化,那么对于子通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则pColorBlendState的pAttachments成员中相应元素的blendEnable成员必须为VK_FALSE。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08643
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么对于渲染通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则在当前命令缓冲区中最近一次调用vkCmdSetColorBlendEnableEXT中影响该附件索引的pColorBlendEnables的相应成员必须为VK_FALSE。 -
VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07284
如果绑定的图形管线中没有禁用光栅化,并且以下任何一项均未启用那么绑定图形管线的
rasterizationSamples必须与当前子通道颜色和/或深度/模板附件相同。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08644
如果着色器对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且以下任何一项均未启用那么在当前命令缓冲区中最近一次调用 vkCmdSetRasterizationSamplesEXT 必须已将
rasterizationSamples设置为与当前渲染通道颜色和/或深度/模板附件的样本数相同。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08876
如果着色器对象绑定到任何图形阶段,则当前渲染通道实例必须已通过 vkCmdBeginRendering 开始。 -
VUID-vkCmdDrawIndexedIndirectCount-imageView-06172
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndexedIndirectCount-imageView-06173
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndexedIndirectCount-imageView-06174
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndexedIndirectCount-imageView-06175
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndexedIndirectCount-imageView-06176
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndexedIndirectCount-imageView-06177
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::viewMask相等的 VkPipelineRenderingCreateInfo::viewMask创建。 -
VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::colorAttachmentCount相等的 VkPipelineRenderingCreateInfo::colorAttachmentCount创建。 -
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08910
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建。 -
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08912
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView等于 VK_NULL_HANDLE 的元素必须使用于创建绑定管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08911
如果启用了dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建,或者如果 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的对应元素存在,则必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09362
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,VkRenderingInfo::colorAttachmentCount等于1,并且没有任何着色器对象绑定到任何图形阶段,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个resolveImageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09363
如果没有着色器对象绑定到任何图形阶段,当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount等于1开始的,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09364
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09365
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09366
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-09367
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09368
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDrawIndexedIndirectCount-None-09369
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09370
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09371
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDrawIndexedIndirectCount-None-07749
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexedIndirectCount-None-08646
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexedIndirectCount-attachmentCount-07750
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于绑定图形管线的VkPipelineColorBlendStateCreateInfo::attachmentCount -
VUID-vkCmdDrawIndexedIndirectCount-None-08647
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在当前命令缓冲区中最近一次调用vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于当前渲染过程实例中的颜色附件数量 -
VUID-vkCmdDrawIndexedIndirectCount-None-07751
如果启用了VK_EXT_discard_rectangles扩展,绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中包含了一个 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09236
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中不包含 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexedIndirectCount-None-07880
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须调用 vkCmdSetDiscardRectangleEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndexedIndirectCount-None-07881
如果启用了VK_EXT_discard_rectangles扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须调用过 vkCmdSetDiscardRectangleModeEXT,并且在当前命令缓冲区中没有后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08913
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08914
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat。 -
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08915
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值不等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08916
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08917
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat。 -
VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08918
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值不等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirectCount-imageView-06183
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR创建的。 -
VUID-vkCmdDrawIndexedIndirectCount-imageView-06184
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT创建的。 -
VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185
如果绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的pColorAttachmentSamples成员的相应元素相同的采样计数创建。 -
VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07285
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与绑定图形管线的rasterizationSamples值相同的采样计数创建。 -
VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07286
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07287
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndexedIndirectCount-pNext-07935
如果此命令是在使用 vkCmdBeginRendering 启动的渲染通道实例内调用的,并且 VkRenderingInfo 的pNext链包含一个 VkMultisampledRenderToSingleSampledInfoEXT 结构,其中multisampledRenderToSingleSampledEnable等于VK_TRUE,那么绑定图形管线的rasterizationSamples的值必须等于 VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples。 -
VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,那么绑定的管线必须使用 VkGraphicsPipelineCreateInfo::renderPass等于 VK_NULL_HANDLE 创建。 -
VUID-vkCmdDrawIndexedIndirectCount-pColorAttachments-08963
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,并且存在一个绑定了片段着色器的图形管线,该片段着色器静态写入颜色附件,颜色写入掩码不为零,颜色写入已启用,并且 VkRenderingInfo::pColorAttachments->imageView的相应元素不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的相应元素必须不是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-08964
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了深度测试、启用了深度写入,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-08965
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了模板测试,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708
如果primitivesGeneratedQueryWithRasterizerDiscard功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则 必须 不启用光栅化丢弃。 -
VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709
如果primitivesGeneratedQueryWithNonZeroStreams功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则绑定的图形管线 必须 不是使用VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream中的非零值创建的。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07620
如果启用了depthClamp功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetDepthClampEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07621
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_POLYGON_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetPolygonModeEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07622
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetRasterizationSamplesEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07623
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_MASK_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetSampleMaskEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-alphaToCoverageEnable-08919
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的,并且在上次调用 vkCmdSetAlphaToCoverageEnableEXT 时alphaToCoverageEnable为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDrawIndexedIndirectCount-alphaToCoverageEnable-08920
如果有 shader 对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetAlphaToCoverageEnableEXT 时将alphaToCoverageEnable设置为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07624
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToCoverageEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07625
如果启用了alphaToOne功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToOneEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07626
如果启用了logicOp功能,并且有 shader 对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetLogicOpEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07627
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态创建的,则在本次绘制命令之前, 必须 已调用 vkCmdSetColorBlendEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08657
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07628
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08658
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且最近一次针对任何附件调用 vkCmdSetColorBlendEnableEXT 时将该附件在pColorBlendEnables中的值设置为VK_TRUE,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07629
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08659
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07630
如果启用了geometryStreams特性,并且着色器对象绑定到VK_SHADER_STAGE_GEOMETRY_BIT阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetRasterizationStreamEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07631
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在当前绘制命令之前,必须调用过 vkCmdSetConservativeRasterizationModeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07632
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT动态状态的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且conservativeRasterizationMode的当前值为VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,则在当前绘制命令之前,必须调用过 vkCmdSetExtraPrimitiveOverestimationSizeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07633
如果启用了depthClipEnable特性,并且着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetDepthClipEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07635
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendAdvancedEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09416
如果启用了VK_EXT_blend_operation_advanced扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在当前绘制命令之前,必须至少调用过 vkCmdSetColorBlendEquationEXT 和 vkCmdSetColorBlendAdvancedEXT 中的一个,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07636
如果启用了VK_EXT_provoking_vertex扩展,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT动态状态的图形管线,并且 当前值 的rasterizerDiscardEnable为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetProvokingVertexModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirectCount-None-07637
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirectCount-None-08666
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirectCount-None-08667
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirectCount-None-08668
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirectCount-None-07638
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirectCount-None-08669
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirectCount-None-08670
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirectCount-None-08671
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndexedIndirectCount-None-07849
如果启用了stippledRectangularLines、stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且着色器对象绑定到任何图形阶段,或者使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE动态状态创建的绑定图形管线状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stippledLineEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetLineStipple 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07639
如果启用了depthClipControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClipNegativeOneToOneEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09650
如果启用了depthClampControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT动态状态创建的图形管线,并且depthClampEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClampRangeEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07640
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportWScalingEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07641
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportSwizzleNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07642
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07643
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageToColorEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorLocationNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07644
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationModeNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07645
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationMode的当前值不是VK_COVERAGE_MODULATION_MODE_NONE_NV的任何值,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationTableEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07646
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationTableEnable的当前值为VK_TRUE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageModulationTableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07647
如果启用了shadingRateImage特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetShadingRateImageEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-pipelineFragmentShadingRate-09238
如果启用了pipelineFragmentShadingRate特性,并且绑定了一个着色器对象到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetFragmentShadingRateKHR,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07648
如果启用了representativeFragmentTest特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetRepresentativeFragmentTestEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07649
如果启用了coverageReductionMode特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageReductionModeNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndexedIndirectCount-pColorBlendEnables-07470
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT状态的情况下创建的,并且最后一次调用 vkCmdSetColorBlendEnableEXT 为任何附件将pColorBlendEnables设置为VK_TRUE,那么对于子通道中的这些附件,相应的图像视图的 格式特性 必须 包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT。 -
VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07471
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前子通道不使用任何颜色和/或深度/模板附件,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 遵循 零附件子通道 的规则。 -
VUID-vkCmdDrawIndexedIndirectCount-samples-07472
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态且禁用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于用于创建绑定的图形管线的 VkPipelineMultisampleStateCreateInfo::rasterizationSamples参数。 -
VUID-vkCmdDrawIndexedIndirectCount-samples-07473
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples参数。 -
VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07474
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且multisampledRenderToSingleSampled特性未启用,并且既没有启用VK_AMD_mixed_attachment_samples扩展,也没有启用VK_NV_framebuffer_mixed_samples扩展,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与当前子通道的颜色和/或深度/模板附件相同。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09211
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,或者一个着色器对象被绑定到任何图形阶段,并且当前渲染通道实例包含一个multisampledRenderToSingleSampledEnable等于VK_TRUE的 VkMultisampledRenderToSingleSampledInfoEXT 结构,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与该结构的rasterizationSamples成员相同。 -
VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07476
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态的情况下创建的,那么在此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件 必须 为当前子通道中的所有活动颜色附件指定启用。 -
VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09417
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件启用。 -
VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07477
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09418
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且存在绑定的颜色附件,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07478
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09419
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07479
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendAdvancedEXT,并且vkCmdSetColorBlendAdvancedEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定高级混合方程式。 -
VUID-vkCmdDrawIndexedIndirectCount-advancedBlendMaxColorAttachments-07480
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT和VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,并且最近一次调用 vkCmdSetColorBlendEnableEXT 和 vkCmdSetColorBlendAdvancedEXT 已启用高级混合,则当前子通道中的活动颜色附件的数量必须不超过advancedBlendMaxColorAttachments。 -
VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481
如果未启用primitivesGeneratedQueryWithNonZeroStreams功能,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,并且绑定的图形管线创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT状态,则最近一次调用 vkCmdSetRasterizationStreamEXT 必须已将rasterizationStream设置为零。 -
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07482
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态并禁用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于绑定图形管线创建时使用的 VkPipelineMultisampleStateCreateInfo 结构的rasterizationSamples成员。 -
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07483
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于最近一次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples参数。 -
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07484
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,并且当前子通道具有深度/模板附件,则该附件的创建必须设置了VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位。 -
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07485
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中sampleLocationsInfo.sampleLocationGridSize.width必须能被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者是通过 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回的,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07486
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则上次调用 vkCmdSetSampleLocationsEXT 中的sampleLocationsInfo.sampleLocationGridSize.height**必须** 可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07487
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则片段着色器代码**必须**不得静态使用扩展指令InterpolateAtSample。 -
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07936
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.width**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07937
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.height**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07938
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationsPerPixel**必须**等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples。 -
VUID-vkCmdDrawIndexedIndirectCount-coverageModulationTableEnable-07488
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageModulationTableEnableNV 将coverageModulationTableEnable设置为VK_TRUE,则上次调用 vkCmdSetCoverageModulationTableNV 中的coverageModulationTableCount参数**必须**等于当前的rasterizationSamples除以当前子通道中的颜色样本数量。 -
VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07489
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且当前子通道具有深度/模板附件,且在绑定的管线中启用了深度测试、模板测试或深度边界测试,则当前的rasterizationSamples**必须**与深度/模板附件的样本计数相同。 -
VUID-vkCmdDrawIndexedIndirectCount-coverageToColorEnable-07490
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09420
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDrawIndexedIndirectCount-coverageReductionMode-07491
如果启用了VK_NV_coverage_reduction_mode扩展,并且绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前的覆盖率缩减模式coverageReductionMode、当前的rasterizationSamples以及颜色和深度/模板附件(如果子通道有这些附件)的采样计数 必须 是 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV 返回的有效组合。 -
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07492
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但未启用VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么绑定的图形管线 必须 是使用 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数创建的。 -
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07493
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-09421
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07494
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且如果当前子通道有任何颜色附件,且上次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples大于颜色采样数,那么管线的sampleShadingEnable必须 为VK_FALSE。 -
VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07495
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR,那么stippledRectangularLines特性 必须 启用。 -
VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07496
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_BRESENHAM,那么stippledBresenhamLines特性 必须 启用。 -
VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07497
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,那么stippledSmoothLines特性 必须 启用。 -
VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07498
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_DEFAULT,那么stippledRectangularLines特性 必须 启用,并且 VkPhysicalDeviceLimits::strictLines必须 为VK_TRUE。 -
VUID-vkCmdDrawIndexedIndirectCount-conservativePointAndLineRasterization-07499
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且不支持conservativePointAndLineRasterization,并且最后一个光栅化前着色器阶段输出的有效图元拓扑结构为直线或点,那么上次调用 vkCmdSetConservativeRasterizationModeEXT 设置的conservativeRasterizationMode必须 为VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT。 -
VUID-vkCmdDrawIndexedIndirectCount-stage-07073
如果绑定的管线是使用 VkPipelineShaderStageCreateInfo::stage成员,该成员是 VkGraphicsPipelineCreateInfo::pStages的一个元素,设置为VK_SHADER_STAGE_VERTEX_BIT、VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT、VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT创建的,那么 网格着色器查询 必须 未处于活动状态。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08877
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,当前命令缓冲区中 必须 调用过 vkCmdSetAttachmentFeedbackLoopEnableEXT 并且没有随后被 无效化。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07850
如果动态状态是从 VkCommandBufferInheritanceViewportScissorInfoNV 继承的,则它必须在本绘图命令之前在当前命令缓冲区中设置。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08688
如果未绑定图形管线,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_FRAGMENT_BIT元素。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08689
如果未绑定图形管线,且启用了taskShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_TASK_BIT_EXT元素。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08690
如果未绑定图形管线,且启用了meshShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_MESH_BIT_EXT元素。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08693
如果未绑定图形管线,并且至少启用了taskShader和meshShader特性中的一个,则VK_SHADER_STAGE_VERTEX_BIT或VK_SHADER_STAGE_MESH_BIT_EXT阶段之一必须绑定有效的VkShaderEXT,而另一个必须未绑定VkShaderEXT。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08694
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是在没有VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志的情况下创建的,则必须将有效的VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08695
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是使用VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志创建的,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08696
如果未绑定图形管线,并且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08698
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则同一 vkCreateShadersEXT 调用中所有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的着色器也必须绑定。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08699
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则在同一 vkCreateShadersEXT 调用中,着色器没有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的阶段之间的任何阶段必须未绑定任何VkShaderEXT。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08878
所有绑定的图形着色器对象必须使用相同或相同定义的推送常量范围创建。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08879
所有绑定的图形着色器对象必须使用相同或相同定义的描述符集布局数组创建。 -
VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09372
如果当前渲染通道实例是使用 vkCmdBeginRendering 和一个 VkRenderingInfo::colorAttachmentCount等于1开始的,且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,并且绑定了片段着色器,则它必须不声明DepthReplacing或StencilRefReplacingEXT执行模式。 -
VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08715
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpDepthAttachmentReadEXT,则上次调用 vkCmdSetDepthWriteEnable 的depthWriteEnable参数必须为VK_FALSE。 -
VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08716
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_STENCIL_WRITE_MASK创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpStencilAttachmentReadEXT,则上次调用 vkCmdSetStencilWriteMask 的writeMask参数必须为0。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09116
如果将着色器对象绑定到任何图形阶段,或者使用VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT创建了绑定的图形管线,并且任何颜色附件的格式为VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,则 vkCmdSetColorWriteMaskEXT 的pColorWriteMasks参数的相应元素必须包含VK_COLOR_COMPONENT_R_BIT、VK_COLOR_COMPONENT_G_BIT和VK_COLOR_COMPONENT_B_BIT中的全部,或全部都不包含。 -
VUID-vkCmdDrawIndexedIndirectCount-maxFragmentDualSrcAttachments-09239
如果任何附件启用了混合,并且该附件的源或目标混合因子使用了辅助颜色输入,则在此命令执行的FragmentExecutionModel中静态使用的任何输出附件的Location最大值必须小于maxFragmentDualSrcAttachments。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09548
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则由vkCmdSetRenderingAttachmentLocations设置的VkRenderingAttachmentLocationInfo::pColorAttachmentLocations的每个元素的值必须与绑定的管道中相应元素的值匹配。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09549
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则绑定管道中的输入附件索引映射必须与通过VkRenderingInputAttachmentIndexInfo为当前渲染通道实例设置的索引映射匹配。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09642
如果当前渲染通道是通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始的,则绑定的图形管线必须使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09643
如果绑定的图形管线是使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建的,则当前渲染通道必须通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始。
-
VUID-vkCmdDrawIndexedIndirectCount-None-04007
通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须绑定有效的或VK_NULL_HANDLE 缓冲区。 -
VUID-vkCmdDrawIndexedIndirectCount-None-04008
如果未启用nullDescriptor功能,则通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须不是VK_NULL_HANDLE。 -
VUID-vkCmdDrawIndexedIndirectCount-None-02721
如果未启用robustBufferAccess功能,并且该管道的创建没有为vertexInputs启用VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,则对于给定的顶点缓冲区绑定,提取的任何属性数据必须完全包含在相应的顶点缓冲区绑定中,如顶点输入描述中所述。 -
VUID-vkCmdDrawIndexedIndirectCount-format-10389
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format是打包格式,并且未启用legacyVertexAttributes,则根据顶点输入计算计算的attribAddress值必须是format的大小的倍数。 -
VUID-vkCmdDrawIndexedIndirectCount-format-10390
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format不是打包格式,并且要么未启用legacyVertexAttributes,要么format具有 64 位组件,则根据顶点输入计算计算的attribAddress值必须是format的组件大小的倍数。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07842
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是使用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态启用的,那么在本次绘制命令之前,必须调用过 vkCmdSetPrimitiveTopology 并且没有在当前命令缓冲区中被后续失效。 -
VUID-vkCmdDrawIndexedIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态且dynamicPrimitiveTopologyUnrestricted为VK_FALSE的情况下创建的,则vkCmdSetPrimitiveTopology的primitiveTopology参数必须与管线 VkPipelineInputAssemblyStateCreateInfo::topology状态具有相同的图元拓扑类别。 -
VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-10286
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,那么在执行此绘制命令之前,vkCmdSetPrimitiveTopology 必须将primitiveTopology设置为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST。 -
VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913
如果绑定的图形管线是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE动态状态但未启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdBindVertexBuffers2 且未在当前命令缓冲区中随后被失效,并且 vkCmdBindVertexBuffers2 的pStrides参数必须不为NULL。 -
VUID-vkCmdDrawIndexedIndirectCount-None-04914
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetVertexInputEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirectCount-Input-07939
如果vertexAttributeRobustness未启用,并且有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在VertexExecutionModelOpEntryPoint中,所有使用Location修饰的Input存储类变量必须包含 VkVertexInputAttributeDescription2EXT::location中的一个位置。 -
VUID-vkCmdDrawIndexedIndirectCount-Input-08734
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且legacyVertexAttributes功能未启用,或者在VertexExecutionModelOpEntryPoint中,与给定Location的Input变量关联的 SPIR-V 类型是 64 位的,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的数值类型必须与 VkVertexInputAttributeDescription2EXT::format相同。 -
VUID-vkCmdDrawIndexedIndirectCount-format-08936
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的标量宽度必须为 64 位。 -
VUID-vkCmdDrawIndexedIndirectCount-format-08937
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且在VertexExecutionModelOpEntryPoint中,与Location修饰的Input变量关联的标量宽度是 64 位的,那么对应的 VkVertexInputAttributeDescription2EXT::format必须具有 64 位分量。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09203
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,对应Location的所有Input变量必须不使用格式中不存在的分量。 -
VUID-vkCmdDrawIndexedIndirectCount-None-04875
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT动态状态的情况下创建的,并且primitiveTopology的当前值 为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,那么在执行此绘制命令之前,必须调用过 vkCmdSetPatchControlPointsEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-04879
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetPrimitiveRestartEnable 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-09637
如果primitiveTopologyListRestart功能未启用,拓扑为VK_PRIMITIVE_TOPOLOGY_POINT_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST、VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY或VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么 vkCmdSetPrimitiveRestartEnable 必须为VK_FALSE。 -
VUID-vkCmdDrawIndexedIndirectCount-stage-06481
绑定的图形管线必须不是使用 VkPipelineShaderStageCreateInfo::stage成员(该成员是 VkGraphicsPipelineCreateInfo::pStages的任意元素的成员)设置为VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08885
必须没有着色器对象绑定到VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawIndexedIndirectCount-None-07619
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT阶段,或者绑定了一个使用启用VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须调用过 vkCmdSetTessellationDomainOriginEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndexedIndirectCount-None-08684
如果没有绑定图形管线,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_VERTEX_BIT元素 -
VUID-vkCmdDrawIndexedIndirectCount-None-08685
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT元素 -
VUID-vkCmdDrawIndexedIndirectCount-None-08686
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT元素 -
VUID-vkCmdDrawIndexedIndirectCount-None-08687
如果没有绑定图形管线,且启用了geometryShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_GEOMETRY_BIT元素
-
VUID-vkCmdDrawIndexedIndirectCount-buffer-02708
如果buffer不是稀疏的,那么它 必须 完全且连续地绑定到单个VkDeviceMemory对象 -
VUID-vkCmdDrawIndexedIndirectCount-buffer-02709
buffer必须 使用设置了VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT位来创建 -
VUID-vkCmdDrawIndexedIndirectCount-offset-02710
offset必须 是4的倍数 -
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711
commandBuffer必须 不是受保护的命令缓冲区
-
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714
如果countBuffer不是稀疏的,则它必须完全且连续地绑定到单个VkDeviceMemory对象。 -
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715
countBuffer必须已使用设置的VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT位创建。 -
VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-02716
countBufferOffset必须是4的倍数。 -
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02717
存储在countBuffer中的计数必须小于或等于VkPhysicalDeviceLimits::maxDrawIndirectCount。 -
VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129
(countBufferOffset+sizeof(uint32_t)) 必须小于或等于countBuffer的大小。 -
VUID-vkCmdDrawIndexedIndirectCount-None-04445
如果未启用drawIndirectCount功能,则必须不使用此函数。
-
VUID-vkCmdDrawIndexedIndirectCount-None-07312
如果未启用maintenance6功能,则必须绑定有效的索引缓冲区。 -
VUID-vkCmdDrawIndexedIndirectCount-stride-03142
stride必须是4的倍数,并且必须大于或等于 sizeof(VkDrawIndexedIndirectCommand) -
VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143
如果maxDrawCount大于或等于1,则 (stride× (maxDrawCount- 1) +offset+ sizeof(VkDrawIndexedIndirectCommand)) 必须小于或等于buffer的大小
-
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-parameter
commandBuffer必须 为有效的 VkCommandBuffer 句柄。 -
VUID-vkCmdDrawIndexedIndirectCount-buffer-parameter
buffer必须 是一个有效的 VkBuffer 句柄。 -
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-parameter
countBuffer必须是有效的 VkBuffer 句柄。 -
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-recording
commandBuffer必须 处于记录状态。 -
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-cmdpool
分配commandBuffer的VkCommandPool必须 支持图形操作。 -
VUID-vkCmdDrawIndexedIndirectCount-renderpass
此命令必须仅在渲染通道实例内部调用 -
VUID-vkCmdDrawIndexedIndirectCount-videocoding
此命令必须仅在视频编码范围之外调用。 -
VUID-vkCmdDrawIndexedIndirectCount-commonparent
buffer、commandBuffer和countBuffer中的每一个必须是从同一个 VkDevice 创建、分配或检索的。
-
对
commandBuffer的主机访问必须进行外部同步。 -
对分配
commandBuffer的VkCommandPool的主机访问必须进行外部同步。
绘制变换反馈
可以通过将一个或多个变换反馈缓冲区绑定为顶点缓冲区来绘制先前在活动变换反馈期间捕获的顶点数据。在将缓冲区用作变换反馈缓冲区和顶点缓冲区之间需要一个管线屏障,以确保当数据作为顶点属性读取时,对变换反馈缓冲区的所有写入都是可见的。源访问是 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,目标访问是 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,对应的管线阶段分别是 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT 和 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT。由 vkCmdEndTransformFeedbackEXT 写入到计数器缓冲区的值**可以**用来确定绘制的顶点数量。在将计数器缓冲区用于 vkCmdEndTransformFeedbackEXT 和 vkCmdDrawIndirectByteCountEXT 之间需要一个管线屏障,其中源访问是 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,目标访问是 VK_ACCESS_INDIRECT_COMMAND_READ_BIT,对应的管线阶段分别是 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT 和 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT。
要记录一个非索引绘制调用,其中顶点计数基于从缓冲区读取的字节计数以及传入的顶点步幅参数,请调用
// Provided by VK_EXT_transform_feedback
void vkCmdDrawIndirectByteCountEXT(
VkCommandBuffer commandBuffer,
uint32_t instanceCount,
uint32_t firstInstance,
VkBuffer counterBuffer,
VkDeviceSize counterBufferOffset,
uint32_t counterOffset,
uint32_t vertexStride);
-
commandBuffer是要记录命令的命令缓冲区。 -
instanceCount是要绘制的实例数。 -
firstInstance是要绘制的第一个实例的实例 ID。 -
counterBuffer是从中读取字节计数的缓冲区句柄。 -
counterBufferOffset是缓冲区中的偏移量,用于读取字节计数,该计数用于计算此绘制调用的顶点计数。 -
counterOffset是从counterBuffer在counterBufferOffset处读取的字节计数中减去的偏移量。 -
vertexStride是顶点数据每个元素之间的字节步幅,用于根据计数器值计算顶点计数。此值通常与在捕获变换反馈时图形管线状态中用作XfbStride的值相同。
执行命令时,基元的组装方式与 vkCmdDraw 的方式相同,除了 vertexCount 是基于从 counterBuffer 在偏移量 counterBufferOffset 处读取的字节计数来计算的。组装的基元执行绑定的图形管线。
有效 vertexCount 的计算方式如下
const uint32_t * counterBufferPtr = (const uint8_t *)counterBuffer.address + counterBufferOffset;
vertexCount = floor(max(0, (*counterBufferPtr - counterOffset)) / vertexStride);
有效的 firstVertex 为零。
-
VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553
如果使用magFilter或minFilter等于VK_FILTER_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawIndirectByteCountEXT-magFilter-09598
如果使用magFilter或minFilter等于VK_FILTER_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawIndirectByteCountEXT-mipmapMode-04770
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR,reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE且compareEnable等于VK_FALSE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -
VUID-vkCmdDrawIndirectByteCountEXT-mipmapMode-09599
如果使用mipmapMode等于VK_SAMPLER_MIPMAP_MODE_LINEAR且reductionMode等于VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT -
VUID-vkCmdDrawIndirectByteCountEXT-unnormalizedCoordinates-09635
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的levelCount和layerCount必须为 1 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08609
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则图像视图的viewType必须为VK_IMAGE_VIEW_TYPE_1D或VK_IMAGE_VIEW_TYPE_2D -
VUID-vkCmdDrawIndirectByteCountEXT-None-08610
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用,其名称中包含ImplicitLod、Dref或Proj -
VUID-vkCmdDrawIndirectByteCountEXT-None-08611
如果使用unnormalizedCoordinates等于VK_TRUE创建的 VkSampler 来采样此命令产生的 VkImageView,则采样器 不得与任何包含 LOD 偏差或任何偏移值的 SPIR-VOpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawIndirectByteCountEXT-None-06479
如果 VkImageView 使用 深度比较进行采样,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT -
VUID-vkCmdDrawIndirectByteCountEXT-None-02691
如果由于此命令而使用原子操作访问 VkImageView,则图像视图的格式功能 必须包含VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT -
VUID-vkCmdDrawIndirectByteCountEXT-None-07888
如果此命令导致使用原子操作访问VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER描述符,则存储纹理缓冲区视图的格式特性必须包含VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-02692
如果此命令导致使用VK_FILTER_CUBIC_EXT采样 VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-02693
如果未启用 VK_EXT_filter_cubic 扩展,且此命令导致使用VK_FILTER_CUBIC_EXT采样任何 VkImageView,则该图像视图的 VkImageViewType必须不能为VK_IMAGE_VIEW_TYPE_3D、VK_IMAGE_VIEW_TYPE_CUBE或VK_IMAGE_VIEW_TYPE_CUBE_ARRAY。 -
VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694
此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695
此命令导致使用VK_FILTER_CUBIC_EXT采样且缩减模式为VK_SAMPLER_REDUCTION_MODE_MIN或VK_SAMPLER_REDUCTION_MODE_MAX的任何 VkImageView 的 VkImageViewType 和格式必须支持立方滤波以及 minmax 滤波,如 VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax返回的 vkGetPhysicalDeviceImageFormatProperties2 所指定。 -
VUID-vkCmdDrawIndirectByteCountEXT-cubicRangeClamp-09212
如果未启用cubicRangeClamp特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerReductionModeCreateInfo::reductionMode必须不能等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM。 -
VUID-vkCmdDrawIndirectByteCountEXT-reductionMode-09213
此命令导致使用 VkSamplerReductionModeCreateInfo::reductionMode等于VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM采样的任何 VkImageView必须使用VK_FILTER_CUBIC_EXT进行采样。 -
VUID-vkCmdDrawIndirectByteCountEXT-selectableCubicWeights-09214
如果未启用selectableCubicWeights特性,则此命令导致使用VK_FILTER_CUBIC_EXT采样的任何 VkImageView 的 VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights必须等于VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM。 -
VUID-vkCmdDrawIndirectByteCountEXT-flags-02696
此命令导致采样的任何使用包含VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV的 VkImageCreateInfo::flags创建的 VkImage必须仅使用VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE的 VkSamplerAddressMode 进行采样。 -
VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07027
对于任何作为存储图像写入,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07028
对于任何作为存储图像读取,并且OpTypeImage的图像格式字段为Unknown的 VkImageView,视图的格式特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07029
对于任何作为存储纹理缓冲区写入,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07030
对于任何作为存储纹理缓冲区读取,并且OpTypeImage的图像格式字段为Unknown的 VkBufferView,视图的缓冲区特性必须包含VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08600
对于 绑定着色器静态使用的每个集合 *n*,必须在同一管线绑定点将描述符集绑定到 *n*,其 VkPipelineLayout 与集合 *n* 兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08601
对于 绑定着色器静态使用的每个推送常量,必须为同一管线绑定点设置推送常量值,其 VkPipelineLayout 与推送常量兼容,并且VkPipelineLayout 用于创建当前 VkPipeline 或VkDescriptorSetLayout 数组用于创建当前 VkShaderEXT,如 管线布局兼容性中所述。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-10068
对于绑定的着色器使用的每个资源数组,用于访问数组元素的索引必须小于此命令所使用描述符集中标识绑定的描述符计数。 -
VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-08602
如果未启用maintenance4特性,则对于绑定的着色器静态使用的每个推送常量,必须已为同一管线绑定点设置了推送常量值,该管线绑定点具有与用于创建当前VkPipeline的VkPipelineLayout或用于创建当前VkShaderEXT的VkDescriptorSetLayout和VkPushConstantRange数组兼容的用于推送常量的VkPipelineLayout,如管线布局兼容性中所述。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08114
如果通过vkCmdBindDescriptorSets指定的每个绑定描述符集中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline静态使用,且绑定的VkPipeline不是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须按照描述符有效性的描述是有效的。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08115
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdBindDescriptorSets指定的,则绑定的VkPipeline必须是在没有VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08116
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的VkPipeline动态使用,且绑定的VkPipeline是使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的,则必须是有效的。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08604
如果通过vkCmdSetDescriptorBufferOffsetsEXT指定的绑定描述符缓冲区中的描述符,如果它们被绑定到此命令使用的管线绑定点的任何阶段对应的VkShaderEXT动态使用,则必须是有效的。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08117
如果绑定到管线绑定点的VkPipeline使用的描述符是通过vkCmdSetDescriptorBufferOffsetsEXT指定的,则绑定的VkPipeline必须是在使用VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT创建的。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08119
如果描述符在创建时使用了VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkPipeline中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08605
如果描述符在创建时使用了VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT的VkDescriptorSetLayout的VkShaderEXT中被动态使用,则描述符内存必须是驻留的。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08606
如果未启用shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08608
如果将管线绑定到此命令使用的管线绑定点,则自该管线绑定后,必须没有对绑定到此命令使用的管线绑定点的VkPipeline对象中静态指定的任何状态进行动态状态设置命令的任何调用。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08607
如果启用了shaderObject特性,则必须将有效的管线绑定到此命令使用的管线绑定点,或者必须将有效和VK_NULL_HANDLE着色器对象的有效组合绑定到与此命令使用的管线绑定点对应的每个受支持的着色器阶段。 -
VUID-vkCmdDrawIndirectByteCountEXT-uniformBuffers-06935
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问统一缓冲区,且该阶段的创建没有启用uniformBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08612
如果未启用robustBufferAccess特性,且绑定到与此命令使用的管线绑定点对应的阶段的任何VkShaderEXT访问统一缓冲区,则该VkShaderEXT必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndirectByteCountEXT-storageBuffers-06936
如果绑定到此命令使用的管线绑定点的VkPipeline对象的任何阶段访问存储缓冲区,且该阶段的创建没有启用storageBuffers的VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS或VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,且未启用robustBufferAccess特性,则该阶段必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08613
如果未启用robustBufferAccess特性,并且绑定到此命令所用管线绑定点的阶段的任何VkShaderEXT访问了存储缓冲区,则它必须不访问在绑定到同一管线绑定点的描述符集中指定的缓冲区范围之外的值 -
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707
如果commandBuffer是一个未受保护的命令缓冲区,并且不支持protectedNoFault,则绑定的着色器访问的任何资源必须不是受保护的资源 -
VUID-vkCmdDrawIndirectByteCountEXT-None-06550
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须仅与OpImageSample*或OpImageSparseSample*指令一起使用 -
VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-06551
如果绑定的着色器访问启用了采样器 Y′CBCR 转换的VkSampler或VkImageView对象,则该对象必须不使用ConstOffset和Offset操作数 -
VUID-vkCmdDrawIndirectByteCountEXT-viewType-07752
如果通过此命令访问VkImageView,则图像视图的viewType必须与SPIR-V 图像维度和 Vulkan ImageView 类型之间的兼容性中描述的OpTypeImage的Dim操作数匹配 -
VUID-vkCmdDrawIndirectByteCountEXT-format-07753
如果通过此命令访问VkImageView,则图像视图的format的数值类型和OpTypeImage的SampledType操作数必须匹配 -
VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-08795
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM以外的格式创建的VkImageView,则该指令的Texel操作数的Type必须具有至少与图像视图的格式一样多的组件 -
VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-08796
如果通过此命令使用OpImageWrite访问使用VK_FORMAT_A8_UNORM格式创建的VkImageView,则该指令的Texel操作数的Type必须具有四个组件 -
VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-04469
如果通过此命令使用OpImageWrite访问VkBufferView,则该指令的Texel操作数的Type必须具有至少与缓冲区视图的格式一样多的组件 -
VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04470
如果通过此命令访问具有64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04471
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkImageView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04472
如果通过此命令访问具有64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有64的Width -
VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04473
如果通过此命令访问具有小于64位组件宽度的VkFormat的VkBufferView,则该指令的OpTypeImage操作数的SampledType必须具有32的Width -
VUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04474
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkImage对象 -
VUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04475
如果未启用sparseImageInt64Atomics特性,则通过此命令,必须不通过SampledType的Width为64的OpTypeImage使用原子指令访问使用VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT标志创建的VkBuffer对象 -
VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06971
如果使用OpImageWeightedSampleQCOM来采样通过此命令获得的VkImageView,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM -
VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06972
如果OpImageWeightedSampleQCOM使用通过此命令获得的VkImageView作为采样权重图像,则图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM -
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBoxFilterQCOM-06973
如果使用OpImageBoxFilterQCOM对 VkImageView 进行采样以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM -
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSSDQCOM-06974
如果使用OpImageBlockMatchSSDQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06975
如果使用OpImageBlockMatchSADQCOM从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSADQCOM-06976
如果使用OpImageBlockMatchSADQCOM或OpImageBlockMatchSSDQCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06977
如果OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM使用 VkSampler 作为此命令的结果,则采样器必须使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06978
如果除OpImageWeightedSampleQCOM、OpImageBoxFilterQCOM、OpImageBlockMatchWindowSSDQCOM、OpImageBlockMatchWindowSADQCOM、OpImageBlockMatchGatherSSDQCOM、OpImageBlockMatchGatherSADQCOM、OpImageBlockMatchSSDQCOM或OpImageBlockMatchSADQCOM之外的任何命令使用 VkSampler 作为此命令的结果,则采样器必须未使用VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM创建 -
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09215
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式特性必须包含VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM -
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09216
如果使用OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM指令从 VkImageView 读取数据以作为此命令的结果,则该图像视图的格式必须是单分量格式 -
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09217
如果OpImageBlockMatchWindow*QCOM或OpImageBlockMatchGather*QCOM从参考图像读取数据以作为此命令的结果,则指定的参考坐标必须通过整数纹素坐标验证 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07288
此命令执行的任何着色器调用必须终止 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09600
如果访问类型等于VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM、VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE、VK_DESCRIPTOR_TYPE_STORAGE_IMAGE或VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT的描述符以作为此命令的结果,则该描述符标识的所有图像子资源必须位于写入描述符时标识的图像布局中 -
VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684
当前的渲染过程必须与创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的renderPass成员兼容 -
VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685
当前渲染过程的子过程索引必须等于创建绑定到VK_PIPELINE_BIND_POINT_GRAPHICS的VkPipeline时指定的VkGraphicsPipelineCreateInfo结构的subpass成员 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07748
如果任何着色器静态访问输入附件,则必须通过描述符集将有效的描述符绑定到管道 -
VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07468
如果此管道执行的任何着色器访问Dim操作数为SubpassData的OpTypeImage变量,则它必须使用与当前子过程中有效的输入附件相对应的InputAttachmentIndex进行修饰 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07469
在子过程中访问的输入附件视图必须使用与相应子过程定义相同的 VkFormat 创建,并且使用 VkImageView 创建,该 VkImageView 与绑定 VkFramebuffer 中子过程的pInputAttachments[InputAttachmentIndex] 引用的附件兼容,如片段输入附件兼容性中所述 -
VUID-vkCmdDrawIndirectByteCountEXT-pDepthInputAttachmentIndex-09595
在动态渲染过程中访问的、由VkRenderingInputAttachmentIndexInfo 引用的InputAttachmentIndex的输入附件视图,或者如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex或 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex为NULL则没有InputAttachmentIndex的输入附件视图,必须使用与 VkRenderingInfo 中的相应颜色、深度或模板附件兼容的 VkImageView 创建 -
VUID-vkCmdDrawIndirectByteCountEXT-pDepthInputAttachmentIndex-09596
如果 VkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndex和 VkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndex均不为NULL,则通过着色器对象在动态渲染过程中访问的输入附件视图必须具有InputAttachmentIndex -
VUID-vkCmdDrawIndirectByteCountEXT-InputAttachmentIndex-09597
如果通过着色器对象在动态渲染过程中访问的输入附件视图具有InputAttachmentIndex,则InputAttachmentIndex必须与VkRenderingInputAttachmentIndexInfo 中的索引匹配 -
VUID-vkCmdDrawIndirectByteCountEXT-None-06537
当前渲染通道中用作附件的内存后备图像子资源必须不能以任何方式写入,除非作为此命令的附件。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09000
如果颜色附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_COLOR_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndirectByteCountEXT-None-09001
如果深度附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_DEPTH_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndirectByteCountEXT-None-09002
如果模板附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则它不处于VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT图像布局中,并且满足以下任一条件:-
绑定的管线上设置了
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,或者 -
上次调用 vkCmdSetAttachmentFeedbackLoopEnableEXT 时包含了
VK_IMAGE_ASPECT_STENCIL_BIT,并且-
没有绑定的图形管线,或者
-
绑定的图形管线是使用
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT创建的
-
它必须不能以任何方式访问,除非作为此命令的附件。
-
-
VUID-vkCmdDrawIndirectByteCountEXT-None-09003
如果附件被此子通道中的任何先前命令写入,或者被此子通道的加载、存储或解析操作写入,则此命令必须不能以任何方式访问它,除非作为附件、存储图像或采样图像。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-06539
如果当前子通道中任何先前记录的命令以任何方式访问了用作此子通道附件的图像子资源,而非作为附件,则此命令必须不能将该图像子资源作为附件写入。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-06886
如果当前渲染通道实例使用深度/模板附件,且其深度方面为只读布局,则必须禁用深度写入。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-06887
如果当前渲染通道实例使用深度/模板附件,且其模板方面为只读布局,并且前向和后向writeMask都不为零,并且启用了模板测试,则所有模板操作必须为VK_STENCIL_OP_KEEP。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07831
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_VIEWPORT动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewport,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07832
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SCISSOR动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetScissor,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07833
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_LINE_WIDTH动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08617
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08618
如果着色器对象绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08619
如果输出线图元的着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLineWidth,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07834
如果着色器对象绑定到任何图形阶段,或者绑定了一个创建时启用了VK_DYNAMIC_STATE_DEPTH_BIAS动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBiasEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBias 或 vkCmdSetDepthBias2EXT,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07835
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_BLEND_CONSTANTS动态状态,则在执行此绘制命令之前,必须已调用过 vkCmdSetBlendConstants,并且在当前命令缓冲区中没有被后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08621
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEnableEXT 将pColorBlendEnables的任何元素设置为VK_TRUE,并且当前命令缓冲区中最近一次调用 vkCmdSetColorBlendEquationEXT 将pColorBlendEquations的相同元素设置为一个VkColorBlendEquationEXT结构,其中任何 VkBlendFactor 成员的值为VK_BLEND_FACTOR_CONSTANT_COLOR,VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,VK_BLEND_FACTOR_CONSTANT_ALPHA或VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetBlendConstants 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07836
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且depthBoundsTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetDepthBounds 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07837
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilCompareMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07838
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_WRITE_MASK动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilWriteMask 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07839
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_STENCIL_REFERENCE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetStencilReference 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688
如果绘制记录在启用了多视图的渲染通道实例中,则最大实例索引**必须**小于或等于 VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex。 -
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689
如果绑定的图形管线是使用 VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable设置为VK_TRUE创建的,并且当前子通道具有深度/模板附件,则该附件**必须**已使用VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位集创建。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07634
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-06666
如果启用了VK_EXT_sample_locations扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且sampleLocationsEnable的当前值为VK_TRUE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetSampleLocationsEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07840
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_CULL_MODE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetCullMode 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07841
如果着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_FRONT_FACE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,**必须**已调用过 vkCmdSetFrontFace 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07843
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07844
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthWriteEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07845
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_COMPARE_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且depthTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthCompareOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07846
如果启用了depthBounds功能,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetDepthBoundsTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07847
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE动态状态,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilTestEnable,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07848
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_STENCIL_OP动态状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stencilTestEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetStencilOp,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT动态状态,并且该状态未被继承,则在执行此绘制命令之前,必须调用过 vkCmdSetScissorWithCount,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时同时启用了VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,并且该状态未被继承,则vkCmdSetViewportWithCount的viewportCount参数必须与vkCmdSetScissorWithCount的scissorCount参数匹配。 -
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04137
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportWScalingStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04138
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须调用过 vkCmdSetViewportWScalingNV,并且在当前命令缓冲区中没有随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08636
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定的图形管线在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV动态状态,viewportWScalingEnable的当前值为VK_TRUE,则上次调用 vkCmdSetViewportWScalingNV 中的viewportCount参数必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04139
如果绑定的图形管线状态在创建时启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但没有启用VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态,则绑定的图形管线在创建时,VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount必须大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09233
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetCoarseSampleOrderNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09234
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetViewportShadingRatePaletteNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08637
如果启用了shadingRateImage功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且shadingRateImageEnable的当前值为VK_TRUE,则最后一次调用 vkCmdSetViewportShadingRatePaletteNV 中的viewportCount参数必须大于或等于最后一次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04141
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportSwizzleStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount创建。 -
VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04142
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且从 VkPipelineViewportStateCreateInfo 链接了 VkPipelineViewportExclusiveScissorStateCreateInfoNV 结构,则绑定的图形管线必须使用大于或等于最后一次调用 vkCmdSetViewportWithCount 中viewportCount参数的 VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount创建。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07878
如果启用了exclusiveScissor功能,并且着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorEnableNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07879
如果启用了exclusiveScissor功能,着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV动态状态创建的图形管线,并且当前命令缓冲区中最近一次调用 vkCmdSetExclusiveScissorEnableNV 将pExclusiveScissorEnables的任何元素设置为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetExclusiveScissorNV,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-04876
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE动态状态创建的图形管线,则在执行此绘制命令之前,必须已调用过 vkCmdSetRasterizerDiscardEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-04877
如果着色器对象绑定到任何图形管线阶段,或者绑定了使用启用VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在执行此绘制命令之前,必须已调用过 vkCmdSetDepthBiasEnable,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT,或者绑定了使用启用VK_DYNAMIC_STATE_LOGIC_OP_EXT动态状态创建的图形管线,且rasterizerDiscardEnable的当前值为VK_FALSE,并且logicOpEnable的当前值为VK_TRUE,则在执行此绘制命令之前,必须已调用过 vkCmdSetLogicOpEXT,且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,绑定的图形管线是在启用VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态的情况下创建的,并且绑定的图形管线的任何着色器阶段写入到PrimitiveShadingRateKHR内置变量,则在执行此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-08642
如果不支持primitiveFragmentShadingRateWithMultipleViewports限制,并且绑定到图形阶段的任何着色器对象写入了PrimitiveShadingRateKHR内置变量,那么在执行此绘制命令之前,当前命令缓冲区中必须调用过 vkCmdSetViewportWithCount,并且vkCmdSetViewportWithCount的viewportCount参数必须为1。 -
VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727
如果绑定的图形管线中没有禁用光栅化,那么对于子通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则pColorBlendState的pAttachments成员中相应元素的blendEnable成员必须为VK_FALSE。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08643
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么对于渲染通道中的每个颜色附件,如果对应图像视图的格式特性不包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,则在当前命令缓冲区中最近一次调用vkCmdSetColorBlendEnableEXT中影响该附件索引的pColorBlendEnables的相应成员必须为VK_FALSE。 -
VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07284
如果绑定的图形管线中没有禁用光栅化,并且以下任何一项均未启用那么绑定图形管线的
rasterizationSamples必须与当前子通道颜色和/或深度/模板附件相同。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08644
如果着色器对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且以下任何一项均未启用那么在当前命令缓冲区中最近一次调用 vkCmdSetRasterizationSamplesEXT 必须已将
rasterizationSamples设置为与当前渲染通道颜色和/或深度/模板附件的样本数相同。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08876
如果着色器对象绑定到任何图形阶段,则当前渲染通道实例必须已通过 vkCmdBeginRendering 开始。 -
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06172
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06173
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06174
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06175
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06176
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pDepthAttachment的imageView成员不是 VK_NULL_HANDLE,并且pDepthAttachment的layout成员是VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,则此命令必须不向深度附件写入任何值。 -
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06177
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且pStencilAttachment的imageView成员不是 VK_NULL_HANDLE,并且pStencilAttachment的layout成员是VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,则此命令必须不向模板附件写入任何值。 -
VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::viewMask相等的 VkPipelineRenderingCreateInfo::viewMask创建。 -
VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染通道实例是通过 vkCmdBeginRendering 开始的,那么绑定的图形管线必须使用与 VkRenderingInfo::colorAttachmentCount相等的 VkPipelineRenderingCreateInfo::colorAttachmentCount创建。 -
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08910
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建。 -
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08912
如果未启用dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView等于 VK_NULL_HANDLE 的元素必须使用于创建绑定管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08911
如果启用了dynamicRenderingUnusedAttachments特性,并且当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount大于0开始的,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats对应的元素相同的 VkFormat 创建,或者如果 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的对应元素存在,则必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09362
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,VkRenderingInfo::colorAttachmentCount等于1,并且没有任何着色器对象绑定到任何图形阶段,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个resolveImageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09363
如果没有着色器对象绑定到任何图形阶段,当前渲染过程实例是通过 vkCmdBeginRendering 和 VkRenderingInfo::colorAttachmentCount等于1开始的,并且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,则 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用通过 VkExternalFormatANDROID::externalFormat值创建的图像创建,该值等于用于创建绑定图形管线的 VkExternalFormatANDROID::externalFormat值。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09364
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09365
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09366
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetColorBlendEnableEXT 必须将混合启用设置为VK_FALSE。 -
VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-09367
如果存在绑定到任何图形阶段的着色器对象,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,则在此绘制命令之前,vkCmdSetRasterizationSamplesEXT 必须将rasterizationSamples设置为VK_SAMPLE_COUNT_1_BIT。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09368
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09369
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,且没有着色器对象绑定到任何图形阶段,并且绑定的图形管线是使用非零的 VkExternalFormatANDROID::externalFormat值创建的,并且启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09370
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->width设置为1 -
VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09371
如果有一个着色器对象绑定到任何图形阶段,并且当前渲染过程包含使用VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID解析模式的颜色附件,那么在执行此绘制命令之前,vkCmdSetFragmentShadingRateKHR 必须 将pFragmentSize->height设置为1 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07749
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08646
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用 vkCmdSetColorWriteEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-07750
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT动态状态创建的,那么vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于绑定图形管线的VkPipelineColorBlendStateCreateInfo::attachmentCount -
VUID-vkCmdDrawIndirectByteCountEXT-None-08647
如果启用了colorWriteEnable特性,并且有一个着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在当前命令缓冲区中最近一次调用vkCmdSetColorWriteEnableEXT的attachmentCount参数必须大于或等于当前渲染过程实例中的颜色附件数量 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07751
如果启用了VK_EXT_discard_rectangles扩展,绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中包含了一个 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09236
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT动态状态创建的图形管线,并且 VkGraphicsPipelineCreateInfo 的pNext链中不包含 VkPipelineDiscardRectangleStateCreateInfoEXT 结构,rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,对于 VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles中的每个丢弃矩形,必须调用 vkCmdSetDiscardRectangleEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07880
如果启用了VK_EXT_discard_rectangles扩展,有一个着色器对象绑定到任何图形阶段,或者绑定了一个使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须调用 vkCmdSetDiscardRectangleEnableEXT,且之后没有在当前命令缓冲区中被 无效化 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07881
如果启用了VK_EXT_discard_rectangles扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且discardRectangleEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须调用过 vkCmdSetDiscardRectangleModeEXT,并且在当前命令缓冲区中没有后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08913
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08914
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat。 -
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08915
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pDepthAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat的值不等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08916
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08917
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,那么用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat。 -
VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08918
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且dynamicRenderingUnusedAttachments特性已启用,并且 VkRenderingInfo::pStencilAttachment->imageView不为 VK_NULL_HANDLE,并且用于创建绑定的图形管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat的值不等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的 VkFormat,那么该格式的值必须为VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR创建的。 -
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184
如果当前渲染过程实例是通过 vkCmdBeginRendering 开始的,并且 VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView不为 VK_NULL_HANDLE,那么绑定的图形管线必须是通过VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT创建的。 -
VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185
如果绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的pColorAttachmentSamples成员的相应元素相同的采样计数创建。 -
VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,绑定的管线是使用 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构创建的,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建绑定图形管线的 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 的depthStencilAttachmentSamples成员的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07285
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,且 VkRenderingInfo::colorAttachmentCount参数大于0,那么 VkRenderingInfo::pColorAttachments数组中每个imageView不等于 VK_NULL_HANDLE 的元素必须使用与绑定图形管线的rasterizationSamples值相同的采样计数创建。 -
VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07286
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pDepthAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07287
如果绑定的管线是在没有 VkAttachmentSampleCountInfoAMD 或 VkAttachmentSampleCountInfoNV 结构的情况下创建的,并且multisampledRenderToSingleSampled功能未启用,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么绑定图形管线的rasterizationSamples的值必须等于用于创建 VkRenderingInfo::pStencilAttachment->imageView的采样计数。 -
VUID-vkCmdDrawIndirectByteCountEXT-pNext-07935
如果此命令是在使用 vkCmdBeginRendering 启动的渲染通道实例内调用的,并且 VkRenderingInfo 的pNext链包含一个 VkMultisampledRenderToSingleSampledInfoEXT 结构,其中multisampledRenderToSingleSampledEnable等于VK_TRUE,那么绑定图形管线的rasterizationSamples的值必须等于 VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples。 -
VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,那么绑定的管线必须使用 VkGraphicsPipelineCreateInfo::renderPass等于 VK_NULL_HANDLE 创建。 -
VUID-vkCmdDrawIndirectByteCountEXT-pColorAttachments-08963
如果当前的渲染通道实例是使用 vkCmdBeginRendering 开始的,并且存在一个绑定了片段着色器的图形管线,该片段着色器静态写入颜色附件,颜色写入掩码不为零,颜色写入已启用,并且 VkRenderingInfo::pColorAttachments->imageView的相应元素不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::pColorAttachmentFormats的相应元素必须不是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-08964
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了深度测试、启用了深度写入,并且 VkRenderingInfo::pDepthAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::depthAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-08965
如果当前渲染通道实例是通过 vkCmdBeginRendering 开始的,并且绑定了图形管线、启用了模板测试,并且 VkRenderingInfo::pStencilAttachment->imageView不是 VK_NULL_HANDLE,那么用于创建管线的 VkPipelineRenderingCreateInfo::stencilAttachmentFormat必须 不能是VK_FORMAT_UNDEFINED。 -
VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708
如果primitivesGeneratedQueryWithRasterizerDiscard功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则 必须 不启用光栅化丢弃。 -
VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709
如果primitivesGeneratedQueryWithNonZeroStreams功能未启用,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,则绑定的图形管线 必须 不是使用VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream中的非零值创建的。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07620
如果启用了depthClamp功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetDepthClampEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07621
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_POLYGON_MODE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetPolygonModeEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07622
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetRasterizationSamplesEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07623
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_SAMPLE_MASK_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetSampleMaskEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-alphaToCoverageEnable-08919
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的,并且在上次调用 vkCmdSetAlphaToCoverageEnableEXT 时alphaToCoverageEnable为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDrawIndirectByteCountEXT-alphaToCoverageEnable-08920
如果有 shader 对象绑定到任何图形阶段,并且在当前命令缓冲区中最近一次调用 vkCmdSetAlphaToCoverageEnableEXT 时将alphaToCoverageEnable设置为VK_TRUE,则片段输出接口 必须 包含在Location0 的Index0 处用于 alphaComponent字的变量。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07624
如果有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToCoverageEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07625
如果启用了alphaToOne功能,并且有 shader 对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetAlphaToOneEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07626
如果启用了logicOp功能,并且有 shader 对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在本次绘制命令之前, 必须 已调用 vkCmdSetLogicOpEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07627
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态创建的,则在本次绘制命令之前, 必须 已调用 vkCmdSetColorBlendEnableEXT 且未在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08657
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07628
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08658
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且最近一次针对任何附件调用 vkCmdSetColorBlendEnableEXT 时将该附件在pColorBlendEnables中的值设置为VK_TRUE,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendEquationEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07629
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08659
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且绑定了颜色附件,则在当前绘制命令之前,必须调用过 vkCmdSetColorWriteMaskEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07630
如果启用了geometryStreams特性,并且着色器对象绑定到VK_SHADER_STAGE_GEOMETRY_BIT阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetRasterizationStreamEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07631
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,则在当前绘制命令之前,必须调用过 vkCmdSetConservativeRasterizationModeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07632
如果启用了VK_EXT_conservative_rasterization扩展,着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT动态状态的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且conservativeRasterizationMode的当前值为VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,则在当前绘制命令之前,必须调用过 vkCmdSetExtraPrimitiveOverestimationSizeEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07633
如果启用了depthClipEnable特性,并且着色器对象绑定到任何图形阶段,或者绑定了创建时启用了VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT动态状态的图形管线,则在当前绘制命令之前,必须调用过 vkCmdSetDepthClipEnableEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07635
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在当前绘制命令之前,必须调用过 vkCmdSetColorBlendAdvancedEXT,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09416
如果启用了VK_EXT_blend_operation_advanced扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在当前绘制命令之前,必须至少调用过 vkCmdSetColorBlendEquationEXT 和 vkCmdSetColorBlendAdvancedEXT 中的一个,且未在当前命令缓冲区中随后 失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07636
如果启用了VK_EXT_provoking_vertex扩展,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT动态状态的图形管线,并且 当前值 的rasterizerDiscardEnable为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetProvokingVertexModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07637
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08666
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08667
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08668
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineRasterizationModeEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07638
如果绑定的图形管线状态是使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT动态状态创建的,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08669
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到任何图形阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPolygonModeEXT 将polygonMode设置为VK_POLYGON_MODE_LINE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08670
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个着色器对象被绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且当前命令缓冲区中最近一次调用 vkCmdSetPrimitiveTopology 将primitiveTopology设置为任何线拓扑结构,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08671
如果启用了stippledRectangularLines,stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且一个输出线图元的着色器对象被绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,那么在执行此绘制命令之前,必须 调用过 vkCmdSetLineStippleEnableEXT 并且没有在当前命令缓冲区中随后被 失效 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07849
如果启用了stippledRectangularLines、stippledBresenhamLines或stippledSmoothLines中的任何一个功能,并且着色器对象绑定到任何图形阶段,或者使用启用了VK_DYNAMIC_STATE_LINE_STIPPLE动态状态创建的绑定图形管线状态,rasterizerDiscardEnable的当前值为VK_FALSE,并且stippledLineEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetLineStipple 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07639
如果启用了depthClipControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClipNegativeOneToOneEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09650
如果启用了depthClampControl功能,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT动态状态创建的图形管线,并且depthClampEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetDepthClampRangeEXT 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07640
如果启用了VK_NV_clip_space_w_scaling扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportWScalingEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07641
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态创建的图形管线,那么在执行此绘制命令之前,必须已调用过 vkCmdSetViewportSwizzleNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07642
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07643
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageToColorEnable的当前值为VK_TRUE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageToColorLocationNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07644
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationModeNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07645
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且着色器对象绑定到任何图形阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV动态状态创建的图形管线,rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationMode的当前值不是VK_COVERAGE_MODULATION_MODE_NONE_NV的任何值,那么在执行此绘制命令之前,必须已调用过 vkCmdSetCoverageModulationTableEnableNV 并且没有在当前命令缓冲区中后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07646
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,并且coverageModulationTableEnable的当前值为VK_TRUE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageModulationTableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07647
如果启用了shadingRateImage特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetShadingRateImageEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-pipelineFragmentShadingRate-09238
如果启用了pipelineFragmentShadingRate特性,并且绑定了一个着色器对象到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetFragmentShadingRateKHR,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07648
如果启用了representativeFragmentTest特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetRepresentativeFragmentTestEnableNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07649
如果启用了coverageReductionMode特性,并且绑定了一个着色器对象到任何图形阶段,或者绑定了一个启用了VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV动态状态的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,必须已经调用过 vkCmdSetCoverageReductionModeNV,并且没有在当前命令缓冲区中随后失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-pColorBlendEnables-07470
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT状态的情况下创建的,并且最后一次调用 vkCmdSetColorBlendEnableEXT 为任何附件将pColorBlendEnables设置为VK_TRUE,那么对于子通道中的这些附件,相应的图像视图的 格式特性 必须 包含VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT。 -
VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07471
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前子通道不使用任何颜色和/或深度/模板附件,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 遵循 零附件子通道 的规则。 -
VUID-vkCmdDrawIndirectByteCountEXT-samples-07472
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态且禁用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于用于创建绑定的图形管线的 VkPipelineMultisampleStateCreateInfo::rasterizationSamples参数。 -
VUID-vkCmdDrawIndirectByteCountEXT-samples-07473
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_MASK_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,那么最后一次调用 vkCmdSetSampleMaskEXT 中的samples参数 必须 大于或等于最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples参数。 -
VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07474
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且multisampledRenderToSingleSampled特性未启用,并且既没有启用VK_AMD_mixed_attachment_samples扩展,也没有启用VK_NV_framebuffer_mixed_samples扩展,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与当前子通道的颜色和/或深度/模板附件相同。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09211
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,或者一个着色器对象被绑定到任何图形阶段,并且当前渲染通道实例包含一个multisampledRenderToSingleSampledEnable等于VK_TRUE的 VkMultisampledRenderToSingleSampledInfoEXT 结构,那么最后一次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples必须 与该结构的rasterizationSamples成员相同。 -
VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07476
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态的情况下创建的,那么在此绘制命令之前,必须在当前命令缓冲区中调用过 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件 必须 为当前子通道中的所有活动颜色附件指定启用。 -
VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09417
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEnableEXT,并且vkCmdSetColorBlendEnableEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件启用。 -
VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07477
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09418
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且存在绑定的颜色附件,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendEquationEXT,并且vkCmdSetColorBlendEquationEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定混合方程式。 -
VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07478
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09419
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorWriteMaskEXT,并且vkCmdSetColorWriteMaskEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中的所有活动颜色附件指定颜色写入掩码。 -
VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07479
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT动态状态,则在执行此绘制命令之前,当前命令缓冲区中必须已调用 vkCmdSetColorBlendAdvancedEXT,并且vkCmdSetColorBlendAdvancedEXT调用的firstAttachment和attachmentCount参数指定的附件必须为当前子通道中启用混合的所有活动颜色附件指定高级混合方程式。 -
VUID-vkCmdDrawIndirectByteCountEXT-advancedBlendMaxColorAttachments-07480
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT和VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT动态状态,并且最近一次调用 vkCmdSetColorBlendEnableEXT 和 vkCmdSetColorBlendAdvancedEXT 已启用高级混合,则当前子通道中的活动颜色附件的数量必须不超过advancedBlendMaxColorAttachments。 -
VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481
如果未启用primitivesGeneratedQueryWithNonZeroStreams功能,并且VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT查询处于活动状态,并且绑定的图形管线创建时启用了VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT状态,则最近一次调用 vkCmdSetRasterizationStreamEXT 必须已将rasterizationStream设置为零。 -
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07482
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态并禁用了VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于绑定图形管线创建时使用的 VkPipelineMultisampleStateCreateInfo 结构的rasterizationSamples成员。 -
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07483
如果绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态,并且sampleLocationsEnable的当前值为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中pSampleLocationsInfo的sampleLocationsPerPixel成员必须等于最近一次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples参数。 -
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07484
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,并且当前子通道具有深度/模板附件,则该附件的创建必须设置了VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT位。 -
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07485
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态创建时启用了VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态,并且最近一次调用 vkCmdSetSampleLocationsEnableEXT 中sampleLocationsEnable为VK_TRUE,则最近一次调用 vkCmdSetSampleLocationsEXT 中sampleLocationsInfo.sampleLocationGridSize.width必须能被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者是通过 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回的,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07486
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则上次调用 vkCmdSetSampleLocationsEXT 中的sampleLocationsInfo.sampleLocationGridSize.height**必须** 可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于rasterizationSamples。 -
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07487
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT状态的情况下创建的,并且如果在上次调用 vkCmdSetSampleLocationsEnableEXT 时sampleLocationsEnable为VK_TRUE,则片段着色器代码**必须**不得静态使用扩展指令InterpolateAtSample。 -
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07936
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.width**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.width整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07937
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationGridSize.height**必须**可以被 VkMultisamplePropertiesEXT::sampleLocationGridSize.height整除,后者由 vkGetPhysicalDeviceMultisamplePropertiesEXT 返回,且samples参数等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples值。 -
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07938
如果绑定的图形管线状态是在禁用VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT状态和启用VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且sampleLocationsEnable的当前值为VK_TRUE,则sampleLocationsInfo.sampleLocationsPerPixel**必须**等于上次调用 vkCmdSetRasterizationSamplesEXT 中的rasterizationSamples。 -
VUID-vkCmdDrawIndirectByteCountEXT-coverageModulationTableEnable-07488
如果着色器对象绑定到任何图形阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageModulationTableEnableNV 将coverageModulationTableEnable设置为VK_TRUE,则上次调用 vkCmdSetCoverageModulationTableNV 中的coverageModulationTableCount参数**必须**等于当前的rasterizationSamples除以当前子通道中的颜色样本数量。 -
VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07489
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且当前子通道具有深度/模板附件,且在绑定的管线中启用了深度测试、模板测试或深度边界测试,则当前的rasterizationSamples**必须**与深度/模板附件的样本计数相同。 -
VUID-vkCmdDrawIndirectByteCountEXT-coverageToColorEnable-07490
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV状态的情况下创建的,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09420
如果启用了VK_NV_fragment_coverage_to_color扩展,并且着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,并且当前命令缓冲区中最近一次调用 vkCmdSetRasterizerDiscardEnable 将rasterizerDiscardEnable设置为VK_FALSE,并且上次调用 vkCmdSetCoverageToColorEnableNV 将coverageToColorEnable设置为VK_TRUE,则当前子通道**必须**在上次调用 vkCmdSetCoverageToColorLocationNV 的coverageToColorLocation选择的位置具有颜色附件,其 VkFormat 为VK_FORMAT_R8_UINT、VK_FORMAT_R8_SINT、VK_FORMAT_R16_UINT、VK_FORMAT_R16_SINT、VK_FORMAT_R32_UINT或VK_FORMAT_R32_SINT。 -
VUID-vkCmdDrawIndirectByteCountEXT-coverageReductionMode-07491
如果启用了VK_NV_coverage_reduction_mode扩展,并且绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV和VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT状态的情况下创建的,并且当前的覆盖率缩减模式coverageReductionMode、当前的rasterizationSamples以及颜色和深度/模板附件(如果子通道有这些附件)的采样计数 必须 是 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV 返回的有效组合。 -
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07492
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT动态状态,但未启用VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么绑定的图形管线 必须 是使用 VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数创建的。 -
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07493
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT和VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV动态状态的情况下创建的,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-09421
如果启用了VK_NV_viewport_swizzle扩展,并且着色器对象绑定到任何图形阶段,那么上次调用 vkCmdSetViewportSwizzleNV 中的viewportCount参数 必须 大于或等于上次调用 vkCmdSetViewportWithCount 中的viewportCount参数。 -
VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07494
如果启用了VK_NV_framebuffer_mixed_samples扩展,并且如果当前子通道有任何颜色附件,且上次调用 vkCmdSetRasterizationSamplesEXT 的rasterizationSamples大于颜色采样数,那么管线的sampleShadingEnable必须 为VK_FALSE。 -
VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07495
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR,那么stippledRectangularLines特性 必须 启用。 -
VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07496
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_BRESENHAM,那么stippledBresenhamLines特性 必须 启用。 -
VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07497
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,那么stippledSmoothLines特性 必须 启用。 -
VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07498
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT或VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且如果当前的stippledLineEnable状态为VK_TRUE,且当前的lineRasterizationMode状态为VK_LINE_RASTERIZATION_MODE_DEFAULT,那么stippledRectangularLines特性 必须 启用,并且 VkPhysicalDeviceLimits::strictLines必须 为VK_TRUE。 -
VUID-vkCmdDrawIndirectByteCountEXT-conservativePointAndLineRasterization-07499
如果绑定的图形管线状态是在启用了VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT动态状态的情况下创建的,并且不支持conservativePointAndLineRasterization,并且最后一个光栅化前着色器阶段输出的有效图元拓扑结构为直线或点,那么上次调用 vkCmdSetConservativeRasterizationModeEXT 设置的conservativeRasterizationMode必须 为VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT。 -
VUID-vkCmdDrawIndirectByteCountEXT-stage-07073
如果绑定的管线是使用 VkPipelineShaderStageCreateInfo::stage成员,该成员是 VkGraphicsPipelineCreateInfo::pStages的一个元素,设置为VK_SHADER_STAGE_VERTEX_BIT、VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT、VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT或VK_SHADER_STAGE_GEOMETRY_BIT创建的,那么 网格着色器查询 必须 未处于活动状态。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08877
如果着色器对象绑定到VK_SHADER_STAGE_FRAGMENT_BIT阶段,或者绑定了使用启用了VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT动态状态创建的图形管线,并且rasterizerDiscardEnable的当前值为VK_FALSE,那么在此绘制命令之前,当前命令缓冲区中 必须 调用过 vkCmdSetAttachmentFeedbackLoopEnableEXT 并且没有随后被 无效化。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07850
如果动态状态是从 VkCommandBufferInheritanceViewportScissorInfoNV 继承的,则它必须在本绘图命令之前在当前命令缓冲区中设置。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08688
如果未绑定图形管线,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_FRAGMENT_BIT元素。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08689
如果未绑定图形管线,且启用了taskShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_TASK_BIT_EXT元素。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08690
如果未绑定图形管线,且启用了meshShader特性,则必须在当前命令缓冲区中调用vkCmdBindShadersEXT,且pStages必须包含VK_SHADER_STAGE_MESH_BIT_EXT元素。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08693
如果未绑定图形管线,并且至少启用了taskShader和meshShader特性中的一个,则VK_SHADER_STAGE_VERTEX_BIT或VK_SHADER_STAGE_MESH_BIT_EXT阶段之一必须绑定有效的VkShaderEXT,而另一个必须未绑定VkShaderEXT。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08694
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是在没有VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志的情况下创建的,则必须将有效的VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08695
如果未绑定图形管线,并且同时启用了taskShader和meshShader特性,且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_MESH_BIT_EXT阶段,并且该VkShaderEXT是使用VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT标志创建的,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08696
如果未绑定图形管线,并且已将有效的VkShaderEXT绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,则必须没有VkShaderEXT绑定到VK_SHADER_STAGE_TASK_BIT_EXT阶段或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08698
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则同一 vkCreateShadersEXT 调用中所有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的着色器也必须绑定。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08699
如果绑定了任何使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的图形着色器,则在同一 vkCreateShadersEXT 调用中,着色器没有使用VK_SHADER_CREATE_LINK_STAGE_BIT_EXT标志创建的阶段之间的任何阶段必须未绑定任何VkShaderEXT。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08878
所有绑定的图形着色器对象必须使用相同或相同定义的推送常量范围创建。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08879
所有绑定的图形着色器对象必须使用相同或相同定义的描述符集布局数组创建。 -
VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09372
如果当前渲染通道实例是使用 vkCmdBeginRendering 和一个 VkRenderingInfo::colorAttachmentCount等于1开始的,且颜色附件的解析模式为VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,并且绑定了片段着色器,则它必须不声明DepthReplacing或StencilRefReplacingEXT执行模式。 -
VUID-vkCmdDrawIndirectByteCountEXT-pDynamicStates-08715
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpDepthAttachmentReadEXT,则上次调用 vkCmdSetDepthWriteEnable 的depthWriteEnable参数必须为VK_FALSE。 -
VUID-vkCmdDrawIndirectByteCountEXT-pDynamicStates-08716
如果绑定的图形管线状态包含片段着色器阶段,并且是使用 VkPipelineDynamicStateCreateInfo::pDynamicStates中设置的VK_DYNAMIC_STATE_STENCIL_WRITE_MASK创建的,并且片段着色器声明了EarlyFragmentTests执行模式并使用OpStencilAttachmentReadEXT,则上次调用 vkCmdSetStencilWriteMask 的writeMask参数必须为0。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09116
如果将着色器对象绑定到任何图形阶段,或者使用VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT创建了绑定的图形管线,并且任何颜色附件的格式为VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,则 vkCmdSetColorWriteMaskEXT 的pColorWriteMasks参数的相应元素必须包含VK_COLOR_COMPONENT_R_BIT、VK_COLOR_COMPONENT_G_BIT和VK_COLOR_COMPONENT_B_BIT中的全部,或全部都不包含。 -
VUID-vkCmdDrawIndirectByteCountEXT-maxFragmentDualSrcAttachments-09239
如果任何附件启用了混合,并且该附件的源或目标混合因子使用了辅助颜色输入,则在此命令执行的FragmentExecutionModel中静态使用的任何输出附件的Location最大值必须小于maxFragmentDualSrcAttachments。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09548
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则由vkCmdSetRenderingAttachmentLocations设置的VkRenderingAttachmentLocationInfo::pColorAttachmentLocations的每个元素的值必须与绑定的管道中相应元素的值匹配。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09549
如果当前渲染通道是通过vkCmdBeginRendering开始的,并且没有任何着色器对象绑定到任何图形阶段,则绑定管道中的输入附件索引映射必须与通过VkRenderingInputAttachmentIndexInfo为当前渲染通道实例设置的索引映射匹配。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09642
如果当前渲染通道是通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始的,则绑定的图形管线必须使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09643
如果绑定的图形管线是使用VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT创建的,则当前渲染通道必须通过带有VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT标志的 vkCmdBeginRendering 开始。
-
VUID-vkCmdDrawIndirectByteCountEXT-None-04007
通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须绑定有效的或VK_NULL_HANDLE 缓冲区。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-04008
如果未启用nullDescriptor功能,则通过顶点着色器入口点的接口中声明的顶点输入变量访问的所有顶点输入绑定必须不是VK_NULL_HANDLE。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-02721
如果未启用robustBufferAccess功能,并且该管道的创建没有为vertexInputs启用VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,则对于给定的顶点缓冲区绑定,提取的任何属性数据必须完全包含在相应的顶点缓冲区绑定中,如顶点输入描述中所述。 -
VUID-vkCmdDrawIndirectByteCountEXT-format-10389
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format是打包格式,并且未启用legacyVertexAttributes,则根据顶点输入计算计算的attribAddress值必须是format的大小的倍数。 -
VUID-vkCmdDrawIndirectByteCountEXT-format-10390
对于此命令访问的每个顶点属性,如果其VkVertexInputAttributeDescription::format或VkVertexInputAttributeDescription2EXT::format不是打包格式,并且要么未启用legacyVertexAttributes,要么format具有 64 位组件,则根据顶点输入计算计算的attribAddress值必须是format的组件大小的倍数。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07842
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是使用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态启用的,那么在本次绘制命令之前,必须调用过 vkCmdSetPrimitiveTopology 并且没有在当前命令缓冲区中被后续失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-dynamicPrimitiveTopologyUnrestricted-07500
如果绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY动态状态且dynamicPrimitiveTopologyUnrestricted为VK_FALSE的情况下创建的,则vkCmdSetPrimitiveTopology的primitiveTopology参数必须与管线 VkPipelineInputAssemblyStateCreateInfo::topology状态具有相同的图元拓扑类别。 -
VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-10286
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,那么在执行此绘制命令之前,vkCmdSetPrimitiveTopology 必须将primitiveTopology设置为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST。 -
VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913
如果绑定的图形管线是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE动态状态但未启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdBindVertexBuffers2 且未在当前命令缓冲区中随后被失效,并且 vkCmdBindVertexBuffers2 的pStrides参数必须不为NULL。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-04914
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetVertexInputEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-Input-07939
如果vertexAttributeRobustness未启用,并且有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,那么在VertexExecutionModelOpEntryPoint中,所有使用Location修饰的Input存储类变量必须包含 VkVertexInputAttributeDescription2EXT::location中的一个位置。 -
VUID-vkCmdDrawIndirectByteCountEXT-Input-08734
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且legacyVertexAttributes功能未启用,或者在VertexExecutionModelOpEntryPoint中,与给定Location的Input变量关联的 SPIR-V 类型是 64 位的,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的数值类型必须与 VkVertexInputAttributeDescription2EXT::format相同。 -
VUID-vkCmdDrawIndirectByteCountEXT-format-08936
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,与相应Location的所有Input变量关联的标量宽度必须为 64 位。 -
VUID-vkCmdDrawIndirectByteCountEXT-format-08937
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且在VertexExecutionModelOpEntryPoint中,与Location修饰的Input变量关联的标量宽度是 64 位的,那么对应的 VkVertexInputAttributeDescription2EXT::format必须具有 64 位分量。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09203
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态的情况下创建的,并且 VkVertexInputAttributeDescription2EXT::format具有 64 位分量,那么在VertexExecutionModelOpEntryPoint中,对应Location的所有Input变量必须不使用格式中不存在的分量。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-04875
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT动态状态的情况下创建的,并且primitiveTopology的当前值 为VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,那么在执行此绘制命令之前,必须调用过 vkCmdSetPatchControlPointsEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-04879
如果有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么在执行此绘制命令之前,必须调用过 vkCmdSetPrimitiveRestartEnable 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09637
如果primitiveTopologyListRestart功能未启用,拓扑为VK_PRIMITIVE_TOPOLOGY_POINT_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST、VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST、VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY或VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,有一个着色器对象绑定到VK_SHADER_STAGE_VERTEX_BIT阶段,或者绑定的图形管线状态是在启用VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE动态状态的情况下创建的,那么 vkCmdSetPrimitiveRestartEnable 必须为VK_FALSE。 -
VUID-vkCmdDrawIndirectByteCountEXT-stage-06481
绑定的图形管线必须不是使用 VkPipelineShaderStageCreateInfo::stage成员(该成员是 VkGraphicsPipelineCreateInfo::pStages的任意元素的成员)设置为VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT的情况下创建的。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08885
必须没有着色器对象绑定到VK_SHADER_STAGE_TASK_BIT_EXT或VK_SHADER_STAGE_MESH_BIT_EXT阶段。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-07619
如果有一个着色器对象绑定到VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT阶段,或者绑定了一个使用启用VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT动态状态创建的图形管线,那么在执行此绘制命令之前,必须调用过 vkCmdSetTessellationDomainOriginEXT 且未在当前命令缓冲区中随后被失效。 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08684
如果没有绑定图形管线,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_VERTEX_BIT元素 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08685
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT元素 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08686
如果没有绑定图形管线,且启用了tessellationShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT元素 -
VUID-vkCmdDrawIndirectByteCountEXT-None-08687
如果没有绑定图形管线,且启用了geometryShader功能,则当前命令缓冲区中必须已调用vkCmdBindShadersEXT,且pStages中包含VK_SHADER_STAGE_GEOMETRY_BIT元素
-
VUID-vkCmdDrawIndirectByteCountEXT-pNext-09461
如果绑定的图形管线状态是通过 VkPipelineVertexInputDivisorStateCreateInfo 在 VkGraphicsPipelineCreateInfo::pVertexInputState的pNext链中创建的,VkPipelineVertexInputDivisorStateCreateInfo::pVertexBindingDivisors的任何成员在divisor中的值不是1,并且 VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance为VK_FALSE,则firstInstance必须为0 -
VUID-vkCmdDrawIndirectByteCountEXT-None-09462
如果使用着色器对象进行绘制,或者绑定的图形管线状态启用了VK_DYNAMIC_STATE_VERTEX_INPUT_EXT动态状态,则 vkCmdSetVertexInputEXT 调用中设置此动态状态的pVertexBindingDescriptions参数的任何成员在divisor中的值不是1,并且 VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance为VK_FALSE,则firstInstance必须为0
-
VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287
VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback必须 启用。 -
VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288
实现必须支持VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw。 -
VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-02289
vertexStride必须 大于 0 且小于或等于VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataStride。 -
VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567
如果counterBuffer是非稀疏的,则它必须完全且连续地绑定到单个VkDeviceMemory对象。 -
VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290
counterBuffer必须已使用设置的VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT位创建。 -
VUID-vkCmdDrawIndirectByteCountEXT-counterBufferOffset-04568
counterBufferOffset必须是4的倍数。 -
VUID-vkCmdDrawIndirectByteCountEXT-counterOffset-09474
counterOffset必须是4的倍数。 -
VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-09475
vertexStride必须是4的倍数。 -
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646
commandBuffer必须 不是受保护的命令缓冲区
-
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter
commandBuffer必须 为有效的 VkCommandBuffer 句柄。 -
VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-parameter
counterBuffer必须是有效的 VkBuffer 句柄。 -
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-recording
commandBuffer必须 处于记录状态。 -
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-cmdpool
分配commandBuffer的VkCommandPool必须 支持图形操作。 -
VUID-vkCmdDrawIndirectByteCountEXT-renderpass
此命令必须仅在渲染通道实例内部调用 -
VUID-vkCmdDrawIndirectByteCountEXT-videocoding
此命令必须仅在视频编码范围之外调用。 -
VUID-vkCmdDrawIndirectByteCountEXT-commonparent
commandBuffer和counterBuffer都必须是由同一个 VkDevice 创建、分配或检索的。
-
对
commandBuffer的主机访问必须进行外部同步。 -
对分配
commandBuffer的VkCommandPool的主机访问必须进行外部同步。