Vulkan (API)

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP


body.skin-minerva .mw-parser-output table.infobox captiontext-align:center



















Vulkan

Vulkan API logo.svg
開發者
科納斯組織,基于AMD的Mantle开发[1][2][3][4][5]
初始版本
2016年2月16日,​2年前​(2016-02-16[6]
穩定版本

穩定版本
1.0.76
(2018年5月25日,​6個月前​(2018-05-25[7]


開發狀態
活跃
操作系统
Android、Linux、Tizen、Microsoft Windows[8][9]
系統平台
跨平台
类型
3D图形与计算API[10]
網站
khronos.org/Vulkan

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]




目录





  • 1 特性

    • 1.1 计划中的功能



  • 2 历史


  • 3 支持Vulkan的软件

    • 3.1 电子游戏


    • 3.2 游戏引擎


    • 3.3 开发工具


    • 3.4 操作系统组件



  • 4 兼容性


  • 5 参见


  • 6 參考資料


  • 7 外部链接




特性




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 7、Windows 8、Windows 10、Tizen、Linux与Android上运行(iOS和macOS有第三方支持[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)的中间二进制格式,其行为类似于Direct3D的HLSL着色器。通过着色器预编译,应用程序加载速度更快,并且3D场景可以使用更多种着色器。Vulkan驱动只需对GPU进行优化并生成代码,这使得驱动程序更容易维护,驱动程序包更小(目前GPU供应商仍需在驱动程序中提供OpenGL与OpenCL的支持)。[26]

  • 计算与图形处理的统一管理,因此Vulkan无需与单独的计算API配合使用。

英伟达表示,OpenGL的复杂度和维护难度比Vulkan低很多,在多数情况下也能提供理想的整体性能,现阶段OpenGL仍是个很好的选择。[27]



计划中的功能


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


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



历史


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


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


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



支持Vulkan的软件



电子游戏


参见:支持Vulkan的游戏列表英语List of games with Vulkan support


  • 塔洛斯法则英语The Talos Principle》——首个支持Vulkan渲染的游戏[36]

  • 《Dota 2》——2016年5月开始支持[37]

  • 《毁灭战士》——2016年7月开始支持[38]

  • vkQuake——《雷神之锤》的Vulkan移植版,于2016年7月发布[39][40]


游戏引擎



  • Source 2——2015年3月由Valve公司发布[41][42]

  • Serious Engine 4——2016年2月,Croteam宣布支持Vulkan API[43]


  • 虚幻引擎4——2016年2月Epic Games在三星Galaxy S7 Unpack发布会上声明提供Vulkan支持[44][45]


  • Torque 3D英语Torque 3D——2016年4月,开发者社区宣称将提供Vulkan支持[46][47]


  • id Tech 6英语id Tech 6——2016年5月id Software宣布运行于id Tech 6引擎的《毁灭战士》将支持Vulkan[48]


  • CryEngine——Crytek计划提供支持[49]

  • Xenko——2016年7月加入支持[50]

  • Intrinsic——在GitHub上托管的开源跨平台游戏引擎[51]


  • Unity——2016年12月,Unity Technologies英语Unity Technologies表示其Unity游戏引擎5.6版将支持Vulkan API;[52]2017年3月,Unity 5.6提供正式支持[53]


  • Roblox——自2017年3月起,Roblox支持Vulkan渲染


开发工具



  • GPU PerfStudio英语GPU PerfStudio 3.6,在Windows与Linux平台上支持Vulkan[54]


  • GTK+ Scene Graph Kit英语GTK+ Scene Graph Kit,作为GTK+ 3.90的一个组件于2017年3月发布[55]


操作系统组件


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



兼容性


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


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


苹果公司没有对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] (英语). 


  2. ^ Kirsch, Nathan. Is AMD Mantle Dead As We Have Known It? Vulcan API Uses Mantle Technology for OpenGL. Legit Reviews. [2015-06-25] (英语). 


  3. ^ 3.03.1 Shilov, Anton. AMD: Vulkan absorbed 'best and brightest' parts of Mantle. KitGuru. [2015-06-26] (英语). 


  4. ^ Koduri, Raja. On APIs and the future of Mantle. AMD. 2015-03-04 [2015-05-19] (英语). ...(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] (英语). 


  6. ^ 6.06.1 Khronos Releases Vulkan 1.0 Specification - Khronos Group Press Release (英语). 


  7. ^ Vulkan® - A Specification (英语). 


  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] (英国英语). 



  9. ^ Valich, Theo. Mantle Cycle is Complete as Khronos Releases Vulkan 1.0. VR World. 2016-02-17 [2016-02-19] (英语). 


  10. ^ 10.010.110.2 More on Vulkan and SPIR - V: The future of high-performance graphics (PDF). Khronos Group: 10. [2015-06-27] (英语). 


  11. ^ Does Vulkan support 2D graphics? - LunarG. www.lunarg.com. [2017-02-17] (美国英语). 


  12. ^ Vulkan : Graphics and compute Belong Together (PDF). Khronos.org. March 2015 [2015-03-05]. 


  13. ^ Vulkan - Graphics and compute belong together. Khronos.org. [2015-03-05]. 


  14. ^ Next-generation Vulkan API could be Valve's killer advantage in battling Microsoft - ExtremeTech. ExtremeTech. 2015-03-10 [2017-02-17] (美国英语). 


  15. ^ glNext revealed as Vulkan graphics API. 2015-03-03 [2015-03-30] (英语). 


  16. ^ Mantle is a Vulkan: AMD's dead graphics API rises from the ashes in OpenGL's successor. PCWorld. [2017-02-17] (英语). 


  17. ^ AMD Gaming: One of Mantle's Futures: Vulkan | AMD Blogs. Community.amd.com. [2015-03-05]. 


  18. ^ Not dead yet: AMD's Mantle powers new Vulkan API, VR efforts. ExtremeTech. [2015-03-05]. 


  19. ^ AMD's Mantle Lives On In Vulkan - Lays The Foundation For The Next OpenGL. Wccftech.com. 2014-06-20 [2015-03-05]. 


  20. ^ Kirsch, Nathan. Is AMD Mantle Dead As We Have Known It? Vulcan API Uses Mantle Technology for OpenGL. Legit Reviews. [2015-03-05]. 


  21. ^ 21.021.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] (英语). 


  23. ^ 23.023.1 MoltenVK | Run Vulkan on iOS and OS X. Molten. [2017-02-18] (美国英语). 


  24. ^ Vulkan: High efficiency on mobile - Imagination Technologies. Imagination Technologies. 2015-11-05 [2017-02-18] (英国英语). 


  25. ^ Vulkan: Scaling to multiple threads - Imagination Technologies. Imagination Technologies. 2015-11-24 [2017-02-18] (英国英语). 


  26. ^ Kessenich, John. An Introduction to SPIR-V (PDF). Khronos Group. [2017-02-18]. 


  27. ^ Transitioning from OpenGL to Vulkan. NVIDIA Developer. 2016-02-11 [2017-03-17] (英语). 


  28. ^ Vulkan Next will bring better support for VR and multiple GPUs. PCWorld. [2017-03-17] (英语). 


  29. ^ Smith, Daniel Williams, Ryan. Ashes of the Singularity Revisited: A Beta Look at DirectX 12 & Asynchronous Shading. [2017-03-17]. 


  30. ^ Breaking: OpenCL Merging Roadmap into Vulkan. www.pcper.com. [2017-06-05] (英语). 


  31. ^ 超能网. 计算与图形API合体,Khronos要把OpenCL与Vulkan融合在一起. [2017-06-05]. 


  32. ^ The Khronos Group, SIGGRAPH 2015: 3D Graphics API State of the Union, 2015-09-16 [2017-03-17] 


  33. ^ Trademark Status & Document Retrieval. tsdr.uspto.gov. [2017-03-17] (英语). 


  34. ^ Valve Developed An Intel Linux Vulkan GPU Driver - Phoronix. www.phoronix.com. [2017-03-17] (英语). 


  35. ^ Learning More About The Intel Vulkan Driver, Linux Vulkan Plans - Phoronix. www.phoronix.com. [2017-03-17] (英语). 


  36. ^ Smith, Daniel Williams, Ryan. Quick Look: Vulkan Performance on The Talos Principle. [2017-03-17]. 


  37. ^ 新闻 - Dota 2 Update - May 23rd 2016. store.steampowered.com. [2017-03-17] (中文(中国大陆)‎). 


  38. ^ Bethesda.net. Bethesda.net. [2017-03-17]. 


  39. ^ Quake 1 Ported To Run On Vulkan - Phoronix. www.phoronix.com. [2017-03-17] (英语). 


  40. ^ 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] (美国英语). 


  41. ^ Valve announces Source 2 engine, free for developers. Polygon. 2015-03-03 [2017-03-17]. 


  42. ^ Mahardy, Mike. GDC 2015: Valve Announces Source 2 Engine. IGN. 2015-03-03 [2017-03-17] (美国英语). 


  43. ^ The Talos Principle will support Vulkan – first screenshot released - Croteam. Croteam. 2016-02-05 [2017-03-17] (美国英语). 


  44. ^ Epic Games adds Vulkan support to Unreal Engine 4. bit-tech. [2017-03-17] (英语). 


  45. ^ Epic Games Unveils ProtoStar at Samsung Galaxy Unpacked. www.unrealengine.com. [2017-03-17] (英语). 


  46. ^ Closing in on 3.9 - Forums - Torque 3D. forums.torque3d.org. [2017-03-17] (英国英语). 


  47. ^ Torque 3D 3.8 Released! • r/gamedev. reddit. [2017-03-17] (英语). 


  48. ^ DOOM on Twitter. Twitter. [2017-03-17] (英语). 


  49. ^ DirectX 12, Vulkan support on the way for CryEngine. TweakTown. 2016-08-19 [2017-03-17] (美国英语). 


  50. ^ Xenko Game Engine - Xenko 1.7β released!. xenko.com. [2017-03-17]. 


  51. ^ Intrinsic - Open-source cross-platform graphics and game engine. Intrinsic. [2017-03-17] (美国英语). [永久失效連結]


  52. ^ Unity engine adds Vulkan support for a big performance boost. The Tech Report. [2017-03-17]. 


  53. ^ Introducing the Vulkan renderer preview – Unity Blog. Unity Technologies Blog. [2017-03-17] (美国英语). 


  54. ^ GPUPerfStudio Vulkan Tools - AMD. AMD. [2017-03-17]. (原始内容存档于2017-01-29) (美国英语). 


  55. ^ gskvulkanrenderer.c - gtk+ - Multi-platform toolkit. git.gnome.org. [2017-03-17] (英语). 


  56. ^ Vulkan 1.0 specification released with day-one support for Wayland. Collabora - Open Source Consulting. [2017-03-17] (英语). 


  57. ^ Vulkan Overview (PDF). Khronos Group. June 2015 [2015-08-18].  p. 19 "Vulkan Status"


  58. ^ Developers, Android. Low-overhead rendering with Vulkan - Android Developers Blog. Low-overhead rendering with Vulkan - Android Developers Blog. 2015-08-10 [2017-03-17]. 



外部链接


  • Vulkan 1.0规范

  • Vulkan硬件支持数据库

Popular posts from this blog

芜湖市第十一中学

曲波 (足球运动员)

巴尔喀什湖