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 pipeline creations 7ifndef::VKSC_VERSION_1_0[] 8 * [[VUID-{refpage}-None-09497]] 9 {empty} 10ifdef::VK_KHR_maintenance5[] 11 If the pname:pNext chain does not include a 12 slink:VkPipelineCreateFlags2CreateInfoKHR structure, 13endif::VK_KHR_maintenance5[] 14 pname:flags must be a valid combination of 15 elink:VkPipelineCreateFlagBits values 16 * [[VUID-{refpage}-flags-07984]] 17 If pname:flags contains the ename:VK_PIPELINE_CREATE_DERIVATIVE_BIT 18 flag, and pname:basePipelineIndex is -1, pname:basePipelineHandle must: 19 be a valid {pipelineType} sname:VkPipeline handle 20 * [[VUID-{refpage}-flags-07985]] 21 If pname:flags contains the ename:VK_PIPELINE_CREATE_DERIVATIVE_BIT 22 flag, and pname:basePipelineHandle is dlink:VK_NULL_HANDLE, 23 pname:basePipelineIndex must: be a valid index into the calling 24 command's pname:pCreateInfos parameter 25 * [[VUID-{refpage}-flags-07986]] 26 If pname:flags contains the ename:VK_PIPELINE_CREATE_DERIVATIVE_BIT 27 flag, pname:basePipelineIndex must: be -1 or pname:basePipelineHandle 28 must: be dlink:VK_NULL_HANDLE 29endif::VKSC_VERSION_1_0[] 30ifdef::VKSC_VERSION_1_0[] 31 * [[VUID-{refpage}-basePipelineHandle-05024]] 32 pname:basePipelineHandle must: be dlink:VK_NULL_HANDLE 33 * [[VUID-{refpage}-basePipelineIndex-05025]] 34 pname:basePipelineIndex must: be zero 35endif::VKSC_VERSION_1_0[] 36 * [[VUID-{refpage}-layout-07987]] 37 If a push constant block is declared in a shader, a push constant range 38 in pname:layout must: match both the shader stage and range 39 * [[VUID-{refpage}-layout-07988]] 40 If a <<interfaces-resources,resource variables>> is declared in a 41 shader, a descriptor slot in pname:layout must: match the shader stage 42 * [[VUID-{refpage}-layout-07990]] 43 If a <<interfaces-resources,resource variables>> is declared in a 44 shader, 45ifdef::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[] 46 and the descriptor type is not ename:VK_DESCRIPTOR_TYPE_MUTABLE_EXT, 47endif::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[] 48 a descriptor slot in pname:layout must: match the descriptor type 49 * [[VUID-{refpage}-layout-07991]] 50 If a <<interfaces-resources,resource variables>> is declared in a shader 51 as an array, a descriptor slot in pname:layout must: match the 52 descriptor count 53// Common Valid Usage 54