android Vulkan 图形新特性研究

Vulkan作为OpenGL的后续产品,提供了一个底层跨平台的3D图像和运算API,旨在减少CPU开销并提高设备一致性。与OpenGL相比,Vulkan拥有更简单的驱动结构,支持分层架构,允许按需加载错误检测和调试信息。此外,它处理SPIR-V中间代码以优化shader编译,同时为移动、桌面和嵌入式设备提供统一的API。Vulkan将内存管理等任务交给应用程序,专注于提供GPU功能,从而实现更高的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 简介

Vulkan 最早是由科纳斯组织(Khronos Group)在 2015 年的游戏开发者大会 (GDC)上提出来的,这是底层跨平台的 3D 图像及运算应用程序接口(API),其被 视作是 OpenGL 的后续产品。它可在不同的操作系统(比如 Windows、Linux 或 Android)上使用。Vulkan 与 OpenGL 之间有相似之处,包括图形管道阶段、OpenGL 着色器(一定程度上),或命名。

Vulkan 支持的操作系统包括:Linux, Windows XP to Windows 10, android 等。Vulkan 还可以支持主流的 GPU,包括:AMD, NVIDIA, Adreno, PowerVR, Mali 等桌面 GPU 和移动 GPU。这点与微软的 DirectX 和苹果的 Metal 标准是不同的, 微软的 DirectX 只需要运行在 windows 平台,而苹果的 Metal 也只需要运行在自 己的平台上面

2. OpenGL Vulkan 比较


a. OpenGL/OpenGLES 特性: 
► OpenGL 驱动是一个庞大的接口层,应用不是直接的访问 GPU 的资源,
而必须要按照 OpenGL 接口的方法去访问这带来了如下问题:复杂的 驱动导致过度的 CPU 开销,以及设备运行的不可预测性。这意味着 应用不能预测某个接口调用开销,也就无法优化代码的运行。 
► 驱动总是开启错误检测,增加了额外的 CPU 开销。事实上如果应用自己做了错误检查,那么驱动就没必要再做一遍。 
► 驱动需要编译链接整个 shader 代码,这在应用启动时会占用更多的初始化时间。 
► 桌面系统和移动系统使用不一样的 API 接口,OpenGL ES 被广泛应用于移动设备中,但是在桌面系统上面还是使用 OpenGL,这使得应用 没法方便的跨平台开发。 
b. Vulkan 特性: 
► 更加简单的驱动结构,使得开销更小和更好的设备一致性。 
► 提供分层架构,使得驱动执行时的正确性验证和调试信息可以按需加载。在良好验证的应用情况下,可以节省掉错误检测和调试代码 执行的开销。 
► Vulkan 运行时不需要处理整个 shader 代码,而是处理 SPIR-V 中间代码。这可以节省 shader 编译链接的时间。 
► 为移动平台,桌面系统以及嵌入式设备提供统一的 API。 
► Vulkan 不负责内存的管理,多线程的管理和并发访问保护,把这些工作转移给应用程序去负责,而 Vulkan 只需要专注于提供 GPU 的功 能给应用。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值