Vulkan Cookbook 第三章 命令缓冲区和同步

命令缓冲区和同步

在本章中,我们将介绍以下内容:

创建命令池
分配命令缓冲区
开始命令缓冲区记录操作
结束命令缓冲区记录操作
重置命令缓冲区
重置命令池
创建信号量
创建围栏
等待围栏
重置围栏
将命令缓冲区提交到队列
同步两个命令缓冲区
检查提交的命令缓冲区的处理是否已完成
等待直到提交到队列的所有命令都完成
等待所有提交的命令完成
销毁围栏
摧毁信号量
释放命令缓冲区
销毁命令池

介绍

像Vulkan这样的低级API使我们对硬件的控制比类似OpenGL的更高级别的API更多。它提供更细粒度控制,因为我们明确指定了哪些命令发送到硬件,如何以及何时发送。为此引入了命令缓冲区;这是Vulkan API向开发人员公开的最重要的对象之一。它允许我们记录命令并将其提交给处理它们的硬件。更重要的是,我们可以将它们记录在多个线程中,不像OpenGL这样的高级API,不仅命令记录在单个线程中,而且它们由驱动程序隐式记录并发送到硬件而无需开发人员的任何控制。 Vulkan还允许我们重用现有的命令缓冲区,从而节省了额外的处理时间。这一切都为我们提供了更多的灵活性,但也承担了更多的责任。
因此,我们不仅需要控制提交的操作,还需要控制何时提交。特别是当某些操作依赖于其他操作的结果时,我们需要格外小心并正确同步提交的命令。为此,引入了信号量和围栏。
在本章中,我们将学习如何分配,记录和提交命令缓冲区,如何创建同步原语并使用它们来控制提交命令,如何在GPU内部同步命令缓冲区,以及如何同步应用程序与硬件处理工作。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值