Vulkan 是一個低开销、跨平台的二维、三维图形 与计算的應用程式接口 (API),[ 11] 最早由科納斯組織 在2015年游戏开发者大会 (GDC)上發表。[ 12] [ 13] 与OpenGL 类似,Vulkan針對全平台即時3D图形程式(如電子遊戲 和交互媒体 )而設計,并提供高效能与更均衡的CPU 与GPU 占用,這也是Direct3D 12和AMD 的Mantle 的目標。与Direct3D(12版之前)和OpenGL的其他主要区别是,Vulkan是一个底层API,而且能执行并行任务。除此之外,Vulkan还能更好地分配多个CPU核心 的使用。[ 14]
科納斯最先把Vulkan API稱為「次世代OpenGL 行動」(next generation OpenGL initiative)或「glNext 」,但在正式宣佈Vulkan之後這些名字就沒有再使用了。[ 15] Vulkan基于Mantle 构建,AMD将其Mantle API捐赠给科納斯組織,给予该组织开发底层API的基础,使其像OpenGL一样成为行业标准。[ 3] [ 10] [ 16] [ 17] [ 18] [ 19] [ 20]
OpenGL与Vulkan都是图形渲染API,GPU处理着色器 ,而CPU执行其他任务。 Vulkan旨在提供更低的CPU开销与更直接的GPU控制,其理念大致与Direct3D 12和Mantle类似。[ 21]
以下是Vulkan相对于上一代API的优势:[ 22]
英伟达 在2016年时指出,由於OpenGL的复杂度和维护难度比Vulkan低很多,在多数情况下也能提供理想的整体性能,现阶段OpenGL仍是个很好的选择。[ 27] AMD 表示, Vulkan支援Close-To-Metal控制的獨特能力可加快跨 Windows和 Linux的效能並且提高影像品質。現今無其他圖形 API 提供如此強大的作業系統相容性、成像功能和硬體效率組合[ 28] 。 例如,CPU中包含的集成GPU可與高端專用GPU結合使用,以略微提高性能。
科納斯在SIGGRAPH 2016上宣布Vulkan將支持自動多GPU功能,類似於Direct3D 12所提供的功能[ 29] ,顯示驅動程序不再需要處理多個GPU的使用,相反,兩個或更多完全不同的GPU之間可以智能地分配工作負載[ 30] 。
科納斯於2018年3月7日發布了Vulkan 1.1[ 31] 。它擴展了幾個核心功能,包括子集操作,例如多視圖、設備組、高級渲染和編輯操作程序跨流程API交互操作。這些核心功能還包括16位內存獲取高級計算,HLSL內存分佈支持,視頻流的顯示,處理和編程,通過許多視頻編輯解碼器生成的YCbcRr顏色格式化紋理的直接抽樣。同時,它還帶來了與DirectX 12的更好兼容性,顯式支持多GPU,光線跟踪支持[ 32] [ 33] ,為下一代GPU奠定了基礎。[ 34]
2020年1月15日,科納斯組織 發布了Vulkan 1.2,將23個已經通過驗證的擴展集成到基本Vulkan標準中[ 35] ,大部份用來幫助提升Vulkan與其他圖形API之間的兼容層性能。
2022年1月25日,科納斯組織发布了Vulkan 1.3。[ 36] 这次更新将另外23个常用的成熟的Vulkan扩展集成到基本的Vulkan标准中。
科纳斯在SIGGRAPH 2016上宣布,Vulkan将提供类似于Direct3D 12的多卡互联功能。[ 37] 通过Vulkan,不同型号的显卡也能协同工作,而无需NVIDIA SLI 或AMD Crossfire 的支持。Vulkan多卡互联功能允许API在多个不同的显卡之间智能分配负载,例如,CPU上的集成显卡与高端独立显卡协同工作,能够略微提升显示性能。[ 38]
在2017年5月发行OpenCL 2.2之时,Khronos Group宣布OpenCL将尽可能的汇合于Vulkan,以确使OpenCL软件在这两种API上灵活部署[ 39] [ 40] 。这已经由Adobe的Premiere Rush展示出来,它使用clspv开源编译器[ 41] ,编译了大量OpenCL C内核代码,从而在部署于Android的Vulkan运行时系统上运行[ 42] 。
2014年6月,科纳斯组织开始了“次世代OpenGL”图形API的计划,并在Valve公司 举行项目启动会议。[ 43] 在SIGGRAPH 2014上,项目公之于世。[ 10] 2015年2月19日,Vulkan的商标在美国专利及商标局 提交。[ 44]
2015年早些时候,LunarG ( 英语 : LunarG ) (由Valve资助)开发并展示了一款支持Vulkan API的Intel HD Graphics 4000系列Linux驱动程序,不过当时的Mesa开源驱动并不完全兼容OpenGL 4.0。[ 45] [ 46]
2016年2月16日,科纳斯组织发布了Vulkan 1.0版规范与开源软件开发工具包 (SDK)。[ 6]
Vulkan视窗系统 接口(Window System Interface,WSI)的作用类似于OpenGL ES 的EGL ( 英语 : EGL ) 。[ 74] EGL能使OpenGL ES程序跟原生视窗系统相通,并控制上下文管理 ( 英语 : Context management ) 、缓冲器 绑定与渲染 同步等。
初版Vulkan规范指出,Vulkan能在支持OpenGL ES 3.1或OpenGL 4.x及更高版本的显卡上运行。[ 75] 但Vulkan API本身依赖于新版显卡驱动程序,而且并非所有符合Vulkan规范的显卡都能收到厂商提供的驱动程序更新。
2016年8月22日,Google 发布的Android Nougat (Android 7.x)提供对Vulkan的支持。[ 76]
苹果公司没有对iOS和macOS提供官方Vulkan支持,而Molten公司开发的MoltenVK运行于苹果Metal API ,提供Vulkan第三方支持。[ 23]
^ Not dead yet: AMD's Mantle powers new Vulkan API, VR efforts . 2015-03-04 [2015-03-30 ] . (原始内容 存档于2016-04-22)(英语) . ^ Kirsch, Nathan.Is AMD Mantle Dead As We Have Known It? Vulcan API Uses Mantle Technology for OpenGL . Legit Reviews. [2015-06-25 ] . (原始内容 存档于2015-06-26)(英语) . ^3.0 3.1 Shilov, Anton.AMD: Vulkan absorbed 'best and brightest' parts of Mantle . KitGuru. [2015-06-26 ] . (原始内容 存档于2015-06-26)(英语) . ^ Koduri, Raja.On APIs and the future of Mantle . AMD. 2015-03-04 [2015-05-19 ] . (原始内容 存档于2015-05-20)(英语) ....(T)he Khronos Group has selected Mantle to serve as the foundation for Vulkan... ^ Michaud, Scott.GDC 15: Khronos Acknowledges Mantle's Start of Vulkan . PC Perspective. 2015-03-03 [2015-05-19 ] . (原始内容 存档于2015-05-20)(英语) . ^6.0 6.1 Khronos Releases Vulkan 1.0 Specification - Khronos Group Press Release . [2017-02-10 ] . (原始内容 存档于2017-12-15)(英语) . ^ v1.4.312 . 2025年4月4日 [2025年4月6日] . ^ Bright, Peter; Walton, Mark.Vulkan now official, with 1.0 API release and AMD driver [Updated] . United Kingdom: Ars Technica. 2016-02-16 [2016-02-18 ] . (原始内容存档 于2016-02-17)(英国英语) . ^ Valich, Theo.Mantle Cycle is Complete as Khronos Releases Vulkan 1.0 . VR World. 2016-02-17 [2016-02-19 ] . (原始内容 存档于2022-05-11)(英语) . ^10.0 10.1 10.2 More on Vulkan and SPIR - V: The future of high-performance graphics (PDF) . Khronos Group: 10. [2015-06-27 ] . (原始内容 (PDF) 存档于2016-08-11)(英语) . ^ Does Vulkan support 2D graphics? - LunarG . www.lunarg.com. [2017-02-17 ] . (原始内容 存档于2019-05-02)(美国英语) . ^ Vulkan : Graphics and compute Belong Together (PDF) . Khronos.org. March 2015 [2015-03-05 ] . (原始内容 (PDF) 存档于2016-12-18). ^ Vulkan - Graphics and compute belong together . Khronos.org. [2015-03-05 ] . (原始内容 存档于2021-05-09). ^ Next-generation Vulkan API could be Valve's killer advantage in battling Microsoft - ExtremeTech . ExtremeTech. 2015-03-10 [2017-02-17 ] . (原始内容 存档于2015-03-13)(美国英语) . ^ glNext revealed as Vulkan graphics API . 2015-03-03 [2015-03-30 ] . (原始内容存档 于2016-10-14)(英语) . ^ Mantle is a Vulkan: AMD's dead graphics API rises from the ashes in OpenGL's successor . PCWorld. [2017-02-17 ] . (原始内容存档 于2016-11-07)(英语) . ^ AMD Gaming: One of Mantle's Futures: Vulkan | AMD Blogs . Community.amd.com. [2015-03-05 ] . (原始内容 存档于2015-03-06). ^ Not dead yet: AMD's Mantle powers new Vulkan API, VR efforts . ExtremeTech. [2015-03-05 ] . (原始内容 存档于2016-04-22). ^ AMD's Mantle Lives On In Vulkan - Lays The Foundation For The Next OpenGL . Wccftech.com. 2014-06-20 [2015-03-05 ] . (原始内容 存档于2020-08-19). ^ Kirsch, Nathan.Is AMD Mantle Dead As We Have Known It? Vulcan API Uses Mantle Technology for OpenGL . Legit Reviews. [2015-03-05 ] . (原始内容 存档于2015-06-26). ^21.0 21.1 Khronos Group Announces The Next-Generation 'Vulkan' Graphics And Compute API . Tom's Hardware. 2015-03-03 [2017-02-18 ] (英语) . ^ FOSDEM 2016 - Vulkan in Open-Source . Fosdem.org. [2017-03-17 ] . (原始内容 存档于2016-03-09)(英语) . ^23.0 23.1 MoltenVK | Run Vulkan on iOS and OS X . Molten. [2017-02-18 ] . (原始内容 存档于2018-01-05)(美国英语) . ^ Vulkan: High efficiency on mobile - Imagination Technologies . Imagination Technologies. 2015-11-05 [2017-02-18 ] . (原始内容存档 于2015-11-09)(英国英语) . ^ Vulkan: Scaling to multiple threads - Imagination Technologies . Imagination Technologies. 2015-11-24 [2017-02-18 ] . (原始内容 存档于2015-11-26)(英国英语) . ^ Kessenich, John.An Introduction to SPIR-V (PDF) .Khronos Group . [2017-02-18 ] . (原始内容 (PDF) 存档于2015-03-09). ^ Transitioning from OpenGL to Vulkan . NVIDIA Developer. 2016-02-11 [2017-03-17 ] . (原始内容 存档于2020-04-25)(英语) . ^ AMD Vulkan API . AMD. [2020-07-26 ] . (原始内容 存档于2019-07-14). ^ Vulkan Next will bring better support for VR and multiple GPUs . PC World. [2017-03-17 ] . (原始内容 存档于2018-12-06). ^ Smith, Daniel Williams, Ryan.Ashes of the Singularity Revisited: A Beta Look at Direct3D 12 & Asynchronous Shading . AnandTech. [2017-03-17 ] . (原始内容 存档于2022-04-22). ^ Khronos Group Releases Vulkan 1.1 . The Khronos Group (新闻稿). 2018-03-07 [2018-03-21 ] . (原始内容 存档于2022-04-14)(英语) . ^ Larabel, Michael.Vulkan 1.1.85 Released With Raytracing, Mesh Shaders & Other New NVIDIA Extensions . Phoronix. 2018-09-19 [2018-09-19 ] . (原始内容 存档于2022-05-11). ^ Larabel, Michael.Vulkan 1.1.91 Released With NV_ray_tracing, AMD Memory Overallocation Behavior . Phoronix. 2018-11-04 [2018-11-04 ] . (原始内容 存档于2022-05-11). ^ Bright, Peter.Vulkan 1.1 out today, with multi-GPU support, better DirectX compatibility . Ars Terchnica. 2018-03-07 [2018-03-07 ] . (原始内容 存档于2022-04-29). ^ Khronos Group Releases Vulkan 1.2 . The Khronos Group (新闻稿). 2020-01-15 [2020-02-27 ] . (原始内容 存档于2022-05-11)(英语) . ^ Khronos Strengthens Vulkan Ecosystem with Release of Vulkan 1.3, Public Roadmap and Profiles . January 25, 2022 [2023-02-13 ] . (原始内容存档 于2022-01-25). ^ Vulkan Next will bring better support for VR and multiple GPUs . PCWorld. [2017-03-17 ] . (原始内容 存档于2018-12-06)(英语) . ^ Smith, Daniel Williams, Ryan.Ashes of the Singularity Revisited: A Beta Look at DirectX 12 & Asynchronous Shading . [2017-03-17 ] . (原始内容 存档于2022-04-22). ^ Breaking: OpenCL Merging Roadmap into Vulkan | PC Perspective . www.pcper.com. [May 17, 2017] . (原始内容 存档于November 1, 2017). ^ SIGGRAPH 2018: OpenCL-Next Taking Shape, Vulkan Continues Evolving – Phoronix . www.phoronix.com. [2024-10-13 ] . (原始内容存档 于2020-10-28). ^ Clspv is a prototype compiler for a subset of OpenCL C to Vulkan compute shaders: google/clspv , 2019-08-17 [2019-08-20 ] , (原始内容存档 于2020-11-28) ^ Vulkan Update SIGGRAPH 2019 (PDF) . [2024-10-13 ] . (原始内容存档 (PDF) 于2019-08-20). ^ The Khronos Group,SIGGRAPH 2015: 3D Graphics API State of the Union , 2015-09-16 [2017-03-17 ] , (原始内容 存档于2022-05-11) ^ Trademark Status & Document Retrieval . tsdr.uspto.gov. [2017-03-17 ] . (原始内容 存档于2013-05-11)(英语) . ^ Valve Developed An Intel Linux Vulkan GPU Driver - Phoronix . www.phoronix.com. [2017-03-17 ] . (原始内容 存档于2022-05-11)(英语) . ^ Learning More About The Intel Vulkan Driver, Linux Vulkan Plans - Phoronix . www.phoronix.com. [2017-03-17 ] . (原始内容 存档于2021-04-17)(英语) . ^ Smith, Daniel Williams, Ryan.Quick Look: Vulkan Performance on The Talos Principle . [2017-03-17 ] . (原始内容 存档于2022-05-15). ^ 新闻 - Dota 2 Update - May 23rd 2016 . store.steampowered.com. [2017-03-17 ] . (原始内容 存档于2020-11-08)(中文(中国大陆)) . ^ Bethesda.net . Bethesda.net. [2017-03-17 ] . (原始内容 存档于2022-05-11). ^ 存档副本 . [2020-02-01 ] . (原始内容 存档于2022-04-08). ^ Quake 1 Ported To Run On Vulkan - Phoronix . www.phoronix.com. [2017-03-17 ] . (原始内容 存档于2022-05-11)(英语) . ^ Here is your first look at the first Quake being recreated in Unreal Engine 4 (fan project) - DSOGaming - The Dark Side Of Gaming . www.dsogaming.com. [2017-03-17 ] . (原始内容 存档于2022-04-12)(美国英语) . ^ Valve announces Source 2 engine, free for developers . Polygon. 2015-03-03 [2017-03-17 ] . (原始内容存档 于2015-03-05). ^ Mahardy, Mike.GDC 2015: Valve Announces Source 2 Engine . IGN. 2015-03-03 [2017-03-17 ] . (原始内容存档 于2015-03-04)(美国英语) . ^ The Talos Principle will support Vulkan – first screenshot released - Croteam . Croteam. 2016-02-05 [2017-03-17 ] . (原始内容 存档于2022-04-12)(美国英语) . ^ Epic Games adds Vulkan support to Unreal Engine 4 . bit-tech. [2017-03-17 ] . (原始内容 存档于2017-01-19)(英语) . ^ Epic Games Unveils ProtoStar at Samsung Galaxy Unpacked . www.unrealengine.com. [2017-03-17 ] . (原始内容 存档于2016-08-10)(英语) . ^ Closing in on 3.9 - Forums - Torque 3D . forums.torque3d.org. [2017-03-17 ] . (原始内容 存档于2021-03-18)(英国英语) . ^ Torque 3D 3.8 Released! • r/gamedev . reddit. [2017-03-17 ] . (原始内容 存档于2022-05-11)(英语) . ^ Kharytoniuk, Artem,GitHub - kennyalive/Quake-III-Arena-Kenny-Edition: The cradle of Quake III Arena. , 2019-05-16 [2019-05-16 ] , (原始内容 存档于2022-05-11) ^ Vulkan DOOM 3 port based on DOOM 3 BFG Edition . July 2018 [2020-07-26 ] . (原始内容 存档于2022-05-11). ^ DOOM on Twitter . Twitter. [2017-03-17 ] . (原始内容 存档于2022-05-11)(英语) . ^ DirectX 12, Vulkan support on the way for CryEngine . TweakTown. 2016-08-19 [2017-03-17 ] . (原始内容 存档于2022-05-11)(美国英语) . ^ Xenko Game Engine - Xenko 1.7β released! . xenko.com. [2017-03-17 ] . (原始内容 存档于2019-06-23). ^ Intrinsic - Open-source cross-platform graphics and game engine . Intrinsic. [2017-03-17 ] . (原始内容 存档于2016-10-27)(美国英语) . ^ Unity engine adds Vulkan support for a big performance boost . The Tech Report. [2017-03-17 ] . (原始内容 存档于2021-09-12). ^ Introducing the Vulkan renderer preview – Unity Blog . Unity Technologies Blog. [2017-03-17 ] . (原始内容 存档于2021-04-20)(美国英语) . ^ Linietsky, Juan.Godot Engine - Moving to Vulkan (and ES 2.0) instead of OpenGL ES 3.0 . Godot. 2018-02-26 [2018-03-07 ] . (原始内容存档 于2020-06-17). ^ Flax Facts #25 – Vulkan . 2019-04-16 [2020-07-26 ] . (原始内容 存档于2022-05-11). ^ Rage 2 Uses Just Cause Series' Engine Instead of idTech . Shacknews. [2019-05-31 ] . (原始内容 存档于2022-04-12)(英语) . ^ Qualcomm and NetEase Announce Collaboration to Support Optimization of NetEase Games on Snapdragon 845 Flagship Mobile Platform . Qualcomm. 2017-12-07 [2019-08-03 ] . (原始内容 存档于2022-05-11)(英语) . ^ GPUPerfStudio Vulkan Tools - AMD . AMD. [2017-03-17 ] . (原始内容 存档于2017-01-29)(美国英语) . ^ gskvulkanrenderer.c - gtk+ - Multi-platform toolkit . git.gnome.org. [2017-03-17 ] (英语) . ^ Vulkan 1.0 specification released with day-one support for Wayland . Collabora - Open Source Consulting. [2017-03-17 ] . (原始内容 存档于2016-06-24)(英语) . ^ Vulkan Overview (PDF) . Khronos Group. June 2015 [2015-08-18 ] . (原始内容 (PDF) 存档于2015-12-08). p. 19 "Vulkan Status"^ Developers, Android.Low-overhead rendering with Vulkan - Android Developers Blog . Low-overhead rendering with Vulkan - Android Developers Blog. 2015-08-10 [2017-03-17 ] . (原始内容 存档于2016-03-08).