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(在能力方面)。