1// Copyright 2019-2024 The Khronos Group Inc.
2//
3// SPDX-License-Identifier: CC-BY-4.0
4
5// Common Valid Usage
6// Common to all drawing commands that have a firstInstance parameter.  For
7// indirect commands, these VUs pertain to VkDrawIndirectCommand.
8
9ifdef::VK_KHR_vertex_attribute_divisor[]
10  * [[VUID-{refpage}-pNext-09461]]
11    If the bound graphics pipeline state was created with
12    slink:VkPipelineVertexInputDivisorStateCreateInfoKHR in the pname:pNext
13    chain of slink:VkGraphicsPipelineCreateInfo::pname:pVertexInputState,
14    any member of
15    slink:VkPipelineVertexInputDivisorStateCreateInfoKHR::pname:pVertexBindingDivisors
16    has a value other than `1` in pname:divisor, and
17    slink:VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::pname:supportsNonZeroFirstInstance
18    is ename:VK_FALSE, then pname:firstInstance must: be `0`
19  * [[VUID-{refpage}-None-09462]]
20    If
21ifdef::VK_EXT_shader_object[]
22    <<shaders-objects, shader objects>> are used for drawing or
23endif::VK_EXT_shader_object[]
24    the bound graphics pipeline state was created with the
25    ename:VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any
26    member of the pname:pVertexBindingDescriptions parameter to the
27    flink:vkCmdSetVertexInputEXT call that sets this dynamic state has a
28    value other than `1` in pname:divisor, and
29    slink:VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR::pname:supportsNonZeroFirstInstance
30    is ename:VK_FALSE, then pname:firstInstance must: be `0`
31endif::VK_KHR_vertex_attribute_divisor[]
32
33// Common Valid Usage
34