Vulkan的分层设计
2016-05-11 10:09
357 查看
Vulkan驱动层提供了简单高效的API。作为Vulkan API的使用者,我们要严格遵循Vulkan API的使用规则。如果我们违反了这些规则,Vulkan只会返回很少的反馈,它只会报告一部分严重和重要的错误,比如内存不够啦、指针越界啦等等。如果我们想获取其他更多的错误提示信息怎么办?这就需要启用Vulkan 的“调试验证层"。 调试验证层由多个层组成的,可以根据需要搭配,比如内存使用情况、输入参数验证、对象生命周期检查等等。开启越多的调试和验证功能,就意味着程序会越慢。这些功能在程序调试和查找bug的时候非常有用,但在程序正式发布的时候,最好默认还是禁用。
应用程序,或者基于Vulkan的显示引擎
加载层 - 可配置
SDK会自带默认的loader实现,但用户也可以自己实现加载层。
调试/验证层 - 可选
输入参数验证
引用对象计数
性能跟踪
调试
线程安全
……
驱动层 - 必选
Vulkan核心实现
驱动层只专注核心功能的实现
高效
大量的调试和验证功能由应用层控制,驱动层执行效率高
扩展强
除了驱动层,其他的部分用户都可以自己扩展。比如实现个录制回放功能也变的很容易。
Vulkan的分层
应用层 - 必选应用程序,或者基于Vulkan的显示引擎
加载层 - 可配置
SDK会自带默认的loader实现,但用户也可以自己实现加载层。
调试/验证层 - 可选
输入参数验证
引用对象计数
性能跟踪
调试
线程安全
……
驱动层 - 必选
Vulkan核心实现
分层的优点
简洁驱动层只专注核心功能的实现
高效
大量的调试和验证功能由应用层控制,驱动层执行效率高
扩展强
除了驱动层,其他的部分用户都可以自己扩展。比如实现个录制回放功能也变的很容易。
相关文章推荐
- Vulkan的分层设计
- (八)驱动实践
- (七)运维技术
- 什么是HTTPS?听大神说https和http有何区别?
- 如何在SQLite中创建自增字段
- [na]二层+tcp/udp数据包格式
- vim创建新的命令
- Eclipse里Tomcat启动贼慢的解决方法
- AsyncTask执行缓慢的原因分析
- Eclipse的switch workspace 选项中删除多余的workspace
- mysql-省市区县-中华人民共和国统计局-最新行政区域划分-有需要其他的格式的,留下联系方式
- 剑指offer之面试题13在O(1)时间删除链表结点
- typedef和#define的简单比较
- js读取并解析excel文件,之后上传json到服务器
- 机器学习进行中
- 添加pch文件
- 周围区域问题
- 加监听器,单选复选按钮
- C语言变量的作用范围
- (译)java NIO 示例代码