Vulkan (API)

višeplatformski API za 3D grafiku i računanje

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
Programer(i)Khronos Group
Prvo izdanje16. februar 2016; prije 8 godina (2016-02-16)[1]
Centralna arhivagithub.com/KhronosGroup/Vulkan-Headers
Programski jezikC[2]
Operativni sistemAndroid, Linux, Windows, Nintendo Switch, Google Stadia, Tizen, macOS
PlatformaViše platformski
VrstaAPI za 3D grafiku
Veb-sajtwww.khronos.org/vulkan

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 uredi

 
OpenGL i Vulkan su slični API-jevi, u oba slučaja GPU izvršava shadere dok CPU izvršava sve ostalo.

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]

Također pogledajte uredi

  • Direct3D 12 – glavni konkurent Vulkanu
  • OpenGL – prethodnik, izdavač je također Khronos
  • OpenCL – heterogeni računski okvir, izdavač je također Khronos
  • Mantle – grafički i računski API niskog nivoa, osnova Vulkana
  • Metal – grafički i računski API niskog nivoa za iOS i macOS
  • AMDGPU – AMD-ov potpuno otvoreni objedinjeni grafički pogon za Linux

Reference uredi

  1. ^ "Khronos Releases Vulkan 1.0 Specification". Khronos Group Press Release.
  2. ^ https://github.com/KhronosGroup/Vulkan-Docs/blob/1.0/src/vulkan/vulkan.h
  3. ^ "Does Vulkan support 2D graphics?". LunarG. Pristupljeno 24. 9. 2016.
  4. ^ Hruska, Joel. "Next-generation Vulkan API could be Valve's killer advantage in battling Microsoft". ExtremeTech. Pristupljeno 26. 6. 2015.
  5. ^ "Vulkan: Graphics and compute Belong Together" (PDF). Khronos Group. mart 2015. Pristupljeno 5. 3. 2015.
  6. ^ a b "Vulkan – Graphics and compute belong together". Khronos Group. Pristupljeno 5. 3. 2015.
  7. ^ Smith, Ryan. "Khronos Announces Next Generation OpenGL Initiative". Pristupljeno 24. 9. 2016.
  8. ^ Batchelor, James (3. 3. 2015). "glNext revealed as Vulkan graphics API". Develop.
  9. ^ Shilov, Anton. "AMD: Vulkan absorbed 'best and brightest' parts of Mantle". KitGuru. Pristupljeno 26. 6. 2015.
  10. ^ "More on Vulkan and SPIR - V: The future of high-performance graphics" (PDF). Khronos Group. str. 10. Pristupljeno 27. 6. 2015. Thanks AMD!
  11. ^ Mah Ung, Gordon (6. 3. 2015). "Mantle is a Vulkan: AMD's dead graphics API rises from the ashes in OpenGL's successor". PC World.
  12. ^ "AMD Gaming: One of Mantle's Futures: Vulkan | AMD Blogs". AMD. Arhivirano s originala, 6. 3. 2015. Pristupljeno 5. 3. 2015.
  13. ^ Hruska, Joel (4. 3. 2015). "Not dead yet: AMD's Mantle powers new Vulkan API, VR efforts". ExtremeTech. Pristupljeno 5. 3. 2015.
  14. ^ "AMD's Mantle Lives On In Vulkan - Lays The Foundation For The Next OpenGL". Wccftech. 20. 6. 2014. Pristupljeno 5. 3. 2015.
  15. ^ Kirsch, Nathan. "Is AMD Mantle Dead As We Have Known It? Vulcan API Uses Mantle Technology for OpenGL". Legit Reviews. Pristupljeno 5. 3. 2015.
  16. ^ "Khronos Group Releases Vulkan 1.1". The Khronos Group (Press release) (jezik: engleski). 7. 3. 2018. Pristupljeno 21. 3. 2018.
  17. ^ "MoltenVK, popular Vulkan development tool for macOS, goes open-source". Neowin (jezik: engleski). Pristupljeno 28. 2. 2018.
  18. ^ "Vulkan graphics will enable faster games and apps on Apple platforms". VentureBeat (jezik: engleski). 26. 2. 2018. Pristupljeno 28. 2. 2018.
  19. ^ "Vulkan Is Now Available On macOS/iOS By MoltenVK Being Open-Sourced, Vulkan SDK for Mac - Phoronix". www.phoronix.com (jezik: engleski). Pristupljeno 28. 2. 2018.
  20. ^ "MoltenVK". Molten. Pristupljeno 5. 4. 2016.
  21. ^ "Khronos Group Announces The Next-Generation 'Vulkan' Graphics And Compute API". Tom's Hardware. 3. 3. 2015.
  22. ^ "Vulkan: Scaling to multiple threads". Imagination Technologies. 24. 11. 2015. Arhivirano s originala, 26. 11. 2015. Pristupljeno 21. 11. 2019.
  23. ^ Kessenich, John. "An Introduction to SPIR-V" (PDF). Khronos Group. Pristupljeno 5. 3. 2015.
  24. ^ "Transitioning from OpenGL to Vulkan". Nvidia. Arhivirano s originala, 25. 4. 2020. Pristupljeno 21. 11. 2019.

Dalje čitanje uredi

  • Vulkanski programski vodič: Službeni vodič za učenje Vulkana (OpenGL), 10. novembra 2016., Graham Sellers i John Kessenich ISBN 978-0-1344-64541
  • Uvod u računarsku grafiku i Vulkan API, 1. jula 2017., autor Kenwright ISBN 978-1-5486-16175
  • Vulkan Cookbook, 28. aprila 2017., autor Pawel Lapinski ISBN 978-1-7864-68154