Mesa (počítačová grafika) - Mesa (computer graphics)
Původní autoři | Brian Paul |
---|---|
Vývojáři | V současné době: Intel, AMD, VMware Dříve: Wolframová grafika[1] |
První vydání | Února 1995[2] |
Stabilní uvolnění | 20.3.0 / 3. prosince 2020[3] |
Úložiště | ![]() |
Napsáno | C, C ++, Shromáždění[4] |
Operační systém | Cross-platform (BSD, Haiku, Linux, atd) |
Typ | Grafická knihovna |
Licence | Licence MIT[5] |
webová stránka | mesa3d![]() |
Mesa, také zvaný Mesa3D a 3D grafická knihovna Mesa, je otevřený zdroj softwarová implementace OpenGL, Vulkan, a další grafika API Specifikace. Mesa převádí tyto specifikace na grafické ovladače hardwaru specifické pro dodavatele.
Jeho nejdůležitějšími uživateli jsou dva grafické ovladače většinou vyvinuté a financované společnostmi Intel a AMD pro jejich příslušný hardware (AMD propaguje své ovladače Mesa Radeon a RadeonSI nad zastaralými AMD Catalyst a Intel podporuje pouze ovladač Mesa). Proprietární grafické ovladače (např. Ovladač Nvidia GeForce a Catalyst) nahrazují veškerou Mesa a poskytují vlastní implementaci grafického API. Otevřená snaha o napsání ovladače Mesa Nvidia s názvem Nouveau je většinou vyvíjena komunitou.
Kromě 3D aplikací, jako jsou hry, moderní zobrazovací servery (Glamour X.org nebo Wayland je Weston ) použijte OpenGL /EGL; proto veškerá grafika obvykle prochází přes Mesa.
Mesa je hostitelem freedesktop.org a byla zahájena v srpnu 1993 společností Brian Paul, který je v projektu stále aktivní. Mesa byl následně široce přijat a nyní obsahuje řadu příspěvků od různých jednotlivců a společností po celém světě, včetně od výrobců grafického hardwaru společnosti Skupina Khronos které spravují specifikaci OpenGL. U Linuxu byl vývoj částečně poháněn také crowdfunding.[6]
Přehled


Implementace vykreslování API

Mesa je známá jako bytová implementace grafiky API. Historicky hlavní API, které Mesa implementovala, je OpenGL, spolu s dalšími Skupina Khronos související specifikace (jako OpenVG, OpenGL ES nebo nedávno EGL ). Ale Mesa může implementovat další API a skutečně to udělal Klouzat (zastaralé) a Direct3D 9 od července 2013.[8] Mesa také není specifická pro unixové operační systémy: například ve Windows poskytuje Mesa OpenGL API přes DirectX.
Mesa implementuje překladovou vrstvu mezi grafickým API, jako je OpenGL, a grafickými hardwarovými ovladači v jádře operačního systému. Podporovaná verze různých grafických rozhraní API závisí na ovladači, protože každý ovladač hardwaru má svou vlastní implementaci (a tedy stav). To platí zejména pro „klasické“ ovladače, zatímco ovladače Gallium3D sdílejí společný kód, který má tendenci homogenizovat podporovaná rozšíření a verze.
Mesa udržuje podpůrnou matici se stavem aktuální shody OpenGL[9][10] vizualizováno na mezamatrix
Mesa 12 obsahuje OpenGL 4.2 a 4.3 a podporu Intel Vulkan 1.0.
Mesa 13 přinesla podporu Intel pro OpenGL 4.4 a 4.5 (všechny funkce podporované pro Intel Gen 8+, Radeon GCN, Nvidia (Fermi, Kepler), ale žádný Khronos-Test pro 4.5-Label) a experimentální AMD Vulkan 1.0 podpora prostřednictvím komunitního ovladače RADV. OpenGL ES 3.2 je možné s Intel Skylake (Gen9).[12]
1. stabilní verze roku 2017 je 17,0 (počítání nového roku).[13][14][15] Ready funkce jsou certifikované OpenGL 4.5, OpenGL 4.5 pro Intel Haswell,[16][17] OpenGL 4.3 pro NVidia Maxwell a Pascal (GM107 +).[18] Obrovský nárůst výkonu byl měřen s Maxwell 1 (GeForce GTX 750 Ti a více s GM1xx). Maxwell-2-Card (GeForce GTX 980 a více s GM2xx) jsou podtaktovány bez informací NVidia.[19]
Testovací sada Khronos CTS pro OpenGL 4.4, 4.5 a OpenGL ES 3.0+ je nyní k dispozici (2017-01-24) Open Source a všechny testy pro Mesa 13 a 17 jsou nyní možné bez nákladů.[20]
2. stabilní verze 2017, 17.1.0, vyšla 10. května 2017 s některými zajímavými vylepšeními. OpenGL 4.2+ pro Intel Ivy Bridge a OpenGL 3.3+ pro Intel Open SWR Rasterizer jsou 2 hlavní body.[21][22]
Všimněte si, že vzhledem k modularizované povaze OpenGL může Mesa ve skutečnosti podporovat rozšíření z novějších verzí OpenGL, aniž by požadovala plnou podporu těchto verzí. Například v červenci 2016 společnost Mesa podporovala OpenGL ES 3.1, ale také všechna rozšíření OpenGL ES 3.2 s výjimkou pěti, stejně jako řadu rozšíření, která nejsou součástí žádné verze OpenGL nebo OpenGL ES.[23]
Otevřenou otázkou pro Mesa a Linux je High Dynamic Range (HDR). Mnoho problémů a otevřených bodů je v potrubí pro čistou a základní implementaci.[24]
3. verze 17.2 je k dispozici od září 2017 s některými novými funkcemi OpenGL 4.6 a vylepšeními rychlosti ve 3D pro Intel a AMD. Pouze 1,4% testů selhalo pro OpenGL 4.5 v Nouveau pro Kepler.[25]
4. verze 17.3 je připravena od prosince 2017. K dispozici je mnoho vylepšení mnoha ovladačů. OpenGL 4.6 je téměř plně k dispozici (Spir-V není připraven). Ovladač AMD Vulkan Driver RADV je nyní plně kompatibilní s testem Khronos.[26]
1. verze 2018 je 18.0 a je k dispozici od března 2018 ve stejném schématu v roce 2017.[27] Plná podpora OpenGL 4.6 není připravena, ale mnoho funkcí a vylepšení bylo úspěšně testováno v RC3. 10bitová podpora pro Intel i965 v barvách je také Highlight.[28] Novinkou je podpora pro Intel Cannon Lake a AMD Vega s aktuální verzí Linuxu. Čipy AMD Evergreen (RV800 nebo R900) se blíží podpoře OpenGL 4.5. Staré čipy AMD R600 nebo RV700 mohou podporovat OpenGL 3.3 pouze s některými funkcemi OpenGL 4.x. Freedreno je ovladač pro hardware Adreno a téměř podporuje OpenGL 3.3.
2. verze 2018 je 18.1 a je k dispozici od května. Cíl je Vulkan 1.1.72 v ovladači Intel ANV a AMD RADV. OpenGL 4.6 se spir-V je také hlavním cílem. Trvalou prací je možné dokončení funkcí a optimalizace ovladačů pro starší hardware jako AMD R600 / Evergreen, Nvidia Tesla a dříve, Fermi, Kepler nebo Intel Sandybridge, Ivybridge, Haswell nebo Broadwell. ARM Architecture také udělala skvělá vylepšení v Adreno 3xx / 4xx / 5xx a Broadwell VC4 / VC5 pro Raspi s hlavním cílem OpenGL ES.
3. verze roku 2018 je 18.2 a je k dispozici v kalendáři stabilní v září. OpenGL 4.6 s spir-V a Vulkan 1.1.80 jsou ve WIP. Soft Driver pro virtuální stroje VIRGL je připraven pro OpenGL 4.3 a OpenGL ES 3.2. RadeonSI je také připraven na OpenGL ES 3.2. Další výhody v RadeonSI pro karty AMD GCN jsou podpora komprese textury ASTC a podpora režimu kompatibility pro OpenGL 4.4 (3.1 v 18.1). K dispozici je nový Vulkan 1.1 a další funkce pro Intel a AMD. Zobrazit více podrobností o Vulkanu v Mesamatrix.[29]
4. verze roku 2018 je 18.3 a vydána jako stabilní verze 18.3.1 v prosinci 2018. Hlavní součástí je mnoho funkcí v Detailu a podpora novějšího hardwaru. Plná podpora OpenGL 4.6 není připravena.[30][31]
1. verze 2019 je 19.0 a nyní byla vydána v březnu. Plná podpora OpenGL 4.6 není připravena, ale mnoho vylepšení tímto způsobem je ve všech ovladačích.[32][33]
2. verze 2019 je 19.1. Přechod TGSI na NIR je zde jednou z hlavních funkcí na cestě k OpenGL 4.6 se Spir-V a více OpenCL. RadeonSI funguje dobře ve verzi dev s NIR.[34]
3. verze 2019 je 19.2. OpenGL 4.6 je Beta připraven na nový ovladač Intel Iris.[35]
4. verze z roku 2019 je 19.3. OpenGL 4.6 je připraven pro Intel i965 a volitelně pro nový ovladač Iris.[36]
První verze roku 2020 je 20.0. Vulkan 1.2 je připraven na AMD RADV a Intel ANV. Intel Iris je výchozí pro Intel Broadwell Gen 8+.[37][38] Ovladač RadeonSI ve výchozím nastavení přešel na používání NIR namísto TGSI.
2. verze roku 2020 je 20.1. Mnoho vylepšení je připraveno v mnoha ovladačích. Zink je nový virtuální ovladač pro OpenGL přes Vulkan.[39]
3. verze 2020 je 20.2. OpenGL 3.0 pro Zink je jedna nová funkce. LLVMpipe bude podporovat OpenGL 4.3+ (4.5+ v 20.3). ARM Panfrost je většinou vylepšen mnoha moduly. Sdílená virtuální paměť je možná pro OpenCL v Nouveau s Pascalem a vyššími. [40][41][42]
4. verze roku 2020 je 20.3. v3d a v3dv jsou nové ovladače pro OpenGL a Vulkan 1.0 s hardwarem Broadcom, jako je Raspberry Pi 4. OpenCL 1.2 je plně podporován v modulu jetel. Podpora Zink OpenGL 3.3+. Podpora virtuálních ovladačů LLVMpipe nyní OpenGL 4.5+ se zobrazením 4.6. VALLIUM as Vulkan Tree of LLVMpipe is merged.[43][44][45][46][47]
V Mesa 21.0 bude d3d12 sloučen s OpenGL 3.0 až 3.3. Microsoft a Collabora vyvíjejí novou emulaci d3d12 ve WSL2 na Windows 10 s Direct 3D 12. OpenCL 1.2 je také cílem v d3d12. Zrychlení faktoru 2 na 5 se provádí v Benchmark SPECviewperf s vylepšeným kódem OpenGL.[48] [49][50][51]
Tabulka Rendering API
Verze Mesa | Datum prvního vydání | Poslední aktualizace[52] | Vulkan | OpenCL | OpenGL | OpenGL ES | OpenVG | EGL | GLX | Direct3D |
---|---|---|---|---|---|---|---|---|---|---|
1.2.163 2020-11-30 | 2.2-11 2019-07-19 | 4.6 2017-07-31 | 3.2.6 2019-07-10 | 1.1 2008-12-03 | 1.5 2014-03-19 | 1.4 2005-12-16 | 12 2015-07-29 | |||
20.2 | 2020-09-28 | 20.2.3[53] | 1.2.145 (Intel Gen8 +, AMD GCN Gen2 +), 1,0+ (AMD GCN1) | 1.0, 1.1, 1.2 (WIP) některé neúspěšné testy shody | 4,6 (19,3: Intel Gen 8+, 20,0: AMD GCN) | 3.2 | N / A[54][55] | 1.5 | 1.4 | 9.0c[56][57] |
20.1 | 2020-05-27 | 20.1.10[27][58] | 1.2.139 (Intel Gen8 +, AMD GCN Gen2 +), 1,0+ (AMD GCN1) | |||||||
20.0 | 2020-02-19 | 20.0.8[27][59] | 1.2+ (Intel Gen8 +, AMD GCN Gen2 +) | |||||||
19.3 | 2019-12-11 | 19.3.5[27][60][61] | 1.1+ (Intel Gen8 +, AMD GCN Gen2 +) (19.1: 1.1.104 19.0: 1.1.102, 18.3: 1.1.90, 18.2: 1.1.84) | |||||||
19.2 | 2019-09-25 | 19.2.8[27] | 4.5 | |||||||
19.1 | 2019-06-11 | 19.1.8[27] | ||||||||
19.0 | 2019-03-13 | 19.0.8 | ||||||||
18.3 | 2018-12-07 | 18.3.6 | ||||||||
18.2 | 2018-09-07 | 18.2.8[29] | ||||||||
18.1 | 2018-05-18 | 18.1.9[62] | 1.1 (Intel Gen8 +, AMD GCN Gen2 +) (1.1.73) | |||||||
18.0 | 2018-03-27 | 18.0.5 | 1.0+ (1.0.66) | |||||||
17.3 | 2017-12-08 | 17.3.9 | 1.0 (PC: ANV Intel Gen7 + Ivy Bridge, pouze RADV AMD GCN) (záhlaví: 17.3: 1.0.63, 17.2: 1.0.54, 17.1: 1.0.42, 17.0: 1.0.38, 13.0: 1.0.6, 12.0: 1.0.3) | v dev. Gallium Výpočet (jetel): některé testy CTS selžou v 1.0 a 1.1, 1,2 (WIP), takže 1,0, 1,1, 1,2 neúplný[63][64] | ||||||
17.2 | 2017-09-04 | 17.2.8 | ||||||||
17.1 | 2017-05-10 | 17.1.10 | ||||||||
17.0 | 2017-02-13[65][13] | 17.0.7 | ||||||||
13.0 | 2016-11-01[66] | 13.0.6 | 4.4 (4.5 Žádný zkušební štítek) | |||||||
12.0 | 2016-07-08[67] | 12.0.6 | 4.3[67] | 3.1 | ||||||
11.2 | 2016-04-04[68] | 11.2.2 | N / A | 4.1 (Intel 3.3+) | ||||||
11.1 | 2015-12-15[69] | 11.1.4 | 3.0 | |||||||
11.0 | 2015-09-12[70] | 11.0.9 | ||||||||
10.6 | 2015-06-15[71] | 10.6.9 | 3.3[72] | 1.4 | ||||||
10.5 | 2015-03-06[73] | 10.5.9 | 1.1 | |||||||
10.4 | 2014-12-14[74] | 10.4.7 | ||||||||
10.3 | 2014-09-19[75] | 10.3.7 | N / A | |||||||
10.2 | 2014-06-06[76] | 10.2.9 | ||||||||
10.1 | 2014-03-04[77] | 10.1.6 | ||||||||
10.0 | 2013-11-30[78] | 10.0.5 | ||||||||
9.0 | 2012-10-08 | 9.0.3, 9.1.7, 9.2.5 | N / A | 3.1 | 2.0 | |||||
8.0 | 2012-02-08 | 8.0.5 | 3.0 | |||||||
7.0 | 2007-06-22 | 7.0.4, ..., 7.11.2 | 2.1 | N / A | N / A | N / A | ||||
6.0 | 2004-01-06 | 6.0.1 | 1.5 | 1.3 | ||||||
5.0 | 2002-11-13 | 5.0.2 | 1.4 | |||||||
4.0 | 2001-10-22 | 4.0.4 | 1.3 | |||||||
3.0 | 1998-09 | 3.1, 3.2.1, 3.4.2.1 | 1.2 | |||||||
2.0 | 1996-10 | 2.6 | 1.1 | |||||||
1.0 | 1995-02 | 1.2.8 | 1.0 | |||||||
Legenda: Stará verze Starší verze, stále udržovaná Nejnovější verze Nejnovější verze náhledu Budoucí vydání |
Vulkan
The Skupina Khronos oficiálně oznámeno Vulkan API v březnu 2015 a oficiálně vydán Vulkan 1.0 16. února 2016. Vulkan porušuje kompatibilitu s OpenGL a zcela opouští svůj koncept monolitického stavového stroje. Vývojáři Gallium3D nazvali Vulkan jako něco v duchu Gallium3D 2.0 - Gallium3D odděluje kód, který implementuje stavový stroj OpenGL, od kódu specifického pro hardware.
Když Gallium3D pohlcuje TGSI, Vulkan pohlcuje SPIR-V (Standardní přenosné zprostředkující zastoupení verze "V" jako v "Vulkan").
Společnost Intel vydala jejich implementaci ovladače Vulkan pro jejich hardware v den oficiálního vydání specifikace, ale byla zavedena až v dubnu, a tak se stala součástí Mesa 12.0, vydané v červenci 2016. I když již ovladač i965 nebyl napsán podle Specifikace Gallium3D, pro řidiče Vulkan má ještě menší smysl jej připevnit na Gallium3D. Podobně neexistuje žádný technický důvod pro to, aby to bylo spojeno s NIR, ale zaměstnanci společnosti Intel tak implementovali svůj ovladač Vulkan tímto způsobem.[79]
Lze očekávat, že vlastní proprietární ovladač AMD Vulkan, který byl vydán v březnu a byl ohlášen, že bude v budoucnu vydán jako bezplatný a open-source software a bude začleněn do Mesa, také opouští Gallium3D.[80]
RADV je bezplatný projekt pro AMD a je k dispozici od verze 13.[12] Shoda s Khronos-Testem vyšla ve verzi 17.3. Aktuální je plná podpora pro Vulkan 1.0 a 1.1 od Mesa 18.1.
Nvidia vydala svůj proprietární ovladač GeForce s podporou Vulkan na startu a Imagination Technologies (PowerVR), Qualcomm (Adreno) a ARM (Mali) udělaly stejné nebo alespoň ohlásené proprietární ovladače Vulkan pro Android a další operační systémy. Ale kdy a zda se objeví další bezplatné a open-source implementace Vulkanu pro tyto GPU, zbývá vidět.
Mesa Software Driver VIRGL zahajuje Vulkan Development v roce 2018 projekty GSOC na podporu virtuálních strojů.[81]
Výslovné oplocení
Druh bariéry paměti, která odděluje jednu vyrovnávací paměť od zbytku paměti, se nazývá plot. Jsou zde ploty, které zajišťují, že vyrovnávací paměť nebude přepsána, dokud na ní nebudou dokončeny operace vykreslování a zobrazení. Implicitní oplocení se používá k synchronizaci mezi grafickými ovladači a hardwarem GPU. Plot signalizuje, když vyrovnávací paměť již není používána jednou komponentou, takže ji lze provozovat nebo znovu použít jinou. V minulosti mělo linuxové jádro implicitní mechanismus oplocení, kdy je plot přímo připojen k vyrovnávací paměti (srov. GEM handles a FD), ale uživatelský prostor o tom neví. Explicitní oplocení vystavuje ploty do uživatelského prostoru, kde uživatelský prostor získává ploty jak ze subsystému Direct Rendering Manager (DRM), tak z GPU. Vulkan vyžaduje výslovné oplocení, které nabízí výhody pro trasování a ladění.
Linuxové jádro 4.9 přidalo do hlavní řady synchronizační rámec Androidu.[82]
Obecná správa vyrovnávací paměti
Generic Buffer Management (GBM) je API, které poskytuje mechanismus pro přidělování vyrovnávacích pamětí pro vykreslování grafiky vázané na Mesa. GBM je určen k použití jako nativní platforma pro EGL na DRM nebo OpenWFD. Úchyt, který vytvoří, lze použít k inicializaci EGL a k vytvoření vyrovnávacích pamětí cílového vykreslení.[83]
Mesa GBM je abstrakce rozhraní API pro správu vyrovnávacích pamětí specifických pro grafický ovladač (například různé knihovny libdrm_ *) implementovaná interně voláním do ovladačů Mesa GPU.
Například Skladatel Wayland Weston vykresluje pomocí OpenGL ES 2, který inicializuje voláním EGL. Protože server běží na „holém Ovladač KMS „, používá platformu EGL DRM, kterou lze skutečně nazvat jako platforma GBM, protože se opírá o rozhraní Mesa GBM.
Na XDC2014 navrhl zaměstnanec Nvidia Andy Ritger vylepšení EGL, aby nahradil GBM.[84] Komunita to nebrala pozitivně a Nvidia nakonec změnila názor[85], a zvolil jiný přístup.
Implementace API pro akceleraci videa
Existují tři možné způsoby, jak provést výpočty nezbytné pro kódování a dekódování video streamů:
- použít softwarovou implementaci algoritmu komprese nebo dekomprese videa (běžně nazývaného CODEC) a spustit tento software na CPU
- použít softwarovou implementaci algoritmu komprese nebo dekomprese videa (běžně nazývaného CODEC) a spustit tento software na GPU ( 3D vykreslování engine )
- použít úplnou (nebo částečnou) hardwarovou implementaci algoritmu komprese nebo dekomprese videa; stalo se velmi běžné integrovat takové ASIC do čipu GPU / CPU / APU / SoC a proto hojně dostupné; z marketingových důvodů zavedly společnosti pro své ASIC značky, jako např PureVideo (Nvidia), Sjednocený video dekodér (AMD), Stroj na kódování videa (AMD), Rychlá synchronizace videa (Intel), Da Vinci (Texas Instruments), CedarX (Allwinner), Crystal HD (Broadcom); některé ASIC jsou k dispozici pro licencování jako polovodičové jádro duševního vlastnictví; obvykle různé verze implementují různé algoritmy komprese videa a / nebo dekomprese videa; podpora takových ASIC obvykle patří do ovladače jádra, aby se inicializoval hardware a dělal věci na nízké úrovni. Mesa, která běží v uživatelském prostoru, obsahuje implementace několika API pro software, např. Přehrávač médií VLC, GStreamer, Ruční brzda, atd., pro pohodlný přístup k těmto ASIC:
- Video Acceleration API (VAAPI) - nejběžnější API pro Linux, používané AMD a Intel
- Video Decode and Presentation API pro Unix (VDPAU) - používá Nvidia
- DirectX Video Acceleration (DXVA) - pouze Microsoft Windows
- OpenMAX IL - navržený společností Khronos Group pro kompresi videa
- Distribuovaný kodekový engine (DCE) - navrženo společností Texas Instruments
- Zrychlení bitového toku X-Video (XvBA) - rozšíření na Xv - následován VAAPI
- Kompenzace pohybu X-Video (XvMC) - rozšíření na Xv - následován VAAPI
Například, Nouveau, který byl vyvinut jako součást Mesa, ale obsahuje také komponentu linuxového jádra, která je vyvíjena jako součást linuxového jádra, podporuje PureVideo - značkové ASIC a poskytuje k nim přístup prostřednictvím VDPAU a částečně skrz XvMC.[86]
Bezplatný ovladač Radeon podporuje Sjednocený video dekodér a Stroj na kódování videa prostřednictvím VDPAU a OpenMAX.[87]
Vezměte prosím na vědomí, že V4L2 je rozhraní jádro-uživatel-prostor pro video bitové toky dodávané webkamerami nebo TV tunery.
Ovladače zařízení

Dostupné bezplatné a otevřené ovladače zařízení pro grafické čipové sady jsou společností Mesa „spravovány“ (protože stávající bezplatná a otevřená implementace API jsou vyvíjeny uvnitř Mesa). V současné době existují dva rámce pro psaní grafických ovladačů: „classic“ a Gallium3D.[88] Přehled některých (ale ne všech) ovladačů dostupných v Mesa je uveden na mezamatrix
Existují ovladače zařízení pro AMD / ATI R100 až R800, Intel a Nvidia karty s 3D akcelerací. Dříve existovaly ovladače pro IBM / Toshiba / Sony Buňka APU z PlayStation 3, Čipové sady S3 Virge & Savage, čipové sady VIA, Matrox G200 a G400 a další.[89]
Ovladače zdarma a open-source soutěží s proprietárními ovladači uzavřeného zdroje. V závislosti na dostupnosti hardwarové dokumentace a lidské moci bezplatný a open-source ovladač zaostává víceméně v podpoře 3D akcelerace nového hardwaru. Také výkon 3D vykreslování byl obvykle výrazně pomalejší, s několika významnými výjimkami.[90][91][92][93] Dnes to pro Nouveau stále platí pro většinu grafických procesorů NVIDIA, zatímco na grafických kartách AMD Radeon se nyní otevřený ovladač většinou shoduje nebo překračuje výkon vlastního ovladače.
Infrastruktura přímého vykreslování (DRI)
V té době 3D grafické karty staly se více mainstreamem pro PC, jednotlivci částečně podporovaní některými společnostmi začali pracovat na přidání další podpory pro hardwarově akcelerované 3D vykreslování do Mesa.[když? ] The Infrastruktura přímého vykreslování (DRI) byl jedním z těchto přístupů k propojení rozhraní Mesa, OpenGL a dalších knihoven API pro 3D vykreslování s ovladači zařízení a hardwarem. Po dosažení základní úrovně použitelnosti byla do Mesa oficiálně přidána podpora DRI. To významně rozšířilo dostupnou škálu hardwarové podpory dosažitelné při použití knihovny Mesa.[94]
Díky adaptaci na DRI knihovna Mesa konečně převzala roli front-end komponenty plnohodnotného OpenGL frameworku s různými backendovými komponentami, které by mohly nabídnout různé stupně podpory 3D hardwaru, aniž by došlo ke snížení schopnosti plného vykreslování softwaru. Celý systém používal mnoho různých softwarových komponent.[94]
Zatímco design vyžaduje, aby všechny tyto komponenty pečlivě spolupracovaly, rozhraní mezi nimi jsou relativně pevná. Jelikož je však většina komponent interagujících se zásobníkem Mesa otevřeným zdrojovým kódem, experimentální práce se často provádějí změnami několika komponent najednou, jakož i rozhraní mezi nimi. Pokud se takové experimenty osvědčí, mohou být začleněny do dalšího velkého nebo menšího vydání. To platí např. k aktualizaci specifikace DRI vyvinuté v časovém rámci 2007-2008. Výsledek tohoto experimentu, DRI2, funguje bez zámků a se zlepšenou podporou zadní vyrovnávací paměti. K tomu speciální sakra byla vytvořena pobočka Mesa.[95]
DRI3 je podporován ovladačem Intel od roku 2013[96][97] a je výchozí v některých distribucích Linuxu od roku 2016[98] povolit podporu Vulkan a další. Je také výchozí pro hardware AMD od konce roku 2016 (X.Org Server 1.18.3 a novější).[99]
Softwarový vykreslovač
Mesa také obsahuje implementaci softwarové vykreslování volala swrast který umožňuje shaderům běžet na CPU jako záložní řešení, pokud nejsou k dispozici žádné hardwarové akcelerátory grafiky. Softwarový rasterizátor Gallium je známý jako softpipe nebo pokud je postaven s podporou pro LLVM llvmpipe, který generuje kód CPU za běhu.[100][101] Protože Mesa 10.x OpenGL 3.3+ je podporován pro Softpipe (10.3) a LLVMpipe (10.2). Skutečně asi 80% funkcí z OpenGL 4.x je implementováno v Mesa 17.3 (viz Mesamatrix).
V Mesa 12.0 je k dispozici nový Intel Rasterizer OpenSWR s vysokými výhodami v klastrech pro velké datové sady. Je více zaměřen na technickou vizualizaci než na hry nebo umělecké snímky a může fungovat pouze na procesorech x86.[102] Na druhou stranu je nyní podporován OpenGL 3.1+.[103] V některých příkladech byly měřeny hodnoty zrychlení od 29 do 51 související s LLVMPIPE.[104]OpenGL 3.3+ je pro OpenSWR podporován od verze Mesa 17.1.
VirGL je Rasterizer pro virtuální stroje implementovaný v Mesa 11.1 od roku 2015 s podporou OpenGL 3.3 a zobrazený v Mesamatrix od Mesa 18. Ve skutečném novém Mesa 18.2 podporuje více než ostatní s OpenGL 4.3 a OpenGL ES 3.2. Nyní je připraveno přibližně 80% funkcí OpenGL 4.4 a 4.5. Vulkan Development začíná projekty GSOC 2018.[105][106][107][81][108][109]
Mega řidiči
Myšlenku spojit více ovladačů do jednoho „mega“ ovladače navrhl Eric Anholt. Umožňuje použít jednu kopii sdíleného kódu Mesa mezi více ovladači (místo toho, aby existoval v každém ovladači samostatně) a nabízí lepší výkon než samostatná sdílená knihovna kvůli odstranění interního rozhraní knihovny.[111] Sledovače stavu pro VDPAU a XvMC se staly samostatnými knihovnami.[112]
shader-db
shader-db je sbírka asi 20 000 shadery shromážděné z různých počítačových her a srovnávacích testů, stejně jako některé skripty k jejich sestavení a shromáždění statistik. Shader-db má pomoci ověřit optimalizaci.
Bylo zjištěno, že neočekávaný počet shaderů není psán ručně, ale je generován. To znamená, že tyto shadery byly původně napsány HLSL a poté přeloženy do GLSL nějakým překladatelským programem, jako je např. HLSL2GLSL. Problém je v tom, že vygenerovaný kód není zdaleka optimální. Matt Turner prohlásil, že je mnohem snazší to napravit v programu překladače, než nutit kompilátor Mesa nést břemeno jednání s takovými nafouknutými shadery.
shader-db nelze považovat za svobodný a open-source software. Abyste jej mohli legálně používat, musíte mít licenci na všechny počítačové hry, kterých jsou shadery součástí.
Softwarová architektura



Takzvané „ovladače grafického zařízení v uživatelském režimu“ (UMD) v Mesa mají velmi málo společných rysů s tím, co se obecně nazývá ovladač zařízení. Existuje několik rozdílů:
- jsou určeny k práci nad dodatečně existujícími ovladači grafických zařízení v režimu jádra, kterými jsou např. k dispozici jako součást linuxového jádra ve zdrojovém kódu pod
/ drivers / gpu / drm /
Každá UMD komunikuje se svým protějškem v režimu jádra pomocí konkrétní knihovny, názvu libdrm_specific a obecný, pojmenovaný libdrm. Tato část se bude zabývat výhradně částí uživatelského režimu nad libdrm - existuje určitá implementace konečný stavový stroj jak je specifikováno např. OpenGL; tato implementace stavového stroje OpenGL může být sdílena mezi více UMD nebo ne
- skládají se z velké části z nějakého kompilátoru, který pohlcuje např. GLSL a případně výstupy strojový kód. Analyzátory mohou být sdíleny mezi více UMD nebo mohou být specifické
Zprostředkující zastoupení společnosti Mesa
Jedním z cílů Mesa je optimalizace kódu, který má být proveden příslušným GPU. Další je sdílení kódu. Místo toho, aby dokumentoval jednotlivé části softwaru, které dělají to či ono, by se měl tento článek na Wikipedii místo toho zaměřit na zprostředkující reprezentace použité v procesu kompilace a optimalizace. Vidět Abstraktní syntaxový strom (Stojan Statický jednotný formulář přiřazení (Formulář SSA).
SPIR-V
SPIR-V je určitá verze Standardní přenosné zprostředkující zastoupení. Myšlenka je, že grafické aplikace budou místo GLSL vydávat SPIR-V. Na rozdíl od toho druhého je SPIR-V binární, aby se zabránilo rozdílům v implementaci mezi rozhraními kompilátoru GLSL různých implementací ovladačů, protože to byl hlavní zdroj nekompatibility aplikací a chyb. Také binární soubor SPIR-V obvykle také prošel některými obecnými optimalizacemi. Také do jisté míry binární zastoupení SPIR-V nabízí určitou míru zmatku, která by mohla oslovit některé prodejce softwaru jako formu ochrany duševního vlastnictví; SPIR-V však obsahuje dostatek informací pro reflexi a existují nástroje, které překládají SPIR-V zpět do vysoce kvalitního, člověkem čitelného kódu na vysoké úrovni. UMD potřebuje pouze použít optimalizace, které jsou specifické pro podporovaný hardware.
GLSL IR
- cgit.freedesktop.org/mesa/mesa/tree/src/compiler/glsl/README
- XDC2014, Matt Turner: Video na Youtube, Matt Turner - překladač GLSL: Kde jsme byli a kam jdeme
- XDC2015, Matt Turner: Video na Youtube, www
.X .org / wiki /Události / XDC2015 /Program /soustružník _glsl _kompilátor .pdf
Mesa IR
NIR
NIR bude v dalších verzích rozšířen jako základ podpory Spir-V. Vedle NIR se z TGSI změní LLVMpipe, RadeonSI a Nouveau.
- Connor Abbott - NIR, nebo pohybující se za GLSL IR v Mesa XDC2014
- cgit.freedesktop.org/mesa/mesa/tree/src/compiler/nir/README
- fosdem.org/2016/schedule/event/i965_nir/attachments/slides/1113/export/events/attachments/i965_nir/slides/1113/nir_vec4_i965_fosdem_2016_rc1.pdf
- NIR v RadeonSI
- Novinová aktualizace 2018
- Noveau s NIR v Mesa 19.3
TGSI
Infrastruktura Tungsten Graphics Shader (TGSI) byla představena v roce 2008 společností Tungsten Graphics. Všechny UMD ve stylu Gallium3D přijímají TGSI.
LLVM IR
UMD radeonsi
a llvmpipe
nevydávají strojový kód, ale místo toho LLVM IR. Od této chvíle LLVM provádí optimalizace a kompilaci do strojového kódu. To znamená, že musí být nainstalována také určitá minimální verze LLVM.
RADV ACO IR
RADV ACO používá vlastní IR, které je blízké NIR, k optimalizaci a generování koncového binárního kódu pro shadery Vulkan SPIR-V nad GPU Radeon (GCN 1+, aka GFX6 +) GPU. Od verze 20.1.0 se ACO používá pouze v RADV (ovladač Vulkan) a zatím ne v RadeonSI.
Překladač GLSL společnosti Mesa
Překladač GLSL společnosti Mesa generuje vlastní IR. Protože každý ovladač má velmi odlišné požadavky od LIR, rozlišuje mezi HIR (IR na vysoké úrovni) a LIR (IR na nízké úrovni).
Gallium3D
Původní autoři | Wolframová grafika (nyní VMware ) |
---|---|
Náhled verze | 0.4[113] / 24. dubna 2010 |
Úložiště | ![]() |
Napsáno | C |
Operační systém | Cross-platform |
Typ | Grafická knihovna |
Licence | Licence MIT |
webová stránka | www |
Gallium3D je sada rozhraní a kolekce podpůrných knihoven[114] zamýšlel ulehčit programování ovladače zařízení pro 3D grafika čipové sady pro více operačních systémů, rozhraní API pro vykreslování nebo akceleraci videa.
Matice funkcí je poskytována na GalliumStatus a úsilí o psaní bezplatných a open-source ovladačů zařízení pro grafické čipy je samostatně dokumentováno na Wikipedii: Bezplatný a otevřený ovladač grafického zařízení.
Vývoj Gallium3D byl zahájen v roce 2008 ve společnosti Tungsten Graphics,[115] a implementace je k dispozici jako bezplatný open source software jako část Mesa 3D hostila freedesktop.org. Primárním cílem je usnadnit vývoj ovladačů, svazovat jinak duplikovaný kód několika různých ovladačů v jednom bodě a podporovat moderní hardwarové architektury. Děje se tak zajištěním lepší dělby práce, například ponecháním správy paměti jádru DRI Řidič.
Gallium3D je součástí společnosti Mesa od roku 2009[116] a je v současné době používán zdarma a open-source grafický ovladač pro Nvidia (novinka projekt),[117][118] pro AMD R300 –R900,[119][120][121] Ovladač Intel Iris pro iGPU generace 8+[122] a pro ostatní zdarma a open-source ovladače zařízení GPU.
Softwarová architektura
Gallium3D usnadňuje programování ovladačů zařízení rozdělením ovladače grafického zařízení na tři části. Toho je dosaženo zavedením dvou rozhraní: Rozhraní pro sledování stavu Gallium3D a Rozhraní Gallium3D WinSys. Tři komponenty se nazývají:
Sledovač stavu Gallium3D
- Každý grafický API kterým je ovladač zařízení adresován, má svůj vlastní State Tracker, např. existuje Gallium3D State Tracker pro OpenGL a jiný pro Direct3D nebo GLX. Každý State Tracker obsahuje implementaci rozhraní Gallium3D State Tracker Interface a je jedinečný, to znamená, že je sdílen všemi existujícími ovladači zařízení Gallium3D.
Ovladač hardwarového zařízení Gallium3D
- Toto je skutečný kód, který je specifický pro podkladový 3D grafický akcelerátor, ale pouze pokud to rozhraní Gallium3D WinSys umožňuje. Pro každý dostupný grafický čip existuje jedinečný ovladač hardwarového zařízení Gallium3D a každý implementuje rozhraní Gallium3D State Tracker Interface a také rozhraní Gallium3D WinSys. Ovladač hardwarového zařízení Gallium3D rozumí pouze TGSI (Tungsten Graphics Shader Infrastructure), prostřednímu jazyku pro popis shaderů. Tento kód přeložil shadery přeložené z GLSL do TGSI dále do instrukční sada implementováno GPU.
Gallium3D WinSys
- To je specifické pro podkladové jádro z operační systém a každý z nich implementuje rozhraní Gallium3D WinSys do rozhraní se všemi dostupnými ovladači hardwarových zařízení Gallium3D.




Rozdíly od klasických grafických ovladačů
Gallium3D poskytuje jednotný API vystavení standardních hardwarových funkcí, jako je shader jednotky nalezené na moderním hardwaru. Tak, 3D API, jako je OpenGL 1.x / 2.x, OpenGL 3.x, OpenVG, GPGPU infrastruktura nebo dokonce Direct3D (jak je uvedeno v Víno vrstva kompatibility) bude potřebovat pouze jeden back-end, nazývaný sledovač stavu, zaměřený na API Gallium3D. Naproti tomu ovladače DRI v klasickém stylu vyžadují pro každou hardwarovou platformu jiný back-end a několik dalších API vyžaduje překlad do OpenGL na úkor duplikace kódu.[123][124][125] Všechny ovladače zařízení dodavatele jsou kvůli své proprietární a uzavřené povaze napsány tímto způsobem, což znamená, že např. the AMD Catalyst implementuje obojí OpenGL a Direct3D a ovladače prodejců pro GeForce mít své implementace.
Pod Gallium3D, Správce přímého vykreslování Ovladače jádra (DRM) budou spravovat paměť a Rozhraní pro přímé vykreslování Ovladače (DRI2) budou více orientovány na zpracování GPU.[126] Během přechodného období od nastavení režimů uživatelského prostoru do režimu jádra nastavování některých ovladačů Mesa 3D, například ovladače Radeon nebo Intel, nakonec podporovalo jak DRI1, tak i DRI2 a používal DRI2, pokud je v systému k dispozici. Gallium3D navíc vyžaduje úroveň podpory shaderu, která není k dispozici na starších kartách, jako je např. ATi r100-r200, aby uživatelé těchto karet pro své 3D použití museli i nadále používat Mesa 3D s DRI2.
Infrastruktura shaderu grafiky wolframu
Infrastruktura grafických shaderů wolframu (TGSI ) je Mezilehlé zastoupení jako Zprostředkující zastoupení LLVM nebo nový Standardní přenosné zprostředkující zastoupení (SPIR), které má používat Vulkan API a OpenCL 2.1. Shadery napsané v Jazyk stínování OpenGL mají být přeloženy / zkompilovány do TGSI, poté jsou provedeny optimalizace a pak jsou shadery TGSI kompilovány do shaderů pro instrukční sada použitého GPU.
Využití LLVM

Kromě toho je pomocí modulární struktury Gallium3D vyvíjeno úsilí k použití LLVM sadu kompilátorů a vytvořit modul pro optimalizaci shader kód za běhu.[127]
Knihovna představuje každý shaderový program pomocí rozšiřitelné binární mezilehlé reprezentace zvané Tungsten Graphics Shader Infrastructure (TGSI), kterou LLVM poté převádí do GLSL shadery optimalizované pro cílový hardware.
Přijetí
Několik zdarma a open-source grafika ovladače zařízení, které byly nebo jsou psány na základě informací získaných prostřednictvím čistý pokoj reverzní inženýrství, přijal model ovladače poskytovaný Gallium3D, např. novinka a další (vidět Bezplatný a otevřený ovladač grafického zařízení pro úplný seznam). Hlavním důvodem může být to, že model ovladače Gallium3D snižuje množství kódu požadovaného k zápisu.[původní výzkum? ] Samozřejmě, protože je licencován na základě licence svobodného softwaru, může tento kód kdykoli někdo přepsat, aby implementoval model ovladače DRI nebo nějaký jiný.
Dějiny
Původními autory Gallium3D byli Keith Whitwell a Brian Paul ve společnosti Tungsten Graphics (získaná VMware v roce 2008.[128]
Milníky
Na podzim roku 2011 bylo nejméně 10 známých, vyspělých a fungujících ovladačů Gallium3D.[129][ověření se nezdařilo ][Citace je zapotřebí ] Ovladače open-source pro grafické karty Nvidia podle názvu Nouveau tým vyvíjí své ovladače pomocí rámce Gallium3D.[118][130]
2008-07-13: Vývoj secese se provádí výhradně pro rámec Gallium. Starý ovladač DRI byl odebrán z hlavní větve úložiště Mesa na Freedesktop.org.[131]
2009-02-11: Pobočka gallium-0,2 byla sloučena do hlavní větve Master v Mesa.[132] Vývoj probíhá v hlavní řadě Mesa.
2009-02-25: Gallium3D může běžet na jádrech Linuxu i FreeBSD.[133]
2009-05-01: Zack Rusin z Tungsten Graphics přidal OpenVG stavový tracker do Mesa 3D,[134] který umožňuje Škálovatelná vektorová grafika být hardwarově akcelerován jakýmkoli ovladačem založeným na Gallium3D.
2009-07-17: Je vydána verze Mesa3D 7.5, první verze, která obsahuje Gallium3D.[135]
2010-09-10: Počáteční podpora pro GPU Evergreen byla přidána do ovladače r600g.[136]
2010-09-21: Existují dva ovladače Gallium3D pro hardware ATI známé jako r300g a r600g pro grafické karty R300-R500 a R600-Evergreen.
2010-09-21: Major commits were made to the code to support Direct3D 10 and 11.[137] In time, this might offer the ability to use recent Direct3D implementations on GNU/Linux systems.
2011-11-30: Intel 965g and Cell Gallium drivers were removed from the master branch of Mesa as unmaintained and broken.[138][139]
2013-11-30: Mesa 10 with OpenGL 3.2, 3.3 and OpenCL 1.0+
2014-11-18: Major commits were made to the code to support Direct3D 9.[140]
2015-09-15: Mesa 11 with OpenGL 4.0, 4.1 and OpenCL 1.2 (incomplete)
2015-12-15: Mesa 11.1 Driver VIRGL for virtual machines with OpenGL 3.3
2016-07-08: Mesa 12 with OpenGL 4.2, 4.3 and Vulkan 1.0 (Intel ANV and AMD RADV)
2016-11-01: Mesa 13 with OpenGL 4.4 and OpenGL ES 3.2
2017-02-13: Mesa 17.0 with OpenGL 4.5 and freedreno driver with OpenGL 3.0 and 3.1
2017-05-10: Mesa 17.1 OpenGL 4.2+ for Intel Ivy Bridge (more than Intel driver for Windows, OpenGL 3.3+ for Intel Open SWR Rasterizer (important for cluster Computer for huge simulations)
2017-12-08: Mesa 17.3 AMD Vulkan Driver RADV full compliant in Khronos Test of Vulkan 1.0
2018-05-18: Mesa 18.1 with Vulkan 1.1 (Intel ANV and AMD RADV)
2018-09-07: Mesa 18.2 with OpenGL 4.3 for Soft Driver VIRGL (important for virtual machines in cloud Cluster Computer), OpenGL ES 3.1 for Freedreno with Adreno A5xx
2019-06-11: Mesa 19.1 released with Intel's next generation 'iris' graphics driver for generation 8+ iGPUs[141]
2019-12-11: Mesa 19.3 released OpenGL 4.6 with Intel i965 with gen 7+ and optional Iris Gen 8+
2020-03-18: Mesa 20.0 released OpenGL 4.6 with AMD GCN
2020-05-27: Mesa 20.1 released NIR vectorisation support and shared virtual memory support for OpenCL in Clover
Výkon
Dějiny
![]() | Tato sekce potřebuje expanzi. Můžete pomoci přidávat k tomu. (Září 2014) |
Project initiator Brian Paul was a graphics hobbyist. He thought it would be fun to implement a simple 3D graphics library using the OpenGL API, which he might then use instead of VOGL (very ordinary GL Like Library).[2] Beginning in 1993, he spent eighteen months of part-time development before he released the software on the Internet. The software was well received, and people began contributing to its development. Mesa started off by rendering all 3D počítačová grafika na procesor. Despite this, the internal architecture of Mesa was designed to be open for attaching to grafický procesor -accelerated 3D rendering. In this first phase, rendering was done indirectly in the zobrazovací server, leaving some overhead and noticeable speed lagging behind the theoretical maximum. The Diamond Monster 3D, za použití Voodoo grafika chipset, was one of the first 3D hardware devices supported by Mesa.
The first true graphics hardware support was added to Mesa in 1997, based upon the Glide API for the then new 3dfx Voodoo I / II grafické karty a jejich nástupci.[94] A major problem of using Glide as the acceleration layer was the habit of Glide to run full screen, which was only suitable for computer games. Further, Glide took the lock of the screen memory, and thus the zobrazovací server was blocked from doing any other GUI tasks.[142]
Viz také
Reference
- ^ Marshall, David (16 December 2008). "VMware's year end acquisition of Tungsten Graphics". InfoWorld. Citováno 6. srpna 2011.
- ^ A b "Mesa Introduction". Mesa Team. Citováno 8. června 2015.
- ^ Baker, Dylan (3 December 2020). "mesa 20.3.0". mesa-announce (Poštovní seznam). Citováno 3. prosince 2020.
- ^ "Mesa Languages Page". Otevřete rozbočovač. Citováno 2. března 2015.
- ^ "Mesa 3D license". Citováno 3. června 2015.
- ^ "Improve OpenGL support for the Linux Graphics Drivers - Mesa". Indiegogo. 11. prosince 2013. Citováno 21. ledna 2015.
- ^ "AMD exploring new Linux driver Strategy". 22. března 2014. Citováno 23. března 2014.
- ^ "Direct3D 9 Support Released For Linux Via Gallium3D, Running Games - Phoronix". Phoronix.com. Citováno 1. srpna 2018.
- ^ "mesa/mesa - The Mesa 3D Graphics Library". Citováno 2. listopadu 2016.
- ^ "The OpenGL vs Mesa matrix". 25. března 2015. Citováno 29. března 2015.
- ^ "Mesa 11.0 Has Been Branched, The Release March Begins". 22. srpna 2015. Citováno 22. srpna 2015.
- ^ A b „Archivovaná kopie“. Archivovány od originál dne 4. listopadu 2016. Citováno 3. listopadu 2016.CS1 maint: archivovaná kopie jako titul (odkaz)
- ^ A b "Mesa 17.0.0 Officially Released". Phoronix. 13. února 2017. Citováno 13. února 2017.
- ^ "mesa/mesa - The Mesa 3D Graphics Library". Cgit.freedesktop.org. Citováno 1. srpna 2018.
- ^ "The Big Changes, Improvements of Mesa 17.0 - Phoronix". Phoronix.com. Citováno 1. srpna 2018.
- ^ "mesa/mesa - The Mesa 3D Graphics Library". Cgit.freedesktop.org. Citováno 1. srpna 2018.
- ^ "Program" (PDF). www.x.org. 2016.
- ^ "mesa/mesa - The Mesa 3D Graphics Library". Cgit.freedesktop.org. Citováno 1. srpna 2018.
- ^ "A Look at the Huge Performance Boosts With Nouveau Mesa 17.0-devel on Maxwell - Phoronix". Phoronix.com. Citováno 1. srpna 2018.
- ^ "Khronos Open-Sources OpenGL / OpenGL ES Conformance Tests - Phoronix". Phoronix.com. Citováno 1. srpna 2018.
- ^ "The Grand Features of Mesa 17.1: Vega, RadeonSI Shader Cache, Maturing Vulkan, New OpenGL Extensions - Phoronix". Phoronix.com. Citováno 1. srpna 2018.
- ^ "Mesa Release Notes". Mesa3d.org. Citováno 1. srpna 2018.
- ^ "The OpenGL vs Mesa matrix". mesamatrix.net. Citováno 31. července 2016.
- ^ "Titul" (PDF). Citováno 1. srpna 2018.
- ^ "Event listing" (PDF). www.x.org.
- ^ "Mesa 17.3 Features - Vulkan Updates, Better Performance - Phoronix". Phoronix.com. Citováno 1. srpna 2018.
- ^ A b C d E F "Release calendar". Mesa3d.org. Citováno 1. srpna 2018.
- ^ "Mesa 18.0 Features Include Many OpenGL/Vulkan Improvements, Intel Shader Cache & Extras - Phoronix". Phoronix.com. Citováno 1. srpna 2018.
- ^ A b "Mesa 18.2 Is Releasing Soon With Many OpenGL / Vulkan Driver Improvements - Phoronix". www.phoronix.com.
- ^ "The Shiny New Features of Mesa 18.3 For Open-Source Intel / Radeon Graphics Drivers - Phoronix". www.phoronix.com.
- ^ "Mesa Made Massive Progress In 2018 On Open-Source Vulkan / OpenGL Drivers - Phoronix". www.phoronix.com.
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Mesa-19.0-Features-Queue
- ^ https://www.phoronix.com/scan.php?page=article&item=mesa190-rad-jan&num=1
- ^ https://www.phoronix.com/scan.php?page=article&item=radeonsi-nir-2019&num=1
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Iris-GLSL-460-Compatibility
- ^ https://www.phoronix.com/scan.php?page=article&item=mesa-193-features
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Mesa-20.0-rc1-Released
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Mesa-20.0-Released
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Mesa-20.1-Features
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Zink-OpenGL-3.0-Over-Vulkan
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Mesa-20.2-RC1-Features-Released
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Mesa-20.2-Nouveau-HMM
- ^ https://www.phoronix.com/scan.php?page=news_item&px=V3DV-Mesa-Upstream-Plans
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Mesa-20.3-OpenCL-1.2-Clover
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Zink-OpenGL-3.3-Mesa-20.3
- ^ https://www.phoronix.com/scan.php?page=news_item&px=OpenGL-4.5-LLVMpipe-Lands
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Mesa-VALLIUM-Merged
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Mesa-21.0-Direct3D-12-Gallium3D
- ^ https://xdc2020.x.org/event/9/contributions/621/attachments/701/1297/XDC_-_Mesa_for_Mapping_Layers.pdf
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Microsoft-Collabora-DirectX
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Mesa-2-5x-Faster-SPECViewPerf
- ^ https://docs.mesa3d.org/relnotes.html
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Mesa-20.2.2-Released
- ^ Larabel, Michael (4 March 2015). "OpenVG Support Stripped From Gallium3D". Phoronix. Citováno 11. července 2015.
- ^ https://gitlab.freedesktop.org/mesa/mesa/commit/3acd7a34ab05b87521b74f626ec637e7fdcc6595
- ^ "latest patches to "nine" state tracker". Cgit.freedesktop.org. 4. února 2016.
- ^ Larabel, Michael (14 December 2014). "Mesa 10.4 Officially Released With Direct3D 9 State Tracker". Phoronix. Citováno 11. července 2015.
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Mesa-20.1-Features
- ^ https://www.phoronix.com/scan.php?page=article&item=mesa20-radeonsi-nir&num=1
- ^ https://www.phoronix.com/scan.php?page=news_item&px=Mesa-19.3-RC1-Released
- ^ https://www.phoronix.com/scan.php?page=article&item=mesa-193-features&num=1
- ^ "Mesa 18.0 Should Arrive Today With Many Vulkan/OpenGL Driver Improvements - Phoronix". Phoronix.com. Citováno 1. srpna 2018.
- ^ "GalliumCompute". Dri.freedesktop.org. Citováno 24. ledna 2019.
- ^ "Clover Status Update" (PDF). Citováno 27. března 2020.
- ^ "[Mesa-announce] mesa 17.0.0". Citováno 13. února 2017.
- ^ "[Mesa-announce] mesa 13.0.0". Citováno 2. listopadu 2016.
- ^ A b "Mesa 12.0 Released With OpenGL 4.3 Support, Intel Vulkan & Many Other Features". 8. července 2016. Citováno 8. července 2016.
- ^ "[Mesa-announce] Mesa 11.2.0". Citováno 4. dubna 2016.
- ^ "[Mesa-announce] Mesa 11.1.0". Citováno 15. prosince 2015.
- ^ "[Mesa-announce] Mesa 11.0.0". Citováno 26. září 2015.
- ^ "[Mesa-announce] Mesa 10.6.0". Citováno 15. června 2015.
- ^ Larabel, Michael (26 October 2013). "Features To Be Found in Mesa 10.0". Phoronix.
- ^ "[Mesa-announce] Mesa 10.5.0". Citováno 7. března 2015.
- ^ "[Mesa-announce] Mesa 10.4.0 released". Citováno 7. března 2015.
- ^ "[Mesa-announce] Mesa 10.3 released". Citováno 7. března 2015.
- ^ "[Mesa-announce] Mesa 10.2 released". Citováno 7. března 2015.
- ^ "[Mesa-announce] Mesa 10.1 released". Citováno 7. března 2015.
- ^ "[Mesa-announce] Mesa 10.0 released". Citováno 7. března 2015.
- ^ "Program" (PDF). www.x.org.
- ^ "Radeon Vulkan Driver Added To Mesa, Fresh Radeon Vulkan vs. OpenGL Benchmarks + AMDGPU-PRO - Phoronix". Phoronix.com. Citováno 1. srpna 2018.
- ^ A b "Vulkan Virgl Has Kicked Off For Supporting This Graphics/Compute API Within VMs - Phoronix". www.phoronix.com.
- ^ "Bringing Android explicit fencing to the mainline". LWN.net. 5. října 2016.
- ^ "libgbm in the Debian repositories". Packages.debian.org.
- ^ "Enabling Alternative Window Systems with a non-Mesa Graphics Driver Implementation". X.org.
- ^ "NVIDIA Wants Feedback On Its Device Memory Allocator Project". Phoronix.
- ^ "Nouveau Video Acceleration". freedesktop.org.
- ^ „Radeon Feature Matrix“. freedesktop.org.
- ^ Toral, Iago (8 August 2014). "Diving into Mesa". Citováno 19. května 2016.
- ^ "Direct Rendering Infrastructure Status Page". freedesktop.org.
- ^ "How to improve gaming performance on your Linux machine - APC". Apcmag.com. 25. července 2013. Citováno 1. srpna 2018.
- ^ "Linux: Mesa, Gallium3D, Nouveau and NVIDIA Drivers, OpenGL Test (GTX 280, GTX 480, GTX 580) – Geeks3D". Geeks3d.com. Citováno 1. srpna 2018.
- ^ "Nouveau Driver Remains Much Slower Than NVIDIA's Official Driver - Phoronix". Phoronix.com. Citováno 1. srpna 2018.
- ^ "Intel/NVIDIA/AMD Compete on Open/Closed Source Linux GPU Driver Performance - Phoronix". Phoronix.com. Citováno 1. srpna 2018.
- ^ A b C Paul, Brian (10 August 2000). "Introduction to the Direct Rendering Infrastructure". Dri.sourceforge.net. Citováno 25. ledna 2012.
- ^ "DRI2". X.org. Archivovány od originál dne 16. dubna 2013. Citováno 25. ledna 2012.
- ^ "DRI3 and Present [LWN.net]". lwn.net. Citováno 1. srpna 2018.
- ^ "[PATCH 0/6] Add DRI3000 support to core and i965 drivers". Lists.freedesktop.org. Citováno 1. srpna 2018.
- ^ "xorg-x11-drv-intel-2.99.917-19.20151206.fc23 (re)enabled dri3 by default - kde - Fedora Mailing-Lists". lists.fedoraproject.org. Citováno 3. prosince 2016.
- ^ "Radeon-AMDGPU-1.19-Updates". Google.de. Citováno 3. prosince 2016.
- ^ "LLVMpipe: OpenGL With Gallium3D on Your CPU". Phoronix.com. 30.dubna 2010. Citováno 4. listopadu 2014.
- ^ "llvmpipe". mesa3d.org. Citováno 8. června 2015.
- ^ "OpenSWR". openswr.org. Citováno 1. srpna 2018.
- ^ "Mesamatrix: The OpenGL vs Mesa matrix". mesamatrix.net. Citováno 1. srpna 2018.
- ^ "OpenSWR". openswr.org. Citováno 1. srpna 2018.
- ^ „Archivovaná kopie“. Archivovány od originál dne 28. srpna 2018. Citováno 28. srpna 2018.CS1 maint: archivovaná kopie jako titul (odkaz)
- ^ "Tracking Mesa's VirGL OpenGL Features - Phoronix". www.phoronix.com.
- ^ "Mesa's VirGL Now Has OpenGL 4.2 Support To Offer Guest VMs - Phoronix". www.phoronix.com.
- ^ "The Current Performance of Virgl3D, Future Plans - Phoronix". www.phoronix.com.
- ^ „Archivovaná kopie“ (PDF). Archivovány od originál (PDF) dne 1. října 2018. Citováno 13. prosince 2018.CS1 maint: archivovaná kopie jako titul (odkaz)
- ^ https://archive.fosdem.org/2019/schedule/event/virtual_gpu/attachments/slides/3353/export/events/attachments/virtual_gpu/slides/3353/Virgl_Presentation_FOSDEM2019.pdf
- ^ "DRI megadrivers". X.org. 25. září 2013.
- ^ "VDPAU & XvMC state trackers are now separate libraries". Phoronix.com. 23. června 2014.
- ^ "Build configuration file". cgit.freedesktop.org. Gallium documentation.
- ^ Fonseca, José (27 April 2008). "Gallium3D: Introduction". Citováno 20. června 2014.
- ^ Fonseca, José. "MESA3D.org: Introduction". Citováno 28. října 2016.
- ^ "Gallium3D Now in Mainline Mesa Code-Base!". Phoronix. 11. února 2009. Citováno 26. října 2010.
- ^ "The state of Nouveau, part 2". LWN.net. 26. února 2008. Citováno 7. března 2008.
- ^ A b "Nouveau Companion 36". Nouveau.freedesktop.org. 7. března 2008. Archivovány od originál dne 7. března 2013. Citováno 1. dubna 2008.
- ^ "ATI R300 Gallium3D DRI Support Is "Done"". Phoronix. 9. listopadu 2009. Citováno 15. listopadu 2010.
- ^ "Radeon "R600g" Gallium3D Driver Merged To [Mesa] Master". Phoronix. 27. května 2010. Citováno 26. října 2010.
- ^ "X.Org Wiki GalliumStatus". Xorg. 22. září 2010. Citováno 7. prosince 2010.
- ^ "iris: Add a new experimental Gallium driver for Intel Gen8+ GPUs (!283) · Merge Requests · Mesa / mesa". GitLab. Citováno 21. září 2019.
- ^ "TG-Gallium3D". Tungsten Graphics. Archivovány od originál dne 3. května 2008. Citováno 1. dubna 2008.
- ^ Rusin, Zack (6 February 2008). "GPGPU". Citováno 1. dubna 2008.
- ^ Rusin, Zack (7 February 2008). "OpenVG and accelerating 2D". Citováno 1. dubna 2008.
- ^ "DRI2". 4. října 2007. Archivovány od originál dne 4. července 2008. Citováno 1. dubna 2008.
- ^ Rusin, Zack (2 November 2007). "Gallium3D LLVM". Citováno 1. dubna 2008.
- ^ Marshall, David (16 December 2008). "VMware's year end acquisition of Tungsten Graphics". InfoWorld.
- ^ "Gallium". Freedesktop.org. 2. listopadu 2011. Citováno 24. srpna 2012.
- ^ "Nouveau Companion 37". Nouveau.freedesktop.org. 21. března 2008. Archivovány od originál dne 8. února 2012. Citováno 1. dubna 2008.
- ^ "nouveau: say goodbye to the old DRI driver... (cgit on FDO)". Cgit.freedesktop.org. 13 July 2008.
- ^ "Gallium3D Now in Mainline Mesa Code-Base!". Phoronix.com. 11. února 2009.
- ^ Larabel, Michael (25 February 2009). "Gallium3D, EGL Now Buildable on FreeBSD". Phoronix.
- ^ "OpenVG state tracker is in Mesa 3D". Sourceforge.net. 1. května 2009.
- ^ "Mesa 7.5 Release Notes / 17 July 2009". Mesa3d.org. 17. července 2009. Archivovány od originál dne 13. června 2010. Citováno 12. září 2017.
- ^ "r600g: add initial evergreen support (cgit on FDO)". Cgit.freedesktop.org. 10. září 2010.
- ^ "d3d1x: add new Direct3D 10/11 COM state tracker for Gallium". Cgit.freedesktop.org. 21. září 2010.
- ^ Larabel, Michael (30. listopadu 2011). "The Gallium3D Intel 965 Driver Gets Dropped". Phoronix. p. 1. Citováno 1. prosince 2011.
- ^ Larabel, Michael (30. listopadu 2011). "The Gallium3D Cell Driver Gets Dropped Too". Phoronix. p. 1. Citováno 1. prosince 2011.
- ^ "nine: Add state tracker nine for Direct3D9 (v3)". Cgit.freedesktop.org. 18. listopadu 2014.
- ^ "Mesa 19.1 Released With Experimental Intel Gallium3D, Other New GL/VLK Drivers Too - Phoronix". www.phoronix.com. Citováno 21. září 2019.
- ^ "What's the relationship between Glide and DRI?". dri.freedesktop.org. Citováno 25. ledna 2012.
externí odkazy
- Oficiální webové stránky
- Edge, Jake (October 2013). "The history of Mesa".
External links for Gallium3D
- freedesktop.org - Gallium3D, an article on the current state of Gallium3D
- Fonseca, José (April 2008), Introduction into Gallium3D
- Rusin, Zack, Gallium3D
- Corbet, Jonathan (November 2007), Memory management for graphics processors
- Generic GPU-Accelerated Video Decoding, Google Summer of Code 2008 project using Gallium, archived from originál dne 31. července 2008
- Rusin, Zack (2008), Gallium3D: Graphics Done Right (PDF) (presentation), Akademy
- Rusin, Zack (2008), Gallium3D: Graphics Done Right (presentation), Akademy, archivovány z originál (video) dne 1. ledna 2011
- Update on Gallium3D ports to AROS and Haiku (PDF), FOSDEM 2010, 7 February 2010
Uživatelský režim | Uživatelské aplikace | Například, bash, LibreOffice, GIMP, Mixér, 0 n.l., Mozilla Firefox, atd. | ||||
---|---|---|---|---|---|---|
Nízkoúrovňové komponenty systému: | Systém démoni: systemd, spusť to, logind, networkd, PulseAudio, ... | Okenní systém: X11, Wayland, SurfaceFlinger (Android) | Other libraries: GTK +, Qt, EFL, SDL, SFML, FLTK, GNUstep, atd. | Grafika: Mesa, AMD Catalyst, ... | ||
C standardní knihovna | open() , exec () , sbrk () , zásuvka() , fopen () , calloc () , ... (až do roku 2000 podprogramy )glibc chce být rychlý, musl a uClibc cílové vestavěné systémy, bionický psáno pro Android, atd. Všechny chtějí být POSIX /SUS -kompatibilní. | |||||
Režim jádra | Linuxové jádro | stat , spojit , dup , číst , otevřeno , ioctl , psát si , mmap , zavřít , výstup atd. (přibližně 380 systémových volání)Linuxové jádro Rozhraní systémového volání (SCI, chce být POSIX /SUS -compatible)[Citace je zapotřebí ] | ||||
Plánování procesu subsystém | IPC subsystém | Správa paměti subsystém | Virtuální soubory subsystém | Síť subsystém | ||
Další komponenty: ALSA, DRI, evdev, LVM, mapovač zařízení, Plánovač sítě Linux, Netfilter Bezpečnostní moduly Linux: SELinux, TOMOYO, AppArmor, Plácnutí | ||||||
Hardware (procesor, hlavní paměť, zařízení pro ukládání dat, atd.) |