Vulkan 的功能

Vulkan 可用于开发许多用例的应用程序。虽然 Vulkan 应用程序可以选择使用下面描述的功能的子集,但它的设计目标是使开发人员可以在单个 API 中使用所有这些功能。

重要的是要理解 Vulkan 是一个工具箱,并且有多种方法可以完成一项任务。

图形

2D 和 3D 图形主要是 Vulkan API 设计的目的。Vulkan 的设计目标是允许开发人员创建硬件加速的图形应用程序。

所有 Vulkan 实现都必须支持图形,但 WSI 系统不是必需的。

计算

由于 GPU 的并行特性,一种称为 GPGPU 的新型编程风格可以被用来利用 GPU 进行计算任务。Vulkan 支持 VkQueuesVkPipelines 等计算变体,这些变体允许将 Vulkan 用于通用计算。

所有 Vulkan 实现都必须支持计算。

光线追踪

光线追踪是一种替代渲染技术,它基于模拟光的物理行为的概念。

在 1.2.162 规范中,跨供应商的 API 光线追踪支持已作为一组扩展添加到 Vulkan 中。这些主要是 VK_KHR_ray_tracing_pipelineVK_KHR_ray_queryVK_KHR_acceleration_structure

还有一个较旧的 NVIDIA 供应商扩展,它公开了 Vulkan 上光线追踪的实现。此扩展早于跨供应商扩展。对于新的开发,建议应用程序首选较新的 KHR 扩展。

视频

通过 Vulkan 视频扩展,开发人员可以实时使用硬件加速的视频解码功能。该功能通过 VK_KHR_video_queueVK_KHR_video_decode_queueVK_KHR_video_decode_h264VK_KHR_video_decode_h265 扩展公开。

Vulkan 视频遵循 Vulkan 的理念,即为应用程序提供对视频处理调度、同步和内存利用的灵活、细粒度的控制。

用于编码视频的临时扩展已经在开发中,欢迎 反馈

机器学习

目前,Vulkan 工作组正在研究如何使 Vulkan 成为公开现代 GPU 的 ML 计算功能的一流 API。在 Siggraph 2019 上宣布了更多信息。

截至目前,尚无用于机器学习的公共 Vulkan API。

安全关键

Vulkan SC(“安全关键”)旨在将现代 GPU 的图形和计算功能引入汽车、航空电子、工业和医疗领域的安全关键系统。它于2022 年 3 月 1 日公开发布,并且该规范可在此处获取

Vulkan SC 基于 Vulkan 1.2,但删除了安全关键市场不需要的功能,通过消除忽略的参数和未定义的行为来提高规范的鲁棒性,并支持增强的运行时故障检测、报告和纠正。