Mesa 3D

Mesa 3D

Informace
Tvůrce Brian Paul
Vyvinul Brian Paul, Tungsten Graphics, Inc. (získaný společností VMware ), Intel , Linaro a kol.
První verze Srpna 1993
Poslední verze 21.0.3 (21. dubna 2021)
Pokročilá verze 18.0.0-rc5 (21. března 2018)
19.1.0-rc5 (5. června 2019)
1,0 (Února 1995)
21.0.0-rc3 (27. ledna 2021)
Vklad gitlab.freedesktop.org/mesa/mesa
Zajištění kvality Kontinuální integrace
Napsáno C , C ++ a assembler
Operační systém Linux , FreeBSD , NetBSD , OpenBSD a Haiku
Typ Grafická
knihovna Softwarová
knihovna C knihovna ( d )
Licence Licence MIT
webová stránka mesa3d.org

3D Mesa je zdarma grafická knihovna , původně vyvinutý Brian Paul , odSrpna 1993„Což poskytuje obecnou implementaci OpenGL k dosažení trojrozměrné grafiky vykreslené v reálném čase a na více platformách . Ačkoli Mesa 3D není oficiální implementací OpenGL, struktury, syntaxe a sémantika jeho API jsou struktury OpenGL.

v Červenec 2007„Mesa 3D je jediná Plně otevřená implementace OpenGL . Primárně se používá v souvislosti s prováděním X.Org ‚s X Window System , který používá OpenGL pro renderování pro řidiče open source DRI X.Org/OpenGL. X.Org poskytuje základní funkce pro většinu grafických aplikací běžících na unixových platformách , jako je GNU / Linux .

V roce byla provedena důležitá aktualizace července 2009začleněním prací prováděných na Gallium3D , vyvinutých hlavně společností Tungsten Graphics (získanou společností VMware ) a původně plánovanou na nahrazení Mesa 3D. Tato nová verze zjednodušuje vývoj grafických ovladačů tím, že nabízí jedinečnou úroveň abstrakce vyžadovanou grafickými ovladači a která sama může používat různé akcelerační procesy založené na OpenGL, OpenGL ES , OpenCL nebo dokonce Direct3D (což by Wine mohlo mít odvolání). Obecně by to mělo umožnit lepší využití kapacit současných grafických procesorů a poskytnout univerzální metodu dekódování videa. A konečně, Gallium3D umožňuje použití grafického procesoru (GPU) pro výpočetní úlohy, dříve převedeného na centrální procesor (CPU) (pak hovoříme o obecném výpočtu na GPU nebo GPGPU ).

Podpora různých architektur

Na architektuře x86 používají bezplatné ovladače pro grafické procesory AMD ( ovladače R300 , R600 , Radeon a RadeonSI ) a Nvidia ( nový ovladač ) Gallium3D. Na Intel, na druhou stranu, tak procesory generace i915 se použít gallium, novějších procesorů (i965 architektura / ovladače), nadále používat Mesa zdarma řidičů. K dispozici je také montážní kód pro zrychlení výpočtů pomocí SIMD x86 a x86_64 (AMD64).

Na architektuře ARM byl od roku 2012 integrován montážní kód pro akceleraci SIMD ( NEON ).

Bezplatné ovladače využívající Gallium jsou k dispozici v hlavní řadě Mesa pro různé architektury:

Pokud jde o grafické procesory Mali od ARM, první verze ovladače Lima pro Mali-400, jehož vývojář raději zůstal mimo Mesa, stagnovala od roku 2012, poté byla v roce 2013 opuštěna. Nová verze byla vydána v rocečerven 2017, spravuje procesory řady Mali-400 a 450 architektury Utgard a do Mesa by měl být integrován v průběhu roku 2018. 2 další ovladače, Chai pro architekturu Midgard (Mail-Txxx) pro architekturu Bitfrost (Mail -Gxx) , začínají přibližně ve stejnou dobu a jsou sjednoceny od začátku roku 2018 pod názvem Panfrost . Společný ovladač podporuje OpenGL 3.1 (desktop) a OpenGL ES 3.0 již na začátku roku 2021.

Čistě softwarový urychlovač vykreslování LLVMpipe z projektu Gallium3D byl přizpůsoben architektuře x86 a architektuře ARM . Ve výchozím nastavení je propojen s Mesa 3D, od verze 10.2, vydané včerven 2014. Autoři pilotního projektu Panfrost plánují jeho použití k umožnění vykreslování funkcí, které nebyly implementovány během vývojové fáze.

Funkce

Mesa 3D implementuje následující grafická programovací rozhraní :

a ovladače pro grafický hardware .

Obaly na Vulkan

Následující ovladače pro převod různých 3D API na Vulkan, a tak těžit z jeho výkonu a nižší spotřeby energie u aplikací, které nejsou určeny pro toto API:

Historický

Zpočátku Mesa 3D prováděla veškerá 3D grafická vykreslování na úrovni centrálního procesoru (CPU) , ale architektura Mesa 3D se otevřela, aby implementovala hardwarově akcelerované vykreslování na úrovni grafického procesoru (GPU), aby odlehčila centrální procesor pro tento úkol. Jedním z prvních ovladačů podporujících hardwarovou akceleraci byl ovladač 3dfx pro Glide API pro velmi populární Voodoo I / II a další grafické karty . Veškeré vykreslování bylo prováděno nepřímo na serveru X , což nebylo optimální z hlediska rychlosti vykreslování.

Direct Rendering Infrastructure (DRI) nakonec podařilo staré architektury ve 3D Mesa tím, že poskytuje přímý vykreslování rozhraní pro aplikace OpenGL 3D.

Verze 7.4 umožňovala podporovanému hardwaru (nejprve Intel, později ATI a NVidia) využívat evoluce grafického systému Linux , kterými jsou Graphics Execution Manager (GEM) a DRI2 , poté byl do verze 7.5 integrován kód Gallium3D.

Verze 7.5 vydána dne 17. července 2009 implementuje OpenGL verze 2.1.

Verze 7.6, vydána dne 28. září 2009, zahrnuje podporu OpenVG a alfa implementaci llvmpipe ( Low-Level Virtual Machine ) vyvinutého José Fonsecou a Zackem Rusinem pro VMware , což umožňuje urychlit určité části kódu během čistě softwarové interpretace předběžnou kompilací kódu.

Verze 7.7, vydána dne 21. prosince 2009, dodává ovladač Gallium „  SVGA  “ od společnosti VMware, který umožňuje hostujícím systémům těžit z 3D akcelerace v kontextu virtualizace .

Verze 8.0 vydána dne 9. února 2012 implementuje verzi 3.0 OpenGL.

Verze 9.0, vydána dne 8. října 2012, přináší podporu pro OpenGL 3.1. Pokud jde konkrétně o bezplatné ovladače založené na Gallium3D, tato verze přidává podporu OpenCL pro čipy Nvidia a AMD (ovladač R600g se však zdá být nejpokročilejším z bezplatných ovladačů v této oblasti) a VDPAU (prozatím omezeno na MPEG1 a MPEG2).

Verze 9.1, vydána dne 22. února 2013, přináší podporu pro OpenGL ES 3.0.

Verze 9.2, vydána dne 27. srpna 2013, integruje ovladač Gallium3D pro čipy Adreno , navržený společností Qualcomm pro vybavení ARM Snapdragon SoC .

Verze 10.0, vydána dne 30. listopadu 2013, integruje DRI3 a nabízí podporu pro OpenGL 3.2 a 3.3.

Verze 10.1, vydána dne 4. března 2014, zlepšuje podporu OpenGL 3.3 přidáním některých čipů nVidia a ATI.

Vydána verze 10.2 June 6 , 2014, je jako první ve výchozím nastavení propojen s llvmpipe . To výrazně zlepšuje vykreslení softwaru (bez akcelerace grafickým čipem).

Verze 10.3, vydána dne 19. září 2014, vylepšuje podporu OpenGL 4.x přidáním funkcí tohoto API.

Verze 10.4 byla vydána dne 14. prosince 2014.

Verze 11.0, vydána dne 12. září 2015 implementuje OpenGL 4.1.

Verze 12.0, vydána dne 8. července 2016implementuje OpenGL 4.3, přidává částečnou podporu pro Vulkan .

Verze 13.0 vydána dne 1 st November je 2016 implementuje OpenGL 4.4.

Verze 17.0 vydaná dne 13. února 2017 implementuje OpenGL 4.5.

Verze 17.1 vydaná dne 10. května 2017 implementuje geometrické shadery do softwarového rasterizéru OpenGL 4.2 na architekturách Intel i965.

Verze 17.2 vydána dne 4. září 2017 poskytuje některé další funkce v závislosti na architektuře.

Verze 17.3 vydaná dne 8. prosince 2017 přidává libtxc_dxtn, ve výchozím nastavení aktivuje komprese textury GL_EXT_texture_compression_s3tc a GL_ANGLE_texture_compression_dxt na architekturách, které ji podporují.

Verze 18.0 vydaná dne 27. března 2018 implementuje OpenGL 4.5.

Verze 19.0 vydána dne 13. března 2019 implementuje OpenGL 4.5.

Verze 19.1 vydána dne 11. června 2019 implementuje OpenGL 4.5.

Verze 19.2 vydána dne 25. září 2019, implementuje podporu Vulkan 1.1, vylepšuje ovladač Panfrost pro grafické procesory ARM Mali , rodiny Midgard a, který je spojen s vydáním jádra Linux 5.2, umožňuje použití X11 s tímto ovladačem.

Verze 20.3, vydána dne 3. prosince 2020, implementuje GL 4.5 pro llvmpipe, přidává ovladač Lavapipe, jeho ekvivalent pro Vulkan, Zink, který mapuje OpenGL na Vulkan, podporuje OpenGL 3.3. Nové ovladače V3DK (Vulkan pro Broadcom BCM2711). Nakonec jsou podporovány nové GPU, včetně GPU ARM Mali Bifrost přes Panfrost, GPU Intel Gen12 Alder Lake, stejně jako AMD Dimgrey Cavefish a VanGogh.

Poznámky a odkazy

  1. „  http://www.mesa3d.org/intro.html  “
  2. „  Poznámky k verzi Mesa 21.0.3  “ (zpřístupněno 22. dubna 2021 )
  3. „  https://cgit.freedesktop.org/mesa/mesa/tag/?h=mesa-18.0.0-rc5  “ (zpřístupněno 22. března 2018 )
  4. „  https://lists.freedesktop.org/archives/mesa-dev/2019-červen/219864.html  “
  5. „  https://mesa3d.org/VERSIONS  “
  6. [ANNOUNCE] 21.0.0 mesa-RC3  " (k dispozici na 1 I. února 2021 )
  7. (in) Page GalliumCompute wiki dri.freedesktop.org
  8. (in) „State of Gallium3D Video Decoding Michael Larabel, Phoronix,14. září 2008
  9. (in) „  Mesa - root / src / gallium / drivers / i915  “ na cgit.Freedesktop.org
  10. "  Mesa - cesta: root / src / gallium / drivers / etnaviv  "
  11. (in) „  Mesa - root / src / gallium / drivers / freedreno  “
  12. (in) „  Mesa - root / src / gallium / drivers / regra  “
  13. (in) „  VC4  “ na účtu Github Eric Anholt
  14. (in) „  Mesa - root / src / gallium / drivers / VC4  “
  15. (in) „  Mesa - root / src / gallium / drivers / VC5  “
  16. (in) Alyssa Rosenzweig, „  Desktop OpenGL 3.1 je Mali GPU s Panfrost  “ na Collabora.com ,13. ledna 2021
  17. (in) Michael Larabel, „  Mesa 12.0 vydána s podporou OpenGL 4.3, Intel Vulkan a mnoho dalších funkcí  “ na Phoronix.com ,8. července 2016
  18. (in) Jason Ekstrand, „  NIR: Nový kompilační IR pro Mesa  “ na jlekstrand.net
  19. (v) „  root / src / gallium / state_trackers / nine / README  “ na git Freedesktop
  20. (in) „  OpenVG State Tracker  “
  21. (in) „  Poznámky k vydání Mesa 10.6.0 / 14. června 2015  “
  22. (en) ARB_texture_float na http://cgit.freedesktop.org/mesa
  23. (in) „  DXVK, Vulkanská implementace D3D11 a D3D10 pro Linux / Wine  “ na účtu Github doitsujin
  24. (in) Erik Faye-Lund, „  Zink: Fall Update  “ na Collaboru  (in) ,24. října 2019
  25. (in) „  zink: Představte opengl přes vulkan  “ na cgit.freedesktop.org ,28. října 2019
  26. (in) „Mesa 7.5 konečně vydána s novými funkcemi“ Michael Larabel, Phoronix,18. července 2009
  27. (in) „Poznámky k verzi Mesa 7.5“
  28. (in) Poznámky k verzi Mesa 7.6, 28. září 2009
  29. (in) „OpenCL / Clover Is Closer To Merging Mesa“ Michael Larabel, Phoronix,2. dubna 2012
  30. http://mesa3d.org/relnotes/11.0.0.html
  31. http://mesa3d.org/relnotes/12.0.0.html
  32. https://www.mesa3d.org/relnotes/13.0.0.html
  33. https://www.mesa3d.org/relnotes/17.0.0.html
  34. https://www.mesa3d.org/relnotes/17.1.0.html
  35. https://www.mesa3d.org/relnotes/17.2.0.html
  36. https://www.mesa3d.org/relnotes/17.3.0.html
  37. (in) „  Poznámky k vydání Mesa 18.0.0 / 27. března 2018  “ na Mesa3d.org
  38. (v) „  Poznámky k vydání Mesa 19.0.0 / TBD  “ na Mesa3d.org
  39. (in) „  Poznámky k vydání Mesa 19.1.0 / 11. června 2019  “ na Mesa3d.org
  40. (in) „  Poznámky k vydání Mesa 19.2.0 / 2019.09.25  “ na Mesa3d.org
  41. (v) „  20.3.0 Splátky  “ na Meda3D.org

Související články

externí odkazy