Accueil🇫🇷Chercher

Vulkan (API)

Vulkan d'abord annoncé sous l'appellation OpenGL Next est une spécification proposée par le consortium Khronos Group pour la programmation graphique. Elle est mise en œuvre par plusieurs constructeurs de cartes graphiques sous forme d'une interface de programmation portant le même nom et a pour but de remplacer à terme OpenGL et ses dérivés en exploitant plus efficacement les architectures informatiques modernes[2]. 25 ans après la création d'OpenGL, elle vise à unifier les versions mobile (OpenGL ES) et bureau (OpenGL), fonctionne nativement sur Microsoft Windows, GNU/Linux et Android, ainsi que sous MacOS et iOS via la portability initiative (l'API MoltenVK)[3] en se basant sur Metal. Une première version est sortie en , supportée entre autres par AMD et Nvidia[4], et est compatible avec tout système supportant OpenGL ES 3.1[5].

Historique

Vulkan se fonde sur le travail effectué par AMD sur l'API Mantle (en), et auparavant, au sein de Mesa 3D, par Gallium3D (réduction de la couche du pilote graphique et relation plus directe au GPU et à sa mémoire). En particulier son module LLVMpipe qui permet la précompilation dans un langage intermédiaire et une meilleure utilisation des architectures de microprocesseurs multi-cœurs[6] des architectures modernes pour le rendu 3D.

Les dĂ©veloppeurs du pilote libre Vulkan, pour processeurs graphiques Intel, dĂ©crivent Vulkan comme un « Gallium3D 2.0 Â». Le langage SPIR utilisant Ă  l'origine LLVM[7], SPIR-V qui en est une version modifiĂ©e permettra une implĂ©mentation de LLVM pour son interprĂ©tation[8].

Avancées majeures

Parmi les avantages[2] :

  • Meilleure gestion du multiprocesseur, les diffĂ©rents processeurs pouvant envoyer en parallèle des commandes Ă  exĂ©cuter ;
  • Un pilote simplifiĂ©, en donnant au CPU davantage d'accès aux commandes du GPU et Ă  la gestion de sa mĂ©moire ;
  • Une meilleure adaptation aux plates-formes mobiles avec notamment la gestion du cas d'une mĂ©moire unifiĂ©e et du rendu oĂą chaque thread est dĂ©diĂ© Ă  un des rectangles formant l'affichage (dallage).
  • Le langage SPIR-V qui permettra de simplifier le travail des pilotes dans l'interprĂ©tation des shaders.
  • La simplification des pilotes et le langage unifiĂ© devraient permettre de rĂ©duire, pour les dĂ©veloppeurs d'application, les difficultĂ©s de portabilitĂ© du matĂ©riel d'un constructeur Ă  un autre
  • Calculs non graphiques[9] sur le GPU, comme OpenCL, Ă  qui il succède.

Microsoft a de son côté sorti DirectX 12, la dernière génération de son API Graphique, et Apple a sorti son API Metal. Tous deux ont pour projet d'utiliser les mêmes accès bas niveau au matériel et la portabilité mobile que Mantle ou Vulkan, mais ont l'inconvénient de ne pas être multiplateformes.

Étant donné l'ouverture de l'API, la portabilité et les gains de performances, différents éditeurs de jeux ont déjà annoncé le support de celle-ci par leur moteur, avant même les spécifications définitives, comme le moteur Source 2 de Valve[10] - [11]

La bibliothèque libre GLOVE convertit les appels OpenGL ES, glsl et EGL en appels Vulkan[12].

Les pilotes libres d'accĂ©lĂ©ration 3D matĂ©rielle Mesa 3D pour GNU/Linux comportent trois pilotes permettant de convertir diffĂ©rentes API 3D vers Vulkan, et de bĂ©nĂ©ficier ainsi de ses performances et plus faible consommation Ă©nergĂ©tique avec des applications qui sont conçues pour :

  • D9VK (obsolète car dorĂ©navant inclus dans DXVK), convertit les appels Direct3D versions 9 vers des appels Vulkan ;
  • DXVK, convertit les appels Direct3D versions 9, 10 et 11 vers des appels Vulkan[13] ;
  • VKD3D, convertit les appels Direct3D versions 12 vers des appels Vulkan[14] ;
  • Zink, convertit les appels OpenGL et OpenGL ES en appel Vulkan, il est intĂ©grĂ© Ă  partir du , la bibliothèque, via le sous-système Gallium de Mesa[15], il est placĂ© entre la couche OpengGL state tracker de Gallium et les pilotes Vulkan[12], entre la couche du state tracker OpenGL et le pilote Vulkan[12].

Participants

Les principales sociĂ©tĂ©s participant Ă  la norme[5] sont : AMD, Apple, ARM, Blizzard, Broadwell, Codeplay (en), Continental, Electronic Arts, Epic Games, Imagination Technologies, Intel, Lucasfilm, Mediatek, Oculus VR, Oxide, Pixar, Samsung, Sony, TransGaming (en), Unity, Godot Engine, Valve, Vivante, Qt[16].

Support

Historique

  • En AMD, Intel et Nvidia proposent une version beta de leurs pilotes supportant Vulkan[17] - [18].
  • Le , The Talos Principle de Croteam devient le 1er jeu vidĂ©o supportant partiellement Vulkan.
  • Le , une mise Ă  jour de la version stable des pilotes Windows et Linux par Nvidia permet l'utilisation de Vulkan[19].
  • En , la prĂ©version d'Android Nougat pour dĂ©veloppeurs prĂ©voit l'utilisation des API 3D Vulkan[20] - [21].
  • La future console de jeux Switch de Nintendo est certifiĂ©e Vulkan le [22]
  • Lors de la confĂ©rence SDC 2016, en , la sociĂ©tĂ© Samsung annonce que son prochain modèle de smartphone utilisera Vulkan, et annonce des gains en durĂ©e de vie de la batterie[23].
  • Fin , Unity annonce que les jeux Android basĂ©s sur son moteur disposent en beta de Vulkan, ce qui permet des performances amĂ©liorĂ©es d'environ 35%, et une consommation Ă©nergĂ©tique moindre[24].
  • En , un premier moteur de jeu vidĂ©o libre se basant sur Vulkan, Intrinsic, est publiĂ© sur GitHub[25].
  • En , Intel annonce que la partie graphique de ses processeurs supportera Vulkan[26].
  • En , Valve, LunarG et The Brenwill Workshop annoncent que le jeu vedette de Valve, Dota 2, est portĂ© via MoltenVK (implĂ©mentation de Metal en Vulkan) sur MacOS avec un gain de performances de 50% par rapport Ă  la version OpenGL [3].
  • En , les dĂ©veloppeurs du moteur de jeu libre Godot, annoncent qu'ils vont s'orienter vers Vulkan et Open GL ES 2.0, plutĂ´t qu'OpenGL ES 3.0[27]. Il devrait ĂŞtre prĂŞt pour Godot 4.0[28], qui devrait sortir en 2022.
  • En , les dĂ©veloppeurs du moteur 3D libre OGRE, annoncent qu'ils sont en train de porter le moteur sur Vulkan[29].

Compatibilité matérielle

Société Matériel Support de Vulkan 1.0
Microarchitecture Disponible depuis GPUs (Die) Carte graphique/SoC Linux Microsoft Windows(Windows 7 et supérieur) Android Nougat et supérieur[30]
AMD
GCN 5th 08/2017 Vega 10 Radeon Rx Vega series AMDGPU PRO (Ubuntu & RHEL)[31] - [32]
Mesa/RADV[33]
Radeon Software[34] NC
GCN 4th 06/2016 Polaris 10, Polaris 11, Vega 10 Radeon Rx 400 Series
GCN 3rd 08/2014 Tonga, Fiji, Carrizo Radeon R9 Series
GCN 2nd 03/2013 Bonaire, Hawaii, Kaveri, Kabini, Temash, Mullins, Beema, Carrizo-L Radeon HD 7790, PlayStation 4, Xbox One En cours d'implémentation
GCN 1st 02/2012 Oland, Cape Verde, Pitcairn, Tahiti, Hainan Radeon HD 77..–7900 Series
TeraScale 3
"Northern Islands"
12/2010 Aruba (Trinity/Richland), Barts, Turks, Caicos, Cayman Radeon HD 7...–76.. Series, Radeon HD 6000 Series non supporté
TeraScale 2
"Evergreens"
09/2009 Cedar, Cypress, Juniper, Redwood, Palm, Sumo Radeon HD 5000 Series
TeraScale 1 05/2007 R600, RV630, RV610, RV790, RV770, … Radeon HD 2000 Series, HD 3000, HD 4000
Nvidia
Pascal 05/2016 GP100, GP104, GP106, GP107 GeForce 10 series, Tegra X2 Nvidia GeForce driver[35] - [36] Nvidia GeForce driver[36] Oui
Maxwell 2 09/2014 GM200, GM204, GM206, GM20B GeForce 900 series, Tegra X1
Maxwell 1 02/2014 GM107, GM108 GeForce GTX 750 Ti, GTX 750, GTX 860M
Kepler 03/2012 GK110, GK104, GK106, GK107, GK208 GeForce 600 series, GeForce 700 series, Tegra K1
Fermi 03/2010 GF100, GF104, GF106, GF108, GF110, GF114, GF116, GF119 GeForce 400 series, GeForce 500 series non supporté
Tesla 2.0 06/2008 GT200, GT215, GT216, GT218, GeForce 200 series, GeForce 300 series
Tesla 1.0 11/2006 G80, G84, G86, G92, G94, G96, G98 GeForce 8 series, GeForce 9 series, GeForce 100 series
Intel
Coffee Lake 10/2017 Core i3-/i5-/i7-8000 Mesa[37] - [38] Intel graphics[39] NC
Kaby Lake 01/2017 Core i3-/i5-/i7-7000
Skylake 08/2015 Core i3-/i5-/i7-6000, Pentium G4..., Celeron G39.. Prévu
Broadwell 09/2014 Core M-5Y.., Core i3-/i5-/i7-5000 non supporté
Haswell 09/2012 Core i3-/i5-/i7-4000, Pentium G3..., Celeron G18..
Ivy Bridge 04/2012 Core i3-/i5-/i7-3000, Pentium G2..., Celeron G16..
Sandy Bridge 01/2011 Core i3-/i5-/i7-2000, Pentium G..., Celeron G... non supporté
Westmere 02/2012 Core i3-/i5-/i7-..., Pentium G69.., Celeron G1101
Imagination Technologies
PowerVR Series 8XE 02/2016 GE8200, GE8300 PowerVR Graphics SDK v4.1[40]
PowerVR Series 7XT 11/2014 GT7200, GT7400, GT7600, GT7800, GT7900 Apple A9, Helio X30 (MT679?)
PowerVR Series 7XE 11/2014 GE7400, GE7800
PowerVR Series 6XT 01/2014 GX6240, GX6250, GX6450, GX6650 Apple A8, A8X, MediaTek MT8173, MT8176,
PowerVR Series 6XE 01/2014 G6050, G6060, G6100 (XE), G6110 RK3368
PowerVR Series 6 (Rogue) 01/2012 G6100, G6200, G6230, G6400, G6430, G6630 MediaTek MT6595M, MT6595T, MT6595M, MT6795, MT8135, Helio X10 (MT6795), LG H13, Apple A7, Atom Z3460, Z3480, Z3530, Z3560, Z3570, Z3580
PowerVR Series 5XT 01/2012 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 non supporté
Qualcomm
Adreno 600 series Adreno 640 Snapdragon 855 1.1[41]
Adreno 500 series Adreno 510, Adreno 530, Adreno 540 Snapdragon 430, 625, 650, 652, 820, 821, 835, 845 1.0[42]
Adreno 400 series Snapdragon 415, 615, 616, 617, 805, 808, 810
Adreno 300 series Snapdragon 200, 208, 210, 212, 400, 410, 412, 600, 800, 801 non supporté
ARM
Bifrost[43] 06/2016 Mali-G71, Mali-G51 Kirin 960 1.0[44]
Midgard 4th Q4 2015 Mali-T860, Mali-T830, Mali-T880 Exynos 8890, Exynos 7870, Kirin 950, 955, MediaTek MT6738, MT6750, Helio X20 (MT6797), X25 (MT6797T), P10 (MT6755), P20 (MT6757)
Midgard 3rd 10/2013 Mali-T760, … Exynos 7420, Exynos 5433, MT6752, MT6732, RK3288
Midgard 2nd 08/2012 Mali-T600 series, T720 Exynos 5250, 5260, 5410, 5420, 5422, 5430, 5800, 7580, Mediatek MT6735, MT6753, Kirin 920, 925, 930, 935 non supporté

Moteurs de jeux compatibles

  • Amazon Lumberyard[45]
  • Source 2 – En , Valve annonce que Source 2, successeur du moteur originel Source, supportera Vulkan[46] - [47].
  • Serious Engine 4 – En ,Croteam annonce le support de Vulkan dans leur moteur[48].
  • Unreal Engine 4 – En , Epic Games annonce le support de Vulkan lors d'un Ă©vĂ©nement organisĂ© par Samsung[49] - [50].
  • id Tech 6 – En , id Software annonce le support de Vulkan pour la version 6 de leur moteur[51].
  • id Tech 7
  • CryEngine – Crytek a annoncĂ© vouloir inclure le support de Vulkan pour son CryEngine[52].
  • Unity – Support Vulkan Ă  partir de la version 5.6[53] pour Android, Linux et Windows. Le support dans l'Ă©diteur est disponible Ă  partir de la version 2018.2[54].
  • Xenko – Le support a Ă©tĂ© rajoutĂ© en [55].
  • Intrinsic – Un moteur de jeu libre publiĂ© sur GitHub[56].
  • Torque 3D MIT - En , la communautĂ© de dĂ©veloppeurs annonce penser au support de Vulkan[57].
  • Armory Engine - Moteur de jeu libre intĂ©grĂ© dans Blender 3D.
  • Godot Game Engine 4.0 (beta)-moteur de jeu libre.

Annexes

Notes et références

  1. « v1.3.255 », (consulté le )
  2. Smith 2015.
  3. (en) « Portability Initiative - », The Khronos Group,‎ (lire en ligne, consulté le )
  4. « Le Khronos Group officialise la relève d’OpenGL », sur ZDNet France (consulté le ).
  5. https://www.khronos.org/assets/uploads/developers/library/overview/2015_vulkan_v1_Overview.pdf
  6. (en) « Gallium3D LLVM »,
  7. Ryan Smith, « Khronos @ SIGGRAPH 2013: OpenGL 4.4, OpenCL 2.0, & OpenCL 1.2 SPIR Announced », Anandtech, (consulté le )
  8. (en) « Learning More About The Intel Vulkan Driver, Linux Vulkan Plans », phoronix,
  9. https://www.khronos.org/assets/uploads/developers/library/2015-gtc/Khronos-Overview-GTC_Mar15.pdf
  10. (en) Philip Kollar, « Valve announces Source 2 engine, free for developers »,
  11. Mike Mahardy, « GDC 2015: Valve Announces Source 2 Engine », IGN,
  12. LittleWhite, « GLOVE et Zink Deux implémentations d'OpenGL sur Vulkan », sur jeux.developpez.com,
  13. (en) « DXVK, Vulkan-based D3D11 and D3D10 implementation for Linux / Wine », sur compte Github de doitsujin
  14. (en) « D3D12 to Vulkan translation library », sur source.winehq.org
  15. (en) « zink: introduce opengl over vulkan », sur cgit.freedesktop.org,
  16. (en-US) « The Qt Company joins Khronos Group and promotes Vulkan - Qt Blog », Qt Blog,‎ (lire en ligne, consulté le )
  17. « AMD et NVIDIA proposent leurs pilotes pour l'API Vulkan 1.0 », sur touslesdrivers.com (consulté le ).
  18. « Intel propose un pilote Vulkan open source. », sur Developpez.com (consulté le ).
  19. Jérôme Gianoli, « Vulkan, Nvidia publie ses Windows driver version 364.91 et Linux driver version 364.16 », sur ginjfo.com, (consulté le ).
  20. Guénaël Pépin, « Android N : la 2e Developer Preview amène le support de Vulkan », sur nextinpact.com, (consulté le ).
  21. « Vulkan maintenant sur Android N Developer Preview 2 », sur Tom’s Hardware : actualités matériels et jeux vidéo, (consulté le ).
  22. « La Switch est la première console officiellement compatible Vulkan < News < Puissance Nintendo », sur p-nintendo.com (consulté le ).
  23. « Comment Samsung va augmenter l'autonomie de vos smartphones sans changer leur batterie », sur 01net, 01net (consulté le ).
  24. Clément Grandjean, « Vulkan : les jeux Unity seront bientôt plus fluides sous Android », sur frandroid,
  25. « Un moteur de jeu vidéo basé sur Vulkan », sur Toolinux.com,
  26. Jérôme Gianoli, « Support complet de Vulkan sous Windows, les Intel HD Graphics 21.20.16.4590 débarquent », sur Ginjfo, (consulté le )
  27. (en) Juan Linietsky, « Moving to Vulkan (and ES 2.0) instead of OpenGL ES 3.0 »,
  28. (en) Rémi Verschelde, « Dev snapshot: Godot 3.2 alpha 1 »,
  29. (en) Matias Goldberg, « Vulkan Progress Report »,
  30. (en) « The Android platform includes an Android-specific implementation of the Vulkan API specification from the Khronos Group »,
  31. (en) « AMDGPU-PRO 16.40 Released For Ubuntu & Red Hat Linux Systems »,
  32. rhallock, « Radeon GPUs are ready for the Vulkan graphics API », sur amd.com, (consulté le ).
  33. (en) Michael Larabel, « Testing The Open-Source "RADV" Radeon Vulkan Driver vs. AMDGPU-PRO », sur Phoronix,
  34. (en) « AMD Radeon Software version 16.15.1009 supports Vulkan »,
  35. « NVIDIA », sur nvidia.com (consulté le ).
  36. (en) « Vulkan Driver Support », sur NVIDIA Developer, Nvidia (consulté le )
  37. (en) « Open-source Vulkan drivers for Intel hardware »,
  38. (en) Michael Larabel, « Mesa 12.0 Released With OpenGL 4.3 Support, Intel Vulkan & Many Other Features », sur Phoronix, (consulté le )
  39. https://software.intel.com/en-us/blogs/2016/03/14/new-intel-vulkan-beta-1540204404-graphics-driver-for-windows-78110-1540 15.40.20
  40. (en-US) « Imagination announces Vulkan SDK for PowerVR Rogue GPUs », sur Imagination Blog, PowerVR Developer Technology Team, (consulté le )
  41. (en) « Snapdragon 855: The premier mobile platform for a new decade of 5G, AI, and XR »
  42. (en) « Qualcomm announces Vulkan API support for Adreno 5.. and 4.. GPUs »
  43. (en) « ARM Bifrost GPU Architecture »,
  44. (en) « ARM® Mali™GPUs with Vulkan Conformance »
  45. (en) Wanda Meloni, « AMAZON’S LUMBERYARD GAME ENGINE GOES OPEN SOURCE », sur gfxspeak.com, (consulté le )
  46. (en) Philip Kollar, « Valve announces Source 2 engine, free for developers », (consulté le )
  47. (en) Mike Mahardy, « GDC 2015: Valve Announces Source 2 Engine », IGN,‎ (lire en ligne, consulté le )
  48. (en) « The Talos Principle will support Vulkan »,
  49. (en) « Epic Games adds Vulkan support to Unreal Engine 4 », sur bit-tech (consulté le )
  50. (en) « Epic Games Unveils ProtoStar at Samsung Galaxy Unpacked », sur www.unrealengine.com (consulté le )
  51. (en) « id announces Doom running on Vulkan »,
  52. « DirectX 12, Vulkan support on the way for CryEngine », sur TweakTown, (consulté le ).
  53. « Unity 5.6 - Unity », sur Unity (consulté le ).
  54. « Unity 2018.2 - Unity », sur Unity (consulté le ).
  55. (en) « Xenko 1.7β released! »,‎
  56. (en) « Thanks For All The Fish! — », sur Thanks For All The Fish! (consulté le ).
  57. (en) JeffR, « Closing in on 3.9 », sur torque3d.org, (consulté le ).

Bibliographie

  • Ryan Smith, « Next Generation OpenGL Becomes Vulkan: Additional Details Released », AnandTech,‎ (lire en ligne)

Lien externe

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.