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!!看到文章的大神们,如果不对的话,求指点。。。
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!!看到文章的大神们,如果不对的话,求指点。。。
相关文章推荐
- tab切换(js+css)
- Delete Node in a Linked List
- Fedoera 20 安装 samba 服务器.md
- angular入门
- 如何使用NSFetchedResultsController-备
- javascript 面向对像(二)
- JavaScript编码解码
- Android React-Native系列之<一>零基础搭建React-Native开发环境
- 前端开发——滚滚屏(没有纵向滚动条)
- 前端渣渣记录一
- 学习html心得
- 用JS实现下拉选单的联动
- html转义字符
- nodejs(一)
- a毛 jquery 学习记 3 常规选择器(3)
- 前端知识-原生Ajax理解
- 富文本编辑器ckeditor的使用
- css记录
- 让你分分钟学会 JS 闭包
- 设计师必看的10个HTML5动画工具