Vulkan停止命令缓冲区记录操作

当不需要再将命令记录到命令缓冲区时,应停止记录操作。
具体处理过程
(1)获取处于记录状态(已经启动了记录操作)的命令缓冲区的句柄,将该句柄存储在一个VkCommandBuffer类型的变量中,将该变量命名为command_buffer。
(2)调用vkEndCommandBuffer(command_buffer)函数,将参数设置为command_buffer变量。
(3)通过查明该函数调用操作的返回值等于VK_SUCCESS,确认成功停止了记录操作。
具体运行情况
在vkBeginCommandBuffer()和vkEndCommandBuffer()函数调用语句之间的命令,会被记录到命令缓冲区中。在停止记录操作前,无法提交命令缓冲区。换言之,停止命令缓冲区的记录操作后,就使命令缓冲区切换到了可执行状态,并使之变得能够被提交。
因为需要使记录操作的速度非常快而且对性能的影响非常小,所以记录下来的命令不会报告任何错误。如果其中出现了错误,那么这些错误就是由vkEndCommandBuffer()函数报告的。
因此,当停止命令缓冲区的记录操作时,应确保记录操作成功完成。使用下列代码可以做到这一点。

Vulkan停止命令缓冲区记录操作
如果在记录命令的过程中出现了错误(vkEndCommandBuffer()函数调用操作的返回值不等于VK_SUCCESS),就无法提交这种命令缓冲区并且需要重置它。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!

 

Vulkan实战