5.6. 次级命令缓冲区的执行
次命令缓冲区必须不能直接被提交到队列。相反,需要被记录到主命令缓冲区的一部分来被执行:
void vkCmdExecuteCommands(
VkCommandBuffer commandBuffer,
uint32_t commandBufferCount,
const VkCommandBuffer* pCommandBuffers);
-
commandBuffer
是主命令缓冲区,次命令缓冲区在它里面执行。 -
commandBufferCount
是pCommandBuffers
数组的大小。 -
pCommandBuffers
是次命令缓冲区handle的数组,按照在数组中的位置被提交到主命令缓冲区中被记录、执行。
一旦vkCmdExecuteCommands
被调用,在任何主命令缓冲区中的由pCommandBuffers
指定的次命令缓冲区之前的任何执行工作都被无效化了, 除非这些次命令缓冲区被记录时带有VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
。