1// Copyright 2019-2023 The Khronos Group Inc.
2//
3// SPDX-License-Identifier: CC-BY-4.0
4
5// Common Valid Usage
6// common to all pipeline creations
7ifndef::VKSC_VERSION_1_0[]
8  * [[VUID-{refpage}-flags-07984]]
9    If pname:flags contains the ename:VK_PIPELINE_CREATE_DERIVATIVE_BIT
10    flag, and pname:basePipelineIndex is -1, pname:basePipelineHandle must:
11    be a valid {pipelineType} sname:VkPipeline handle
12  * [[VUID-{refpage}-flags-07985]]
13    If pname:flags contains the ename:VK_PIPELINE_CREATE_DERIVATIVE_BIT
14    flag, and pname:basePipelineHandle is dlink:VK_NULL_HANDLE,
15    pname:basePipelineIndex must: be a valid index into the calling
16    command's pname:pCreateInfos parameter
17  * [[VUID-{refpage}-flags-07986]]
18    If pname:flags contains the ename:VK_PIPELINE_CREATE_DERIVATIVE_BIT
19    flag, pname:basePipelineIndex must: be -1 or pname:basePipelineHandle
20    must: be dlink:VK_NULL_HANDLE
21endif::VKSC_VERSION_1_0[]
22ifdef::VKSC_VERSION_1_0[]
23  * [[VUID-{refpage}-basePipelineHandle-05024]]
24    pname:basePipelineHandle must: be dlink:VK_NULL_HANDLE
25  * [[VUID-{refpage}-basePipelineIndex-05025]]
26    pname:basePipelineIndex must: be zero
27endif::VKSC_VERSION_1_0[]
28  * [[VUID-{refpage}-layout-07987]]
29    If a push constant block is declared in a shader, a push constant range
30    in pname:layout must: match both the shader stage and range
31  * [[VUID-{refpage}-layout-07988]]
32    If a <<interfaces-resources,resource variables>> is declared in a
33    shader, a descriptor slot in pname:layout must: match the shader stage
34ifndef::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[]
35  * [[VUID-{refpage}-layout-07989]]
36    If a <<interfaces-resources,resource variables>> is declared in a
37    shader, a descriptor slot in pname:layout must: match the descriptor
38    type
39endif::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[]
40ifdef::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[]
41  * [[VUID-{refpage}-layout-07990]]
42    If a <<interfaces-resources,resource variables>> is declared in a
43    shader, and the descriptor type is not
44    ename:VK_DESCRIPTOR_TYPE_MUTABLE_EXT, a descriptor slot in pname:layout
45    must: match the descriptor type
46endif::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[]
47  * [[VUID-{refpage}-layout-07991]]
48    If a <<interfaces-resources,resource variables>> is declared in a shader
49    as an array, a descriptor slot in pname:layout must: match the
50    descriptor count
51// Common Valid Usage
52