Vulkan (API)

Vulkan
Developer(s) Khronos Group, developed from AMD's Mantle[1][2][3][4][5]
Initial release 16 February 2016 (2016-02-16)[6]
Stable release 1.0.58 (14 August 2017 (2017-08-14)[7]) [±]
Operating system Android, Linux, Microsoft Windows, Tizen[8][9]
Platform Cross-platform
Type 3D graphics and compute API[10]
Website www.khronos.org/vulkan

Vulkan is a low-overhead, cross-platform 3D graphics and compute API. Vulkan targets high-performance realtime 3D graphics applications such as video games and interactive media across all platforms. Compared with OpenGL and Direct3D 11 and like Direct3D 12 and Mantle, Vulkan can offer higher performance and more balanced CPU/GPU usage. Other major differences from Direct3D (prior to version 12) and OpenGL are Vulkan being a considerably lower level API and offering parallel tasking. Vulkan also has the ability to render 2D graphics applications,[11] however it is generally suited for 3D. In addition to its lower CPU usage, Vulkan is also able to better distribute work amongst multiple CPU cores.[12]

Vulkan was first announced by the Khronos Group at GDC 2015.[10][13][14] The Vulkan API was initially referred to as the "next generation OpenGL initiative," or "OpenGL next"[15] by Khronos, but use of those names was discontinued once the Vulkan name was announced.[16] Vulkan is derived from and built upon components of AMD's Mantle API, which was donated by AMD to Khronos with the intent of giving Khronos a foundation on which to begin developing a low-level API that they could standardize across the industry, much like OpenGL.[3][10][17][18][19][20][21]

Features

OpenGL and Vulkan are both rendering APIs, in both cases the GPU executes shaders while the CPU executes everything else.

Vulkan is intended to provide a variety of advantages over other APIs as well as its spiritual predecessor, OpenGL. Vulkan offers lower overhead, more direct control over the GPU, and lower CPU usage.[14] The overall concept and feature set of Vulkan is similar to Direct3D 12 and Mantle.

Intended advantages of Vulkan over previous-generation APIs include:

OpenGL Vulkan[27]
One single global state machine Object-based with no global state
State is tied to a single context All state concepts are localized to a command buffer
Operations can only be executed sequentially Multi-threaded programming is possible
GPU memory and synchronization are usually hidden Explicit control over memory management and synchronization
Extensive error checking Vulkan drivers do no error checking at runtime;
there is a validation layer for developers

NVIDIA notes that OpenGL is still a great option for a lot of use-cases, as it does come at a much lower complexity and maintenance burden than Vulkan, while in many cases still providing great overall performance.[28]

Planned features

At SIGGRAPH 2016, Khronos announced that Vulkan would be getting support for automatic multi-GPU features, similar to what is offered by Direct3D 12.[29] Multi-GPU support included in-API removes the need for SLI or Crossfire which requires graphics cards to be of the same model. API multi-GPU instead allows the API to intelligently split the workload among two or more completely different GPUs.[30] For example, integrated GPUs included on the CPU can be used in conjunction with a high-end dedicated GPU for a slight performance boost.

When releasing OpenCL version 2.2 the Khronos Group announced that OpenCL would be merging into Vulkan in the future.[31]

History

The Khronos Group began a project to create a next generation graphics API in July 2014 with a kickoff meeting at Valve Corporation.[32] At SIGGRAPH 2014, the project was publicly announced with a call for participants.[10]

According to the US Patent and Trademark Office, the trademark for Vulkan was filed on February 19, 2015.[33]

Vulkan was formally named and announced at Game Developers Conference 2015, although speculation and rumors centered around a new API existed beforehand and referred to it as "glNext".[34]

2015

In early 2015, LunarG (funded by Valve) developed and showcased a Linux driver for Intel which enabled Vulkan compatibility on the HD 4000 series integrated graphics, despite the open-source Mesa drivers not being fully compatible with OpenGL 4.0 until later that year.[35][36] There is still the possibility[37] of Sandy Bridge support, since it supports compute through Direct3D11.

On August 10, 2015, Google announced that future versions of Android would support Vulkan.[38] Android Nougat launched support for Vulkan on August 22, 2016.

On December 18, 2015, the Khronos Group announced that the 1.0 version of the Vulkan specification was nearly complete and would be released when conforming drivers were available.[14] The specification and the open-source Vulkan SDK were released on February 16, 2016.[6]

2016

On December 15, 2016, Unity Technologies announced that version 5.6 of their game engine, Unity, would support the Vulkan API.[39]

2017

Software that supports Vulkan

Video games

Game console emulators

Game engines

Development tools

OS components

The Vulkan Window System Integration (WSI) does for Vulkan what EGL does for OpenGL ES.[71] EGL is used by OpenGL ES programs to interface with the native platform windowing system. EGL handles context management, surface binding and rendering synchronization.

Compatibility

Initial specifications stated that Vulkan will work on hardware that currently supports OpenGL ES 3.1 or OpenGL 4.x and up.[72] As Vulkan support requires new graphics drivers, this does not necessarily imply that every existing device that supports OpenGL ES 3.1 or OpenGL 4.x will have Vulkan drivers available.

Android 7.0 Nougat supports Vulkan.[73] The software was released in August 2016.[74]

Vulkan support for iOS and macOS has not been announced by Apple, but at least one company provides a Vulkan implementation that runs on top of Metal on iOS and macOS devices.[22]

Company Hardware Software support: Vulkan 1.0
Microarchitecture Available since GPUs (chips) Graphic cards / SoCs Android[lower-alpha 1] Linux Microsoft Windows[lower-alpha 2]
AMD
GCN 5th August 2017? Vega 10 Radeon Rx Vega series N/A AMDGPU PRO (Ubuntu & RHEL)[76][77]
& RADV in Mesa[78]
Radeon Software[79]
GCN 4th June 2016 Polaris 10, Polaris 11, Polaris 12 Radeon Rx 400 series
GCN 3rd August 2014 Tonga, Fiji, Carrizo Radeon R9 Series
GCN 2nd March 2013 Bonaire, Hawaii, Kaveri, Kabini, Temash, Mullins, Beema, Carrizo-L Radeon HD 7790, PlayStation 4, Xbox One Experimental
GCN 1st February 2012 Oland, Cape Verde, Pitcairn, Tahiti Radeon HD 77xx–7900 Series
TeraScale 3 December 2010 Cayman, Trinity/Richland Radeon HD 69xx Series, Radeon HD 7xxx–76xx Series not supported
TeraScale 2 September 2009 Cedar, Cypress, Juniper, Redwood, Palm, Sumo Radeon HD 5000 Series, Radeon HD 6350, Radeon HD 64xx–68xx Series
TeraScale 1 May 2007 R600, RV630, RV610, RV790, RV770, … Radeon HD 2000 Series, HD 3000, HD 4000
Nvidia
Volta TBA GV10x
Pascal May 2016 GP10x GeForce 10 series, Tegra X2 Yes Nvidia GeForce driver[80][81] Nvidia GeForce driver[81]
Maxwell February 2014 GM10x, GM20x GeForce GTX 750 Ti, GTX 750, GTX 860M, GeForce 900 series, Tegra X1
Kepler March 2012 GK10x, GK110, GK208 GeForce 600 series, GeForce 700 series, Tegra K1
Fermi March 2010 GF10x, GF11x GeForce 400 series, GeForce 500 series not supported
Tesla November 2006 G8x, G9x, GT20x, GT21x GeForce 8 series, GeForce 9 series, GeForce 100 series, GeForce 200 series, GeForce 300 series
Intel
Kaby Lake January 3, 2017 Core i3-/i5-/i7-7000, Pentium xyz, Celeron xyz Anvil in Mesa 17.1[82] Anvil in Mesa[83][84] Intel Graphics driver[85]
Skylake August 2015 Core i3-/i5-/i7-6000, Core m3-/m5-/m7-6Yxx, Pentium G4xxx, Celeron G39xx
Broadwell September 2014 Core i3-/i5-/i7-5000, Core M-5Yxx not supported
Haswell September 2012 Core i3-/i5-/i7-4000, Pentium G3xxx, Celeron G18xx
Ivy Bridge April 2012 Core i3-/i5-/i7-3000, Pentium G2xxx, Celeron G16xx
Sandy Bridge January 2011 Core i3-/i5-/i7-2000, Pentium Gxxx, Celeron Gxxx not supported not supported
Westmere January 2010 Core i3-/i5-/i7-xxx, Pentium G69xx, Celeron G1101
Imagination Technologies
PowerVR Series 8 February 2016 GE8200, GE8300 PowerVR Graphics SDK v4.1[86]
PowerVR Series 7 November 2014 GE7400, GE7800, GT7200, GT7400, GT7600, GT7800, GT7900 Apple A9, A9X, A10 Fusion, Helio X30 (MT679?)
PowerVR Series 6 January 2012 G6100, G6200, G6230, G6400, G6430, G6630, RK3368, G6050, G6060, G6100 (XE), G6110, GX6240, GX6250, GX6450, GX6650 Apple A7, A8, A8X, MediaTek MT8173, MT8176, MediaTek MT6595M, MT6595T, MT6595M, MT6795, MT8135, Helio X10 (MT6795), LG H13, Atom Z3460, Z3480, Z3530, Z3560, Z3570, Z3580
PowerVR Series 5 January 2009 SGX543, SGX544, SGX554 Apple S1, A5, A5X, A6, A6X, NovaThor L8540, L8580, L9540, TI OMAP 4470, 5430, 5432, MediaTek MT5327, MT6589M, MT6589T, MT6589, MT8117, MT8121, MT8125, MT8389, Atom Z2460, Z2520, Z2560, Z2580, Z2760, Exynos 5410 not supported
Qualcomm
Adreno 500 series Adreno 510, Adreno 530, Adreno 540 Snapdragon 430, 625, 650, 652, 820, 821, 835 1.0[87]
Adreno 400 series Snapdragon 415, 615, 616, 617, 805, 808, 810 planned to be supported[88]
Adreno 300 series Snapdragon 200, 208, 210, 212, 400, 410, 412, 600, 800, 801 not supported
ARM
Bifrost[89] June 2016 Mali-G71, … Kirin 960 1.0[90]
Midgard 4th Q4 2015 Mali-T860, Mali-T830, Mali-T880 Exynos 8890, Exynos 7870, Kirin 950, 955, MediaTek MT6738, MT6750, Helio X20 (MT6797), X25 (MT6797T), P10 (MT6755), P20 (MT6757)
Midgard 3rd October 2013 Mali-T760, … Exynos 7420, Exynos 5433, MT6752, MT6732, RK3288
Midgard 2nd August 2012 Mali-T600 series, T720 Exynos 5250, 5260, 5410, 5420, 5422, 5430, 5800, 7580, Mediatek MT6735, MT6753, Kirin 920, 925, 930, 935 not supported

See also

Notes

  1. For Android Nougat and later.[75]
  2. Drivers so far have supported Windows 7 and later.

References

  1. Hruska, Joel. "Not dead yet: AMD’s Mantle powers new Vulkan API, VR efforts". ExtremeTech. Retrieved 26 June 2015.
  2. Kirsch, Nathan. "Is AMD Mantle Dead As We Have Known It? Vulcan API Uses Mantle Technology for OpenGL". Legit Reviews. Retrieved 25 June 2015.
  3. 1 2 Shilov, Anton. "AMD: Vulkan absorbed ‘best and brightest’ parts of Mantle". KitGuru. Retrieved 26 June 2015.
  4. Koduri, Raja (4 March 2015). "On APIs and the future of Mantle". AMD. Retrieved 19 May 2015. ...(T)he Khronos Group has selected Mantle to serve as the foundation for Vulkan...
  5. Michaud, Scott (3 March 2015). "GDC 15: Khronos Acknowledges Mantle's Start of Vulkan". PC Perspective. Retrieved 19 May 2015.
  6. 1 2 "Khronos Releases Vulkan 1.0 Specification". Khronos Group Press Release.
  7. "Vulkan® 1.0.58 - A Specification".
  8. Bright, Peter & Walton, Mark (16 February 2016). "Vulkan now official, with 1.0 API release and AMD driver [Updated]". Ars Technica. Retrieved 18 February 2016.
  9. Valich, Theo (17 February 2016). "Mantle Cycle is Complete as Khronos Releases Vulkan 1.0". VR World. Retrieved 19 February 2016.
  10. 1 2 3 4 "More on Vulkan and SPIR - V: The future of high-performance graphics" (PDF). Khronos Group. p. 10. Retrieved 27 June 2015. Thanks AMD!
  11. "Does Vulkan support 2D graphics?". LunarG. Retrieved 2016-09-24.
  12. Hruska, Joel. "Next-generation Vulkan API could be Valve’s killer advantage in battling Microsoft". ExtremeTech. Retrieved 26 June 2015.
  13. "Vulkan: Graphics and compute Belong Together" (PDF). Khronos Group. March 2015. Retrieved 2015-03-05.
  14. 1 2 3 "Vulkan - Graphics and compute belong together". Khronos Group. Retrieved 2015-03-05.
  15. Smith, Ryan. "Khronos Announces Next Generation OpenGL Initiative". Retrieved 2016-09-24.
  16. Batchelor, James (2015-03-03). "glNext revealed as Vulkan graphics API". Develop.
  17. Mah Ung, Gordon (2015-03-06). "Mantle is a Vulkan: AMD's dead graphics API rises from the ashes in OpenGL's successor". PC World.
  18. "AMD Gaming: One of Mantle's Futures: Vulkan | AMD Blogs". AMD. Retrieved 2015-03-05.
  19. Hruska, Joel (2015-03-04). "Not dead yet: AMD’s Mantle powers new Vulkan API, VR efforts". ExtremeTech. Retrieved 2015-03-05.
  20. "AMD's Mantle Lives On In Vulkan - Lays The Foundation For The Next OpenGL". Wccftech. 2014-06-20. Retrieved 2015-03-05.
  21. Kirsch, Nathan. "Is AMD Mantle Dead As We Have Known It? Vulcan API Uses Mantle Technology for OpenGL". Legit Reviews. Retrieved 2015-03-05.
  22. 1 2 "MoltenVK". Molten. Retrieved 5 April 2016.
  23. "Khronos Group Announces The Next-Generation 'Vulkan' Graphics And Compute API". Tom's Hardware. 3 March 2015.
  24. "Vulkan: High efficiency on mobile". Imagination Technologies. 5 November 2015.
  25. "Vulkan: Scaling to multiple threads". Imagination Technologies. 24 November 2015.
  26. Kessenich, John. "An Introduction to SPIR-V" (PDF). Khronos Group. Retrieved 5 March 2015.
  27. "FOSDEM 2016 - Vulkan in Open-Source". FOSDEM. Retrieved 2016-02-27.
  28. "Transitioning from OpenGL to Vulkan". Nvidia.
  29. "Vulkan Next will bring better support for VR and multiple GPUs". PC World.
  30. Smith, Daniel Williams, Ryan. "Ashes of the Singularity Revisited: A Beta Look at Direct3D 12 & Asynchronous Shading". AnandTech.
  31. Michaud, Scott (16 May 2017). "Breaking: OpenCL Merging Roadmap into Vulkan PC Perspective". PC Perspective. Retrieved 17 May 2017.
  32. SIGGRAPH 2015: 3D Graphics API State of the Union (Video). YouTube. SIGGRAPH 2015: Khronos Group. 16 September 2015. Event occurs at 57:24. Retrieved 12 November 2015.
  33. "US Patent and Trademark Office". Retrieved 2015-03-07.
  34. Batchelor, James. "glNext revealed as Vulkan graphics API | Latest news from the game development industry | Develop". Develop. Retrieved 2015-03-05.
  35. Larabel, Michael (2015-03-05). "Valve Developed An Intel Linux Vulkan GPU Driver". Phoronix. Retrieved 2017-08-08.
  36. Larabel, Michael (2015-03-12). "Learning More About The Intel Vulkan Driver, Linux Vulkan Plans". Phoronix. Retrieved 2017-08-08.
  37. "Evan Odabashian on Twitter". Retrieved 2015-07-22.
  38. Woods, Shannon (12 August 2015). "Low-overhead rendering with Vulkan". Android Developers Blog.
  39. "Unity engine adds Vulkan support for a big performance boost".
  40. "Croteam will take its games cross-platform with Vulkan support".
  41. 1 2 Palumbo, Alessia (19 March 2017). "Cloud Imperium Now Only Intends To Support Vulkan, Instead of DirectX 12, for Star Citizen". Wccftech. Retrieved 8 August 2017.
  42. "CryEngine welcomes Vulkan API support to latest build".
  43. Williams, Daniel & Smith, Ryan (17 February 2016). "Quick Look: Vulkan Performance on The Talos Principle". Anandtech. Retrieved 19 February 2016.
  44. "Dota 2 Update - May 23rd 2016". store.steampowered.com. Valve. Retrieved 24 May 2016.
  45. "DOOM - Vulkan Support Now Live". Bethesda Softworks. Retrieved 2016-07-11.
  46. Larabel, Michael (25 July 2016). "Quake 1 Ported To Run On Vulkan". Phoronix. Retrieved 8 August 2017.
  47. Papadopoulos, John (21 July 2016). "Here is your first look at the first Quake being recreated in Unreal Engine 4 (fan project)". DSOGaming. Retrieved 26 August 2016.
  48. Larabel, Michael (2017-03-30). "Feral Interactive Vulkan-izes Mad Max". Phoronix. Retrieved 2017-08-08.
  49. Saed, Sherif (2017-04-03). "Counter-Strike: Global Offensive will be moved to Source 2, new operation coming this summer". VG247. Retrieved 2017-08-08.
  50. "Beetle/Mednafen PSX". Libretro Wiki. Retrieved 2017-02-14.
  51. "Vulkan Backend by stenzek · Pull Request #3935 · dolphin-emu/dolphin". GitHub. Retrieved 2017-02-14.
  52. "Mupen64plus". Libretro. Retrieved 2017-02-14.
  53. Kollar, Philip (3 March 2015). "Valve announces Source 2 engine, free for developers". Retrieved 3 March 2015.
  54. Mahardy, Mike (3 March 2015). "GDC 2015: Valve Announces Source 2 Engine". IGN. Retrieved 3 March 2015.
  55. "The Talos Principle will support Vulkan". 4 Feb 2016.
  56. "Epic Games adds Vulkan support to Unreal Engine 4". Bit-Tech. Retrieved 2016-02-24.
  57. "Epic Games Unveils ProtoStar at Samsung Galaxy Unpacked". Epic Games. Retrieved 2016-02-24.
  58. "Closing in on 3.9". Forums. Torque 3D.
  59. "Reddit response from a Torque3D developer.". Reddit.
  60. "id announces Doom running on Vulkan". 7 May 2016.
  61. "Xenko 1.7β released!". 1 July 2016.
  62. liamdawe (2017-03-31). "Unity 5.6 is now available with full Vulkan support". GamingOnLinux. Retrieved 2017-07-31.
  63. "Direct3D 12, Vulkan support on the way for CryEngine". TweakTown. 19 August 2016.
  64. "Intrinsic - Cross-platform Game and Rendering Engine". Retrieved 2017-08-12.
  65. liamdawe (2017-04-13). "The UNIGINE engine will get Vulkan support this year". GamingOnLinux. Retrieved 2017-07-31.
  66. "Vulkanised! Manticore with Vulkan on Mobile Device - May 2017". YouTube. The Khronos Group. 2017-05-31. Retrieved 2017-06-11.
  67. "Banshee 3D - Home". Retrieved 2017-08-12.
  68. "GPUPerfStudio Vulkan Tools". AMD.
  69. "gskvulkanrenderer.c".
  70. "RenderDoc Version v0.27".
  71. "Vulkan 1.0 specification released with day-one support for Wayland". 2016-02-16.
  72. "Vulkan Overview" (PDF). Khronos Group. June 2015. Retrieved 18 August 2015. p. 19 "Vulkan Status"
  73. "Android N’s second preview build supports Vulkan and new emoji". Ars Technica.
  74. "Final Developer Preview before Android 7.0 Nougat begins rolling out". 2016-07-19.
  75. "The Android platform includes an Android-specific implementation of the Vulkan API specification from the Khronos Group". 2016-04-05.
  76. Larabel, Michael (2016-10-27). "AMDGPU-PRO 16.40 Released For Ubuntu & Red Hat Linux Systems". Phoronix. Retrieved 2017-08-08.
  77. "Radeon GPUs are ready for the Vulkan graphics API". Community. AMD.
  78. Larabel, Michael (30 August 2016). "Testing The Open-Source "RADV" Radeon Vulkan Driver vs. AMDGPU-PRO". Phoronix. Retrieved 8 August 2017.
  79. "AMD Radeon Software version 16.15.1009 supports Vulkan". 2016-02-16.
  80. "NVIDIA DRIVERS Linux x64 (AMD64/EM64T) Display Driver". Nvidia.
  81. 1 2 "Vulkan Driver Support". NVIDIA Developer. Nvidia. Retrieved 2016-04-04.
  82. "android: add vulkan build for intel". 2017-01-31.
  83. "Open-source Vulkan drivers for Intel hardware". 2016-02-16.
  84. Larabel, Michael (8 July 2016). "Mesa 12.0 Released With OpenGL 4.3 Support, Intel Vulkan & Many Other Features". Phoronix. Retrieved 8 August 2017.
  85. "15.45.14.4590: Intel Graphics Driver for Windows 7/8.1/10 (Vulkan Support)". Intel.
  86. "Imagination announces Vulkan SDK for PowerVR Rogue GPUs". Imagination Blog. PowerVR Developer Technology Team. 16 March 2016. Retrieved 27 April 2016.
  87. "Qualcomm announces Vulkan API support for Adreno 5xx and 4xx GPUs".
  88. "Qualcomm announces Vulkan API support for Adreno 530 GPU".
  89. "ARM Bifrost GPU Architecture". 2016-05-30.
  90. "ARM® Mali™GPUs with Vulkan Conformance".
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.