1// Copyright 2020-2024 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5// Common Valid Usage 6// Common to vkCmdPushConstants* commands 7 * [[VUID-{refpage}-offset-01795]] 8 For each byte in the range specified by pname:offset and pname:size and 9 for each shader stage in pname:stageFlags, there must: be a push 10 constant range in pname:layout that includes that byte and that stage 11 * [[VUID-{refpage}-offset-01796]] 12 For each byte in the range specified by pname:offset and pname:size and 13 for each push constant range that overlaps that byte, pname:stageFlags 14 must: include all stages in that push constant range's 15 slink:VkPushConstantRange::pname:stageFlags 16 * [[VUID-{refpage}-offset-00368]] 17 pname:offset must: be a multiple of `4` 18 * [[VUID-{refpage}-size-00369]] 19 pname:size must: be a multiple of `4` 20 * [[VUID-{refpage}-offset-00370]] 21 pname:offset must: be less than 22 sname:VkPhysicalDeviceLimits::pname:maxPushConstantsSize 23 * [[VUID-{refpage}-size-00371]] 24 pname:size must: be less than or equal to 25 sname:VkPhysicalDeviceLimits::pname:maxPushConstantsSize minus 26 pname:offset 27// Common Valid Usage 28