For faster navigation, this Iframe is preloading the Wikiwand page for Vulkan.

Vulkan

Vulkan
開發者科納斯組織,基于AMDMantle开发[1][2][3][4][5]
首次发布2016年2月16日,​8年前​(2016-02-16[6]
当前版本
  • 1.3.289 (2024年6月28日;穩定版本)[7]
編輯維基數據鏈接
源代码库 編輯維基數據鏈接
操作系统AndroidLinuxTizenMicrosoft Windows[8][9]
平台跨平台
类型3D图形与计算API[10]
许可协议 編輯維基數據鏈接
网站www.khronos.org/vulkan/

Vulkan是一個低开销、跨平台的二维、三维图形与计算的應用程式接口(API),[11]最早由科納斯組織在2015年游戏开发者大会(GDC)上發表。[12][13]OpenGL类似,Vulkan針對全平台即時3D图形程式(如電子遊戲交互媒体)而設計,并提供高效能与更均衡的CPUGPU占用,這也是Direct3D 12和AMDMantle的目標。与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]

  • Vulkan API适用于从高性能电脑到移动低功耗设备的显示卡(OpenGL具有名为OpenGL ES的移动设备API子集,它仍是支持Vulkan设备的备选API)。
  • 相比于Direct3D 12,Vulkan与前身OpenGL类似,受多种操作系统支持。Vulkan已经能在Windows 7Windows 8Windows 10TizenLinuxAndroid上运行(iOSmacOS有第三方支持[23])。
  • 通过批量处理(Batching)减少CPU负载,使CPU可以执行更多其他的计算或渲染任务。[21][24]
  • 在多核心CPU上,Vulkan能对核心与线程进行优化。Direct3D 11与OpenGL 4最初为单核心CPU设计,尽管后来出现了针对多核心CPU优化的扩展,不过与Vulkan相比,优化仍不是很好。[25]
  • 减少了驱动程序的开销与维护工作。OpenGL使用高级着色语言GLSL编写着色器,不同的驱动在程序运行时需要执行自身的GLSL编译器,将程序的着色器转换为GPU可执行的机器代码。而Vulkan驱动将着色器语言预先转化为SPIR-V英语Standard Portable Intermediate Representation(Standard Portable Intermediate Representation)的中间二进制格式,其行为类似于Direct3DHLSL着色器。通过着色器预编译,应用程序加载速度更快,并且3D场景可以使用更多种着色器。Vulkan驱动只需对GPU进行优化并生成代码,这使得驱动程序更容易维护,驱动程序包更小(目前GPU供应商仍需在驱动程序中提供OpenGL与OpenCL的支持)。[26]
  • 计算与图形处理的统一管理,因此Vulkan无需与单独的计算API配合使用。

英伟达在2016年时指出,由於OpenGL的复杂度和维护难度比Vulkan低很多,在多数情况下也能提供理想的整体性能,现阶段OpenGL仍是个很好的选择。[27] AMD表示, Vulkan支援Close-To-Metal控制的獨特能力可加快跨 Windows和 Linux的效能並且提高影像品質。現今無其他圖形 API 提供如此強大的作業系統相容性、成像功能和硬體效率組合[28] 。 例如,CPU中包含的集成GPU可與高端專用GPU結合使用,以略微提高性能。

Vulkan 1.1

科納斯在SIGGRAPH2016上宣布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]

vulkan 1.2

2020年1月15日,科納斯組織發布了Vulkan 1.2,將23個已經通過驗證的擴展集成到基本Vulkan標準中[35],大部份用來幫助提升Vulkan與其他圖形API之間的兼容層性能。

Vulkan 1.3

2022年1月25日,科納斯組織发布了Vulkan 1.3。[36] 这次更新将另外23个常用的成熟的Vulkan扩展集成到基本的Vulkan标准中。

计划中的功能

科纳斯在SIGGRAPH 2016上宣布,Vulkan将提供类似于Direct3D 12的多卡互联功能。[37]通过Vulkan,不同型号的显卡也能协同工作,而无需NVIDIA SLIAMD Crossfire的支持。Vulkan多卡互联功能允许API在多个不同的显卡之间智能分配负载,例如,CPU上的集成显卡与高端独立显卡协同工作,能够略微提升显示性能。[38]

在OpenCL 2.2规范发布时,科纳斯宣布OpenCL将在未来融入Vulkan。[39][40]

历史

2014年6月,科纳斯组织开始了“次世代OpenGL”图形API的计划,并在Valve公司举行项目启动会议。[41]在SIGGRAPH 2014上,项目公之于世。[10]2015年2月19日,Vulkan的商标在美国专利及商标局提交。[42]

2015年早些时候,LunarG英语LunarG(由Valve资助)开发并展示了一款支持Vulkan API的Intel HD Graphics 4000系列Linux驱动程序,不过当时的Mesa开源驱动并不完全兼容OpenGL 4.0。[43][44]

2016年2月16日,科纳斯组织发布了Vulkan 1.0版规范与开源软件开发工具包(SDK)。[6]

支持Vulkan的软件

电子游戏

游戏引擎

  • Source 2——2015年3月由Valve公司发布[51][52]
  • Serious Engine 4——2016年2月,Croteam宣布支持Vulkan API[53]
  • 虚幻引擎4——2016年2月Epic Games在三星Galaxy S7 Unpack发布会上声明提供Vulkan支持[54][55]
  • Torque 3D英语Torque 3D——2016年4月,开发者社区宣称将提供Vulkan支持[56][57]
  • id Tech 3引擎——在2017年5月增加了對Vulkan的非正式支持[58]
  • id Tech 4引擎——在2017年8月添加了非官方的Vulkan支持[59]
  • id Tech 6——2016年5月id Software宣布运行于id Tech 6引擎的《毁灭战士》将支持Vulkan[60]
  • id Tech 7——僅在PC上使用Vulkan
  • Abyss Engine——2017年5月Deep Silver在Android上發佈了基於vulkan的浴火銀河3
  • Banshee 3D——支持Vulkan的免費開放源代碼跨平台遊戲引擎
  • CryEngine——Crytek计划提供支持[61]
  • Xenko——2016年7月加入支持[62]
  • Intrinsic——在GitHub上托管的开源跨平台游戏引擎[63]
  • Unity——2016年12月,Unity Technologies英语Unity Technologies表示其Unity游戏引擎5.6版将支持Vulkan API;[64]2017年3月,Unity 5.6提供正式支持[65]
  • Roblox——自2017年3月起,Roblox支持Vulkan渲染
  • Rockstar高級遊戲引擎——除DirectX12外,還完全支持Vulkan
  • Godot——在2018年2月下旬,開發人員宣布將把重點改為使用OpenGL ES 2和Vulkan的組合。[66]
  • Flax Engine——於2019年4月添加Vulkan支持[67]
  • Apex Game Engine(來自雪崩工作室)——狂怒煉獄2改用Vulkan進行渲染[68]
  • Messiah Game Engine——網易高通合作,針對Vulkan優化[69]

开发工具

操作系统组件

Vulkan视窗系统接口(Window System Interface,WSI)的作用类似于OpenGL ESEGL英语EGL[72]EGL能使OpenGL ES程序跟原生视窗系统相通,并控制上下文管理英语Context management缓冲器绑定与渲染同步等。

兼容性

初版Vulkan规范指出,Vulkan能在支持OpenGL ES 3.1或OpenGL 4.x及更高版本的显卡上运行。[73]但Vulkan API本身依赖于新版显卡驱动程序,而且并非所有符合Vulkan规范的显卡都能收到厂商提供的驱动程序更新。

2016年8月22日,Google发布的Android Nougat(Android 7.x)提供对Vulkan的支持。[74]

苹果公司没有对iOS和macOS提供官方Vulkan支持,而Molten公司开发的MoltenVK运行于苹果Metal API,提供Vulkan第三方支持。[23]

参见

  • OpenGL,科納斯組織的另一个图形API
  • OpenCL,科納斯組織的一个异构计算框架
  • Mantle,AMD的底层图形与计算API,Vulkan的前身
  • Direct3D,Windows和Xbox专有的图形API
  • Metal,iOS和macOS的一个底层图形与计算API

參考資料

  1. ^ Not dead yet: AMD's Mantle powers new Vulkan API, VR efforts. 2015-03-04 [2015-03-30]. (原始内容存档于2016-04-22) (英语). 
  2. ^ 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. ^ 3.0 3.1 Shilov, Anton. AMD: Vulkan absorbed 'best and brightest' parts of Mantle. KitGuru. [2015-06-26]. (原始内容存档于2015-06-26) (英语). 
  4. ^ 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... 
  5. ^ Michaud, Scott. GDC 15: Khronos Acknowledges Mantle's Start of Vulkan. PC Perspective. 2015-03-03 [2015-05-19]. (原始内容存档于2015-05-20) (英语). 
  6. ^ 6.0 6.1 Khronos Releases Vulkan 1.0 Specification - Khronos Group Press Release. [2017-02-10]. (原始内容存档于2017-12-15) (英语). 
  7. ^ v1.3.289. 2024年6月28日 [2024年7月2日]. 
  8. ^ 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) (英国英语). 
  9. ^ Valich, Theo. Mantle Cycle is Complete as Khronos Releases Vulkan 1.0. VR World. 2016-02-17 [2016-02-19]. (原始内容存档于2022-05-11) (英语). 
  10. ^ 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) (英语). 
  11. ^ Does Vulkan support 2D graphics? - LunarG. www.lunarg.com. [2017-02-17]. (原始内容存档于2019-05-02) (美国英语). 
  12. ^ Vulkan : Graphics and compute Belong Together (PDF). Khronos.org. March 2015 [2015-03-05]. (原始内容 (PDF)存档于2016-12-18). 
  13. ^ Vulkan - Graphics and compute belong together. Khronos.org. [2015-03-05]. (原始内容存档于2021-05-09). 
  14. ^ Next-generation Vulkan API could be Valve's killer advantage in battling Microsoft - ExtremeTech. ExtremeTech. 2015-03-10 [2017-02-17]. (原始内容存档于2015-03-13) (美国英语). 
  15. ^ glNext revealed as Vulkan graphics API. 2015-03-03 [2015-03-30]. (原始内容存档于2016-10-14) (英语). 
  16. ^ Mantle is a Vulkan: AMD's dead graphics API rises from the ashes in OpenGL's successor. PCWorld. [2017-02-17]. (原始内容存档于2016-11-07) (英语). 
  17. ^ AMD Gaming: One of Mantle's Futures: Vulkan | AMD Blogs. Community.amd.com. [2015-03-05]. (原始内容存档于2015-03-06). 
  18. ^ Not dead yet: AMD's Mantle powers new Vulkan API, VR efforts. ExtremeTech. [2015-03-05]. (原始内容存档于2016-04-22). 
  19. ^ 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). 
  20. ^ 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. ^ 21.0 21.1 Khronos Group Announces The Next-Generation 'Vulkan' Graphics And Compute API. Tom's Hardware. 2015-03-03 [2017-02-18] (英语). 
  22. ^ FOSDEM 2016 - Vulkan in Open-Source. Fosdem.org. [2017-03-17]. (原始内容存档于2016-03-09) (英语). 
  23. ^ 23.0 23.1 MoltenVK | Run Vulkan on iOS and OS X. Molten. [2017-02-18]. (原始内容存档于2018-01-05) (美国英语). 
  24. ^ Vulkan: High efficiency on mobile - Imagination Technologies. Imagination Technologies. 2015-11-05 [2017-02-18]. (原始内容存档于2015-11-09) (英国英语). 
  25. ^ Vulkan: Scaling to multiple threads - Imagination Technologies. Imagination Technologies. 2015-11-24 [2017-02-18]. (原始内容存档于2015-11-26) (英国英语). 
  26. ^ Kessenich, John. An Introduction to SPIR-V (PDF). Khronos Group. [2017-02-18]. (原始内容 (PDF)存档于2015-03-09). 
  27. ^ Transitioning from OpenGL to Vulkan. NVIDIA Developer. 2016-02-11 [2017-03-17]. (原始内容存档于2020-04-25) (英语). 
  28. ^ AMD Vulkan API. AMD. [2020-07-26]. (原始内容存档于2019-07-14). 
  29. ^ Vulkan Next will bring better support for VR and multiple GPUs. PC World. [2017-03-17]. (原始内容存档于2018-12-06). 
  30. ^ Smith, Daniel Williams, Ryan. Ashes of the Singularity Revisited: A Beta Look at Direct3D 12 & Asynchronous Shading. AnandTech. [2017-03-17]. (原始内容存档于2022-04-22). 
  31. ^ Khronos Group Releases Vulkan 1.1. The Khronos Group (新闻稿). 2018-03-07 [2018-03-21]. (原始内容存档于2022-04-14) (英语). 
  32. ^ 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). 
  33. ^ 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). 
  34. ^ 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). 
  35. ^ Khronos Group Releases Vulkan 1.2. The Khronos Group (新闻稿). 2020-01-15 [2020-02-27]. (原始内容存档于2022-05-11) (英语). 
  36. ^ Khronos Strengthens Vulkan Ecosystem with Release of Vulkan 1.3, Public Roadmap and Profiles. January 25, 2022 [2023-02-13]. (原始内容存档于2022-01-25). 
  37. ^ Vulkan Next will bring better support for VR and multiple GPUs. PCWorld. [2017-03-17]. (原始内容存档于2018-12-06) (英语). 
  38. ^ Smith, Daniel Williams, Ryan. Ashes of the Singularity Revisited: A Beta Look at DirectX 12 & Asynchronous Shading. [2017-03-17]. (原始内容存档于2022-04-22). 
  39. ^ Breaking: OpenCL Merging Roadmap into Vulkan. www.pcper.com. [2017-06-05]. (原始内容存档于2017-11-01) (英语). 
  40. ^ 超能网. 计算与图形API合体,Khronos要把OpenCL与Vulkan融合在一起. [2017-06-05]. (原始内容存档于2019-05-03). 
  41. ^ The Khronos Group, SIGGRAPH 2015: 3D Graphics API State of the Union, 2015-09-16 [2017-03-17], (原始内容存档于2022-05-11) 
  42. ^ Trademark Status & Document Retrieval. tsdr.uspto.gov. [2017-03-17]. (原始内容存档于2013-05-11) (英语). 
  43. ^ Valve Developed An Intel Linux Vulkan GPU Driver - Phoronix. www.phoronix.com. [2017-03-17]. (原始内容存档于2022-05-11) (英语). 
  44. ^ Learning More About The Intel Vulkan Driver, Linux Vulkan Plans - Phoronix. www.phoronix.com. [2017-03-17]. (原始内容存档于2021-04-17) (英语). 
  45. ^ Smith, Daniel Williams, Ryan. Quick Look: Vulkan Performance on The Talos Principle. [2017-03-17]. (原始内容存档于2022-05-15). 
  46. ^ 新闻 - Dota 2 Update - May 23rd 2016. store.steampowered.com. [2017-03-17]. (原始内容存档于2020-11-08) (中文(中国大陆)). 
  47. ^ Bethesda.net. Bethesda.net. [2017-03-17]. (原始内容存档于2022-05-11). 
  48. ^ 存档副本. [2020-02-01]. (原始内容存档于2022-04-08). 
  49. ^ Quake 1 Ported To Run On Vulkan - Phoronix. www.phoronix.com. [2017-03-17]. (原始内容存档于2022-05-11) (英语). 
  50. ^ 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) (美国英语). 
  51. ^ Valve announces Source 2 engine, free for developers. Polygon. 2015-03-03 [2017-03-17]. (原始内容存档于2015-03-05). 
  52. ^ Mahardy, Mike. GDC 2015: Valve Announces Source 2 Engine. IGN. 2015-03-03 [2017-03-17]. (原始内容存档于2015-03-04) (美国英语). 
  53. ^ The Talos Principle will support Vulkan – first screenshot released - Croteam. Croteam. 2016-02-05 [2017-03-17]. (原始内容存档于2022-04-12) (美国英语). 
  54. ^ Epic Games adds Vulkan support to Unreal Engine 4. bit-tech. [2017-03-17]. (原始内容存档于2017-01-19) (英语). 
  55. ^ Epic Games Unveils ProtoStar at Samsung Galaxy Unpacked. www.unrealengine.com. [2017-03-17]. (原始内容存档于2016-08-10) (英语). 
  56. ^ Closing in on 3.9 - Forums - Torque 3D. forums.torque3d.org. [2017-03-17]. (原始内容存档于2021-03-18) (英国英语). 
  57. ^ Torque 3D 3.8 Released! • r/gamedev. reddit. [2017-03-17]. (原始内容存档于2022-05-11) (英语). 
  58. ^ Kharytoniuk, Artem, GitHub - kennyalive/Quake-III-Arena-Kenny-Edition: The cradle of Quake III Arena., 2019-05-16 [2019-05-16], (原始内容存档于2022-05-11) 
  59. ^ Vulkan DOOM 3 port based on DOOM 3 BFG Edition. July 2018 [2020-07-26]. (原始内容存档于2022-05-11). 
  60. ^ DOOM on Twitter. Twitter. [2017-03-17]. (原始内容存档于2022-05-11) (英语). 
  61. ^ DirectX 12, Vulkan support on the way for CryEngine. TweakTown. 2016-08-19 [2017-03-17]. (原始内容存档于2022-05-11) (美国英语). 
  62. ^ Xenko Game Engine - Xenko 1.7β released!. xenko.com. [2017-03-17]. (原始内容存档于2019-06-23). 
  63. ^ Intrinsic - Open-source cross-platform graphics and game engine. Intrinsic. [2017-03-17]. (原始内容存档于2016-10-27) (美国英语). 
  64. ^ Unity engine adds Vulkan support for a big performance boost. The Tech Report. [2017-03-17]. (原始内容存档于2021-09-12). 
  65. ^ Introducing the Vulkan renderer preview – Unity Blog. Unity Technologies Blog. [2017-03-17]. (原始内容存档于2021-04-20) (美国英语). 
  66. ^ 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). 
  67. ^ Flax Facts #25 – Vulkan. 2019-04-16 [2020-07-26]. (原始内容存档于2022-05-11). 
  68. ^ Rage 2 Uses Just Cause Series' Engine Instead of idTech. Shacknews. [2019-05-31]. (原始内容存档于2022-04-12) (英语). 
  69. ^ 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) (英语). 
  70. ^ GPUPerfStudio Vulkan Tools - AMD. AMD. [2017-03-17]. (原始内容存档于2017-01-29) (美国英语). 
  71. ^ gskvulkanrenderer.c - gtk+ - Multi-platform toolkit. git.gnome.org. [2017-03-17] (英语). 
  72. ^ Vulkan 1.0 specification released with day-one support for Wayland. Collabora - Open Source Consulting. [2017-03-17]. (原始内容存档于2016-06-24) (英语). 
  73. ^ Vulkan Overview (PDF). Khronos Group. June 2015 [2015-08-18]. (原始内容 (PDF)存档于2015-12-08).  p. 19 "Vulkan Status"
  74. ^ 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). 

外部链接

{{bottomLinkPreText}} {{bottomLinkText}}
Vulkan
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?