Vulkan-Docs/doc/specs/vulkan/man/vkCmdExecuteCommands.txt

65 lines
2.3 KiB
Plaintext
Raw Normal View History

2016-02-16 09:53:44 +00:00
vkCmdExecuteCommands(3)
=======================
Name
----
vkCmdExecuteCommands - Execute a secondary command buffer from a primary command buffer.
C Specification
---------------
include::../protos/vkCmdExecuteCommands.txt[]
Parameters
----------
pname:commandBuffer::
The primary command buffer from which to call the secondary command buffers.
pname:commandBuffersCount::
Length of the pCommandBuffers array.
pname:pCommandBuffers::
An array of secondary command buffer handles.
Description
-----------
fname:vkCmdExecuteCommands executes the contents of the secondary command buffers,
in the order they appear in the pname:pCommandBuffers array.
If any of the secondary command buffers contains commands that may only be
executed inside a renderpass, then they may only be executed between calls
to flink:vkCmdBeginRenderPass and flink:vkCmdEndRenderPass and the active
renderpass must have a elink:VkSubpassContents property of
ename:VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS. The pname:commandBuffer
argument must be a primary command buffer. The renderpass and
framebuffer provided when beginning the secondary command buffer must
match the sname:VkRenderPass and sname:VkFramebuffer provided to
fname:vkCmdBeginRenderPass.
If a secondary command buffer was not recorded with the
ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT usage, then only a single
call to the secondary command buffer may exist in any primary command buffer
at one time. If this usage bit is clear, then the secondary command buffer
may be called multiple times from the same or multiple primary command buffers.
A secondary command buffer must be finished recording, via
fname:vkEndCommandBuffer, before it can be referenced in a call to
fname:vkCmdExecuteCommands. It must not be reset or destroyed before primary
command buffers referencing it have completed executing.
A secondary command buffer can safely be passed to multiple
fname:vkCmdExecuteCommands (affecting different primary command buffers)
simultaneously, only if it was recorded with the
ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag.
include::../validity/protos/vkCmdExecuteCommands.txt[]
See Also
--------
flink:vkAllocateCommandBuffers, flink:vkFreeCommandBuffers, flink:vkCmdBeginRenderPass, flink:vkCmdEndRenderPass
include::footer.txt[]