Collabora 宣布推出 NVK,这是 NVIDIA 的开源 Vulkan 驱动程序

NVK

NVK 是用于 NVIDIA 图形硬件的新开源 Vulkan 驱动程序

几天前 Collabora 亮相 通过博客发布新闻 NVK 驱动程序的集成,在 Mesa 项目的主分支中 并且它也将作为实验控制器包含在 Mesa 23.3 版本中。

NVK, 是一个新的开放驱动程序,具有 Vulkan 图形 API 的实现 适用于 NVIDIA 显卡。 该驱动程序是由 Karol Herbst(红帽的 Nouveau 开发人员)、David Airlie(红帽的 DRM 子系统维护人员)和 Jason Ekstrand(Collabora 的活跃 Mesa 开发人员)组成的团队创建的。

关于NVK的发展,提到了这一点 是为了为 Mesa 创建新的参考 Vulkan 驱动程序,创建其他控制器时可以借用其代码。

为此,当我们开发 NVK 驱动程序时,我们会尝试考虑 Vulkan 驱动程序开发中的所有可用经验,保持代码库处于最佳状态,并通过做必须做的事情来最大程度地减少来自其他 Vulkan 驱动程序的代码传输。 以获得最佳和高质量的工作,而不是盲目复制其他驱动程序的工作方式。

值得一提的是,即使控制器 NVK 包含在 Mesa 中,驱动程序开发仍在继续,但并非所有所需功能都已实现。 该驱动程序与Vulkan 1.0 API兼容,但尚未通过所有兼容性测试,并且存在性能问题。 然而,一些游戏已经可以使用新的驱动程序,即使使用 DXVK 层也是如此。

为了使控制器工作 有效地, 需要与 Nouveau DRM 驱动程序 API 扩展相关的 Linux 内核更改。 需要在内核级别更改 API 是因为 Nouveau DRM 驱动程序 API 最初是为了实现 OpenGL 而设计的,缺乏在 Mesa 上高效运行 Vulkan 驱动程序所需的原语。

特别是, 应该添加管理虚拟地址空间的能力, 因为对象缓冲区和虚拟内存分配的操作在 Vulkan 中是分开的。 此外,向 Vulkan 发送命令需要使用同步对象。 目前,包含必要更改的补丁已推送给 Linux 内核 DRM 子系统(直接渲染管理器)的维护者,并且可能会包含在 6.6 内核中。

关于NVK驱动,提到了这个, 是从头开始编写的,因为 这样做的目的是在创建控制器期间,开发人员 使用NVIDIA发布的官方头文件和开放内核模块。 在NVK代码中,有些地方使用了Nouveau OpenGL驱动的基本组件,但由于Nouveau中NVIDIA头文件名和逆向工程名称的差异,直接借用代码很困难,大部分我不得不重新思考很多事情并从头开始实施。

该驱动程序目前仅支持基于 Turing 的 GPU(RTX 20XX 和 GTX 16XX)和较新的微架构(自 2018 年 600 月以来发布的卡)。 未来,他们计划增加对 Kepler 系列 GPU(GeForce 700 和 XNUMX)的支持。

将来, 计划将控制器的性能提高到适当的水平 并实现对 Vulkan 1.3 API 的支持。 从长远来看,NVIDIA 显卡的 NVK 驱动程序预计将达到与 AMD 显卡的 RADV 驱动程序类似的质量和功能水平。

我们还考虑使用 Zink 项目为 NVIDIA 显卡实现完整的 OpenGL 驱动程序,该驱动程序通过 Vulkan API 调用的转换进行工作。

最后,如果你是 有兴趣了解更多,您可以在中查看详细信息 以下链接。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。