Mesa 3D (Mesa 3D Graphics Library, usein lyhyesti Mesa) on avoimen lähdekoodin ohjelmakirjasto, joka toteuttaa useita grafiikkarajapintoja kuten OpenGL, OpenCL ja Vulkan.[3]

Mesa 3D
Luoja Brian Paul
Kehityshistoria
Vakaa versio 24.0.5 ()[1]
Kehitysversio 24.0.0-rc2 ()[2]
Kehitystilanne aktiivinen
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.[4]

Historia muokkaa

Kehityksen aloitti Brian Paul joko vuonna 1992 tai 1993, jolloin hän kehitti Amigan ja X Window Systemin (Xlib) piirtorajapinnoilla toimivan ohjelmiston.[5] Paul oli kehittänyt ohjelmistoa IRIS GL:llä ja innostui SGI:n julkaistua OpenGL:n.[5] Marraskuussa 1994 hänellä oli lähes täydellinen toteutus OpenGL:lle ja sai SGI:ltä luvan julkaista työnsä.[5] Paul julkaisi Mesa 1.0 -beetaversion comp.graphics-uutisryhmässä 3. helmikuuta 1995.[5]

Tekniikat muokkaa

Direct Rendering Infrastructure (DRI) on rajapinta, jolla Mesa voi käyttää laitteistoa grafiikkakiihdytykseen.[6]

Gallium3D on joukko kirjastoja, joilla voidaan tehdä laitekohtaista tukea varten ajureita.[7][8]

libdrm on Direct Rendering Manager -rajapinnan käyttöön tarkoitettu kirjasto, jota käytetään Mesan DRI-ajureista, X-ikkunoinnin ajureista sekä libva-kirjastosta.[9] Kirjasto käyttää ioctl-rajapintaa ja toteuttaa kapselointitoiminnot jotta ytimen rajapinnat eivät ole suoraan esillä.[10]

NIR on välikieli toisesta kielestä tai välikielestä kuten GLSL IR tai TGSI ajurille sopivaksi.[11] NIR:in tarkoitus on tehokkuus optimoinneissa, paremman koodin tuottaminen ja olla riippumaton laitteistosta.[12][11] NIR mahdollistaa koodin jakamisen ja uudelleen käyttämisen eri valmistajien ja rajapintojen välillä.[13] Myös käännös SPIR-V:stä NIR-kieleen on mahdollinen.[14]

Rusticl on Rust-kielellä toteutettu OpenCL-tuki.[15] Aiempi on Clover, jonka poistamista on ehdotettu.[16]

Zink on Gallium-ajuri, joka tuottaa Vulkan-komentoja: Zinkin avulla voi toteuttaa OpenGL:n Vulkanin päällä toimivana kerroksena.[17]

Kehittäjät muokkaa

Mesan kehittäjiin kuuluu sekä ammatikseen työskenteleviä että vapaaehtoisia henkilöitä.[18] Kehityksen sponsoreihin kuuluvat muun muassa Valve Corporation, VMWare, Intel ja Red Hat.[19][20][18]

Lähteet muokkaa

  1. [ANNOUNCE] mesa 24.0.5, (viitattu ). Tieto on haettu Wikidatasta.
  2. [ANNOUNCE] mesa 24.0.0-rc2, (viitattu ). Tieto on haettu Wikidatasta.
  3. Introduction mesa3d.org. Arkistoitu 8.10.2019. Viitattu 27.10.2019. (englanniksi)
  4. Platforms and Drivers mesa3d.org. Viitattu 27.10.2019. (englanniksi)
  5. a b c d Jake Edge: The history of Mesa 2.10.2013. Lwn.net. Viitattu 27.10.2019. (englanniksi)
  6. Mesa 3D and Direct Rendering Infrastructure wiki dri.freedesktop.org. Viitattu 27.10.2019. (englanniksi)
  7. José Fonseca's Tech blog jrfonseca.blogspot.com. Viitattu 27.10.2019. (englanniksi)
  8. Gallium3D Technical Overview freedesktop.org. Viitattu 27.10.2019. (englanniksi)
  9. Introduction to libdrm linuxfromscratch.org. Viitattu 11.10.2020. (englanniksi)
  10. https://gitlab.freedesktop.org/mesa/drm
  11. a b What is NIR? people.freedesktop.org. Viitattu 10.10.2020. (englanniksi)
  12. Jason Ekstrand: NIR: A new compiler IR for Mesa jlekstrand.net. Viitattu 8.4.2022. (englanniksi)
  13. Jason Ekstrand: In defense of NIR jlekstrand.net. Viitattu 8.4.2022. (englanniksi)
  14. XDC 2018 Clover this time with SPIR-V and NIR (PDF) xdc2018.x.org. 2018. Viitattu 10.10.2020. (englanniksi)
  15. Michael Larabel: Mesa's Rusticl Achieves Official OpenCL 3.0 Conformance phoronix.com. 14.11.2022. Viitattu 3.2.2023. (englanniksi)
  16. Michael Larabel: Mesa Developers Eye Removing Clover Once Rusticl OpenCL Code Hits Parity phoronix.com. 8.11.2022. Viitattu 3.2.2023. (englanniksi)
  17. Zink: OpenGL on Vulkan (PDF) khronos.org. heinäkuu 2019. Viitattu 23.6.2020. (englanniksi)
  18. a b Developers docs.mesa3d.org. Viitattu 10.1.2021. (englanniksi)
  19. 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)
  20. 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 muokkaa