跳转到主要内容

Vulkan的分层设计

demi 提交于

Vulkan驱动层提供了简单高效的API。作为Vulkan API的使用者,我们要严格遵循Vulkan API的使用规则。如果我们违反了这些规则,Vulkan只会返回很少的反馈,它只会报告一部分严重和重要的错误,比如内存不够啦、指针越界啦等等。

如果我们想获取其他更多的错误提示信息怎么办?

这就需要启用Vulkan 的“调试验证层"。 调试验证层由多个层组成的,可以根据需要搭配,比如内存使用情况、输入参数验证、对象生命周期检查等等。开启越多的调试和验证功能,就意味着程序会越慢。这些功能在程序调试和查找bug的时候非常有用,但在程序正式发布的时候,最好默认还是禁用。

<font size="4" style="line-height: 45px;" color="#c200ff"><strong>Vulkan的分层</strong></font>

<ul><li>应用层 - 必选
&nbsp; — &nbsp; 应用程序,或者基于Vulkan的显示引擎</li>

<li>加载层 - 可配置
&nbsp; — &nbsp; SDK会自带默认的loader实现,但用户也可以自己实现加载层。</li>

<li>调试/验证层 - 可选
&nbsp; — &nbsp; 输入参数验证
&nbsp; — &nbsp; 引用对象计数
&nbsp; — &nbsp; 性能跟踪
&nbsp; — &nbsp; 调试
&nbsp; — &nbsp; 线程安全
&nbsp; — &nbsp; ……</li>

<li>驱动层 - 必选
&nbsp; — &nbsp; Vulkan核心实现</li></ul>

<font size="4" style="line-height: 45px;" color="#c200ff"><strong>分层的优点</strong></font>

<ul><li>简洁
&nbsp; — &nbsp; 驱动层只专注核心功能的实现</li>

<li>高效
&nbsp; — &nbsp; 大量的调试和验证功能由应用层控制,驱动层执行效率高</li>

<li>扩展强
&nbsp; — &nbsp; 除了驱动层,其他的部分用户都可以自己扩展。比如实现个录制回放功能也变的很容易。</li></ul>

版权声明:本文为CSDN博主「力为」的原创文章,
遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mythma/article/details/51372041