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

The Dalles, Oregon

眉山市

Sốc với hình ảnh mỹ nhân Jennie (Black Pink) cởi trần hoàn toàn và sự thật đằng sau đó đã được tiết lộ