Vulkan
Developer(s) | Khronos Group with contributions from AMD [1][2][3][4][5] |
---|---|
Initial release | 16 February 2016[6] |
Stable release | 1.0.6
/ 12 March 2016 |
Repository | |
Operating system | Linux (Android, SteamOS, Tizen), Windows[7][8] |
Platform | Compatible hardware |
Type | 3D graphics and compute API[9] |
Website | Khronos.org/Vulkan |
As of | 16 February 2016 |
Vulkan is a low-overhead, cross-platform 3D graphics and compute API first announced at GDC 2015 by the Khronos Group.[9][10][11] The Vulkan API was initially referred to as the "next generation OpenGL initiative" by Khronos, but use of those names were discontinued once the Vulkan name was announced.[12] 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][9][13][14][15][16][17]
Like OpenGL, Vulkan targets high-performance realtime 3D graphics applications such as games and interactive media across all platforms, and offers higher performance and lower CPU usage, much like Direct3D 12 and Mantle. In addition to its lower CPU usage, Vulkan is also able to better distribute work amongst multiple CPU cores.[18]
Features
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.[11] Intended advantages include:
- Reduced driver overhead, reducing CPU workloads.[19]
- Reduced load on CPUs through the use of batching, leaving the CPU free to do additional computation or rendering than otherwise.[20]
- Intelligent and even CPU scaling for multi-core CPUs, which are by far the majority type of CPU on the market. Previous APIs like DirectX 11 and OpenGL 4 were initially designed for use with single-core CPUs and could not easily use multiple or scale workloads evenly across multiple, leaving some CPU cores underworked and some not even utilized at all, resulting in performance issues and frequent CPU bottlenecks.[21]
- OpenGL uses the high-level language GLSL for writing shaders which forces each OpenGL driver to implement its own compiler for GLSL that executes at application runtime to translate the program's shaders into executable code for the target platform. Vulkan will instead provide an intermediate binary format called SPIR-V (Standard Portable Intermediate Representation), analogous to the binary format that HLSL shaders are compiled into in DirectX. This reduces the onus on driver vendors, allows shader pre-compilation, and permits application developers to write shaders in languages other than GLSL.[22]
- Cross-platform API supported on both mobile devices and high-end graphics cards.
- OS agnostic to improve the portability of applications created using the API.
OpenGL | Vulkan |
---|---|
one single global state machine | object-based with no global state[23] |
state is tied to a single context | all state concepts are localized to a command buffer[24] |
GPU memory and synchronization are usually hidden | explicit control over memory management and synchronization[25] |
extensive error checking | Vulkan drivers do no error checking[26] |
Availability
The Vulkan specification 1.0 was released on the 16th of February 2016;[6] the initial target release date at the end of 2015 was not met. There are Vulkan SDKs available for Android, Linux and Windows.[27] Although still in beta, AMD and Nvidia have released drivers that support Vulkan.[28][29]
As of 7th March 2016, NVIDIA has released a Public WHQL (Game Ready) Driver - Version 364.47 - that includes Vulkan 1.0.3.0.[30]
Compatibility
Hardware
Initial specifications state that Vulkan will work on hardware that currently supports OpenGL ES 3.1 or OpenGL 4.X and up.[31] As Vulkan support will require 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.
Company | Hardware | Software support: Vulkan 1.0 | ||||||
---|---|---|---|---|---|---|---|---|
Microarchitecture | Available since | GPUs (chips) | Graphic cards / SoCs | Linux | Microsoft Windows | Android | Other | |
AMD | ||||||||
Polaris | 2016-June? | Ellesmere, Baffin, Greenland | AMD Radeon Rx 400 Series | — | Radeon Software 16.15.1009[hw_support 1] |
— | — | |
GCN 1.2 | 2014-Sep | Tonga, Fiji Carrizo |
R9 285, R9 380, Fury, Fury X | |||||
GCN 1.1 | 2013-Mar | Bonaire, Hawaii Kaveri, Kabini, Temash, Mullins, Beema, Carrizo-L |
HD 7790, PlayStation 4, Xbox One | |||||
GCN 1.0 | 2012-Feb | Oland, Cap Verde, Pitcairn, Tahiti | HD 77xx - HD 7900 Series | |||||
TeraScale 3 "Northern Islands" |
2010-Dec | Aruba (Trinity/Richland), Barts, Turks, Caicos, Cayman | HD 7xxx - HD 76xx Series | not supported | ||||
TeraScale 2 "Evergreens" |
2009-Sept | Cedar, Cypress, Juniper, Redwood, Palm, Sumo | Radeon HD 5000 Series | |||||
TeraScale 1 | 2007-May | R600, RV700, … | Radeon HD 2000 Series, HD 3000, HD 4000 | |||||
Nvidia | ||||||||
Pascal | 2016-April? | GP100, GP104, GP106, GP107 | TBD | Nvidia GeForce driver 355.00.29[hw_support 2] |
364.51[32] | ? | ||
Maxwell 2.0 | 2014-Sept | GM200, GM204, GM206, GM20B | GeForce 900 series, Tegra X1 | |||||
Maxwell 1.0 | 2014-Feb | GM107, GM108 | GTX 750 Ti, GTX 750 | |||||
Kepler | 2012-March | GK110, GK104, GK106, GK107, GK208 | GeForce 600 series, GeForce 700 series | |||||
Fermi | 2010-March | GF100, GF104, GF106, GF108, GF110, GF114, GF116 | GeForce 400 series, GeForce 500 series | not supported | ||||
Tesla 2.0 | 2008-Jun | GT200, GT215, GT216, GT218, | GeForce 200 series, GeForce 300 series | |||||
Tesla 1.0 | 2006-Nov | G80, G84, G86, G92, G94, G96, G98 | GeForce 8 series, GeForce 9 series, GeForce 100 series | |||||
Intel | ||||||||
Kaby Lake 14 nm | 2016-? | Planned for Mesa 11.3[hw_support 3] | not supported | |||||
Skylake 14 nm | 2015-Aug | Core i3-/i5-/i7-6000, | ||||||
Broadwell 14 nm | 2015-Jun | Core i3-/i5-/i7-5000, | ||||||
Haswell 22 nm | 2012-Sep | Core i3-/i5-/i7-4000, | ||||||
Ivy Bridge 22 nm | 2012-Apr | Core i3-/i5-/i7-3000, | ||||||
Sandy Bridge 32 nm | 2011-Jan | Core i3-/i5-/i7-2000, Pentium abc, Celeron abc | not supported | |||||
Westmere 32 nm | 2010-Jan | Core i3-/i5-/i7-xxx, Pentium abc, Celeron abc | ||||||
Imagination Technologies | ||||||||
PowerVR Series 7XT | 2014-Nov | GT7200, GT7400, GT7600, GT7800, GT7900 | PowerVR Graphics SDK v4.1 is due for release mid-March 2016[hw_support 4][hw_support 5] | |||||
PowerVR Series 7XE | 2014-Nov | GE7400, GE7800 | ||||||
PowerVR Series 6XT | 2014-Jan | GX6240, GX6250, GX6450, GX6650 | ||||||
PowerVR Series 6XE | 2014-Jan | G6050, G6060, G6100 (XE), G6110 | ||||||
PowerVR Series 6 (Rogue) | 2012-Jan | G6100, G6200, G6230, G6400, G6430, G6630 | ||||||
PowerVR Series 5XT | 2009-Jan | SGX543, SGX544, SGX554 | not supported | |||||
Qualcomm | ||||||||
Adreno 500 series | Adreno 510, Adreno 530 | Snapdragon 650 (MSM8956), Snapdragon 652 (MSM8976), Snapdragon 820 (MSM8996), … | 1.0[hw_support 6] | ? | ||||
Adreno 400 series | ||||||||
Adreno 300 series | not supported | |||||||
ARM | ||||||||
Mali Midgard 1–4 | mali-graphics-debugger 3.4.1 | OS X |
Software
The Talos Principle - The Talos Principle was the first video game with Vulkan rendering support.[33]
Unreal Engine 4 - On February 21, 2016, Epic Games announced Unreal Engine 4 support for Vulkan at Samsung's Galaxy Unpacked event.[34][35]
Window System Interface
The Vulkan Window System Interface (WSI) does for Vulkan what EGL does for OpenGL ES.[36]
History
The Khronos Group began a project to create a next generation graphics API in July 2014 with a kickoff meeting at Valve Corporation.[37] At SIGGRAPH 2014, the project was publicly announced with a call for participants.[9]
According to the US Patent and Trademark Office, the trademark for Vulkan was filed on February 19, 2015.[38]
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".[39]
On March 3, 2015, Valve announced the Source 2 engine, a game engine to support the Vulkan graphics API.[40][41]
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.[42][43] There is still the possibility[44] of Sandy Bridge support, since it supports compute through Direct3D11.
On August 10, 2015, Google announced that future versions of Android would support Vulkan.[45]
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 conformant drivers were available.[11] The specification and the open-source Vulkan SDK were released on February 16, 2016.[6]
See also
- OpenGL – Another graphics API by the Khronos Group
- OpenCL – Another compute API by the Khronos Group
- Mantle – A low-level graphics and compute API from AMD, the foundation of Vulkan
- Direct3D – Windows-only graphics API. Version 12 is a low-level API similar to Vulkan
- Metal – A low-level graphics and compute API for iOS and OS X
References
- ^ Hruska, Joel. "Not dead yet: AMD's Mantle powers new Vulkan API, VR efforts". Extreme Tech. Retrieved 26 June 2015.
- ^ Kirsch, Nathan. "Is AMD Mantle Dead As We Have Known It? Vulcan API Uses Mantle Technology for OpenGL". Legit Reviews. Retrieved 25 June 2015.
- ^ a b Shilov, Anton. "AMD: Vulkan absorbed 'best and brightest' parts of Mantle". KitGuru. Retrieved 26 June 2015.
- ^ 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...
- ^ Michaud, Scott (3 March 2015). "GDC 15: Khronos Acknowledges Mantle's Start of Vulkan". PC Perspective. Retrieved 19 May 2015.
- ^ a b c https://www.khronos.org/news/press/khronos-releases-vulkan-1-0-specification
- ^ Bright, Peter; Walton, Mark (16 February 2016). "Vulkan now official, with 1.0 API release and AMD driver [Updated]". United Kingdom: Ars Technica. Retrieved 18 February 2016.
- ^ Valich, Theo (17 February 2016). "Mantle Cycle is Complete as Khronos Releases Vulkan 1.0". VR World. Retrieved 19 February 2016.
- ^ a b c d "More on Vulkan and SPIR - V: The future of high-performance graphics" (PDF). Khronos Group. p. 10. Retrieved 27 June 2015.
Thanks AMD!
- ^ "Vulkan : Graphics and compute Belong Together" (PDF). Khronos.org. March 2015. Retrieved 2015-03-05.
- ^ a b c "Vulkan - Graphics and compute belong together". Khronos.org. Retrieved 2015-03-05.
- ^ Batchelor, James (3 March 2015). "glNext revealed as Vulkan graphics API". develop-online.net.
- ^ Mah Ung, Gordon (6 March 2015). "Mantle is a Vulkan: AMD's dead graphics API rises from the ashes in OpenGL's successor". PCWorld.
- ^ "AMD Gaming: One of Mantle's Futures: Vulkan | AMD Blogs". Community.amd.com. Retrieved 2015-03-05.
- ^ Hruska, Joel (4 March 2015). "Not dead yet: AMD's Mantle powers new Vulkan API, VR efforts". ExtremeTech. Retrieved 2015-03-05.
- ^ "AMD's Mantle Lives On In Vulkan - Lays The Foundation For The Next OpenGL". Wccftech.com. 2014-06-20. Retrieved 2015-03-05.
- ^ Kirsch, Nathan. "Is AMD Mantle Dead As We Have Known It? Vulcan API Uses Mantle Technology for OpenGL". Legit Reviews. Retrieved 2015-03-05.
- ^ Hruska, Joel. "Next-generation Vulkan API could be Valve's killer advantage in battling Microsoft". Extreme Tech. Retrieved 26 June 2015.
- ^ http://www.tomshardware.com/news/khronos-group-vulkan-graphics-api,28678.html
- ^ http://blog.imgtec.com/powervr/vulkan-high-efficiency-on-mobile
- ^ http://blog.imgtec.com/powervr/vulkan-scaling-to-multiple-threads
- ^ Kessenich, John. "An Introduction to SPIR-V" (PDF). Khronos Group. Retrieved 5 March 2015.
- ^ "FOSDEM 2016 - Vulkan in Open-Source". fosdem.org. Retrieved 2016-02-27.
- ^ "FOSDEM 2016 - Vulkan in Open-Source". fosdem.org. Retrieved 2016-02-27.
- ^ "FOSDEM 2016 - Vulkan in Open-Source". fosdem.org. Retrieved 2016-02-27.
- ^ "FOSDEM 2016 - Vulkan in Open-Source". fosdem.org. Retrieved 2016-02-27.
- ^ "Vulkan - Industy Forged". www.khronos.org. Khronos Group. 2015-12-18. Retrieved 2016-02-19.
- ^ "AMD Radeon™ Software Beta for Vulkan™ Release Notes". support.amd.com. Retrieved 2016-02-19.
- ^ "Vulkan Driver Support". NVIDIA Developer. Retrieved 2016-02-19.
- ^ "NVIDIA Vulkan Driver Support". Toms Hardware. Retrieved 2016-03-07.
- ^ "Vulkan Overview" (PDF). June 2015. Retrieved 18 August 2015.
{{cite web}}
: Unknown parameter|authors=
ignored (help) p. 19 "Vulkan Status" - ^ http://www.geforce.com/whats-new/articles/tom-clancys-the-division-game-ready-drivers-released
- ^ Williams, Daniel; Smith, Ryan (17 February 2016). "Quick Look: Vulkan Performance on The Talos Principle". Anandtech. Retrieved 19 February 2016.
- ^ "Epic Games adds Vulkan support to Unreal Engine 4". bit-tech. Retrieved 2016-02-24.
- ^ "Epic Games Unveils ProtoStar at Samsung Galaxy Unpacked". www.unrealengine.com. Retrieved 2016-02-24.
- ^ "Vulkan 1.0 specification released with day-one support for Wayland". 2016-02-16.
- ^ SIGGRAPH 2015: 3D Graphics API State of the Union (Video). SIGGRAPH 2015: Khronos Group. 16 September 2015. Event occurs at 57:24. Retrieved 12 November 2015.
{{cite AV media}}
: CS1 maint: location (link) - ^ "US Patent and Trademark Office". Retrieved 2015-03-07.
- ^ Batchelor, James. "glNext revealed as Vulkan graphics API | Latest news from the game development industry | Develop". Develop-online.net. Retrieved 2015-03-05.
- ^ Kollar, Philip (3 March 2015). "Valve announces Source 2 engine, free for developers". Retrieved 3 March 2015.
- ^ Mahardy, Mike (3 March 2015). "GDC 2015: Valve Announces Source 2 Engine". IGN. Retrieved 3 March 2015.
- ^ "Valve Developed An Intel Linux Vulkan GPU Driver - Phoronix". www.phoronix.com. Retrieved 2015-07-22.
- ^ "Learning More About The Intel Vulkan Driver, Linux Vulkan Plans - Phoronix". www.phoronix.com. Retrieved 2015-07-22.
- ^ "Evan Odabashian on Twitter". Retrieved 2015-07-22.
- ^ "Low-overhead rendering with Vulkan". Android Developers Blog. 12 August 2015.
{{cite web}}
: Unknown parameter|authors=
ignored (help)
Hardware support
- ^ "AMD Radeon Software version 16.15.1009 supports Vulkan". 2016-02-16.
- ^ "Nvidia: Vulkan support in Windows driver version 356.45 and Linux driver version 355.00.29". 2016-02-16.
- ^ "Open-source Vulkan drivers for Intel hardware". 2016-02-16.
- ^ "imgtec vulkan news".
- ^ "imgtec powervr-early-access".
- ^ "Qualcomm announces Vulkan API support for Adreno 5xx and 4xx GPUs".