Linux grafiikka pino ( Linux grafiikka pino ) viittaa GNU / Linux-jakelu , kaikki osat ohjelmistot mukana lähettämistä prosessissa.
2D-ohjaimet sisältyvät X-palvelimeen
Epäsuora renderöinti päälle GLX käyttäen Utah GLX-
Suora renderointi-infrastruktuuri ja kehyspuskuri
Lopuksi kaikki käyttöoikeudet tehdään Direct Rendering Managerin kautta .
Ytimessä 3.12 renderöintisolmut yhdistettiin ja KMS räjähti. Wayland toteuttaa suoran renderoinnin EGL : n päällä .
Perinteisesti Unix- tyyppisissä käyttöjärjestelmissä graafisen näytön tarjoaa X-palvelin . Siksi saman tyyppinen ohjelmistoarkkitehtuuri löydettiin GNU / Linux-järjestelmistä . XFree86 oli eniten käytetty ilmainen X-palvelin GNU / Linux-jakelua varten. Mutta vuonna 2004 lisenssiongelman vuoksi luotiin haarukka : X.Org . Vuodesta 2013 jälkimmäinen on yleisin GNU / Linux-jakelujen joukossa.
X-palvelin oli erittäin tehokas työkalu, mutta se ei ollut kovin tehokas työkalu. Tämän puutteen poistamiseksi on tutkittu erilaisia menetelmiä:
Lisäksi joukko X.Orgin käsittelemiä tehtäviä on siirretty ytimeen ( evdev , GEM ja KMS ) tai omistettuihin kirjastoihin ( Kairo , pixman , FreeType , Fontconfig , Pango jne.).
Säveltäjien tullessa voimaan (sallien läpinäkyvyyden, varjostuksen jne. Vaikutukset) X.Org: n käyttö graafisessa hallinnassa on lisäaskel sovelluksen ja säveltäjän sekä säveltäjän ja laitteiden välillä.
Waylandia ehdotettiin menestymään X11: Wayland-palvelimella on sekä säveltäjän (ikkunanhallinta) että näyttöpalvelimen rooli. Wayland luottaa tähän osalle olemassa olevan infrastruktuurin: DRI lentäjät in Mesa 3D , GEM ja KMS. Wayland 1.0 julkaistiin22. lokakuuta 2012ja jatkuu sen kehityksestä lähtien. GNOME 3.22: n pitäisi toimia täysin Waylandin kanssa, ja Fedora 25: n tulisi oletusarvoisesti sisältää Wayland.
Lisäksi XWayland mahdollistaa X-palvelimen käytön Waylandin päällä, jotta voidaan käyttää alun perin X.Orgille suunniteltuja sovelluksia, joita ei ole mukautettu.
Canonical kehittää kilpailevaa grafiikkapalvelinta Ubuntu : Mirille .
GNU / Linux, eli näytönohjain ajuri on jaettu kolmeen eri osaan:
DDX-ohjain ( laitteesta riippuvainen X ) on laitteistokohtainen ohjain (nimeltään xf86-video-ati AMD-korteille, xf86-video-nouveau Nvidia-korteille ja xf86-video-intel Intel-grafiikkasiruille), jota X-palvelin käyttää. hallita 2D: tä, lähinnä sävellystehosteita ja videokiihdytystä (X-palvelimen 2D-kiihdytysprosessien, kuten GLAMOUR tai EXA - ja sen johdannaisten UXA, SNA - tai X-videopääte (en) kautta ).
Mesa on ilmainen OpenGL- toteutus GNU / Linuxille (OpenGL on 3D-kiihdytysprosessi). Mesa on jaettu kahteen osaan: Mesa 3D -kirjasto itse ja DRI- ohjaimet, jotka vastaavat Mesa 3D -kirjaston hallinnoimien toimintojen kääntämisestä grafiikkakortin ymmärrettäviksi ohjeiksi. Tulos lähetetään näytönohjaimelle DRM: n ( Direct Rendering Manager ), vastaavan ytimen ohjaimen kautta, joka nyt hallinnoi pääsyä yksinomaan laitteistoon (DDX: llä oli myös pääsy laitteistoon, ennen kuin KMS antoi mahdollisuuden siirtää toimintatilojen hallintaa). . ytimen näyttö; tänään DDX käy DRM: n läpi päästäksesi ytimeen). 3D-kiihdytys vaatii siis sekä Mesan että ytimen tukea.
KMS: n luomisen jälkeen kaikki menee siis DRM: n kautta:
X.Orgin kanssa:
X11-sovellus | OpenGL-sovellus | Framebuffer-sovellus | |||||||||||||||||||||||||||||||||||||
Säveltäjä | X.Org | ||||||||||||||||||||||||||||||||||||||
2D-ohjaaja | OpenGL DRI -ohjain | ||||||||||||||||||||||||||||||||||||||
DRM | |||||||||||||||||||||||||||||||||||||||
Grafiikkasiru | |||||||||||||||||||||||||||||||||||||||
Wayland-säveltäjän kanssa:
Wayland-sovellus | OpenGL-sovellus | ||||||||||||||||||||||||||||||||||||||
Säveltäjä Wayland | |||||||||||||||||||||||||||||||||||||||
OpenGL DRI -ohjain | |||||||||||||||||||||||||||||||||||||||
DRM | |||||||||||||||||||||||||||||||||||||||
Grafiikkasiru | |||||||||||||||||||||||||||||||||||||||
Gallium3D esitetään ensinnäkin Mesa 3D: n seuraajana: se koostuu ehdottamisesta korkeammalle laitteiston abstraktiolle käyttöliittymän yhtenäistämiseksi X.org: n modulaarisuuden jatkuessa, jotta voidaan vähentää ja yksinkertaistaa myös kehittäjät välttämättömyyteen ja erottamaan paremmin eri kerrokset.
Jos Nvidia-korttien ( uusi projekti ) ja AMD ( radeon- projekti ) ilmaiset ohjaimet perustuvat nyt Gallium3D: hen, Intel (joka itse kehittää ilmaisia ohjaimia siruilleen) ei halua sitoutua tähän muutokseen ja tarjoaa edelleen klassisia Mesa-pilotteja jonka hän tuntee investoivansa paljon.
Toisaalta tätä aikajärjestystä ei voida käyttää OpenCL : n tapauksessa , josta Intel on päättänyt käynnistää oman ilmaisen toteutuksensa ( Donut- nimellä ) kauan sen jälkeen, kun OpenCL- taustajärjestelmä on asennettu Gallium3D: lle. Tätä Gallium3D: n taustajärjestelmää käyttävät NVIDIA ( nv50 , nvc0 …) - ja AMD ( Evergreen , Pohjoiset saaret ...) -korttien ilmaiset ohjaimet .
JL LLVM -kääntäjään , Gallium3D- ja DRM / DRI-infrastruktuuriin perustuva LLVMpipe-ohjain on mahdollistanut Open GL: n suoritusnopeuden moninkertaistamisen ilman laitteistokiihdytystä. Tämä toteutus on inspiroinut API Mantle (in) ATI: tä, jota puolestaan on käytetty Vulkaniin .
Henkilökohtaisissa tietokoneissa on yleensä yksi seuraavista kolmesta suunnittelijasta: AMD , NVIDIA ja Intel .
AMD Radeon ja FireProRadeon ja FirePro muodostavat AMD : n ydin- ja näytönohjaintarjonnan .
Gallium3D-ohjaimet: Radeon- projektista on olemassa erilaisia ohjaimia ( R300g , R600g , RadeonSI ), jotka vastaavat AMD-grafiikkasirujen eri sukupolvia. Huomaa, että RadeonSI : n kanssa 2D: tä hoitaa nyt glamour , yleinen 2D-kiihdytysprosessi, joka perustuu OpenGL: ään (katso alla). Huomaa myös, että perheestä GCN pelimerkkejä ( Graphics Core Next ) ja 3 : nnen sukupolven "GCN 1.2" (perhe pelimerkkejä jälkeen Sea saaret ), pilotti Gallium3D RadeonSI perustuu yhteiseen ydinajuri ilmaiseksi ajureita ja omistajan AMDGPU .
NVIDIA GeForce ja QuadroGeForce ja Quadro muodostavat NVIDIAn näytönohjaintarjonnan .
Gallium3D-ohjaimet: Nouveau- projektista on olemassa erilaisia ohjaimia ( nv30 , nv50 , nvc0 …), jotka vastaavat eri sukupolvien NVIDIA-näytönohjaimia.
Intel GMA- ja HD-grafiikatHD Graphics (ja aiemmin GMA ) on Intelin tarjoama grafiikkasydämiä omille mikroprosessoreilleen.
Viralliset Classic Mesa -ajuritTämä Intelin aloitteesta kehitetty 3D-ohjain on näiden sirujen GNU / Linux-grafiikkapinon oletusohjain. On olemassa kaksi versiota:
Varo sekoittamasta: 2D-ohjainta, joka on yhteinen kaikille piireille, kutsutaan yleisesti i915: ksi .
Vaihtoehtoiset Gallium3D-ohjaimeti915g on Gallium3D-ohjain, joka on kehitetty Intelistä riippumattomasti VMwaren , sitten Googlen , aloitteesta kolmannen sukupolven siruille.
GMA 500/600 -tapausAtom- prosessoreiden tukemiseksi Intel käyttää GMA 500 -grafiikkapiiriä (koodinimi: Poulsbo) tai sen seuraajaa: GMA 600 ( Cedarview ). Näitä piirejä ei ole täysin kehitetty yrityksen sisällä, ja ne perustuvat Imagination Technologiesin PowerVR SGX 535 : een 3D- ja videon renderointia varten. Siksi ne edellyttävät erityisiä kuljettajia.
Versiosta 3.3 lähtien Linux-ydin sisältää ilmaisen gma500_gfx- ohjaimen näille siruille (ilmestyi ensimmäisen kerran ytimen version 2.6.39 -staging-haarassa); tämä on kuitenkin rajoitettu 2D-näyttöön (ei video- tai 3D-kiihdytystä).
Intelin vuoden 2013 lopusta julkaisemat mallit ( Valley View ja seuraavat) merkitsevät PowerVR: n hylkäämistä yrityksen sisäisen ratkaisun hyväksi ja sulkevat tämän sulun.
SoC yleensä nousseet yksi sydämet kuvaajien alla 3D. Ne on kytketty useisiin muihin ytimiin näyttöä ja 2D: tä tai jopa videota varten SoC: stä riippuen.
Yleensä SoC-valmistajat tarjoavat Androidille suljetun (user-space) ohjaimen näille grafiikkasydämille; Tämän ajuria ei voi käyttää sellaisenaan, jonka GNU / Linux-jakelu, paitsi käyttää vapaa ohjelmisto kirjasto Libhybris perin suunniteltu Mer projektin .
Grafiikkasydämet 3D: n nopeuttamiseksiSoC: t upottavat yleensä grafiikkasydämen yhdeltä seuraavista kuudesta suunnittelijasta: ARM , Qualcomm , NVIDIA , Vivante , Broadcom ja Imagination Technologies .
ARM MaliMalin grafiikkasydämet on suunnitellut ARM .
ARM ei tarjoa ilmaista ohjainta. Ilmainen pilotti, jolla oli suunnitelma Mesa 3D: n tukemiseksi, kehitettiin vasta vuoden 2013 alkupuolelle käänteissuunnittelulla Luc Verhaegen alias libv -aloitteesta, johon liittyi Connor Abbott alias cwabbott: Lima . Projekti näytti sujuvan hyvin, pilotti mahdollisti esimerkiksi Quake 3 Arenan johtamisen. 23. huhtikuuta 2015, Luc selitti blogissaan tämän hankkeen aiheuttamia takaiskuja etenkin siksi, että se olisi ollut ARM: n mielestä epämiellyttävä, ja siitä seuranneesta demotivaatiosta, joka johti hänet laittaa projekti sivuun. Hankehakemus ilmestyi kuitenkin projektisivustolle20. joulukuuta 2015ja jotkut koodimaksut ilmestyivät rinnakkaiselle haaralle, nimeltään ng . Kehitys on ollut taas erittäin vilkasta vuodesta 2018 lähtien. Toinen ilmainen ohjain, Panfrost, on luotu myös uusien Malin prosessorien (Txxx ja Gxx) hallintaan. Nämä kaksi ohjainta tukevat OpenGL: ää (työpöytäversio) toisin kuin virallinen ohjain, ja molemmat on integroitu Mesa-ohjainten Gallium3D-osaan.
Qualcomm AdrenoAdreno on Qualcommin suunnittelema , jolla se varustaa ARM Snapdragon SoC: t . Käytetty tekniikka on peräisin AMD: n Radeon-siruista (joista Adreno on anagrammi).
Qualcomm ei tarjoa ilmaista lentäjää, mutta ilmaisen 2D / 3D Gallium3D -ohjaajan suunnittelee aktiivisesti päinvastoin, erityisesti Rob Clark vapaa-ajallaan: freedreno .
Huomaa, että koska A3xx: lla ja seuraavilla malleilla ei ole 2D-ydintä, 2D: n hallintaan käytetään Gallium3D: n XA-taustaa.
DRM-ohjain, nimeltään msm , tukee KMS: ää ja toimii sekä X.org: n ( xf86-video-freedreno kautta ) että Wayland / Westonin kanssa, on integroinut Linux-ytimen version 3.12, kun taas freedreno , Gallium3D-ohjain, on integroinut Mesan version 9.2. . Siksi se on ensimmäinen ilmainen 2D / 3D-pilotti, joka on saatavana ARM SoC: lle. Tämän ohjaimen avulla a3xx- ja a4xx-sirut tukevat OpenGL ES 3.0: ta (koska Mesa 3D 11.0) ja OpenGL 3.1 (koska Mesa 3D 11.1).
Siitä asti kun lokakuu 2014, Qualcomm auttaa tämän ilmaisen yhteisöohjaimen kehittämisessä toimittamalla korjaustiedostoja ja dokumentaatiota.
NVIDIA GeForce ULPGeForce ULP: n ( erittäin pienitehoiselle ) on suunnitellut NVIDIA, jolla se varustaa ARM Tegra SoC: t .
NVIDIA: n avulla Tegra 2/3: n ilmainen 2D-ohjain esiteltiin Linux-ytimen versiossa 3.8 ja täydennettiin Linux-ytimen versiossa 3.10. Aloittaen Linux-ytimen versio 3.13, DRM kuljettajan koostuu kahdesta osasta: host1x ja Tegra ja tukea Tegra 4 lisätään.
Erik Faye-Lund alias kusman (ja aiemmin Thierry Redingin) aloitteesta kehitetään käänteissuunnittelulla ilmainen 3D-pilotti: arina .
Living Living CorporationVivante- grafiikkasydämen on suunnitellut Vivante Corporation, ja siinä on erilaisia SoC- malleja ( i.MX6- sarja Freescalelta, Armada- alue Marvellilta, RK2918 Rockchipiltä).
Vuosina 2015/2016 Lucas Stach kehitti aktiivisesti ilmaisen 2D / 3D etnaviv -pilottin saksalaisen Pengutronix-yrityksen, Christian Gmeinerin ja Russell Kingin puolesta. Tämän työn tuloksena DRM-ohjain, joka perustuu freedreno- koodiin (ilmainen ohjain Qualcomm Adreno -näytönohjaimiin, jotka sisältyvät Snapdragon SoC: iin), integroitu Linux-ytimen versio 4.5. Samanaikaisesti jatkuu Gallium3D-ohjaimen kehitys, jonka Wladimir J. van der Laan alias wumpus aloitti käänteisellä suunnittelulla.
Broadcom VideoCoreVideoCore on suunnitellut Broadcom .
Sirun mutkikkaasta arkkitehtuurista huolimatta Herman H Hermitage oli aloittanut itsenäisen ilmaisen pilottihankkeen: videocoreiv .
Vuoden 2012 lopun väärän alkamisen jälkeen Broadcom lopulta nosti sirujensa salaisuuden viime vuoden alussa.
Lopuksi vuonna kesäkuu 2014Broadcom on rekrytoinut Eric Anholt , entinen pääkehittäjä vapaan Mesa ajuria Intelin grafiikka -prosessorit , luoda ilmainen 3D ohjain VideoCore 4 (joka varustaa Raspberry Pi ja Pi 2 erityisesti ): VC-4 . Luonnos tuli Mesa 3D : hen9. elokuuta 2014, käyttäen Gallium3D - arkkitehtuuria , joka on vielä kesken30. huhtikuuta 2016.
Samanaikaisesti alustava versio ytimen ohjaimesta on integroitu Linux-versioon 4.4, joka on valmistunut versiossa 4.5 voidakseen tukea 3D: tä yhdessä Gallium3D-ohjaimen kanssa.
2D / 3D-ohjain voidaan testata julkaistusta Raspbian- kuvasta 9. helmikuuta 2016.
Imagination Technologies PowerVRPowerVR (5-sarjan mallit ja uudemmat) ovat suunnitelleet Imagination Technologies ).
Imagination Technologies ei tarjoa ilmaista ohjainta. Sirun sekavan arkkitehtuurin vuoksi on epätodennäköistä, että ilmainen pilotti näkisi päivänvalon Free Software Foundationin toiveista huolimatta .
Intel HD -näytönohjainIntel lanseerasi Valley View: n vuoden 2013 lopussa , ensimmäisen SoC: n, joka tuo yhteen Atom- prosessorin ( x86-arkkitehtuuri ) ja HD Graphics -ydin (seitsemäs sukupolvi), joille perustaja tarjoaa suoraan ilmaisen ohjaimen.
Intel ilmoittihuhtikuu 2016 että se vetäytyi älypuhelinten ja tablettien segmentistä.
Grafiikkaytimet videon nopeuttamiseksi Allwinner CedarXAllwinner ei tarjonnut ilmaista kuljettajaa CedarX: lle ja ilmaista kuljettajaa alettiin kääntää (Cedrus-projekti); AllWinner teki sitten ilmaisen, mutta keskeneräisen pilotin.
Broadcom RockchipRockchip-videodekoodausprosessoreilla on ilmaisia ohjaimia läsnä tavallisessa Linux-videopinossa. Rockchip on ollut vapaasti lisensoitu kirjastoille vuodesta 2016 lähtien.
Nykyiset 2D-kiihdytysprosessit (EXA / XAA / UXA) ovat osoittaneet rajansa, minkä vuoksi kehittäjät ovat kovasti töissä uusien kehittämiseksi. Useita rinnakkaisia aloitteita on käynnissä.
Cairo-gl on OpenGL-taustakuva Kairolle .
glamour on yleinen 2D-kiihdytysprosessi, joka perustuu OpenGL: ään. Se koostuu yleisestä kirjastosta, joka voi olla yhteydessä DDX-ohjaimeen ja jonka tarkoituksena on muuntaa X-palvelimen toiminnot OpenGL-käskyiksi, joita Mesa käsittelee. DDX-ohjain, joka on muunnettu hyödyntämään glamouria, EGL: ää ja KMS: ää, mahdollistaa X-palvelimen käynnistämisen Mesa / EGL: n kautta ilman natiivia ikkunointijärjestelmää . Intelin molemmat kehittäjät Eric Anholt ja Zhigang Gong ovat tärkeimmät alkuperäiset kehittäjät. glamouria RadeonSI- ohjain käyttää uusimpiin AMD Radeon -kortteihin (lue yllä) sekä XWaylandiin.
Näillä kahdella projektilla on se etu, että ne yksinkertaistavat viime kädessä grafiikkapinoa (vain yksi kuljettaja on jäljellä: 3D-ohjain), mutta haittana on, että haluaa sovittaa jalka kenkään vasaralla: OpenGL ei ole suunniteltu nopeuttamaan 2D 2D-primitiivien uudelleen ilmaiseminen 3D-komentoiksi 3D-sovellusliittymän tasolla ei ole optimaalista.
Tämän avulla 2D-sovellus voi suoraan kohdistaa materiaalin samoin kuin 3D-sovellus. Mutta sen sijaan, että ottaisimme puolueellisuuden käymällä läpi OpenGL: n, yritämme paljastaa suoraan 2D-kiihdytykseen soveltuvat primitiivit.
Projekteilla, kuten cairo-drm tai pixman-drm, on tämä tavoite.
Myös Gallium3D on taustaohjelmia mahdollistaa nopeuttaa EXA kautta 3D toiminnot grafiikkasiru: st / xorg, st / XA. Mutta kumpaakaan ei ylläpidetä aktiivisesti.
Tämä lähestymistapa johtaa kuitenkin monimutkaisempiin lentäjiin.