Mesa 3D | |
---|---|
![]() |
|
Luoja | Brian Paul |
Kehityshistoria | |
Vakaa versio | 25.0.1 ()[1] |
Kehitystilanne | aktiivinen |
Tiedot | |
Lisenssi | MIT-lisenssi |
Aiheesta muualla | |
Verkkosivusto | |
Versiohallinta |
Mesa 3D (Mesa 3D Graphics Library, usein lyhyesti Mesa) on avoimen lähdekoodin ohjelmakirjasto, joka toteuttaa useita grafiikkarajapintoja kuten OpenGL, OpenCL ja Vulkan.[2]
Kirjastoa kehitetään ja käytetään pääasiassa Linuxilla, mutta tukee myös muita alustoja kuten Haiku ja Windows.[3]
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]
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] Gallium LLVMpipe -ajuri on tarkoitettu ohjelmistopohjaiseen renderöintiin.[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]
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]