Vulkan (API)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Vulkan.
Vulkan
Logo

Développeur Khronos Group
Première version 16 février 2016
Dernière version 1.0.65 ()[1]Voir et modifier les données sur Wikidata
Écrit en GLSLVoir et modifier les données sur Wikidata
Environnements Multiplate-forme
Langues Anglais
Type Interface de programmation
Licences Licence Open Publication License (en) pour les spécifications[2], et propriétaire pour le logo et la marque.
Site web www.khronos.org/vulkan/

Vulkan d'abord annoncé sous l'appellation OpenGL Next est une interface de programmation graphique proposé par le consortium Khronos Group et qui a pour but de remplacer à terme OpenGL et ses dérivés en exploitant plus efficacement les architectures informatiques modernes[3]. 25 ans après la création d'OpenGL, il vise à unifier les versions mobile (OpenGL ES) et bureau (OpenGL), et fonctionne sur Microsoft Windows, GNU/Linux, et Android. Une première version est sortie en février 2016, supportée entre autres par AMD et Nvidia[4], et est compatible avec tout système supportant OpenGL ES 3.1[5].

Historique[modifier | modifier le code]

Vulkan se base 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) et en particulier son module LLVMpipe (précompilation dans un langage intermédiaire, meilleure utilisation des architectures de microprocesseurs multi-cœurs[6]) dans une meilleure utilisation des capacités 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 d'LLVM pour son interprétation[8].

Avancées majeures[modifier | modifier le code]

Parmi les avantages[3] :

  • Meilleure gestion du multiprocesseur, les différents processeurs pouvant envoyer en parallèle des commandes à exécuter ;
  • Un pilote simplifié, en donnant davantage d'accès aux commandes du GPU et à la gestion de sa mémoire au CPU ;
  • Une meilleure adaptation aux plates-formes mobiles avec notamment la gestion du cas d'une mémoire unifiée et du rendu ou chaque thread est dédiée à 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é devrait 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é également sorti DirectX 12, la dernière génération de son API Graphique, qui a pour projet d'utiliser les mêmes changements que Mantle ou Vulkan, mais a l'inconvénient de ne pas être multi-plateforme.

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

Participants[modifier | modifier le code]

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

Support[modifier | modifier le code]

Historique[modifier | modifier le code]

  • En février 2016 AMD, Intel et Nvidia proposent une version beta de leurs pilotes supportant Vulkan[13],[14].
  • Le 17 février 2016, The Talos Principle de Croteam devient le 1er jeu vidéo supportant partiellement Vulkan.
  • Le 9 avril 2016, une mise à jour de la version stable des pilotes Windows et Linux par Nvidia permet l'utilisation de Vulkan[15].
  • En avril 2016, la préversion d'Android N pour développeurs prévoit l'utilisation des API 3D Vulkan[16],[17],[18].
  • La future console de jeux Switch de Nintendo est certifiée Vulkan le 18 décembre 2016[19]
  • Lors de la conférence SDC 2016, en mai 2016, 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[20].
  • Fin septembre 2016, 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[21].
  • En octobre 2016, un premier moteur de jeu vidéo libre se basant sur Vulkan est publié sur GitHub[22].
  • En février 2017, Intel annonce que la partie graphique de ses processeurs supportera Vulkan[23].

Compatibilité matérielle[modifier | modifier le code]

Société Matériel Support de Vulkan 1.0
Microarchitecture Disponible depuis GPUs (Die) Carte graphiques/SoC Linux Microsoft Windows(Windows 7 et supérieur) Android Nougat et supérieur[24]
AMD
GCN 4th 06/2016 Polaris 10, Polaris 11, Vega 10 Radeon Rx 400 Series
AMDGPU PRO (Ubuntu & RHEL)[25],[26]

Mesa/RADV[27]
Radeon Software[28]
NC
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 77xx–7900 Series
TeraScale 3
"Northern Islands"
12/2010 Aruba (Trinity/Richland), Barts, Turks, Caicos, Cayman Radeon HD 7xxx–76xx 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[29],[30]
Nvidia GeForce driver[30]
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
Kaby Lake 3 janvier 2017
Mesa[31],[32]
Intel graphics[33]
NC
Skylake 08/2015 Core i3-/i5-/i7-6000, Pentium G4xxx, Celeron G39xx Prévu
Broadwell 09/2014 Core M-5Yxx, Core i3-/i5-/i7-5000 non supporté
Haswell 09/2012 Core i3-/i5-/i7-4000, Pentium G3xxx, Celeron G18xx
Ivy Bridge 04/2012 Core i3-/i5-/i7-3000, Pentium G2xxx, Celeron G16xx
Sandy Bridge 01/2011 Core i3-/i5-/i7-2000, Pentium Gxxx, Celeron Gxxx non supporté
Westmere 02/2012 Core i3-/i5-/i7-xxx, Pentium G69xx, Celeron G1101
Imagination Technologies
PowerVR Series 8XE 02/2016 GE8200, GE8300
PowerVR Graphics SDK v4.1[34]
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 500 series Adreno 510, Adreno 530, Adreno 540 Snapdragon 430, 625, 650, 652, 820, 821, 835
1.0[35]
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[36] 06/2016 Mali-G71, Mali-G51 Kirin 960
1.0[37]
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é

Jeux compatibles[modifier | modifier le code]

Article détaillé : Liste de jeux supportant Vulkan.

Moteurs de jeux compatibles[modifier | modifier le code]

  • Source 2 – En mars 2015, Valve annonce que Source 2, successeur du moteur originel Source, supportera Vulkan[43],[44].
  • Serious Engine 4 – En février 2016,Croteam annonce le support de Vulkan dans leur moteur[45].
  • Unreal Engine 4 – En février 2016, Epic Games annonce le support de Vulkan lors d'un événement organisé par Samsung[46],[47].
  • id Tech 6 – En mai 2016, id Software annonce le support de Vulkan pour la version 6 de leur moteur[48].
  • CryEngineCrytek a annoncé vouloir inclure le support de Vulkan pour son CryEngine[49].
  • Unity – Le support est prévu pour 2016[50].
  • Xenko – Le support a été rajouté en juillet 2016[51].
  • Intrinsic – Un moteur de jeu libre publié sur GitHub[52].
  • Torque 3D MIT - En avril 2016, la communauté de développeurs annonce penser au support de Vulkan[53].

Annexes[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. (en) « Vulkan 1.0.65 - A Specification »
  2. (en) « Open Publication License »,
  3. a et b Smith 2015.
  4. http://www.zdnet.fr/actualites/le-khronos-group-officialise-la-releve-d-opengl-39832898.html
  5. a et b 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 5 avril 2015)
  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. (en) « The Qt Company joins Khronos Group and promotes Vulkan - Qt Blog », Qt Blog,‎ (lire en ligne)
  13. http://www.touslesdrivers.com/index.php?v_page=3&v_code=6124
  14. http://jeux.developpez.com/actu/96093/Intel-propose-un-pilote-Vulkan-open-source/
  15. http://www.ginjfo.com/actualites/composants/cartes-graphiques/vulkan-nvidia-drivers-windows-linux-20160409
  16. http://www.silicon.fr/lapi-3d-vulkan-sinvite-dans-android-n-developer-preview-2-144859.html
  17. http://www.nextinpact.com/news/99472-android-n-2e-developer-preview-amene-support-vulkan.htm
  18. http://www.tomshardware.fr/articles/android-n-vulkan,1-59353.html
  19. http://www.p-nintendo.com/news/khronos-certifie-la-switch-pour-vulkan-245969
  20. http://www.01net.com/actualites/vulkan-l-api-qui-ferait-du-bien-a-la-batterie-de-votre-smartphone-970624.html
  21. http://www.frandroid.com/hardware/380395_vulkan-jeux-unity-seront-bientot-plus-fluides-android
  22. http://www.toolinux.com/Un-moteur-de-jeu-video-base-sur
  23. Jérôme Gianoli, « Support complet de Vulkan sous Windows, les Intel HD Graphics 21.20.16.4590 débarquent », sur Ginjfo, (consulté le 18 février 2017)
  24. (en) « The Android platform includes an Android-specific implementation of the Vulkan API specification from the Khronos Group »,
  25. (en) « AMDGPU-PRO 16.40 Released For Ubuntu & Red Hat Linux Systems »,
  26. https://community.amd.com/community/gaming/blog/2016/02/16/radeon-gpus-are-ready-for-the-vulkan-graphics-api
  27. (en) Michael Larabel, « Testing The Open-Source "RADV" Radeon Vulkan Driver vs. AMDGPU-PRO », sur Phoronix,
  28. (en) « AMD Radeon Software version 16.15.1009 supports Vulkan »,
  29. http://www.nvidia.com/download/driverResults.aspx/101818/en-us
  30. a et b (en) « Vulkan Driver Support », sur NVIDIA Developer, Nvidia (consulté le 4 avril 2016)
  31. (en) « Open-source Vulkan drivers for Intel hardware »,
  32. (en) Michael Larabel, « Mesa 12.0 Released With OpenGL 4.3 Support, Intel Vulkan & Many Other Features », sur Phoronix, (consulté le 9 juillet 2016)
  33. https://software.intel.com/en-us/blogs/2016/03/14/new-intel-vulkan-beta-1540204404-graphics-driver-for-windows-78110-1540 15.40.20
  34. (en) « Imagination announces Vulkan SDK for PowerVR Rogue GPUs », sur Imagination Blog, PowerVR Developer Technology Team, (consulté le 27 avril 2016)
  35. (en) « Qualcomm announces Vulkan API support for Adreno 5xx and 4xx GPUs »
  36. (en) « ARM Bifrost GPU Architecture »,
  37. (en) « ARM® Mali™GPUs with Vulkan Conformance »
  38. (en) Daniel Williams et Ryan Smith, « Quick Look: Vulkan Performance on The Talos Principle », Anandtech,‎ (lire en ligne)
  39. (en) « Dota 2 Update - May 23rd 2016 », sur store.steampowered.com, Valve (consulté le 24 mai 2016)
  40. (en) « DOOM – Vulkan Support Now Live », sur bethesda.net
  41. (en) Michael Larabel, « Quake 1 Ported To Run On Vulkan », sur Phoronix, Phoronix Media, (consulté le 26 août 2016)
  42. (en) John Papadopoulos, « Here is your first look at the first Quake being recreated in Unreal Engine 4 (fan project) », Dark Side of Gaming, (consulté le 26 août 2016)
  43. (en) Philip Kollar, « Valve announces Source 2 engine, free for developers », (consulté le 3 mars 2015)
  44. (en) Mike Mahardy, « GDC 2015: Valve Announces Source 2 Engine », IGN,‎ (lire en ligne)
  45. (en) « The Talos Principle will support Vulkan », 4 feb 2016
  46. (en) « Epic Games adds Vulkan support to Unreal Engine 4 », sur bit-tech
  47. (en) « Epic Games Unveils ProtoStar at Samsung Galaxy Unpacked », sur www.unrealengine.com
  48. (en) « id announces Doom running on Vulkan »,
  49. http://www.tweaktown.com/news/53506/directx-12-vulkan-support-way-cryengine/index.html
  50. https://blogs.unity3d.com/2016/05/19/make-your-daydreams-a-reality/
  51. (en) « Xenko 1.7β released! »,‎
  52. http://www.intrinsic-engine.com/
  53. http://forums.torque3d.org/viewtopic.php?t=617#p5148

Bibliographie[modifier | modifier le code]

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

Lien externe[modifier | modifier le code]