Vulkan是一个低开销、跨平台的二维、三维图形与计算的应用程序接口(API),最早由科纳斯组织在2015年游戏开发者大会(GDC)上发表。与OpenGL类似,Vulkan针对全平台即时3D图形程序(如电子游戏和交互媒体)而设计,并提供高性能与更均衡的CPU与GPU占用,这也是Direct3D 12和AMD的Mantle的目标。与Direct3D(12版之前)和OpenGL的其他主要区别是,Vulkan是一个底层API,而且能执行并行任务。除此之外,Vulkan还能更好地分配多个CPU核心的使用。
科纳斯最先把Vulkan API称为“次世代OpenGL行动”(next generation OpenGL initiative)或“glNext”,但在正式宣布Vulkan之后这些名字就没有再使用了。Vulkan基于Mantle构建,AMD将其Mantle API捐赠给科纳斯组织,给予该组织开发底层API的基础,使其像OpenGL一样成为行业标准。
Vulkan旨在提供更低的CPU开销与更直接的GPU控制,其理念大致与Direct3D 12和Mantle类似。
以下是Vulkan相对于上一代API的优势:
英伟达指出,由于OpenGL的复杂度和维护难度比Vulkan低很多,在多数情况下也能提供理想的整体性能,现阶段OpenGL仍是个很好的选择。AMD表示, Vulkan支持Close-To-Metal控制的独特能力可加快跨 Windows和 Linux的性能并且提高影像质量。现今无其他图形 API 提供如此强大的操作系统兼容性、成像功能和硬件效率组合 。 例如,CPU中包含的集成GPU可与高端专用GPU结合使用,以略微提高性能。
科纳斯在SIGGRAPH2016上宣布Vulkan将支持自动多GPU功能,类似于Direct3D 12所提供的功能 ,显示驱动程序不再需要处理多个GPU的使用,相反,两个或更多完全不同的GPU之间可以智能地分配工作负载。
科纳斯于2018年3月7日发布了Vulkan 1.1 。它扩展了几个核心功能,包括子集操作,例如多视图、设备组、高级渲染和编辑操作程序跨流程API交互操作。这些核心功能还包括16位内存获取高级计算,HLSL内存分布支持,视频流的显示,处理和编程,通过许多视频编辑解码器生成的YCbcRr颜色格式化纹理的直接抽样。同时,它还带来了与DirectX 12的更好兼容性,显式支持多GPU,光线跟踪支持,为下一代GPU奠定了基础。
2020年1月15日,科纳斯组织发布了Vulkan 1.2,将23个已经通过验证的扩展集成到基本Vulkan标准中,大部分用来帮助提升Vulkan与其他图形API之间的兼容层性能。
科纳斯在SIGGRAPH 2016上宣布,Vulkan将提供类似于Direct3D 12的多卡互联功能。通过Vulkan,不同型号的显卡也能协同工作,而无需NVIDIA SLI或AMD Crossfire的支持。Vulkan多卡互联功能允许API在多个不同的显卡之间智能分配负载,例如,CPU上的集成显卡与高端独立显卡协同工作,能够略微提升显示性能。
在OpenCL 2.2规范发布时,科纳斯宣布OpenCL将在未来融入Vulkan。
2014年6月,科纳斯组织开始了“次世代OpenGL”图形API的计划,并在Valve公司举行项目启动会议。在SIGGRAPH 2014上,项目公之于世。2015年2月19日,Vulkan的商标在美国专利及商标局提交。
2015年早些时候,LunarG(英语:LunarG)(由Valve资助)开发并展示了一款支持Vulkan API的Intel HD Graphics 4000系列Linux驱动程序,不过当时的Mesa开源驱动并不完全兼容OpenGL 4.0。
2016年2月16日,科纳斯组织发布了Vulkan 1.0版规范与开源软件开发工具包(SDK)。
Vulkan视窗系统接口(Window System Interface,WSI)的作用类似于OpenGL ES的EGL(英语:EGL)。EGL能使OpenGL ES程序跟原生视窗系统相通,并控制上下文管理(英语:Context management)、缓冲器绑定与渲染同步等。
初版Vulkan规范指出,Vulkan能在支持OpenGL ES 3.1或OpenGL 4.x及更高版本的显卡上运行。但Vulkan API本身依赖于新版显卡驱动程序,而且并非所有符合Vulkan规范的显卡都能收到厂商提供的驱动程序更新。
2016年8月22日,Google发布的Android Nougat(Android 7.x)提供对Vulkan的支持。
苹果公司没有对iOS和macOS提供官方Vulkan支持,而Molten公司开发的MoltenVK运行于苹果Metal API,提供Vulkan第三方支持。