Vulkan

Last updated

Vulkan
Original author(s) AMD, DICE (original Mantle design)
Developer(s) Khronos Group (donated and derived variant, as Vulkan)
Initial releaseFebruary 16, 2016;8 years ago (2016-02-16) [1]
Stable release 1.3.282 (April 14, 2024;2 days ago (2024-04-14) [2] ) [±]
Repository
Written in C [3]
Operating system Android, Linux, Haiku, Fuchsia, BSD Unix, [4] QNX, [5] Windows, Nintendo Switch, [6] [7] [8] Stadia, Tizen, [9] [10] Raspberry Pi, [11] vxWorks [12]
Type 3D graphics and compute API [13]
License Apache License 2.0 and MIT [14]
Website vulkan.org

Vulkan is a low-level, low-overhead cross-platform API and open standard for 3D graphics and computing. [15] [16] [17] It was intended to address the shortcomings of OpenGL, and allow developers more control over the GPU. It is designed to support a wide variety of GPUs, CPUs and operating systems, it is also designed to work with modern multi-core CPUs.

Contents

Overview

Vulkan targets high-performance real-time 3D-graphics applications, such as video games and interactive media, and highly parallelized computing. Vulkan is intended to offer higher performance and more efficient CPU and GPU usage compared to the older OpenGL and Direct3D 11 APIs. It does so by providing a considerably lower-level API for the application than the older APIs, that more closely resembles how modern GPUs work.

Vulkan is comparable to Apple's Metal API and Microsoft's Direct3D 12. In addition to its lower CPU usage, Vulkan is designed to allow developers to better distribute work among multiple CPU cores. [18]

Vulkan was first announced by the non-profit Khronos Group at GDC 2015. [13] [19] [20] The Vulkan API was initially referred to as the "next generation OpenGL initiative", or "OpenGL next" [21] by Khronos, but use of those names was discontinued when "Vulkan" was announced. [22]

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. [13]

Features

OpenGL and Vulkan are both rendering APIs. In both cases, the GPU executes shaders, while the CPU executes everything else. Division of labor cpu and gpu.svg
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 predecessor, OpenGL. Vulkan offers lower overhead, more direct control over the GPU, and lower CPU usage. [20] The overall concept and feature set of Vulkan is similar to concepts seen in Mantle and later adopted by Microsoft with Direct3D 12 and Apple with Metal.

Intended advantages of Vulkan over previous-generation APIs include the following:

Unified API

Vulkan provides a single API for both desktop and mobile graphics devices, whereas previously these were split between OpenGL and OpenGL ES respectively.

Cross-platform

Vulkan is available on multiple modern operating systems. Like OpenGL, and in contrast to Direct3D 12, the Vulkan API is not locked to a single OS or device form factor. Vulkan runs natively on Android, Linux, BSD Unix, QNX, Haiku, [23] Nintendo Switch, Raspberry Pi, Stadia, Fuchsia, Tizen, and Windows 7, 8, 10, and 11. MoltenVK provides freely licensed [24] [25] [26] third-party support for macOS, iOS and tvOS by wrapping over Apple's Metal API. [27]

Lower CPU usage

Vulkan reduces load on CPUs through the use of batching and other low-level optimizations, therefore reducing CPU workloads and leaving the CPU free to do more computation or rendering than would otherwise be possible. [28] [29]

Multi-threading friendly design

Direct3D 11 and OpenGL 4 were initially designed for use with single-core CPUs and only received augmentation to be executed on multi-cores. Even when application developers use the augmentations, these APIs regularly do not scale well on multi-cores. Vulkan offers improved scalability on multi-core CPUs due to the modernized threading architecture. [30] [31]

Pre-compiled shaders

OpenGL uses the high-level language GLSL for writing shaders, which forces each OpenGL driver to implement its own compiler for GLSL. This then executes at application runtime to translate the program's shaders into the GPU's machine code. In contrast, Vulkan drivers are supposed to ingest shaders already translated into an intermediate binary format called SPIR-V (Standard Portable Intermediate Representation), analogous to the binary format that HLSL shaders are compiled into in Direct3D. By allowing shader pre-compilation, application initialization speed is improved and a larger variety of shaders can be used per scene. A Vulkan driver only needs to perform GPU specific optimization and code generation, resulting in easier driver maintenance, and potentially smaller driver packages. [32] The developers of applications now can also more easily obfuscate proprietary shader code, due to shaders not being stored directly as source code, however tools are provided that can decompile SPIR-V to human-readable high-level code. [31] [17]

Others

OpenGL vs. Vulkan

OpenGLVulkan [34]
One single global state machineObject-based with no global state
State is tied to a single contextAll state concepts are localized to a command buffer
Operations can only be executed sequentiallyMulti-threaded programming is possible
GPU memory and synchronization are usually hiddenExplicit control over memory management and synchronization
Extensive error checkingVulkan drivers do no error checking at runtime;
there is a validation layer for developers

In 2016 NVIDIA stated that "OpenGL is still a great option for a lot of use cases, as it comes at a much lower complexity and maintenance burden than Vulkan, while in many cases still providing great overall performance." [35]

AMD states that "Vulkan supports close-to-metal control, enabling faster performance and better image quality across Windows 7, Windows 8.1, Windows 10, and Linux. No other graphics API offers the same powerful combination of OS compatibility, rendering features, and hardware efficiency." [36]

Versions

Vulkan 1.0

Vulkan 1.0 was released in February 2016.

Vulkan 1.1

At SIGGRAPH 2016, Khronos announced that Vulkan would be getting support for automatic multi-GPU features, similar to what is offered by Direct3D 12. [37] 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. [38] For example, integrated GPUs included on the CPU can be used in conjunction with a high-end dedicated GPU for a slight performance boost.

On March 7, 2018, Vulkan 1.1 was released by the Khronos Group. [39] This first major update to the API standardized several extensions, such as multi-view, device groups, cross-process and cross-API sharing, advanced compute functionality, HLSL support, and YCbCr support. [40] At the same time, it also brought better compatibility with DirectX 12, explicit multi-GPU support, ray tracing support, [41] [42] and laid the groundwork for the next generation of GPUs. [43] Alongside Vulkan 1.1, SPIR-V was updated to version 1.3. [40]

Vulkan 1.2

On January 15, 2020, Vulkan 1.2 [44] was released by the Khronos Group. [45] This second major update to the API integrates 23 additional commonly-used proven Vulkan extensions into the base Vulkan standard. Some of the most important features are "timeline semaphores for easily managed synchronization", "a formal memory model to precisely define the semantics of synchronization and memory operations in different threads", and "descriptor indexing to enable reuse of descriptor layouts by multiple shaders". The additional features of Vulkan 1.2 improve its flexibility when it comes to implementing other graphics APIs on top of Vulkan, including "uniform buffer standard layout", "scalar block layout", and "separate stencil usage". [46]

Vulkan 1.3

On January 25, 2022, Vulkan 1.3 was released by the Khronos Group. [47] This third major update to the API integrates 23 additional commonly-used proven Vulkan extensions into the base Vulkan standard. [48] Vulkan 1.3 focuses on reducing fragmentation by making the new features not optional in order for a device to be considered Vulkan 1.3 capable. [47] [49] The new features in Vulkan 1.3 include dynamic rendering, additional dynamic state, improved synchronization API, and device profiles.

Planned features

When releasing OpenCL 2.2, the Khronos Group announced that OpenCL would converge where possible with Vulkan to enable OpenCL software deployment flexibility over both APIs. [50] [51] This has been now demonstrated by Adobe's Premiere Rush using the clspv [52] open source compiler to compile significant amounts of OpenCL C kernel code to run on a Vulkan runtime for deployment on Android. [53]

History

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

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

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". [56]

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. [57] [58] There is still the possibility [59] of Sandy Bridge support, since it supports compute through Direct3D11.

On August 10, 2015, Google announced that future versions of Android would support Vulkan. [60] Android 7.x "Nougat" launched support for Vulkan on August 22, 2016. Android 8.0 "Oreo" has full support.

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. [20]

2016

The full Vulkan specification and the open-source Vulkan SDK were released on February 16, 2016. [1]

2018

On February 26, 2018, Khronos Group announced that the Vulkan API became available to all on macOS and iOS through the MoltenVK library, which enables Vulkan to run on top of Metal. [61] Other new developments were shown at SIGGRAPH 2018. [62] Previously MoltenVK was a proprietary and commercially licensed solution, but Valve made an arrangement with developer Brenwill Workshop Ltd to open-source MoltenVK under the Apache 2.0 license and as a result the library is now available on GitHub. Valve also announced that Dota 2 can as of February 26, 2018 run on macOS using the Vulkan API, which is based on MoltenVK. [63]

2019

On February 25, 2019, the Vulkan Safety Critical (SC) Working Group was announced to bring Vulkan GPU acceleration to safety critical industries. [64]

Google's Stadia streaming cloud gaming service used Vulkan on Linux based servers with AMD GPUs. [65]

2020

On January 15, 2020, Vulkan 1.2 was released.

Alongside the Vulkan 1.2 release, the Khronos Group posted a blog post which considered that HLSL support in Vulkan had reached "production ready" status, given the improvements in Microsoft's DXC compiler and Khronos's glslang compiler, and new features in Vulkan 1.2 which enhance HLSL support. [66]

On February 3, 2020, the Raspberry Pi Foundation announced that it was working on an open source Vulkan driver for their Raspberry Pi, a popular single board computer. [67] On June 20, 2020, a graphics engineer revealed that he had created one after two years of work that was capable of running VkQuake3 at over 100FPS on the small computer. [68]

On March 17, 2020, Khronos Group released the Ray Tracing extensions, based on Nvidia's proprietary extension, with some major extensions and many minor changes, which in turn was based on Nvidia's OptiX API. [69] [70] On November 23, 2020, these Ray Tracing extensions were finalized. [71]

On November 24, 2020, Raspberry Pi Foundation announced that their driver for the Raspberry Pi 4 is Vulkan 1.0 conformant. [72]

2022

On January 25, 2022, Vulkan 1.3 was released.

On March 1, 2022, Vulkan SC 1.0 was released, bringing Vulkan graphics and compute for the safety-critical industry while being based on the Vulkan 1.2 standard. [73]

On August 1, 2022, Raspberry Pi Foundation announced that their driver for the Raspberry Pi 4 is Vulkan 1.2 conformant. [74]

On September 1, 2022, Mesh Shading for Vulkan was released. [75] [76]

2024

Khronos Group announced the new Vulkan Roadmap 2024 on January 25, 2024. [77] Khronos Group announced the new AV1 video decoding extension on February 1, 2024. [78]

Support across vendors

Screenshot of vulkaninfo, showing information about supported Vulkan instances and vkcube, a program to test Vulkan implementation on a system Vulkaninfo with vkcube screenshot.png
Screenshot of vulkaninfo, showing information about supported Vulkan instances and vkcube, a program to test Vulkan implementation on a system

Initial specifications stated that Vulkan drivers can be implemented on any hardware that supports OpenGL ES 3.1 or OpenGL 4.x and up. [79] 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.

Intel

As of March 2023, Intel has split Vulkan driver support on Windows [80] and on Linux. [81] All drivers are developed by Intel.

On Windows, Skylake through Ice Lake supports up to Vulkan 1.3, [82] with limited support after July 2022 as future updates will only cover security fixes. [80] Iris Xe and newer are fully supported as of March 2023. [83]

On Linux, as of March 2023 there is incomplete Vulkan support for Haswell [84] with it not being Vulkan 1.0 compliant. [85] Apart from Haswell, Ivy Bridge and Broadwell are also supported by a legacy Vulkan driver in Mesa called HASVK. [81] Skylake and newer being supported by a driver in Mesa called ANV. [81]

AMD

On Windows, Vulkan 1.2 is supported from GCN 1.0 to GCN 3.0, [86] [87] [88] with no further updates planned after June 2021. [89] GCN 4.0 and newer support Vulkan 1.3. [90]

On Linux there are various different Vulkan drivers with varying and overlapping hardware support. There is the open-source Vulkan driver called AMDVLK, developed by AMD which mirrors Windows support. [91] There is also the proprietary driver called AMDGPU-PRO which is not recommended to be used for most users as of March 2023. [92]

There is also the recommended driver called RADV in Mesa developed by Valve, Red Hat, [93] Google [94] and others. This driver as of March 2023 supports all GCN and RDNA cards. [95] This RADV driver's support for GCN 1.0 through GCN 2.0 requires its experimental support in the amdgpu kernel module to be enabled. [96]

NVIDIA

On Windows and Linux there is the NVIDIA developed Vulkan driver which supports Vulkan 1.2 on Kepler cards [97] with no further updates planned after September 2021. [98] Maxwell and newer support Vulkan 1.3. [99]

NVK, an experimental, open source Vulkan driver for Linux based on nouveau, was announced in October 2022. [100] It was merged into mainline Mesa in August 2023. [101] The driver currently supports Vulkan 1.3 [102]

Android and mobile GPUs

Most modern Android devices support Vulkan. Android 7.0 Nougat includes optional Vulkan 1.0 support, [103] Android 9.0 Pie includes optional Vulkan 1.1 support, and Android 10 expects (but does not require) that all non-low memory 64-bit devices support Vulkan 1.1. [104] [105] [106] Android 13 expects under the same conditions support of Vulkan 1.3. [107] On Linux and some ChromeOS devices, the open-source Mesa driver provides support for Arm Mali (Midgard and Bifrost), Qualcomm Adreno, and Broadcom VideoCore VI hardware. [108]

Apple

As of June 2022, Apple devices do not provide native support for the Vulkan API. [109] Vulkan support is available via the open-source library MoltenVK, which provides a Vulkan implementation on top of the Metal graphics API provided on iOS and macOS devices, though it has some limitations in regards to certain advanced API features. [27]

In June 2022, version 1.3.217 of Vulkan added support for Metal objects, facilitating import and export between the two APIs. [110] In December 2022, Vulkan version 1.3.236 added small fixes for the interaction with Apple Metal. [111]

Backwards compatibility

Vulkan is not backwards compatible with OpenGL, [112] [17] [note 1] although there are certain projects that implement OpenGL on top of Vulkan, such as Google's ANGLE and Mesa's Zink. [113]

Vulkan is also not compatible with other graphics APIs such as Direct3D, Metal, and Mantle, however implementations of those APIs exist atop of Vulkan:

Platform-specific graphics APIs implemented atop of Vulkan may also be able to run on alternative platforms. For example, DXVK provides an alternative shared library intended to be used on Linux natively (without the Wine compatibility layer) to help with game porting.

See also

Notes

  1. The process of setting up a graphics rendering pipeline doesn't differ drastically from OpenGL [ES] ones. E.g. shaders written in GLSL still can be reused: the source code can be compiled/translated by a standalone compiler into a new intermediate binary format called SPIR-V, which can then be consumed by the Vulkan API.

Related Research Articles

<span class="mw-page-title-main">OpenGL</span> Cross-platform graphics API

OpenGL is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.

<span class="mw-page-title-main">Radeon</span> Brand of computer products

Radeon is a brand of computer products, including graphics processing units, random-access memory, RAM disk software, and solid-state drives, produced by Radeon Technologies Group, a division of AMD. The brand was launched in 2000 by ATI Technologies, which was acquired by AMD in 2006 for US$5.4 billion.

Direct3D and OpenGL are both application programming interfaces (APIs) that can be used in applications to render 2D and 3D computer graphics. As of 2005, graphics processing units (GPUs) almost always implement one version of both of these APIs. Examples include: DirectX 9 and OpenGL 2 circa 2004; DirectX 10 and OpenGL 3 circa 2008; and most recently, DirectX 11 and OpenGL 4 circa 2011. GPUs that support more recent versions of the standards are backwards compatible with applications that use the older standards; for example, one can run older DirectX 9 games on a more recent DirectX 11-certified GPU.

<span class="mw-page-title-main">OpenGL ES</span> Subset of the OpenGL API for embedded systems

OpenGL for Embedded Systems is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accelerated using a graphics processing unit (GPU). It is designed for embedded systems like smartphones, tablet computers, video game consoles and PDAs. OpenGL ES is the "most widely deployed 3D graphics API in history".

Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open source implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware drivers.

<span class="mw-page-title-main">OpenGL Shading Language</span> High-level shading language

OpenGL Shading Language (GLSL) is a high-level shading language with a syntax based on the C programming language. It was created by the OpenGL ARB to give developers more direct control of the graphics pipeline without having to use ARB assembly language or hardware-specific languages.

<span class="mw-page-title-main">Free and open-source graphics device driver</span> Software that controls computer-graphics hardware

A free and open-source graphics device driver is a software stack which controls computer-graphics hardware and supports graphics-rendering application programming interfaces (APIs) and is released under a free and open-source software license. Graphics device drivers are written for specific hardware to work within a specific operating system kernel and to support a range of APIs used by applications to access the graphics hardware. They may also control output to the display if the display driver is part of the graphics hardware. Most free and open-source graphics device drivers are developed by the Mesa project. The driver is made up of a compiler, a rendering API, and software which manages access to the graphics hardware.

nouveau (software) Open source software driver for Nvidia GPU

nouveau is a free and open-source graphics device driver for Nvidia video cards and the Tegra family of SoCs written by independent software engineers, with minor help from Nvidia employees.

Adreno is a series of graphics processing unit (GPU) semiconductor intellectual property cores developed by Qualcomm and used in many of their SoCs.

<span class="mw-page-title-main">AMD Radeon Software</span> Device driver and utility software package for AMD GPUs and APUs

AMD Radeon Software is a device driver and utility software package for AMD's Radeon graphics cards and APUs. Its graphical user interface is built with Qt and is compatible with 64-bit Windows and Linux distributions.

<span class="mw-page-title-main">OpenCL</span> Open standard for programming heterogenous computing systems, such as CPUs or GPUs

OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) and other processors or hardware accelerators. OpenCL specifies programming languages for programming these devices and application programming interfaces (APIs) to control the platform and execute programs on the compute devices. OpenCL provides a standard interface for parallel computing using task- and data-based parallelism.

Video Decode and Presentation API for Unix (VDPAU) is a royalty-free application programming interface (API) as well as its implementation as free and open-source library distributed under the MIT License. VDPAU is also supported by Nvidia.

<span class="mw-page-title-main">Intel Graphics Technology</span> Series of integrated graphics processors by Intel

Intel Graphics Technology (GT) is the collective name for a series of integrated graphics processors (IGPs) produced by Intel that are manufactured on the same package or die as the central processing unit (CPU). It was first introduced in 2010 as Intel HD Graphics and renamed in 2017 as Intel UHD Graphics.

<span class="mw-page-title-main">Radeon HD 7000 series</span> Series of video cards

The Radeon HD 7000 series, codenamed "Southern Islands", is a family of GPUs developed by AMD, and manufactured on TSMC's 28 nm process.

<span class="mw-page-title-main">Radeon HD 8000 series</span> Family of GPUs by AMD

The Radeon HD 8000 series is a family of computer GPUs developed by AMD. AMD was initially rumored to release the family in the second quarter of 2013, with the cards manufactured on a 28 nm process and making use of the improved Graphics Core Next architecture. However the 8000 series turned out to be an OEM rebadge of the 7000 series.

<span class="mw-page-title-main">Radeon 200 series</span> Series of video cards

The Radeon 200 series is a series of graphics processors developed by AMD. These GPUs are manufactured on a 28 nm Gate-Last process through TSMC or Common Platform Alliance.

<span class="mw-page-title-main">Mantle (API)</span> Low-overhead rendering API

Mantle was a low-overhead rendering API targeted at 3D video games. AMD originally developed Mantle in cooperation with DICE, starting in 2013. Mantle was designed as an alternative to Direct3D and OpenGL, primarily for use on personal computers, although Mantle supports the GPUs present in the PlayStation 4 and in the Xbox One. In 2015, Mantle's public development was suspended and in 2019 completely discontinued, as DirectX 12 and the Mantle-derived Vulkan rose in popularity.

<span class="mw-page-title-main">Metal (API)</span> iOS, macOS, and tvOS graphics rendering API

Metal is a low-level, low-overhead hardware-accelerated 3D graphic and compute shader API created by Apple, debuting in iOS 8. Metal combines functions similar to OpenGL and OpenCL in one API. It is intended to improve performance by offering low-level access to the GPU hardware for apps on iOS, iPadOS, macOS, and tvOS. It can be compared to low-level APIs on other platforms such as Vulkan and DirectX 12.

<span class="mw-page-title-main">Radeon 300 series</span> Series of video cards

The Radeon 300 series is a series of graphics processors developed by AMD. All of the GPUs of the series are produced in 28 nm format and use the Graphics Core Next (GCN) micro-architecture.

<span class="mw-page-title-main">LunarG</span> American software company

LunarG is a software company specializing in device driver development for video cards.

References

  1. 1 2 "Khronos Releases Vulkan 1.0 Specification". Khronos.org. Khronos Group Press Release. February 16, 2016. Archived from the original on October 20, 2021.
  2. "Vulkan® 1.3.282 - A Specification" . Retrieved April 14, 2024.
  3. "KhronosGroup/Vulkan-Docs". GitHub. October 10, 2021. Archived from the original on October 20, 2021.
  4. "Vulkan on FreeBSD". Vulkan GPU info. October 28, 2021.
  5. "Vulkan on QNX". khronos.org. July 14, 2021. Archived from the original on October 20, 2021.
  6. "Nintendo Switch Listed as Vulkan and OpenGL Conformant – My Nintendo News". My Nintendo News. Excite Global Media. December 19, 2016. Archived from the original on October 20, 2021.
  7. Palumbo, Alessio (December 19, 2016). "Nintendo Switch Officially Supports Vulkan, OpenGL 4.5 & OpenGL ES". WCCF Tech. Archived from the original on October 20, 2021.
  8. "Conformant Products". khronos.org. The Khronos Group. April 28, 2018. Archived from the original on January 28, 2017. Retrieved February 28, 2018.
  9. Bright, Peter & Walton, Mark (February 16, 2016). "Vulkan now official, with 1.0 API release and AMD driver [Updated]". Ars Technica . Archived from the original on October 20, 2021. Retrieved February 18, 2016.
  10. Valich, Theo (February 17, 2016). "Mantle Cycle is Complete as Khronos Releases Vulkan 1.0". VR World. Archived from the original on October 20, 2021. Retrieved February 19, 2016.
  11. "Vulkan on Raspberry Pi". raspberrypi.org. July 14, 2021. Archived from the original on October 20, 2021.
  12. "VxWorks offers support for many standard graphic libraries, such as ..., and Vulkan" (PDF). WinDriver.
  13. 1 2 3 4 "More on Vulkan and SPIR – V: The future of high-performance graphics" (PDF). Khronos Group. p. 10. Archived (PDF) from the original on August 11, 2016. Retrieved June 27, 2015. Thanks AMD!
  14. "Vulkan-Headers/LICENSE.md at main · KhronosGroup/Vulkan-Headers" . Retrieved January 3, 2023 via GitHub.
  15. "Vulkan". NVIDIA Developer. December 2, 2015. Archived from the original on October 20, 2021. Retrieved July 8, 2021.
  16. "Vulkan®". GPUOpen. Archived from the original on October 20, 2021. Retrieved July 8, 2021.
  17. 1 2 3 "Developing 3D Graphics with Vulkan on Mobile". Qualcomm Developer Network. Archived from the original on October 20, 2021. Retrieved July 8, 2021.
  18. Hruska, Joel. "Next-generation Vulkan API could be Valve's killer advantage in battling Microsoft". ExtremeTech. Archived from the original on March 13, 2015. Retrieved June 26, 2015.
  19. "Vulkan: Graphics and compute Belong Together" (PDF). Khronos Group. March 2015. Archived (PDF) from the original on December 18, 2016. Retrieved March 5, 2015.
  20. 1 2 3 "Vulkan – Graphics and compute belong together". Khronos Group. Archived from the original on October 20, 2021. Retrieved March 5, 2015.
  21. Smith, Ryan. "Khronos Announces Next Generation OpenGL Initiative". Archived from the original on October 20, 2021. Retrieved September 24, 2016.
  22. Batchelor, James (March 3, 2015). "glNext revealed as Vulkan graphics API". Develop .
  23. "Vulkan lavapipe software rendering is working on Haiku". Haiku Community. September 24, 2021. Retrieved September 21, 2022.
  24. "MoltenVK, popular Vulkan development tool for macOS, goes open-source". Neowin. Archived from the original on October 20, 2021. Retrieved February 28, 2018.
  25. "Vulkan graphics will enable faster games and apps on Apple platforms". VentureBeat. February 26, 2018. Archived from the original on October 20, 2021. Retrieved February 28, 2018.
  26. "Vulkan Is Now Available on macOS/iOS By MoltenVK Being Open-Sourced, Vulkan SDK for Mac – Phoronix". phoronix.com. Retrieved February 28, 2018.
  27. 1 2 "MoltenVK". Molten. Archived from the original on January 5, 2018. Retrieved April 5, 2016.
  28. "Vulkan: High efficiency on mobile". Imagination Technologies. November 5, 2015. Archived from the original on November 9, 2015. Retrieved January 23, 2016.
  29. "Khronos Group Announces The Next-Generation 'Vulkan' Graphics And Compute API". Tom's Hardware. March 3, 2015. Archived from the original on October 20, 2021.
  30. "Vulkan: Scaling to multiple threads". Imagination Technologies. November 24, 2015. Archived from the original on November 26, 2015. Retrieved January 23, 2016.
  31. 1 2 "Adreno Vulkan Developer Guide" (PDF). August 31, 2017. pp. 9–10, 22. Archived (PDF) from the original on October 20, 2021.
  32. Kessenich, John. "An Introduction to SPIR-V" (PDF). Khronos Group. Archived from the original (PDF) on March 9, 2015. Retrieved March 5, 2015.
  33. "Ray tracing in Vulkan". Khronos Group. December 15, 2020. Archived from the original on October 20, 2021.
  34. "FOSDEM 2016 – Vulkan in Open-Source". FOSDEM. Archived from the original on October 20, 2021. Retrieved February 27, 2016.
  35. "Transitioning from OpenGL to Vulkan". Nvidia. February 11, 2016. Archived from the original on October 20, 2021.
  36. "AMD Vulkan API". AMD. Archived from the original on October 20, 2021.
  37. "Vulkan Next will bring better support for VR and multiple GPUs". PC World. Archived from the original on October 20, 2021.
  38. Williams, Daniel; Smith, Ryan. "Ashes of the Singularity Revisited: A Beta Look at Direct3D 12 & Asynchronous Shading". AnandTech. Archived from the original on October 20, 2021.
  39. "Khronos Group Releases Vulkan 1.1". The Khronos Group (Press release). March 7, 2018. Archived from the original on October 20, 2021. Retrieved March 21, 2018.
  40. 1 2 Larabel, Michael (March 7, 2018). "Vulkan 1.1 Released As The First Major Update To This Graphics/Compute API". Phoronix. Retrieved March 7, 2018.
  41. Larabel, Michael (September 19, 2018). "Vulkan 1.1.85 Released With Raytracing, Mesh Shaders & Other New NVIDIA Extensions". Phoronix. Retrieved September 19, 2018.
  42. Larabel, Michael (November 4, 2018). "Vulkan 1.1.91 Released With NV_ray_tracing, AMD Memory Overallocation Behavior". Phoronix. Retrieved November 4, 2018.
  43. Bright, Peter (March 7, 2018). "Vulkan 1.1 out today, with multi-GPU support, better DirectX compatibility". Ars Terchnica. Archived from the original on October 20, 2021. Retrieved March 7, 2018.
  44. "Vulkan 1.2 Specifications Released | Geeks3D". January 15, 2020. Archived from the original on October 20, 2021.
  45. "Khronos Group Releases Vulkan 1.2". The Khronos Group (Press release). January 15, 2020. Archived from the original on October 20, 2021. Retrieved February 27, 2020.
  46. "Vulkan 1.2 Arrives with an Eye on Greater Performance, Better Compatibility With Other 3D APIs on Top". Phoronix (Press release). January 15, 2020. Retrieved February 27, 2020.
  47. 1 2 "Khronos Strengthens Vulkan Ecosystem with Release of Vulkan 1.3, Public Roadmap and Profiles". January 25, 2022.
  48. "Vulkan® 1.3.206 – A Specification (with all registered Vulkan extensions)". khronos.org.
  49. "Vulkan 1.3 Specification Released". January 25, 2022.
  50. "Breaking: OpenCL Merging Roadmap into Vulkan | PC Perspective". pcper.com. Archived from the original on November 1, 2017. Retrieved May 17, 2017.
  51. "SIGGRAPH 2018: OpenCL-Next Taking Shape, Vulkan Continues Evolving – Phoronix". phoronix.com.
  52. Clspv is a prototype compiler for a subset of OpenCL C to Vulkan compute shaders: google/clspv, August 17, 2019, archived from the original on October 20, 2021, retrieved August 20, 2019
  53. "Vulkan Update SIGGRAPH 2019" (PDF). Archived from the original (PDF) on August 20, 2019.
  54. SIGGRAPH 2015: 3D Graphics API State of the Union (Video). SIGGRAPH 2015. Khronos Group. September 16, 2015. Event occurs at 57:24. Retrieved November 12, 2015 via YouTube.
  55. "US Patent and Trademark Office". Archived from the original on May 11, 2013. Retrieved March 7, 2015.
  56. Batchelor, James (March 3, 2015). "glNext revealed as Vulkan graphics API | Latest news from the game development industry | Develop". MCV. Develop . Retrieved March 5, 2015.
  57. Larabel, Michael (March 5, 2015). "Valve Developed An Intel Linux Vulkan GPU Driver". Phoronix . Retrieved August 8, 2017.
  58. Larabel, Michael (March 12, 2015). "Learning More About The Intel Vulkan Driver, Linux Vulkan Plans". Phoronix . Retrieved August 8, 2017.
  59. "Evan Odabashian on Twitter". Archived from the original on August 19, 2020. Retrieved July 22, 2015.
  60. Woods, Shannon (August 12, 2015). "Low-overhead rendering with Vulkan". Android Developers Blog. Archived from the original on October 20, 2021.
  61. Bright, Peter (February 26, 2018). "Vulkan is coming to macOS and iOS, but no thanks to Apple". Ars Technica. Archived from the original on October 20, 2021. Retrieved February 26, 2018.
  62. "3D Graphics with Vulkan and OpenGL" (PDF). The Khronos Group. August 15, 2018. Retrieved November 30, 2023.
  63. Larabel, Michael (February 26, 2018). "Vulkan Is Now Available on macOS/iOS By MoltenVK Being Open-Sourced, Vulkan SDK for Mac". Phoronix. Retrieved February 26, 2018.
  64. "Khronos Group Begins Work on a New Standards Initiative to Bring Vulkan GPU Acceleration to Safety Critical Industries". The Khronos Group. February 25, 2019. Archived from the original on October 20, 2021. Retrieved August 3, 2019.
  65. Larabel, Michael (March 19, 2019). "Stadia Is Google's Cloud Gaming Service Using Linux, Vulkan & A Custom AMD GPU" . Retrieved November 30, 2023.
  66. "HLSL as a First Class Vulkan Shading Language". The Khronos Group. January 15, 2020. Archived from the original on October 20, 2021. Retrieved March 31, 2020.
  67. Mott, Nathaniel (February 3, 2020). "Raspberry Pi to Get Vulkan Graphics Driver (Eventually)". Tom's Hardware. Archived from the original on August 19, 2020. Retrieved June 20, 2020.
  68. Zhiye Liu (June 20, 2020). "Nvidia Engineer's Vulkan Driver For Raspberry Pi Runs Quake III Over 100 FPS at 720p". Tom's Hardware. Archived from the original on August 19, 2020. Retrieved June 20, 2020.
  69. "Khronos Group Releases Vulkan Ray Tracing". The Khronos Group. March 17, 2020. Archived from the original on October 20, 2021.
  70. "Vulkan Ray-Tracing Arrives With New Khronos Extension – Phoronix". phoronix.com. Retrieved March 17, 2020.
  71. "Vulkan Ray Tracing Final Specification Release". The Khronos Group. November 23, 2020. Archived from the original on October 20, 2021.
  72. "Vulkan update: we're conformant!". Raspberry Pi Foundation. November 24, 2020.
  73. "Vulkan SC – Vulkan graphics for the safety critical industry". The Khronos Group. February 22, 2019. Retrieved March 30, 2022.
  74. "Vulkan update: version 1.2 conformance for Raspberry Pi 4". Raspberry Pi Foundation. August 1, 2022.
  75. "Mesh Shading for Vulkan". September 2022.
  76. "VK_EXT_mesh_shader".
  77. "Khronos Drives Industry Support for Expanded 3D Features with Vulkan Roadmap 2024". January 25, 2024.
  78. "Khronos Releases AV1 Decode in Vulkan Video with SDK Support for H.264/H.265 Encode". February 2024.
  79. "Vulkan Overview" (PDF). Khronos Group. June 2015. Archived (PDF) from the original on December 8, 2015. Retrieved August 18, 2015. p. 19 "Vulkan Status"
  80. 1 2 "Graphics Driver Support Update for 10th Generation and Older Intel Processor Graphics". community.intel.com. July 27, 2022. Retrieved February 14, 2023.
  81. 1 2 3 "Intel Vulkan Driver Split Happens - "HASVK" Introduced For Older Gen7/Gen8 Graphics". www.phoronix.com. Retrieved February 14, 2023.
  82. "Intel® 6th-10th Gen Processor Graphics - Windows". Intel. Retrieved February 14, 2023.
  83. "Intel® Arc™ & Iris® Xe Graphics - WHQL - Windows*". Intel. Retrieved February 14, 2023.
  84. "Haswell Vulkan support is incomplete (#6008) · Issues · Mesa / mesa · GitLab". GitLab. February 9, 2022. Retrieved February 14, 2023.
  85. "intel: split vulkan driver between gfx7/8 and above (!18208) · Merge requests · Mesa / mesa · GitLab". GitLab. August 23, 2022. Retrieved February 14, 2023.
  86. "AMD Radeon R7 265 Specs". TechPowerUp. Retrieved February 14, 2023.
  87. "AMD Radeon HD 7790 Specs". TechPowerUp. Retrieved February 14, 2023.
  88. "AMD Radeon R9 285 Specs". TechPowerUp. Retrieved February 14, 2023.
  89. "Product and OS Support Update for Radeon Software Adrenalin 21.6.1". AMD.com. June 21, 2021. Retrieved February 14, 2023.
  90. "Radeon™ Software Adrenalin 22.1.2 with Vulkan 1.3 Support Release Notes" . Retrieved February 14, 2023.
  91. AMD Open Source Driver for Vulkan®, GPUOpen Drivers, February 11, 2023, retrieved February 14, 2023
  92. "Radeon Software For Linux 22.10 Driver Being Prepared For Release". Phoronix Forums. March 31, 2022. Retrieved February 14, 2023.
  93. "AMD RDNA2 Vulkan: RADV vs. RADV+NGGC vs. AMDVLK vs. PRO Driver Benchmarks". www.phoronix.com. Retrieved February 14, 2023.
  94. "Mesa's RADV Radeon Vulkan Ray-Tracing Performance Continues Improving". www.phoronix.com. Retrieved February 14, 2023.
  95. "RADV — The Mesa 3D Graphics Library latest documentation". docs.mesa3d.org. Retrieved February 14, 2023.
  96. "AMDGPU - ArchWiki". wiki.archlinux.org. Retrieved February 14, 2023.
  97. "NVIDIA GeForce GTX 770 Specs". TechPowerUp. Retrieved February 14, 2023.
  98. "Support Plan for Kepler-series GeForce GPUs for Desktop | NVIDIA". nvidia.custhelp.com. Retrieved February 14, 2023.
  99. "Vulkan Driver Support". NVIDIA Developer. February 10, 2016. Retrieved February 14, 2023.
  100. "Introducing NVK". Collabora. Retrieved February 14, 2023.
  101. "NVK Has landed!". Collabora. Retrieved December 8, 2023.
  102. Larabel, Michael (January 27, 2024). "Mesa's NVIDIA Vulkan Driver "NVK" Now Exposes Vulkan 1.3 Support". www.phoronix.com. Retrieved January 27, 2024.
  103. "Android N's second preview build supports Vulkan and new emoji". Ars Technica. April 13, 2016. Archived from the original on October 20, 2021.
  104. "Support for Vulkan Graphics API 1.1 is coming in Android P". April 8, 2018. Archived from the original on October 20, 2021.
  105. "What's New in Android: Q Beta 3 & More". Archived from the original on October 20, 2021.
  106. Albert, Dan. "Implement Vulkan". Source.Android.com. Google. Retrieved January 2, 2024.
  107. Albert, Dan. "Implement Vulkan". Source.Android.com. Google. Retrieved January 2, 2024.
  108. "Mesamatrix: The OpenGL vs Mesa matrix". mesamatrix.net. Archived from the original on October 20, 2021.
  109. "The State of Vulkan on Apple Devices" (PDF). LunarG. June 2021. Archived (PDF) from the original on July 9, 2021.
  110. Larabel, Michael (June 9, 2022). "Vulkan 1.3.217 Adds Extension To Interact With Apple Metal Objects". phoronix.com. Retrieved October 22, 2022.
  111. "Release Release for Vulkan SDK 1.3.236 · KhronosGroup/MoltenVK". GitHub. Retrieved December 29, 2022.
  112. Tim Anderson (March 3, 2015). "Here comes Vulkan: The next generation of the OpenGL graphics API". theregister.com. Archived from the original on October 20, 2021. Retrieved July 8, 2021.
  113. "Zink – The Mesa 3D Graphics Library latest documentation". docs.mesa3d.org. Retrieved March 10, 2022.

Further reading