Vulkan的分层设计

Posted 力为

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vulkan的分层设计相关的知识,希望对你有一定的参考价值。


Vulkan驱动层提供了简单高效的API。 作为Vulkan API的使用者,我们要严格遵循Vulkan API的使用规则。如果我们违反了这些规则,Vulkan只会返回很少的反馈,它只会报告一部分严重和重要的错误,比如内存不够啦、指针越界啦等等。 如果我们想获取其他更多的错误提示信息怎么办? 这就需要启用Vulkan 的“调试验证层"。 调试验证层由多个层组成的,可以根据需要搭配,比如内存使用情况、输入参数验证、对象生命周期检查等等。开启越多的调试和验证功能,就意味着程序会越慢。这些功能在程序调试和查找bug的时候非常有用,但在程序正式发布的时候,最好默认还是禁用。

Vulkan的分层


  • 应用层 - 必选
    • 应用程序,或者基于Vulkan的显示引擎
  • 加载层 - 可配置
    • SDK会自带默认的loader实现,但用户也可以自己实现加载层。
  • 调试/验证层 - 可选
    • 输入参数验证
    • 引用对象计数
    • 性能跟踪
    • 调试
    • 线程安全
    • ……
  • 驱动层 - 必选
    • Vulkan核心实现

分层的优点

  • 简洁
    • 驱动层只专注核心功能的实现
  • 高效
    • 大量的调试和验证功能由应用层控制,驱动层执行效率高
  • 扩展强
    • 除了驱动层,其他的部分用户都可以自己扩展。比如实现个录制回放功能也变的很容易。

以上是关于Vulkan的分层设计的主要内容,如果未能解决你的问题,请参考以下文章

使用 Vulkan * API 并行渲染对象

oc渲染器提示着色器失败

分层测试

Vulkan Tutorial 02 编写Vulkan应用程序框架原型

Vulkan Tutorial 02 编写Vulkan应用程序框架原型

Vulkan-专为Android打造的高性能3D图像API (Google开发者大会演讲PPT&视频)