Vulkan je višeplatformski API za 3D grafiku i računanje. Vulkan je namijenjen za visoko performansne 3D aplikacije u realnom vremenu, kao što su videoigre i interaktivni mediji. U odnosu na OpenGL i Direct3D 11, kao i Direct3D 12 i Metal, Vulkan je namijenjen pružanju većih performansi i uravnoteženoj CPU/GPU upotrebi. Vulkan je API niskog nivoa, tj. ima efikasniju komunikaciju sa hardverom i nudi paralelno obavljanje zadataka. Vulkan također ima mogućnost renderiranja 2D grafičkih aplikacija.[3] Osim manje upotrebe CPU-a, Vulkan je efikasan kod raspoređivanja posla preko više CPU jezgri.[4]
Vulkan je prvi put najavila neprofitna Khronos Group na GDC-u 2015.[5][6] Vulkan API je prvobitno nazvan "OpenGL nove generacije" ili "OpenGL next",[7] međutim nakon što je izdat, veza sa OpenGL-om više nije spominjana.[8] Vulkan je baziran i izgrađen na komponentama AMD-ovog Mantle API-a, koji je AMD donirao Khronosu s namjerom da Khronosu pruži temelj na kojem će započeti sa razvojem API-ja niskog nivoa.[9][10][11][12][13][14][15] Khronos Group je 7. marta 2018. objavio novi Vulkan 1.1.[16]
Mogućnosti
Vulkan nudi direktniju kontrolu nad GPU-om i nižu upotrebu CPU-a.[6] Ukupni koncept i skup mogućnosti Vulkana sličan je drugim API-evima: Direct3D 12, Metal i Mantle.
Također, neke od drugih prednosti su:
Dostupnost na više operativnih sistema za razliku od Direct3D 12; poput OpenGL-a, Vulkan API nije namijenjen samo za jedan OS. Vulkan se može pokrenuti na operativnim sistemima Android, Linux, Tizen, Windows 7, Windows 8 i Windows 10, dok postoji i slobodno licencirana[17][18][19] podrška za iOS i macOS.[20]
Efikasnija komunikacija sa upravljačkim programima i smanjenje radnog opterećenja CPU-a.[21]
Bolje skaliranje na višejezgrenim procesorima.[22]
OpenGL koristi jezik visokog nivoa GLSL za pisanje shadera što prisiljava svaki OpenGL engine da implementira vlastiti kompajler za GLSL kako bi preveo shadere u mašinski kod GPU-a. Vulkanovi upravljački programi predkompajliraju shadere u format koji se zove SPIR-V što ubrzava proces i olakšava korištenje različitih shadera u jednoj sceni.[23]
Jedinstveno upravljanje računarskim kernelima i grafičkim shaderima, eliminirajući potrebu za korištenjem zasebnog API-ja za računanje u kombinaciji s grafičkim API-jem.
NVIDIA napominje da je OpenGL još uvek odlična opcija za dosta slučajeva, jer je dosta jednostavan i nema veliku potrebu za održavanjem kao Vulkan, a u isto vrijeme još uvijek daje odlične sveukupne performanse.[24]