什么是Vulkan,它与OpenGL有何不同?


150

Khronos Group(OpenGL背后的标准机构)刚刚宣布Vulkan

Vulkan是新一代的开放标准API,可在现代GPU上高效访问图形和计算。这种基础设计(以前称为“下一代OpenGL计划”)可为应用程序提供对GPU加速的直接控制,以实现最佳性能和可预测性。

他们的页面颇具市场色彩 / 专业术语,就像新闻稿一样 ……简单来说,Vulkan对游戏开发者意味着什么?(Gabe Newell对此表示强烈支持,无需进一步解释。)

Vulkan与OpenGL的确切关系是什么?它的先前名称“ glNext”(“下一代OpenGL计划”的缩写)听起来像是替代品。


更新:Vulkan 1.0规范于2016年2月16日发布。


3
Qo'noS和Vulcan ...
IllidanS4 2015年

14
翻译给不懂星际迷航漂移的人们:KhronosVulkan听起来像Qo'noSVulcan;克林贡族和瓦肯族种族的祖国星球。Spock(一个非常受欢迎的角色)的演员伦纳德·尼莫伊Leonard Nimoy)最近于2015年2月27日去世,因此有很多人猜测这个名字是致敬的。然而,这是巧合:福尔康商标申请已于2015年2月19日提交; 在尼莫伊死之前。
Anko 2015年

7
同样地幔->熔岩->火山-> Vulkan。
jmegaffin 2015年

1
@Boreal Vulkan ==多种语言的火山(德语,俄语(为cyr调整)等)。所以它是幔子->熔岩->
沃肯

Answers:


118

Vulkan是通过传统GPU用于硬件加速图形(和通用计算)的新API。OpenGL将继续被开发,因为它是比Vulkan预期的更高级别的API。最初被称为“ glNext”,可以推断Vulkan最终可能会成为“ OpenGL 5”,但是标准机构最终决定改用新名称,以更好地与API所声称的相对较新的名称相符。 OpenGL范例。

Vulkan 对游戏开发者的实际优势主要在于控制(例如,允许更多控制,可能会以开发者方面的大量前期工作为代价进行更好的优化)。特别:

  • 该API围绕跨多个线程异步生成命令缓冲区以及将这些缓冲区顺序处理到命令管道而定。这反映了现代硬件的现实。当今,大多数基于OpenGL的高端和/或高性能软件都自行实现了这种行为。有了API本身就支持它,这意味着开发人员无需自己实现和维护该框架,也可以减少工作量。
  • 线程和内存管理任务留给了应用程序,而不是驱动程序,从而使游戏开发人员可以更好地控制这些行为,从而有可能更准确地根据自己的游戏需求定制这些行为。
  • 验证和诊断层可以独立启用,从理论上讲,它可以更好地与API集成工具(OpenGL本身就遭受了痛苦),并且可以禁用过多的验证,从理论上讲,“ 三级图形 ”的性能更高。
  • 移动版本和桌面版本之间没有硬API区别,从理论上讲,这将简化跨平台游戏的移植,并且如果没有其他措施可以减少所有人讨厌的版本检查难题。

Vulkan的表面结构非常类似于C / OpenGL,(例如,API调用的外观等)。但是,它的类型更好(因为并非所有内容都是空的int;有相关的typedef等)。

它比OpenGL低得多。从D3D9到D3D10的过渡中可以看到,在OpenGL和Vulkan之间操作设置和复杂性将发生跳跃,这将使GPU设备操作的许多底层细节暴露给API客户端。实际上,这种过渡实际上类似于从D3D11到12的过渡,因为D3D12本身是与Vulkan非常相似的API(在能力方面)。


18
可能值得指出的是Vulkan基本上是Mantle的一个高度重复的版本:community.amd.com/community/amd-blogs/amd-gaming/blog/2015/03/…API 约定似乎与DSA有点相似OpenGL,但无处不在的gl前缀替换为vkblog.imgtec.com/powervr/…–
jmegaffin

我一直以为是这种情况,但是直到那个链接我才看到任何证据,谢谢。
乔什

3
仅供参考,在Valve在周四的演讲中以及Khronos成员披露更多细节的暂停之后,您将能够用(一些)事实来代替猜测和猜测。
肖恩·米德迪奇

4
考虑到以前着色器使用一种类似于汇编语言的简单语言,然后用一种复杂的语言(GLSL)代替了着色器字节码,这使我觉得有点有趣。
immibis

2
我以为Vulkan和Mantle一样会站在OpenGL旁边进行更多底层访问,而不是完全取代它。到目前为止,至少我已经读过了。还是Vulkan会同时涵盖低层和高层操作?
罗伊·T。

18

详细阐述OpenGL的未来:

OpenGL在每秒绘图调用方面可能达到与Vulkan相当的性能,但还涉及一般的驱动程序开销:


11
实际上,这本身并不是对问题的答案。
MichaelHouse

1

Khronos最近宣布发布了全新的Vulkan API,它将补充(在某些情况下替代)OpenGL和OpenGL ES。Vulkan是一种低开销的API,旨在使代码“更接近金属”,从而提高性能和效率。它基于AMD的Mantle API,最终规格有望在今年晚些时候发布。

在这篇帖子中-Vulkan API的简要概述 -Toptal技术编辑Nermin Hajdarbegovic解释了从长远来看Vulkan可能是一件大事的原因。这可能需要一段时间,但是此跨平台API可以极大地提高某些设备上的3D性能,尤其是数十亿智能手机和平板电脑中使用的多核应用处理器。


2
“ Khronos最近宣布发布了全新的Vulkan API” Um,截至8月18日尚未发布。该术语的任何定义都尚未“发布”。现在是12月8日,但尚未发布。
Nicol Bolas 2015年

2
@NicolBolas-现在。它今天发布了:khronos.org/vulkan
beatgammit
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.