您的位置:首页 > Web前端

Vulkan Cmd buffer

2016-04-05 23:18 134 查看
Vulkan 3 - Command buffers

Vulkan 中的其中一个重要的操作对象,命令缓存区,用来记录各种各样的命令的。

每组命令缓存区都有自己的状态,这个状态是不被继承的,状态包括:初始状态、记录状态、执行状态。

Cmd buffer的的存储资源是从cmd pools里申请的,(需要注意的cmd pools 不能多线程公用)。所以,在使用cmd buffer 之前必须 create a cmd pool!

申请好cmd buffer 之后,将Cmdbuffer设置为record 状态,将cmd buffer 提交到对应的队列中,做这个动作的时候要注意,在提交的时候,应用程序不能对队列做任何操作。同时需要注意同步的semaphore 和event的问题。

以上是生硬翻译spec, 也没有细读,问题来了: 做了这么多的cmd buffer 的操作,那么命令是怎么何时填到cmd buffer里去的呢。。。

我的理解是:先把cmd buffer 申请好,并绑定到对应的队列中,然后等到具体命令来的时候,调用vkCmdFillBuffer 把具体的命令填到buffer里面, Done!

Bravo!!看到文章的大神们,如果不对的话,求指点。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: