Vulkan on madala ressursikasutusega, mitmel platvormil töötav 3D-graafika- ja arvutusrakendusliides.

Vulkan
Arendaja Khronos Group
Esmaväljalase 16. veebruar 2016
Viimane väljalase 1.3.281 / 22.03.2024 Muuda Vikiandmetes
OS Android, iOS, Linux, macOS, Microsoft Windows, Nintendo Switch, Tizen
Veebisait www.khronos.org/vulkan

Vulkani sihtmärgiks on suure jõudlusega, reaalajas töötavad 3D-graafika programmid, näiteks mängud ja muu interaktiivne meedia. Võrreldes OpenGLi, Metali ja Direct3Diga üritab Vulkan pakkuda suuremat jõudlust ja suuremat tasakaalu GPU ja CPU kasutamise vahel.

Vulkan kuulutati välja Khronos Groupi poolt 2015. aasta GDC konverentsil.[1] Algselt nimetati Vulkan OpenGLi järgmiseks põlvkonnaks ja talle pandi nimeks "OpenGL next"[2], kuid selle nime kasutamine lõppes pärast Vulkani väljakuulutamist. Vulkan on tuletatud ja ehitatud AMD Mantle'i rakendusliidese baasil, mille AMD annetas Khronosele lootes, et nad suudavad selle baasil luua rakendusliidese, mida saaks kasutada uue standardina, nagu selleks oli olnud OpenGL.[3]

Omadused muuda

Vulkan loodi kavatsustega pakkuda eeliseid võrreldes teiste rakendusliideste ja tema enda eelkäija OpenGL-iga. Vulkan kasutab vähem arvutiressurssi, kuid annab suurema kontrolli GPU üle ja väiksema CPU kasutuse.[4]

Vulkani eelised vanema põlvkonna rakendusliideste ees:

  • rakendusliides Vulkan sobib hästi kokku nutiseadmete ja kõrge taseme graafikakaartidega;
  • võrreldes Direct3Dga on Vulkan saadaval paljudel tänapäeva arvutite ja nutiseadmete OS-idel, kuid ei ole ühelegi neist lukustatud. Tänu sellele on Vulkanit võimalik kasutada Androidil, Linuxil, Tizenil ja Windowsitel alates Windows 7-st. Vulkanit on võimalik kasutada ka Apple OS-idel, kuid seda võimalust Khronos Group ise ei paku;[5]
  • vähendab draiverite ressursikasutust ja CPU koormust;[6]
  • parem skaleerimine mitmetuumalistel CPUdel. Vanemad rakendusliidesed olid loodud töötama ühetuumalistel CPUdel ja hiljem uuendatud, et nad saaks ka mitut tuuma korraga kasutada;
  • ühendatud arvutuskernelite ja graafika varjutajate haldamine, tänu millele pole vaja kasutada eraldi arvutamis- ja graafikarakendusliideseid.

Planeeritud omadused muuda

2016. aasta SIGGRAPH konverentsil kuulutas Khronos Group, et Vulkan hakkab toetama automaatse multi-GPU omadusi nagu ka Direct3D 12. Multi-GPU toetamine rakendusliideses tähendab, et kadus vajadus SLI ja Crossfire järele, mis nõuavad, et mitme graafikakaardi samaaegseks kasutamiseks tuleb kasutada sama graafikakaardi mudelit. Tänu sellele saab rakendusliides jagada töökoormust mitme täiesti erineva graafikakaardi vahel. Näiteks CPUsse integreeritud GPUd saaksid aidata palju võimsamaid GPUsid ja arvuti jõudlust natuke suurendada.[7]

Ajalugu muuda

Khronos Group alustas uue generatsiooni graafika rakendusliidese loomise projekti kohtumisega Valve'i peakorteris. Avalikult kuulutati projekt välja 2014. aasta SIGGRAPH-i konverentsil.

Vulkani kaubamärk registreeriti 19. veebruaril 2015 ja kuulutati välja sama aasta GDC konverentsil[1], kuigi spekulatsioonid ja kuulujutud uuest rakendusliidesest olid ringlemas juba enne seda.

2015 muuda

2015. aasta alguses arendas LunarG Linuxi draiveri Inteli jaoks, millega loodi Vulkani ühilduvus HD 4000 sarja integreeritud graafikakaartidega vaatamata sellele, et avaliku lähtekoodiga Mesa draiverid ei ühildunud siis veel täielikult OpenGL 4.0-ga.[8]

10. augustil teatas Google, et kõik tulevased Androidi versioonid toetavad Vulkanit.[9] Android 7.x Nougat sai selle toetuse 22. augustil 2016 ja ka Android 8.0 Oreo.

18. detsembril teatas Khronos Group, et Vulkani 1.0 versiooni tehniline kirjeldus on peaaegu valmis ja see avaldatakse kohe, kui vastavad draiverid on olemas. Tehniline kirjeldus ja Vulkan SDK avalik lähtekood avaldati 16. veebruar 2016.[10]

2016 muuda

15. detsembril teatas Unity Technologies, et alates versioonist 5.6 toetab nende videomängu mootor Unity Vulkani rakendusliidest.[11]

2017 muuda

9. veebruaril teatas Croteam et nad hakkavad kasutama Vulkani rakendusliidest oma mängudes, et kasutada ära selle platvormidevahelist töövõimet.[12]

19. märtsil teatas Cloud Imperium Games, et nende mäng "Star Citizen" võtab Direct3D asemel kasutusele Vulkani rakendusliidese.[13]

25. juulil avaldas Crytek eelvaade oma videomängu mootoris CryEngine 5.4, millele oli Vulkani toetuse beetaversioon.[14]

2018 muuda

26. veebruaril teatas Khronos Group, et rakendusliides Vulkan saab macOS-ile ja iOS-ile tänu MoltenVK-le, mis võimaldab Vulkanil töötada koos Metaliga.[15] Enne seda oli MoltenVK omandiõigusega kaubanduslikult litsentseeritud lahendus, kuid Valve jõudis selle arendajaga kokkuleppele, tänu millele MoltenVK muutus avaliku lähtekoodi lahenduseks. Samal päeval teatas Valve, et nende mäng "Dota 2" hakkab kasutama MoltenVK-d macOS-il.

7. märtsil tuli välja Vulkani versioon 1.1[16]

Ühilduvus muuda

Firma Riistvara Tarkvaratoetus: Vulkan 1.0
Mikroarhitektuur Saadaval alates GPUd (kiip) Graafikakaardid / SoCid Android Linux Microsoft Windows
AMD
GCN 5. august 2017 Vega 10 Radeon Rx Vega seeria pole teada AMDGPU PRO (Ubuntu & RHEL)
& RADV in Mesa
Radeon Software
GCN 4. juuni 2016 Polaris 10, Polaris 11, Polaris 12 Radeon Rx 400 seeria, Radeon Rx 500 seeria
GCN 3. august 2014 Tonga, Fiji, Carrizo Radeon R9 seeria
GCN 2. märts 2013 Bonaire, Hawaii, Kaveri, Kabini, Temash, Mullins, Beema, Carrizo-L Radeon HD 7790, PlayStation 4, Xbox One eksperementaalne
GCN 1. jaanuar 2012 Oland, Cape Verde, Pitcairn, Tahiti Radeon HD 77xx–7900 seeria
TeraScale 3 detsember 2010 Cayman, Trinity/Richland Radeon HD 69xx seeria, Radeon HD 7xxx–76xx seeria ei toeta
TeraScale 2 september 2009 Cedar, Cypress, Juniper, Redwood, Palm, Sumo Radeon HD 5000 seeria, Radeon HD 6350, Radeon HD 64xx–68xx seeria
TeraScale 1 mai 2007 R600, RV630, RV610, RV790, RV770, … Radeon HD 2000 seeria, HD 3000, HD 4000
Nvidia
Volta December 2017 GV10x Nvidia Titan V Nvidia GeForce driver Nvidia GeForce driver
Pascal mai 2016 GP10x GeForce 10 series, Tegra X2 Jah Nvidia GeForce driver Nvidia GeForce driver
Maxwell veebruar 2014 GM10x, GM20x GeForce GTX 750 Ti, GTX 750, GTX 860M, GeForce 900 seeria, Tegra X1
Kepler märts 2012 GK10x, GK110, GK208 GeForce 600 seeria, GeForce 700 seeria, Tegra K1
Fermi märts 2010 GF10x, GF11x GeForce 400 seeria, GeForce 500 seeria ei toeta
Tesla november 2006 G8x, G9x, GT20x, GT21x GeForce 8 seeria, GeForce 9 seeria, GeForce 100 seeria, GeForce 200 seeria, GeForce 300 seeria
Intel Coffee Lake octoober 2017 Core i3-/i5-/i7-8000,
Kaby Lake september 2016 Core i3-/i5-/i7-7000, Pentium xyz, Celeron xyz Anvil in Mesa 17.1 Anvil in Mesa Intel Graphics driver
Skylake august 2015 Core i3-/i5-/i7-6000, Core m3-/m5-/m7-6Yxx, Pentium G4xxx, Celeron G39xx
Broadwell september 2014 Core i3-/i5-/i7-5000, Core M-5Yxx ei toeta
Haswell juuni 2013 Core i3-/i5-/i7-4000, Pentium G3xxx, Celeron G18xx
Ivy Bridge aprill 2012 Core i3-/i5-/i7-3000, Pentium G2xxx, Celeron G16xx
Sandy Bridge jaanuar 2011 Core i3-/i5-/i7-2000, Pentium Gxxx, Celeron Gxxx ei toeta
Westmere jaanuar 2010 Core i3-/i5-/i7-xxx, Pentium G69xx, Celeron G1101
Imagination Technologies
PowerVR Series 8 veebruar 2016 GE8200, GE8300 PowerVR Graphics SDK v4.1
PowerVR Series 7 november 2014 GE7400, GE7800, GT7200, GT7400, GT7600, GT7800, GT7900 Apple A9, A9X, A10 Fusion, Helio X30 (MT6799)
PowerVR Series 6 jaanuar 2012 G6100, G6200, G6230, G6400, G6430, G6630, RK3368, G6050, G6060, G6100 (XE), G6110, GX6240, GX6250, GX6450, GX6650 Apple A7, A8, A8X, MediaTek MT8173, MT8176, MediaTek MT6595M, MT6595T, MT6595M, MT6795, MT8135, Helio X10 (MT6795), LG H13, Atom Z3460, Z3480, Z3530, Z3560, Z3570, Z3580
PowerVR Series 5 jaanuar 2009 SGX543, SGX544, SGX554 Apple S1, A5, A5X, A6, A6X, NovaThor L8540, L8580, L9540, TI OMAP 4470, 5430, 5432, MediaTek MT5327, MT6589M, MT6589T, MT6589, MT8117, MT8121, MT8125, MT8389, Atom Z2460, Z2520, Z2560, Z2580, Z2760, Exynos 5410 ei toeta
Qualcomm
Adreno 500 series Adreno 510, Adreno 530, Adreno 540

Adreno 512

Snapdragon 430, 625, 650, 652, 660,820, 821, 835 1.0
Adreno 400 series Adreno 418,Adreno 420,Adreno 430 Snapdragon 415, 615, 616, 617, 805, 808, 810 1.0(Adreno 418,430)
Adreno 300 series Snapdragon 200, 208, 210, 212, 400, 410, 412, 600, 800, 801 ei toeta
ARM
Bifrost juuni 2016 Mali-G71, … Kirin 960, 970, Exynos 8895, MediaTek Helio P23 (MT6763T), Helio P30 1.0
Midgard 4. Q4 2015 Mali-T860, Mali-T830, Mali-T880 Exynos 8890, Exynos7880, Exynos 7870, Kirin 950, 955, MediaTek MT6738, MT6750, Helio X20 (MT6797), X25 (MT6797T), P10 (MT6755), P20 (MT6757)
Midgard 3. oktoober 2013 Mali-T760, … Exynos 7420, Exynos 5433, MT6752, MT6732, RK3288
Midgard 2. august 2012 Mali-T600 series, T720 Exynos 5250, 5260, 5410, 5420, 5422, 5430, 5800, 7580, Mediatek MT6735, MT6753, Kirin 920, 925, 930, 935 ei toeta

Viited muuda

  1. 1,0 1,1 "More on Vulkan and SPIR-V: The future of high-performance graphics" (PDF). Khronos Group. 27. juuni 2015. Vaadatud 1. mai 2018.
  2. Smith, Ryan (11. august 2014). "Khronos Announces Next Generation OpenGL Initiative". Anand Tech. Vaadatud 1. mai 2018.
  3. Mah Ung, Gordon (6. märts 2015). "Mantle is a Vulkan: AMD's dead graphics API rises from the ashes in OpenGL's successor". PCWorld. Vaadatud 1. mai 2018.
  4. "Vulkan - Graphics and compute belong together". Khronos Group. Vaadatud 1. mai 2018.
  5. Smit, Dreyer (27. veebruar 2018). "MoltenVK, popular Vulkan development tool for macOS, goes open-source". Neowin. Vaadatud 1. mai 2018.
  6. Armasu, Lucian (3. märts 2015). "Khronos Group Announces The Next-Generation 'Vulkan' Graphics And Compute API". Toms Hardware. Vaadatud 1. mai 2018.
  7. "AMD Vulkan™ Graphics API". AMD. Vaadatud 1. mai 2018.
  8. Larabel, Michael (5. märts 2015). "Valve Developed An Intel Linux Vulkan GPU Driver". Phoronix. Vaadatud 1. mai 2018.
  9. Woods, Shannon (10. august 2015). "Low-overhead rendering with Vulkan". Android Developers Blog. Vaadatud 1. mai 2018.
  10. "Khronos Releases Vulkan 1.0 Specification". Khronos Group. 16. veebruar 2016. Vaadatud 1. mai 2018.
  11. Manion, Wayne (15. detsember 2016). "Unity engine adds Vulkan support for a big performance boost". The Tech Report. Vaadatud 1. mai 2018.
  12. Frederiksen, Eric (9. veebruar 2017). "Croteam will take its games cross-platform with Vulkan support". The Tech Report. Vaadatud 1. mai 2018.
  13. Palumbo, Alessio (19. märts 2017). "Cloud Imperium Now Only Intends To Support Vulkan, Instead of DirectX 12, for Star Citizen". wccftech. Vaadatud 1. mai 2018.
  14. McAloon, Alissa (25. juuli 2017). "CryEngine welcomes Vulkan API support to latest build". Gamasutra. Vaadatud 1. mai 2018.
  15. Bright, Peter (26. veebruar 2018). "Vulkan is coming to macOS and iOS, but no thanks to Apple". Arstechnica. Vaadatud 1. mai 2018.
  16. "Khronos Group Releases Vulkan 1.1". Khronos Group. 7. märts 2018. Vaadatud 1. mai 2018.