一:Batch 相关 vulkan 接口1. vkCreateCommandPool / vkDestroyCommandPoolvkCreateCommandPool 用来创建一个命令池,用于分配 Vulkan 命令缓冲区;vkDestroyCommandPool 用来销毁这个命令池并释放与之关联的资源。在上下文创建时首次调用,同时也在每次 flush 后重启 batch 时调用。如果当前 ctx-batch.state 为空,则创建 3 个备用的 state。state.cmdpool 会绑定 vkCreateCommandPool 返回的对象。2. vkAllocateCommandBuffer / vkFreeCommandBuffervkAllocateCommandBuffers 从命令池分配一个或多个命令缓冲区,vkFreeCommandBuffers 则将这些命令缓冲区返回给命令池并释放它们。同上, state.cmdbuf 会绑定 vkAllocateCommandBuffer 返回的对象。3. vkResetCommandPoolvkResetCommandPool 用来重置命令池,回收该池中已分配的命令缓冲区状态,使它们可以重新录制或重新分配。调用逻辑同上。4. vkBeginCommandBuffer / vkEndCommandBuffer开始录制 GPU 命令 / 结束录制。调用逻辑同上。5. vkQueueSubmit向GPU提交命