Mesa 3D
Mesa 3D (Mesa 3D Graphics Library, usein lyhyesti Mesa) on avoimen lähdekoodin ohjelmakirjasto, joka toteuttaa useita grafiikkarajapintoja kuten OpenGL, OpenCL ja Vulkan.[2]
Mesa 3D | |
---|---|
Luoja | Brian Paul |
Kehityshistoria | |
Vakaa versio | 23.0.0 ()[1] |
Tiedot | |
Lisenssi | MIT-lisenssi |
Aiheesta muualla | |
Verkkosivusto | |
Versiohallinta |
Kirjastoa kehitetään ja käytetään pääasiassa Linuxilla, mutta tukee myös muita alustoja kuten Haiku ja Windows.[3]
Historia
Kehityksen aloitti Brian Paul joko vuonna 1992 tai 1993, jolloin hän kehitti Amigan ja X Window Systemin (Xlib) piirtorajapinnoilla toimivan ohjelmiston.[4] Paul oli kehittänyt ohjelmistoa IRIS GL:llä ja innostui SGI:n julkaistua OpenGL:n.[4] Marraskuussa 1994 hänellä oli lähes täydellinen toteutus OpenGL:lle ja sai SGI:ltä luvan julkaista työnsä.[4] Paul julkaisi Mesa 1.0 -beetaversion comp.graphics
-uutisryhmässä 3. helmikuuta 1995.[4]
Tekniikat
Direct Rendering Infrastructure (DRI) on rajapinta, jolla Mesa voi käyttää laitteistoa grafiikkakiihdytykseen.[5]
Gallium3D on joukko kirjastoja, joilla voidaan tehdä laitekohtaista tukea varten ajureita.[6][7]
libdrm on Direct Rendering Manager -rajapinnan käyttöön tarkoitettu kirjasto, jota käytetään Mesan DRI-ajureista, X-ikkunoinnin ajureista sekä libva-kirjastosta.[8] Kirjasto käyttää ioctl
-rajapintaa ja toteuttaa kapselointitoiminnot jotta ytimen rajapinnat eivät ole suoraan esillä.[9]
NIR on välikieli toisesta kielestä tai välikielestä kuten GLSL IR tai TGSI ajurille sopivaksi.[10] NIR:in tarkoitus on tehokkuus optimoinneissa, paremman koodin tuottaminen ja olla riippumaton laitteistosta.[11][10] NIR mahdollistaa koodin jakamisen ja uudelleen käyttämisen eri valmistajien ja rajapintojen välillä.[12] Myös käännös SPIR-V:stä NIR-kieleen on mahdollinen.[13]
Rusticl on Rust-kielellä toteutettu OpenCL-tuki.[14] Aiempi on Clover, jonka poistamista on ehdotettu.[15]
Zink on Gallium-ajuri, joka tuottaa Vulkan-komentoja: Zinkin avulla voi toteuttaa OpenGL:n Vulkanin päällä toimivana kerroksena.[16]
Kehittäjät
Mesan kehittäjiin kuuluu sekä ammatikseen työskenteleviä että vapaaehtoisia henkilöitä.[17] Kehityksen sponsoreihin kuuluvat muun muassa Valve Corporation, VMWare, Intel ja Red Hat.[18][19][17]
Lähteet
- [ANNOUNCE] mesa 23.0.0, (viitattu ). Tieto on haettu Wikidatasta.
- Introduction mesa3d.org. Arkistoitu 8.10.2019. Viitattu 27.10.2019. (englanniksi)
- Platforms and Drivers mesa3d.org. Viitattu 27.10.2019. (englanniksi)
- Jake Edge: The history of Mesa 2.10.2013. Lwn.net. Viitattu 27.10.2019. (englanniksi)
- Mesa 3D and Direct Rendering Infrastructure wiki dri.freedesktop.org. Viitattu 27.10.2019. (englanniksi)
- José Fonseca's Tech blog jrfonseca.blogspot.com. Viitattu 27.10.2019. (englanniksi)
- Gallium3D Technical Overview freedesktop.org. Viitattu 27.10.2019. (englanniksi)
- Introduction to libdrm linuxfromscratch.org. Viitattu 11.10.2020. (englanniksi)
- https://gitlab.freedesktop.org/mesa/drm
- What is NIR? people.freedesktop.org. Viitattu 10.10.2020. (englanniksi)
- Jason Ekstrand: NIR: A new compiler IR for Mesa jlekstrand.net. Viitattu 8.4.2022. (englanniksi)
- Jason Ekstrand: In defense of NIR jlekstrand.net. Viitattu 8.4.2022. (englanniksi)
- XDC 2018 Clover this time with SPIR-V and NIR (PDF) xdc2018.x.org. 2018. Viitattu 10.10.2020. (englanniksi)
- Michael Larabel: Mesa's Rusticl Achieves Official OpenCL 3.0 Conformance phoronix.com. 14.11.2022. Viitattu 3.2.2023. (englanniksi)
- Michael Larabel: Mesa Developers Eye Removing Clover Once Rusticl OpenCL Code Hits Parity phoronix.com. 8.11.2022. Viitattu 3.2.2023. (englanniksi)
- Zink: OpenGL on Vulkan (PDF) khronos.org. heinäkuu 2019. Viitattu 23.6.2020. (englanniksi)
- Developers docs.mesa3d.org. Viitattu 10.1.2021. (englanniksi)
- Jason Evangelho: Valve's Latest Linux Gaming Work Is Boosting AMD Vulkan Framerates By Up To 44 Percent forbes.com. 11.7.2019. Viitattu 3.10.2020. (englanniksi)
- Liam Dawe: Valve funds open source developer to work on Zink, the OpenGL on Vulkan driver gamingonlinux.com. 24.11.2020. Viitattu 10.1.2021. (englanniksi)
Aiheesta muualla
- Ajuriominaisuuksien luettelo visualisoituna (englanniksi)