1// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry 2.Valid Usage (Implicit) 3**** 4* [[VUID-vkCmdPushConstants-commandBuffer-parameter]] pname:commandBuffer must: be a valid sname:VkCommandBuffer handle 5* [[VUID-vkCmdPushConstants-layout-parameter]] pname:layout must: be a valid sname:VkPipelineLayout handle 6* [[VUID-vkCmdPushConstants-stageFlags-parameter]] pname:stageFlags must: be a valid combination of elink:VkShaderStageFlagBits values 7* [[VUID-vkCmdPushConstants-stageFlags-requiredbitmask]] pname:stageFlags must: not be `0` 8* [[VUID-vkCmdPushConstants-pValues-parameter]] pname:pValues must: be a valid pointer to an array of pname:size bytes 9* [[VUID-vkCmdPushConstants-commandBuffer-recording]] pname:commandBuffer must: be in the <<commandbuffers-lifecycle, recording state>> 10* [[VUID-vkCmdPushConstants-commandBuffer-cmdpool]] The sname:VkCommandPool that pname:commandBuffer was allocated from must: support graphics, or compute operations 11* [[VUID-vkCmdPushConstants-size-arraylength]] pname:size must: be greater than `0` 12* [[VUID-vkCmdPushConstants-commonparent]] Both of pname:commandBuffer, and pname:layout must: have been created, allocated, or retrieved from the same sname:VkDevice 13**** 14 15.Host Synchronization 16**** 17* Host access to pname:commandBuffer must: be externally synchronized 18* Host access to the sname:VkCommandPool that pname:commandBuffer was allocated from must: be externally synchronized 19**** 20 21.Command Properties 22**** 23[options="header", width="100%"] 24|==== 25|<<VkCommandBufferLevel,Command Buffer Levels>>|<<vkCmdBeginRenderPass,Render Pass Scope>>|<<VkQueueFlagBits,Supported Queue Types>>|<<synchronization-pipeline-stages-types,Pipeline Type>> 26|Primary + 27Secondary|Both|Graphics + 28Compute| 29|==== 30**** 31 32