Vulkan#Vulkan 1.3
{{Short description|Cross-platform 3D graphics API and open standard}}
{{About|the graphics software API}}
{{Lead too short|date=August 2023}}
{{Use mdy dates|date=February 2023}}
{{Infobox software
| name = Vulkan
| logo = Vulkan logo.svg
| author = AMD, DICE (original Mantle design)
| developer = {{wikidata|property|linked|P178}} (donated and derived variant, as Vulkan){{wikidata|reference|P178}}
| released = {{start date and age|{{wikidata|property|P577}}}}{{wikidata|reference|P577}}
| latest release version = 9 days ago
| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}{{wikidata|reference|P348}}
| programming language = {{wikidata|properties|linked|reference|P277}} (also available C++ API{{Citation |title=KhronosGroup/Vulkan-Hpp |date=2025-03-02 |url=https://github.com/KhronosGroup/Vulkan-Hpp |access-date=2025-03-03 |publisher=The Khronos Group}})
| operating system = Android, Linux, BSD Unix, Windows, Nintendo Switch, Fuchsia, Raspberry Pi, vxWorks, QNX, HarmonyOS, OpenHarmony, Haiku, Stadia, Tizen,
Through portability workarounds: macOS,{{Cite web |date=2021-01-13 |title=New Release of Vulkan SDK |url=https://www.khronos.org/blog/new-release-of-vulkan-sdk |access-date=2025-03-03 |website=The Khronos Group |language=en}} iOS{{Cite web |date=2024-04-03 |title=Developing with Vulkan on Apple iOS |url=https://www.khronos.org/blog/developing-with-vulkan-on-apple-ios |access-date=2025-03-03 |website=The Khronos Group |language=en}}
| genre = 3D graphics and compute API
| license = {{wikidata|properties|linked|P275}}{{wikidata|reference|P275}}
| website = {{wikidata|property|reference|P856}}
}}
Vulkan is a low-level, low-overhead cross-platform API and open standard for 3D graphics and computing.{{Cite web|date=December 2, 2015|title=Vulkan|url=https://developer.nvidia.com/vulkan| archive-url=https://ghostarchive.org/archive/20211020/https://developer.nvidia.com/vulkan| archive-date=2021-10-20|access-date=2021-07-08|website=NVIDIA Developer|language=en}}{{cbignore}}{{Cite web|title=Vulkan®|url=https://gpuopen.com/vulkan/| archive-url=https://ghostarchive.org/archive/20211020/https://gpuopen.com/vulkan/| archive-date=2021-10-20|access-date=2021-07-08|website=GPUOpen|language=en-GB}}{{cbignore}}{{Cite web|title=Developing 3D Graphics with Vulkan on Mobile|url=https://developer.qualcomm.com/blog/developing-3d-graphics-vulkan-mobile| archive-url=https://ghostarchive.org/archive/20211020/https://developer.qualcomm.com/blog/developing-3d-graphics-vulkan-mobile| archive-date=2021-10-20|access-date=2021-07-08|website=Qualcomm Developer Network|language=en}}{{cbignore}} 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, and it is also designed to work with modern multi-core CPUs.
Microsoft supports Vulkan 1.2 (and more) on Windows 10 and 11, with a downloadable compatibility pack.{{Cite web |title=OpenCL™, OpenGL®, and Vulkan® Compatibility Pack |url=https://apps.microsoft.com/detail/9nqpsl29bfff?hl=en-EN&gl=EN}}
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.{{cite web|last=Hruska|first=Joel|title=Next-generation Vulkan API could be Valve's killer advantage in battling Microsoft|date=March 10, 2015 |url=http://www.extremetech.com/gaming/200836-next-generation-vulkan-api-could-be-valves-killer-advantage-in-battling-microsoft| archive-url=https://web.archive.org/web/20150313162411/http://www.extremetech.com/gaming/200836-next-generation-vulkan-api-could-be-valves-killer-advantage-in-battling-microsoft| archive-date=2015-03-13|publisher=ExtremeTech|access-date=June 26, 2015}}
Vulkan was first announced by the non-profit Khronos Group at GDC 2015.{{cite web |url=https://www.khronos.org/assets/uploads/developers/library/overview/2015_vulkan_v1_Overview.pdf |title=Vulkan: Graphics and compute Belong Together |date=March 2015 |publisher=Khronos Group |access-date=March 5, 2015 |archive-date=December 18, 2016 |archive-url=https://web.archive.org/web/20161218180852/https://www.khronos.org/assets/uploads/developers/library/overview/2015_vulkan_v1_Overview.pdf |url-status=live }}{{cite web|url=https://www.khronos.org/vulkan| archive-url=https://ghostarchive.org/archive/20211020/https://www.khronos.org/vulkan| archive-date=2021-10-20 |title=Vulkan – Graphics and compute belong together |publisher=Khronos Group |access-date=March 5, 2015}}{{cbignore}} The Vulkan API was initially referred to as the "next generation OpenGL initiative", or "OpenGL next"{{cite web|url=http://www.anandtech.com/show/8363/khronos-announces-next-generation-opengl-initiative| archive-url=https://ghostarchive.org/archive/20211020/http://www.anandtech.com/show/8363/khronos-announces-next-generation-opengl-initiative| archive-date=2021-10-20|title=Khronos Announces Next Generation OpenGL Initiative|last=Smith|first=Ryan|access-date=September 24, 2016}}{{cbignore}} by Khronos, but use of those names was discontinued when "Vulkan" was announced.{{cite magazine |url=http://www.develop-online.net/news/glnext-revealed-as-vulkan-graphics-api/0203867 |last=Batchelor |first=James |date=March 3, 2015 |title=glNext revealed as Vulkan graphics API |magazine=Develop}}
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.{{cite web|title=More on Vulkan and SPIR – V: The future of high-performance graphics|url=https://www.khronos.org/assets/uploads/developers/library/2015-gdc/Khronos-Vulkan-GDC_Mar15.pdf|publisher=Khronos Group|access-date=June 27, 2015|page=10|quote=Thanks AMD!|archive-date=August 11, 2016|archive-url=https://web.archive.org/web/20160811231629/https://www.khronos.org/assets/uploads/developers/library/2015-gdc/Khronos-Vulkan-GDC_Mar15.pdf|url-status=live}}
Features
File:Division_of_labor_cpu_and_gpu.svgs, while the CPU executes everything else.|500x500px]]
Vulkan is intended to provide a variety of advantages over other APIs as well as over its predecessor, OpenGL. Vulkan offers lower overhead, more direct control over the GPU, and lower CPU usage. Its overall concept and feature set are similar to those of Mantle. They were later adopted by Microsoft with Direct3D 12 and by Apple with Metal.
Intended advantages of Vulkan over previous-generation APIs include the following:
=Cross-platform=
Vulkan is available on multiple modern operating systems and architectures,{{Citation needed|date=May 2024}} and provides a single API for both desktop and mobile graphics devices, whereas previously these were split between OpenGL and OpenGL ES respectively. 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,{{Cite web |date=September 24, 2021 |title=Vulkan lavapipe software rendering is working on Haiku |url=https://discuss.haiku-os.org/t/vulkan-lavapipe-software-rendering-is-working-on-haiku/11363 |access-date=2022-09-21 |website=Haiku Community |language=en}} Nintendo Switch, Raspberry Pi, Stadia, Fuchsia, Tizen, and Windows 7, 8, 10, and 11. MoltenVK provides freely licensed{{cite news|url=https://www.neowin.net/news/moltenvk-popular-vulkan-development-tool-for-macos-goes-open-source| archive-url=https://ghostarchive.org/archive/20211020/https://www.neowin.net/news/moltenvk-popular-vulkan-development-tool-for-macos-goes-open-source| archive-date=2021-10-20|title=MoltenVK, popular Vulkan development tool for macOS, goes open-source|work=Neowin|access-date=2018-02-28|language=en}}{{cbignore}}{{cite news|url=https://venturebeat.com/2018/02/26/vulkan-will-enable-faster-games-and-apps-on-apple-platforms/| archive-url=https://ghostarchive.org/archive/20211020/https://venturebeat.com/2018/02/26/vulkan-will-enable-faster-games-and-apps-on-apple-platforms/| archive-date=2021-10-20|title=Vulkan graphics will enable faster games and apps on Apple platforms|date=February 26, 2018|work=VentureBeat|access-date=2018-02-28|language=en-US}}{{cbignore}}{{cite web|url=https://www.phoronix.com/scan.php?page=article&item=vulkan-on-mac&num=1|title=Vulkan Is Now Available on macOS/iOS By MoltenVK Being Open-Sourced, Vulkan SDK for Mac – Phoronix|website=phoronix.com|language=en|access-date=2018-02-28}} third-party support for macOS, iOS and tvOS by wrapping over Apple's Metal API.
=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.{{cite web |date=November 5, 2015 |title=Vulkan: High efficiency on mobile |work=Imagination Blog |url=http://blog.imgtec.com/powervr/vulkan-high-efficiency-on-mobile |url-status=live |archive-url=https://web.archive.org/web/20151109005302/http://blog.imgtec.com/powervr/vulkan-high-efficiency-on-mobile |archive-date=November 9, 2015 |access-date=January 23, 2016 |publisher=Imagination Technologies}}{{cite web|url=http://www.tomshardware.com/news/khronos-group-vulkan-graphics-api,28678.html| archive-url=https://ghostarchive.org/archive/20211020/http://www.tomshardware.com/news/khronos-group-vulkan-graphics-api,28678.html| archive-date=2021-10-20|title=Khronos Group Announces The Next-Generation 'Vulkan' Graphics And Compute API|date=March 3, 2015|publisher=Tom's Hardware}}{{cbignore}}
=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.{{cite web |date=November 24, 2015 |title=Vulkan: Scaling to multiple threads |url=http://blog.imgtec.com/powervr/vulkan-scaling-to-multiple-threads |url-status=live |archive-url=https://web.archive.org/web/20151126065107/http://blog.imgtec.com/powervr/vulkan-scaling-to-multiple-threads |archive-date=November 26, 2015 |access-date=January 23, 2016 |publisher=Imagination Technologies}}{{Cite web |date=August 31, 2017 |title=Adreno Vulkan Developer Guide |url=https://developer.qualcomm.com/qfile/34706/80-nb295-7_a-adreno_vulkan_developer_guide.pdf |url-status=live |archive-url=https://ghostarchive.org/archive/20211020/https://developer.qualcomm.com/qfile/34706/80-nb295-7_a-adreno_vulkan_developer_guide.pdf |archive-date=2021-10-20 |pages=9–10, 22}}{{cbignore}}
=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.{{cite web|last=Kessenich|first=John|title=An Introduction to SPIR-V|publisher=Khronos Group|url=https://www.khronos.org/registry/spir-v/papers/WhitePaper.pdf| archive-url=https://web.archive.org/web/20150309065154/https://www.khronos.org/registry/spir-v/papers/WhitePaper.pdf| archive-date=2015-03-09|access-date=March 5, 2015}} The developers of applications now can also more easily obfuscate proprietary shader code, due to shaders not being stored directly as source code, however [https://github.com/KhronosGroup/SPIRV-Cross tools are provided that can decompile SPIR-V to human-readable high-level code].
=Others=
- Vulkan provides unified management of compute kernels and graphical shaders, eliminating the need to use a separate compute API in conjunction with a graphics API.
- Ray tracing is provided in a set of cross-vendor extensions, which together are analogous to the OptiX and DirectX Raytracing APIs.{{cite web|url=https://www.khronos.org/blog/ray-tracing-in-vulkan| archive-url=https://ghostarchive.org/archive/20211020/https://www.khronos.org/blog/ray-tracing-in-vulkan| archive-date=2021-10-20|title=Ray tracing in Vulkan| date=December 15, 2020|publisher=Khronos Group}}{{cbignore}} No such functionality is exposed in OpenGL.
- Video acceleration for decoding and encoding, such as H.264 and H.265.
=OpenGL vs. Vulkan=
class="wikitable" style=" style="font-size:80%; text-align: left" | |
OpenGL || Vulkan{{cite web
| url = https://fosdem.org/2016/schedule/event/vulkan_graphics/ | archive-url=https://ghostarchive.org/archive/20211020/https://fosdem.org/2016/schedule/event/vulkan_graphics/ | archive-date=2021-10-20 | title = FOSDEM 2016 – Vulkan in Open-Source | publisher = FOSDEM | access-date = February 27, 2016}}{{cbignore}} | |
---|---|
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 |
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."{{cite web|url=https://developer.nvidia.com/transitioning-opengl-vulkan| archive-url=https://ghostarchive.org/archive/20211020/https://developer.nvidia.com/transitioning-opengl-vulkan| archive-date=2021-10-20 |url-status=live |title=Transitioning from OpenGL to Vulkan| date=February 11, 2016|publisher=Nvidia}}{{cbignore}}
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."{{cite web |url=https://www.amd.com/en/technologies/vulkan |archive-url=https://ghostarchive.org/archive/20211020/https://www.amd.com/en/technologies/vulkan |url-status=live |archive-date=2021-10-20 |title=AMD Vulkan API|publisher=AMD}}{{cbignore}}
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.{{cite web|url=http://www.pcworld.com/article/3101843/software-games/vulkan-next-will-bring-better-support-for-vr-and-multiple-gpus.html| archive-url=https://ghostarchive.org/archive/20211020/http://www.pcworld.com/article/3101843/software-games/vulkan-next-will-bring-better-support-for-vr-and-multiple-gpus.html| archive-date=2021-10-20|title=Vulkan Next will bring better support for VR and multiple GPUs|publisher=PC World}}{{cbignore}} 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.{{cite web|url=http://www.anandtech.com/show/10067/ashes-of-the-singularity-revisited-beta/4| archive-url=https://ghostarchive.org/archive/20211020/http://www.anandtech.com/show/10067/ashes-of-the-singularity-revisited-beta/4| archive-date=2021-10-20|title=Ashes of the Singularity Revisited: A Beta Look at Direct3D 12 & Asynchronous Shading|first1=Daniel |last1= Williams|first2=Ryan|last2=Smith|publisher=AnandTech}}{{cbignore}} 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.{{cite press release|url=https://www.khronos.org/news/press/khronos-group-releases-vulkan-1-1| archive-url=https://ghostarchive.org/archive/20211020/https://www.khronos.org/news/press/khronos-group-releases-vulkan-1-1| archive-date=2021-10-20|title=Khronos Group Releases Vulkan 1.1|date=March 7, 2018|work=The Khronos Group|access-date=2018-03-21|language=en}}{{cbignore}} 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.{{cite web|url=https://www.phoronix.com/scan.php?page=article&item=khr-vulkan-11&num=1|title=Vulkan 1.1 Released As The First Major Update To This Graphics/Compute API|last=Larabel|first=Michael|publisher=Phoronix|date=March 7, 2018|access-date=March 7, 2018}} At the same time, it also brought better compatibility with DirectX 12, explicit multi-GPU support, (optional extensions for supporting hardware, e.g. some Nvidia GPUs, on e.g. Windows and Android) ray tracing support,{{cite web|url=https://www.phoronix.com/scan.php?page=news_item&px=Vulkan-1.1.85-Released|title=Vulkan 1.1.85 Released With Raytracing, Mesh Shaders & Other New NVIDIA Extensions|last=Larabel|first=Michael|publisher=Phoronix|date=September 19, 2018|access-date=September 19, 2018}}{{cite web|url=https://www.phoronix.com/scan.php?page=news_item&px=Vulkan-1.1.91-Released|title=Vulkan 1.1.91 Released With NV_ray_tracing, AMD Memory Overallocation Behavior|last=Larabel|first=Michael|publisher=Phoronix|date=November 4, 2018|access-date=November 4, 2018}} and laid the groundwork for the next generation of GPUs.{{cite web|url=https://arstechnica.com/gadgets/2018/03/vulkan-1-1-adds-multi-gpu-directx-compatibility-as-khronos-looks-to-the-future/| archive-url=https://ghostarchive.org/archive/20211020/https://arstechnica.com/gadgets/2018/03/vulkan-1-1-adds-multi-gpu-directx-compatibility-as-khronos-looks-to-the-future/| archive-date=2021-10-20|title=Vulkan 1.1 out today, with multi-GPU support, better DirectX compatibility|last=Bright|first=Peter|publisher=Ars Terchnica|date=March 7, 2018|access-date=March 7, 2018}}{{cbignore}} Alongside Vulkan 1.1, SPIR-V was updated to version 1.3.
=Vulkan 1.2=
On January 15, 2020, Vulkan 1.2{{cite web |url=https://www.geeks3d.com/20200115/vulkan-1-2-specifications-released/| archive-url=https://ghostarchive.org/archive/20211020/https://www.geeks3d.com/20200115/vulkan-1-2-specifications-released/| archive-date=2021-10-20 |title=Vulkan 1.2 Specifications Released | Geeks3D | date=January 15, 2020}}{{cbignore}} was released by the Khronos Group.{{cite press release|url=https://www.khronos.org/news/press/khronos-group-releases-vulkan-1.2| archive-url=https://ghostarchive.org/archive/20211020/https://www.khronos.org/news/press/khronos-group-releases-vulkan-1.2| archive-date=2021-10-20|title=Khronos Group Releases Vulkan 1.2|date=January 15, 2020|work=The Khronos Group|access-date=2020-02-27|language=en}}{{cbignore}} 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".{{cite press release|url=https://www.phoronix.com/scan.php?page=article&item=vulkan-12-release&num=1|title=Vulkan 1.2 Arrives with an Eye on Greater Performance, Better Compatibility With Other 3D APIs on Top|date=January 15, 2020|work=Phoronix|access-date=2020-02-27|language=en}}
=Vulkan 1.3=
On January 25, 2022, Vulkan 1.3 was released by the Khronos Group.{{Cite web|url=https://www.khronos.org/news/press/vulkan-reduces-fragmentation-and-provides-roadmap-visibility-for-developers|title = Khronos Strengthens Vulkan Ecosystem with Release of Vulkan 1.3, Public Roadmap and Profiles|date = January 25, 2022}} This third major update to the API integrates 23 additional commonly-used proven Vulkan extensions into the base Vulkan standard.{{Cite web|url=https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/chap49.html#versions-1.3|title=Vulkan® 1.3.206 – A Specification (with all registered Vulkan extensions)|website=khronos.org}} 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.{{Cite web|url=https://gamefromscratch.com/vulkan-1-3-specification-released/|title = Vulkan 1.3 Specification Released|date = January 25, 2022}} The new features in Vulkan 1.3 include dynamic rendering, additional dynamic state, improved synchronization API, and device profiles.
=Vulkan 1.4=
On December 3, 2024, Vulkan 1.4 was released by the Khronos Group.{{cite press release|url=https://www.khronos.org/news/press/khronos-streamlines-development-and-deployment-of-gpu-accelerated-applications-with-vulkan-1.4/|title=Khronos Streamlines Development and Deployment of GPU-Accelerated Applications with Vulkan 1.4|work=The Khronos Group|date=December 3, 2024|language=en}}
=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.{{cite web|url=https://www.pcper.com/reviews/General-Tech/Breaking-OpenCL-Merging-Roadmap-Vulkan|title=Breaking: OpenCL Merging Roadmap into Vulkan | PC Perspective|website=pcper.com|access-date=May 17, 2017|archive-date=November 1, 2017|archive-url=https://web.archive.org/web/20171101062642/https://www.pcper.com/reviews/General-Tech/Breaking-OpenCL-Merging-Roadmap-Vulkan|url-status=dead}}{{cite web|url=https://www.phoronix.com/scan.php?page=article&item=siggraph-2018-khr&num=2|title=SIGGRAPH 2018: OpenCL-Next Taking Shape, Vulkan Continues Evolving – Phoronix|website=phoronix.com}} This has been now demonstrated by Adobe's Premiere Rush using the clspv{{citation|title=Clspv is a prototype compiler for a subset of OpenCL C to Vulkan compute shaders: google/clspv|date=August 17, 2019|url=https://github.com/google/clspv| archive-url=https://ghostarchive.org/archive/20211020/https://github.com/google/clspv| archive-date=2021-10-20|access-date=2019-08-20}}{{cbignore}} open source compiler to compile significant amounts of OpenCL C kernel code to run on a Vulkan runtime for deployment on Android.{{cite web|url=https://www.khronos.org/assets/uploads/developers/library/2019-siggraph/Vulkan-01-Update-SIGGRAPH-Jul19.pdf| archive-url=https://web.archive.org/web/20190820222456/https://www.khronos.org/assets/uploads/developers/library/2019-siggraph/Vulkan-01-Update-SIGGRAPH-Jul19.pdf| archive-date=2019-08-20|title=Vulkan Update SIGGRAPH 2019}}
History
{{prose|section|date=May 2021}}
The Khronos Group began a project to create a next generation graphics API in July 2014 with a kickoff meeting at Valve.{{cite AV media |date=September 16, 2015 |title=SIGGRAPH 2015: 3D Graphics API State of the Union |url=https://www.youtube.com/watch?v=quNsdYfWXfM&feature=iv&src_vid=faYDPjI2zhU&annotation_id=annotation_3885160247 |access-date=November 12, 2015 |format=Video |time=57:24 |work=SIGGRAPH 2015 |publisher=Khronos Group |via=YouTube}} At SIGGRAPH 2014, the project was publicly announced with a call for participants.
According to the US Patent and Trademark Office, the trademark for Vulkan was filed on February 19, 2015.{{cite web |url=http://tsdr.uspto.gov/#caseNumber=86539994&caseType=SERIAL_NO&searchType=statusSearch |title=US Patent and Trademark Office |access-date=March 7, 2015 |archive-date=May 11, 2013 |archive-url=https://web.archive.org/web/20130511081924/http://tsdr.uspto.gov/#caseNumber=86539994&caseType=SERIAL_NO&searchType=statusSearch |url-status=dead }}
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".{{cite web|last=Batchelor |first=James |url=http://www.develop-online.net/news/glnext-revealed-as-vulkan-graphics-api/0203867 |title=glNext revealed as Vulkan graphics API | Latest news from the game development industry | Develop |website=MCV |date=March 3, 2015 |publisher=Develop |access-date=March 5, 2015}}
=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.{{cite web|url = https://www.phoronix.com/scan.php?page=news_item&px=valve-intel-vulkan-driver|title = Valve Developed An Intel Linux Vulkan GPU Driver|last = Larabel|first = Michael|author-link = Michael Larabel|publisher = Phoronix|date = March 5, 2015|access-date = August 8, 2017}}{{cite web|url = https://www.phoronix.com/scan.php?page=news_item&px=LunarG-Vulkan-AMA|title = Learning More About The Intel Vulkan Driver, Linux Vulkan Plans|last = Larabel|first = Michael|author-link = Michael Larabel|publisher = Phoronix|date = March 12, 2015|access-date = August 8, 2017}} There is still the possibility{{cite web|title = Evan Odabashian on Twitter|url = https://twitter.com/eodabash/status/573178560283717632|access-date = July 22, 2015|archive-date = August 19, 2020|archive-url = https://web.archive.org/web/20200819043027/https://pbs.twimg.com/hashflag/config-2020-08-19-04.json|url-status = live}} of Sandy Bridge support, since it supports compute through Direct3D11.
On August 10, 2015, Google announced that future versions of Android would support Vulkan.{{cite web|last=Woods |first = Shannon |date = August 12, 2015 |title = Low-overhead rendering with Vulkan |work = Android Developers Blog |url = http://android-developers.blogspot.com/2015/08/low-overhead-rendering-with-vulkan.html| archive-url=https://ghostarchive.org/archive/20211020/http://android-developers.blogspot.com/2015/08/low-overhead-rendering-with-vulkan.html| archive-date=2021-10-20}}{{cbignore}} 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.
=2016=
The full Vulkan specification and the open-source Vulkan SDK were released on February 16, 2016.{{cite web
| url = https://www.khronos.org/news/press/khronos-releases-vulkan-1-0-specification
| archive-url=https://ghostarchive.org/archive/20211020/https://www.khronos.org/news/press/khronos-releases-vulkan-1-0-specification
| archive-date=2021-10-20
| title = Khronos Releases Vulkan 1.0 Specification
| date = February 16, 2016
| website = Khronos.org
| publisher = Khronos Group Press Release}}{{cbignore}}
{{anchor|MoltenVK}}
=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.{{cite web|url=https://arstechnica.com/gadgets/2018/02/vulkan-is-coming-to-macos-ios-but-no-thanks-to-apple/| archive-url=https://ghostarchive.org/archive/20211020/https://arstechnica.com/gadgets/2018/02/vulkan-is-coming-to-macos-ios-but-no-thanks-to-apple/| archive-date=2021-10-20|title=Vulkan is coming to macOS and iOS, but no thanks to Apple|last=Bright|first=Peter|publisher=Ars Technica|date=February 26, 2018|access-date=February 26, 2018}}{{cbignore}} Other new developments were shown at SIGGRAPH 2018.{{cite web|url=https://www.khronos.org/assets/uploads/developers/library/2018-siggraph/Vulkan-and-OpenGL-BOF-SIGGRAPH_Aug18.pdf | access-date=2023-11-30 | title=3D Graphics with Vulkan and OpenGL | publisher=The Khronos Group | date=2018-08-15}} 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 [https://github.com/KhronosGroup/MoltenVK 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.{{cite web|url=https://www.phoronix.com/scan.php?page=article&item=vulkan-on-mac&num=1|title=Vulkan Is Now Available on macOS/iOS By MoltenVK Being Open-Sourced, Vulkan SDK for Mac|last=Larabel|first=Michael|publisher=Phoronix|date=February 26, 2018|access-date=February 26, 2018}}
=2019=
On February 25, 2019, the Vulkan Safety Critical (SC) Working Group was announced to bring Vulkan GPU acceleration to safety critical industries.{{cite web|url=https://www.khronos.org/news/press/khronos-group-begins-work-on-a-new-standards-initiative-to-bring-vulkan-gpu-acceleration-to-safety-critical-industries| archive-url=https://ghostarchive.org/archive/20211020/https://www.khronos.org/news/press/khronos-group-begins-work-on-a-new-standards-initiative-to-bring-vulkan-gpu-acceleration-to-safety-critical-industries| archive-date=2021-10-20|title=Khronos Group Begins Work on a New Standards Initiative to Bring Vulkan GPU Acceleration to Safety Critical Industries|date=February 25, 2019|website=The Khronos Group|language=en|access-date=2019-08-03}}{{cbignore}}
Google's Stadia streaming cloud gaming service used Vulkan on Linux based servers with AMD GPUs.{{cite web| url=https://www.phoronix.com/news/Google-Stadia-Vulkan-Linux | title=Stadia Is Google's Cloud Gaming Service Using Linux, Vulkan & A Custom AMD GPU | access-date=2023-11-30 | date=2019-03-19|first=Michael|last=Larabel}}
=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.{{cite web|url=https://www.khronos.org/blog/hlsl-first-class-vulkan-shading-language| archive-url=https://ghostarchive.org/archive/20211020/https://www.khronos.org/blog/hlsl-first-class-vulkan-shading-language| archive-date=2021-10-20|title=HLSL as a First Class Vulkan Shading Language|date=January 15, 2020|website=The Khronos Group|language=en|access-date=2020-03-31}}{{cbignore}}
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.{{Cite web|url=https://www.tomshardware.com/news/raspberry-pi-vulkan-graphics-driver-release|title=Raspberry Pi to Get Vulkan Graphics Driver (Eventually)|first=Nathaniel |last=Mott |website=Tom's Hardware|date=February 3, 2020|access-date=June 20, 2020|archive-date=August 19, 2020|archive-url=https://web.archive.org/web/20200819042952/https://www.tomshardware.com/news/raspberry-pi-vulkan-graphics-driver-release|url-status=live}} 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.{{Cite web|url=https://www.tomshardware.com/news/nvidia-engineer-vulkan-driver-raspberry-pi-quake-iii-100-fps|title=Nvidia Engineer's Vulkan Driver For Raspberry Pi Runs Quake III Over 100 FPS at 720p|author=Zhiye Liu |website=Tom's Hardware|date=June 20, 2020|access-date=June 20, 2020|archive-date=August 19, 2020|archive-url=https://web.archive.org/web/20200819042953/https://www.tomshardware.com/news/nvidia-engineer-vulkan-driver-raspberry-pi-quake-iii-100-fps|url-status=live}}
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.{{Cite web|url=https://www.khronos.org/news/press/khronos-group-releases-vulkan-ray-tracing| archive-url=https://ghostarchive.org/archive/20211020/https://www.khronos.org/news/press/khronos-group-releases-vulkan-ray-tracing| archive-date=2021-10-20|title=Khronos Group Releases Vulkan Ray Tracing|date=March 17, 2020|website=The Khronos Group}}{{cbignore}}{{Cite web|url=https://www.phoronix.com/scan.php?page=article&item=vulkan-ray-tracing&num=1|title=Vulkan Ray-Tracing Arrives With New Khronos Extension – Phoronix|website=phoronix.com|access-date=2020-03-17}} On November 23, 2020, these Ray Tracing extensions were finalized.{{Cite web|url=https://www.khronos.org/blog/vulkan-ray-tracing-final-specification-release| archive-url=https://ghostarchive.org/archive/20211020/https://www.khronos.org/blog/vulkan-ray-tracing-final-specification-release| archive-date=2021-10-20|title=Vulkan Ray Tracing Final Specification Release|date=November 23, 2020|website=The Khronos Group}}{{cbignore}}
On November 24, 2020, Raspberry Pi Foundation announced that their driver for the Raspberry Pi 4 is Vulkan 1.0 conformant.{{Cite web|url=https://www.raspberrypi.com/news/vulkan-update-were-conformant/|title=Vulkan update: we're conformant!|date=November 24, 2020|website=Raspberry Pi Foundation}}
=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.{{Cite web |date=February 22, 2019 |title=Vulkan SC – Vulkan graphics for the safety critical industry |url=https://www.khronos.org// |access-date=2022-03-30 |website=The Khronos Group |language=en}}
On August 1, 2022, Raspberry Pi Foundation announced that their driver for the Raspberry Pi 4 is Vulkan 1.2 conformant.{{Cite web|url=https://www.raspberrypi.com/news/vulkan-update-version-1-2-conformance-for-raspberry-pi-4/|title=Vulkan update: version 1.2 conformance for Raspberry Pi 4|date=August 1, 2022|website=Raspberry Pi Foundation}}
On September 1, 2022, Mesh Shading for Vulkan was released.{{Cite web|title=Mesh Shading for Vulkan|date=September 2022 |url=https://www.khronos.org/blog/mesh-shading-for-vulkan}}{{Cite web|title=VK_EXT_mesh_shader|url=https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_mesh_shader.html}}
=2024=
A new Vulkan Roadmap was announced on January 25, 2024.{{cite web | url=https://www.khronos.org/news/press/khronos-drives-industry-support-for-expanded-3d-features-with-vulkan-roadmap-2024 | title=Khronos Drives Industry Support for Expanded 3D Features with Vulkan Roadmap 2024 | date=January 25, 2024 }} A new extension for decoding AV1 video was released on February 1, 2024.{{cite web | url=https://www.khronos.org/blog/khronos-releases-vulkan-video-av1-decode-extension-vulkan-sdk-now-supports-h.264-h.265-encode | title=Khronos Releases AV1 Decode in Vulkan Video with SDK Support for H.264/H.265 Encode | date=February 2024 }}
{{Anchor|Hardware}}Support across vendors
File:Vulkaninfo with vkcube screenshot.png
Initial specifications stated that Vulkan drivers can be implemented on any hardware that supports OpenGL ES 3.1 or OpenGL 4.x and up.{{cite web|title = Vulkan Overview | url=https://www.khronos.org/assets/uploads/developers/library/overview/vulkan-overview.pdf| archive-url=https://web.archive.org/web/20151208161257/https://www.khronos.org/assets/uploads/developers/library/overview/vulkan-overview.pdf| archive-date=2015-12-08|date=June 2015|publisher = Khronos Group | url-status=live | access-date=August 18, 2015}} p. 19 "Vulkan Status" 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{{Cite web |date=2022-07-27 |title=Graphics Driver Support Update for 10th Generation and Older Intel Processor Graphics |url=https://community.intel.com/t5/Graphics/Graphics-Driver-Support-Update-for-10th-Generation-and-Older/m-p/1403969#M108899 |access-date=2023-02-14 |website=community.intel.com |language=en}} and on Linux.{{Cite web |title=Intel Vulkan Driver Split Happens - "HASVK" Introduced For Older Gen7/Gen8 Graphics |url=https://www.phoronix.com/news/Intel-ANV-HASVK-Split-Merged |access-date=2023-02-14 |website=www.phoronix.com |language=en}} All drivers are developed by Intel.
On Windows, Skylake to Ice Lake supports up to Vulkan 1.3,{{Cite web |title=Intel® 6th-10th Gen Processor Graphics - Windows |url=https://www.intel.com/content/www/us/en/download/762755/intel-6th-10th-gen-processor-graphics-windows.html |access-date=2023-02-14 |website=Intel |language=en}} with limited support after July 2022 as future updates will only cover security fixes. Iris Xe and newer are fully supported as of March 2023.{{Cite web |title=Intel® Arc™ & Iris® Xe Graphics - WHQL - Windows* |url=https://www.intel.com/content/www/us/en/download/785597/intel-arc-iris-xe-graphics-windows.html |access-date=2023-02-14 |website=Intel |language=en}}
On Linux, as of March 2023 there is incomplete Vulkan support for Haswell{{Cite web |title=Haswell Vulkan support is incomplete (#6008) · Issues · Mesa / mesa · GitLab |url=https://gitlab.freedesktop.org/mesa/mesa/-/issues/6008 |access-date=2023-02-14 |website=GitLab |date=February 9, 2022 |language=en}} with it not being Vulkan 1.0 compliant.{{Cite web |title=intel: split vulkan driver between gfx7/8 and above (!18208) · Merge requests · Mesa / mesa · GitLab |url=https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18208 |access-date=2023-02-14 |website=GitLab |date=August 23, 2022 |language=en}} Apart from Haswell, Ivy Bridge and Broadwell are also supported by a legacy Vulkan driver in Mesa called HASVK. Skylake and newer being supported by a driver in Mesa called ANV.
=AMD=
On Windows, Vulkan 1.2 is supported from GCN 1.0 to GCN 3.0,{{Cite web |title=AMD Radeon R7 265 Specs |url=https://www.techpowerup.com/gpu-specs/radeon-r7-265.c2558 |access-date=2023-02-14 |website=TechPowerUp |language=en}}{{Cite web |title=AMD Radeon HD 7790 Specs |url=https://www.techpowerup.com/gpu-specs/radeon-hd-7790.c2100 |access-date=2023-02-14 |website=TechPowerUp |language=en}}{{Cite web |title=AMD Radeon R9 285 Specs |url=https://www.techpowerup.com/gpu-specs/radeon-r9-285.c2609 |access-date=2023-02-14 |website=TechPowerUp |language=en}} with no further updates planned after June 2021.{{Cite web |date=2021-06-21 |title=Product and OS Support Update for Radeon Software Adrenalin 21.6.1 |url=https://community.amd.com/t5/gaming/product-and-os-support-update-for-radeon-software-adrenalin-21-6/ba-p/477423 |access-date=2023-02-14 |website=AMD.com |language=en}} GCN 4.0 and newer support Vulkan 1.3.{{Cite web |title=Radeon™ Software Adrenalin 22.1.2 with Vulkan 1.3 Support Release Notes |url=https://www.amd.com/en/support/kb/release-notes/rn-rad-win-22-1-2-vulkan-1-3 |access-date=2023-02-14}}
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.{{Citation |title=AMD Open Source Driver for Vulkan® |date=2023-02-11 |url=https://github.com/GPUOpen-Drivers/AMDVLK |access-date=2023-02-14 |publisher=GPUOpen Drivers}} There is also the proprietary driver called AMDGPU-PRO which is not recommended to be used for most users as of March 2023.{{Cite web |title=Radeon Software For Linux 22.10 Driver Being Prepared For Release |url=https://www.phoronix.com/forums/forum/linux-graphics-x-org-drivers/open-source-amd-linux/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release |access-date=2023-02-14 |website=Phoronix Forums |date=March 31, 2022 |language=en}}
There is also the recommended driver called RADV in Mesa developed by Valve, Red Hat,{{Cite web |title=AMD RDNA2 Vulkan: RADV vs. RADV+NGGC vs. AMDVLK vs. PRO Driver Benchmarks |url=https://www.phoronix.com/review/radeon-rx6000-vulkan |access-date=2023-02-14 |website=www.phoronix.com |language=en}} Google{{Cite web |title=Mesa's RADV Radeon Vulkan Ray-Tracing Performance Continues Improving |url=https://www.phoronix.com/news/RADV-RT-XDC-2022 |access-date=2023-02-14 |website=www.phoronix.com |language=en}} and others. This driver as of March 2023 supports all GCN and RDNA cards.{{Cite web |title=RADV — The Mesa 3D Graphics Library latest documentation |url=https://docs.mesa3d.org/drivers/radv.html |access-date=2023-02-14 |website=docs.mesa3d.org}} 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.{{Cite web |title=AMDGPU - ArchWiki |url=https://wiki.archlinux.org/title/AMDGPU#Enable_Southern_Islands_(SI)_and_Sea_Islands_(CIK)_support |access-date=2023-02-14 |website=wiki.archlinux.org}}
=NVIDIA=
On Windows and Linux there is the NVIDIA developed Vulkan driver which supports Vulkan 1.2 on Kepler cards{{Cite web |title=NVIDIA GeForce GTX 770 Specs |url=https://www.techpowerup.com/gpu-specs/geforce-gtx-770.c1856 |access-date=2023-02-14 |website=TechPowerUp |language=en}} with no further updates planned after September 2021.{{Cite web |title=Support Plan for Kepler-series GeForce GPUs for Desktop {{!}} NVIDIA |url=https://nvidia.custhelp.com/app/answers/detail/a_id/5202/~/support-plan-for-kepler-series-geforce-gpus-for-desktop |access-date=2023-02-14 |website=nvidia.custhelp.com}} Maxwell and newer support Vulkan 1.3.{{Cite web |date=2016-02-10 |title=Vulkan Driver Support |url=https://developer.nvidia.com/vulkan-driver |access-date=2023-02-14 |website=NVIDIA Developer |language=en}}
NVK, an experimental, open source Vulkan driver for Linux based on nouveau, was announced in October 2022.{{Cite web |title=Introducing NVK |url=https://www.collabora.com/news-and-blog/news-and-events/introducing-nvk.html |access-date=2023-02-14 |website=Collabora |language=en}} It was merged into mainline Mesa in August 2023.{{Cite web |title=NVK Has landed! |url=https://www.collabora.com/news-and-blog/news-and-events/nvk-has-landed.html |access-date=2023-12-08 |website=Collabora |language=en}} The driver currently supports Vulkan 1.4{{Cite web |last=Larabel |first=Michael |date=27 January 2024 |title=NVK now supports Vulkan 1.4|url=https://www.collabora.com/news-and-blog/news-and-events/nvk-now-supports-vulkan-14.html |access-date=2024-01-27 |website=www.collabora.com |language=en}}
=Android and mobile GPUs=
Most modern Android devices support Vulkan. Android 7.0 Nougat includes optional Vulkan 1.0 support,{{cite web|url=https://arstechnica.com/gadgets/2016/04/android-ns-second-preview-build-supports-vulkan-and-new-emoji/| archive-url=https://ghostarchive.org/archive/20211020/https://arstechnica.com/gadgets/2016/04/android-ns-second-preview-build-supports-vulkan-and-new-emoji/| archive-date=2021-10-20|title=Android N's second preview build supports Vulkan and new emoji| date=April 13, 2016|publisher=Ars Technica}}{{cbignore}} 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.{{Cite web|date=April 8, 2018|title=Support for Vulkan Graphics API 1.1 is coming in Android P|url=https://www.xda-developers.com/vulkan-graphics-api-1-1-android-p/| archive-url=https://ghostarchive.org/archive/20211020/https://www.xda-developers.com/vulkan-graphics-api-1-1-android-p/| archive-date=2021-10-20}}{{cbignore}}{{Cite web|title=What's New in Android: Q Beta 3 & More|url=https://android-developers.googleblog.com/2019/05/whats-new-in-android-q-beta-3-more.html| archive-url=https://ghostarchive.org/archive/20211020/https://android-developers.googleblog.com/2019/05/whats-new-in-android-q-beta-3-more.html| archive-date=2021-10-20}}{{cbignore}}{{cite web |last1=Albert |first1=Dan |title=Implement Vulkan |url=https://source.android.com/docs/core/graphics/implement-vulkan#versions |website=Source.Android.com |publisher=Google |access-date=2 January 2024}} Android 13 expects under the same conditions support of Vulkan 1.3.{{cite web |last1=Albert |first1=Dan |title=Implement Vulkan |url=https://source.android.com/docs/core/graphics/implement-vulkan#versions |website=Source.Android.com |publisher=Google |access-date=2 January 2024}} 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.{{Cite web |title=Mesamatrix: The OpenGL vs Mesa matrix |url=https://mesamatrix.net/ |archive-url=https://ghostarchive.org/archive/20211020/https://mesamatrix.net/ |archive-date=2021-10-20 |website=mesamatrix.net}}{{cbignore}}
=Apple=
As of June 2022, Apple devices do not provide native support for the Vulkan API.{{Cite web|date=June 2021|title=The State of Vulkan on Apple Devices|url=https://www.lunarg.com/wp-content/uploads/2021/06/The-State-of-Vulkan-on-Apple-03June-2021.pdf| archive-url=https://web.archive.org/web/20210709190224/https://www.lunarg.com/wp-content/uploads/2021/06/The-State-of-Vulkan-on-Apple-03June-2021.pdf| archive-date=2021-07-09|url-status=live|publisher=LunarG}} 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.{{cite web|title=MoltenVK|url=https://moltengl.com/moltenvk/|publisher=Molten|access-date=April 5, 2016|archive-date=January 5, 2018|archive-url=https://web.archive.org/web/20180105100958/https://moltengl.com/moltenvk/|url-status=live}}
In June 2022, version 1.3.217 of Vulkan added support for Metal objects, facilitating import and export between the two APIs.{{Cite web|url=https://www.phoronix.com/news/Vulkan-1.3.217|title=Vulkan 1.3.217 Adds Extension To Interact With Apple Metal Objects|last=Larabel|first=Michael|website=phoronix.com|date=June 9, 2022|access-date=2022-10-22}} In December 2022, Vulkan version 1.3.236 added small fixes for the interaction with Apple Metal.{{Cite web |title=Release Release for Vulkan SDK 1.3.236 · KhronosGroup/MoltenVK |url=https://github.com/KhronosGroup/MoltenVK/releases/tag/v1.2.1 |access-date=2022-12-29 |website=GitHub |language=en}}
=Huawei and OpenAtom Foundation=
As of August 2023, Huawei provides supports for native Vulkan NAPI with the industry standard SPIR-V shader since HarmonyOS 4.0 API 10 and extended into HarmonyOS NEXT system. It has been adopted as an extension on OpenAtom's consortium open source project, OpenHarmony with a newer graphics stack for the system, ArkGraphics 3D software engine that has been recently open sourced since May 2024 on OpenHarmony 5.0 beta 1 that has been previously exclusive to proprietary HarmonyOS NEXT developer kit, on custom graphics pipelines features.{{Cite web |last=Benjamin |date=2024-04-10 |title=High fidelity graphics with ArkGraphics 3D on HarmonyOS NEXT - HarmonyOSHub |url=https://harmonyoshub.com/high-fidelity-graphics-with-arkgraphics-3d-on-harmonyos-next/,%20https://harmonyoshub.com/high-fidelity-graphics-with-arkgraphics-3d-on-harmonyos-next/ |access-date=2024-05-24 |website=harmonyoshub.com |language=en-GB}}
Backwards compatibility
Vulkan is not backwards compatible with OpenGL,{{Cite web |last=Tim Anderson |date=March 3, 2015 |title=Here comes Vulkan: The next generation of the OpenGL graphics API |url=https://www.theregister.com/2015/03/03/here_comes_vulkan_the_next_generation_of_the_opengl_graphics_api/ |url-status=live |archive-url=https://ghostarchive.org/archive/20211020/https://www.theregister.com/2015/03/03/here_comes_vulkan_the_next_generation_of_the_opengl_graphics_api/ |archive-date=2021-10-20 |access-date=2021-07-08 |website=theregister.com |language=en}}{{cbignore}}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. although there are certain projects that implement OpenGL on top of Vulkan, such as Google's ANGLE and Mesa's Zink.{{Cite web |title=Zink – The Mesa 3D Graphics Library latest documentation |url=https://docs.mesa3d.org/drivers/zink.html |access-date=2022-03-10 |website=docs.mesa3d.org}}
Vulkan is also not compatible with other graphics APIs such as Direct3D, Metal, and Mantle, however implementations of those APIs exist atop of Vulkan:
- Direct3D has a number of implementations, namely DXVK for Direct3D 8, 9, 10, and 11, and [https://github.com/HansKristian-Work/vkd3d-proton VKD3D-Proton] for Direct3D 12 support. Other, older versions, of Direct3D may be enabled with other related software such as Wine.
- Metal has an in-development third-party implementation named [https://github.com/darlinghq/indium Indium], intended to be used with the Darling compatibility layer.
- Mantle has an in-development third-party implementation named [https://github.com/libcg/grvk GRVK], to support older Mantle games.
Platform-specific graphics APIs implemented atop of Vulkan may also be able to run on alternative platforms. For example, [https://github.com/doitsujin/dxvk 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
{{Reflist|group=note}}
References
{{reflist
|refs=
| url = https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_QNX_screen_surface.html
| archive-url=https://ghostarchive.org/archive/20211020/https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_QNX_screen_surface.html
| archive-date=2021-10-20 | title = Vulkan on QNX
| date = July 14, 2021
| website = khronos.org
}}{{cbignore}}
| url = https://www.raspberrypi.com/news/vulkan-update-were-conformant/
| archive-url=https://ghostarchive.org/archive/20211020/https://www.raspberrypi.com/news/vulkan-update-were-conformant/
| archive-date=2021-10-20 | title = Vulkan on Raspberry Pi
| date = July 14, 2021
| website = raspberrypi.org
}}{{cbignore}}
| url = https://vulkan.gpuinfo.org/displayreport.php?id=12842/
| title = Vulkan on FreeBSD
| date = October 28, 2021
| website = Vulkan GPU info
}}
| url = https://mynintendonews.com/2016/12/19/nintendo-switch-listed-as-vulkan-and-opengl-conformant/
| archive-url=https://ghostarchive.org/archive/20211020/https://mynintendonews.com/2016/12/19/nintendo-switch-listed-as-vulkan-and-opengl-conformant/
| archive-date=2021-10-20 | title = Nintendo Switch Listed as Vulkan and OpenGL Conformant – My Nintendo News
| date = December 19, 2016
| website = My Nintendo News
| publisher = Excite Global Media
}}{{cbignore}}
| url = https://wccftech.com/nintendo-switch-supports-vulkan/
| archive-url=https://ghostarchive.org/archive/20211020/https://wccftech.com/nintendo-switch-supports-vulkan/
| archive-date=2021-10-20 | title = Nintendo Switch Officially Supports Vulkan, OpenGL 4.5 & OpenGL ES
| first = Alessio
| last = Palumbo
| date = December 19, 2016
| website = WCCF Tech
}}{{cbignore}}
| url = https://www.khronos.org/conformance/adopters/conformant-products#submission_129
| title = Conformant Products
| date = April 28, 2018
| website = khronos.org
| publisher = The Khronos Group
| access-date = February 28, 2018
| archive-date = January 28, 2017
| archive-url = https://web.archive.org/web/20170128195542/https://www.khronos.org/conformance/adopters/conformant-products#submission_129
| url-status = live
}}
| last1 = Bright
| first1 = Peter
| last2 = Walton
| first2 = Mark
| name-list-style = amp
| title = Vulkan now official, with 1.0 API release and AMD driver [Updated]
| url = https://arstechnica.com/gaming/2016/02/vulkan-gets-official-with-1-0-release-and-amd-driver/
| archive-url=https://ghostarchive.org/archive/20211020/https://arstechnica.com/gaming/2016/02/vulkan-gets-official-with-1-0-release-and-amd-driver/
| archive-date=2021-10-20 | access-date = February 18, 2016
| website = Ars Technica
| date = February 16, 2016
}}{{cbignore}}
| last = Valich
| first = Theo
| title = Mantle Cycle is Complete as Khronos Releases Vulkan 1.0
| url = http://vrworld.com/2016/02/17/mantle-complete-khronos-releases-vulkan/
| archive-url=https://ghostarchive.org/archive/20211020/http://vrworld.com/2016/02/17/mantle-complete-khronos-releases-vulkan/
| archive-date=2021-10-20 | access-date = February 19, 2016
| website = VR World
| date = February 17, 2016
}}{{cbignore}}
| title = VxWorks offers support for many standard graphic libraries, such as ..., and Vulkan
| url = https://www.windriver.com/themes/Windriver/pdf/vxworks-product-overview.pdf
| website = Wind River Systems
}}{{cbignore}}
}}
Further reading
- Vulkan Programming Guide: The Official Guide to Learning Vulkan (OpenGL), Nov 10, 2016, by Graham Sellers and John Kessenich {{ISBN|978-0-1344-64541}}
- Learning Vulkan, Dec 2016, by Parminder Singh {{ISBN|978-1-78646-980-9}}
- Introduction to Computer Graphics and the Vulkan API, Jul 1, 2017, by Kenwright {{ISBN|978-1-5486-16175}}
- Vulkan Cookbook, Apr 28, 2017, by Pawel Lapinski {{ISBN|978-1-7864-68154}}
- Vulkan 3D Graphics Rendering Cookbook, Feb 14th, 2025, by Sergey Kosarevsky and Alexey Medvedev and Viktor Latypov, {{ISBN|978-1803248110}}
External links
- {{official website}}
{{Khronos Group standards}}
Category:Cross-platform software
Category:Software using the Apache license