Vulkan – niskopoziomowe, wieloplatformoweAPI wspomagające tworzeniegrafiki 3D, opracowane przezKhronos Group[2][3].
Ten interfejs programistyczny, zwany również platformą renderującą, oparty jest na elementach AMDMantle API. Podobnie jakOpenGL, Vulkan celuje w rynek aplikacji 3D takich jak np.gry komputerowe.
Vulkan oferuje niższy narzut sterownika (ang.overhead), większą kontrolę nadkartą graficzną oraz niższe obciążenieprocesora graficznego przy tych samych zadaniach jak jego poprzednik –OpenGL.
Cechy biblioteki:
- Vulkan API jest dopasowane do kart graficznych z segmentu „high-end”, jak również do modułów graficznych obecnych wtelefonach komórkowych (OpenGL posiada specjalny podzbiór API dla telefonów komórkowych o nazwieOpenGL ES, który jest alternatywą w urządzeniach obsługujących Vulkan API).
- W przeciwieństwie do rozwiązania firmyMicrosoft, czyliDirectX, Vulkan jest dostępny w wielusystemach operacyjnych; podobnie jak OpenGL, Vulkan API nie jest przypisany do pojedynczego systemu operacyjnego lub urządzenia. W dniu wydania Vulkan działał naWindows 7,Windows 8,Windows 10,Linux,Tizen,Android
- Ma obniżony narzut sterownika, czyli wymaga mniejszej mocy obliczeniowejprocesora głównego do wykonania tych samych zadań obsługi wywołań funkcji.
- Zawiera lepszeskalowanie nawielordzeniowych procesorach. (Direct3D 11 i OpenGL 4 były zaprojektowane początkowo do użycia z procesorami 1-rdzeniowymi i dopiero w późniejszym czasie zostały zmodyfikowane tak, aby mogły być używane z procesorami wielordzeniowymi. Jednak nawet wtedy to dostosowane API zwykle nie skaluje się zbyt dobrze na procesorach wielordzeniowych).
- Zunifikowana obsługakerneli obliczeniowych i graficznychshaderów; eliminuje potrzebę użycia osobnego API obliczeniowego w połączeniu z graficznym API.
| OpenGL | Vulkan[4] |
|---|
| maszyna stanu z jednym globalnym stanem | oparty na obiektach, bez globalnego stanu |
| stan jest powiązany z pojedynczym kontekstem | wszystkie stany są zlokalizowane w buforze komend |
| pamięć karty graficznej i synchronizacja są zazwyczaj ukryte | bezpośrednia kontrola nad pamięcią karty graficznej i synchronizacją |
| obszerne sprawdzanie błędów | sterowniki Vulkan nie wykonują sprawdzania błędów; istnieje warstwa sprawdzająca błędy dostępna dla programistów |
- Ashes of the Singularity: Escalation – obsługa Vulkan została dodana w sierpniu 2017
- The Talos Principle – pierwsza gra z obsługą Vulkan
- Dota 2 – obsługa Vulkan dodana w maju 2016
- Doom – obsługa Vulkan dodana w lipcu 2016
- Mad Max – w marcu 2017 twórcy dodali obsługę bibliotek w wersji gry na Linuksa
- Quake III Arena Kenny Edition – modyfikacjaQuake’a III dodająca obsługę Vulkan w maju 2017
- vkDoom3 – portDooma 3 BFG wydany w sierpniu 2017
- vkQuake – portQuake’a na platformę renderującą Vulkan wydany w lipcu 2016
- vkQuake2 – portQuake’a 2 na platformę renderującą Vulkan wydany w grudniu 2018
- Wolfenstein II: The New Colossus – obsługa Vulkan dodana w październiku 2017
- No Man’s Sky – obsługa dodana w sierpniu 2019
- Red Dead Redemption 2 – obsługa w dniu premiery gry na PC w listopadzie 2019[5]
- Tom Clancy’s Rainbow Six Siege – obsługa dodana w 2019 roku
- Transport Fever 2 - obsługa dodana w 2021 roku
- Rage 2
- Baldur's Gate 3[potrzebny przypis]
- Source 2 – obsługa Vulkan dodana w maju 2016
- Serious Engine 4 – obsługa Vulkan dodana w lutym 2016
- Unreal Engine 4 – obsługa Vulkan dodana w lutym 2016
- id Tech 6 – obsługa Vulkan dodana w lipcu 2016
- Unity – obsługa Vulkan od wersji 5.6, dodana w grudniu 2016
- Xenko – obsługa Vulkan dodana w lipcu 2016
- Intrinsic – darmowy silnik 3D oparty na Vulkanie, został opublikowany na GitHubie
- Banshee 3D – darmowy silnik 3D oparty na Vulkanie
- CryEngine – obsługa Vulkan od wersji 5.4
- Flax Engine – obsługa Vulkan dodana w kwietniu 2019[6]
- Rockstar Advanced Game Engine – obsługę bibliotek dodano wraz z premierąRed Dead Redemption 2[7]
GPU PerfStudio 3.6 obsługuje Vulkan podWindowsem iLinuksem[8].