Creator | Brian Paul |
---|---|
Dezvoltat de | Brian Paul, Tungsten Graphics, Inc. (achiziționat de VMware ), Intel , Linaro și colab. |
Prima versiune | August 1993 |
Ultima versiune | 21.0.3 (21 aprilie 2021) |
Versiune avansată |
18.0.0-rc5 (21 martie 2018) 19.1.0-rc5 (5 iunie 2019) 1,0 (Februarie 1995) 21.0.0-rc3 (27 ianuarie 2021) |
Depozit | gitlab.freedesktop.org/mesa/mesa |
Asigurarea calității | Integrare continuă |
Scris in | C , C ++ și asamblare |
Sistem de operare | Linux , FreeBSD , NetBSD , OpenBSD și Haiku |
Tip |
Biblioteca grafică Biblioteca software Biblioteca C ( d ) |
Licență | Licență MIT |
Site-ul web | mesa3d.org |
Mesa 3D este o bibliotecă grafică gratuită , dezvoltată inițial de Brian Paul , de laAugust 1993, Care oferă o implementare generică a OpenGL pentru a realiza grafică tridimensională redată în timp real și pe mai multe platforme . Deși Mesa 3D nu este o implementare oficială OpenGL, structurile, sintaxa și semantica API - ului său sunt cele ale OpenGL.
În Iulie 2007, Mesa 3D este singurul Implementare OpenGL complet open source . Acesta este utilizat în principal de punerea în aplicare X.Org lui X Window System , care utilizează OpenGL pentru randare pentru drivere open source DRI X.Org/OpenGL. X.Org oferă funcționalități esențiale pentru majoritatea aplicațiilor grafice care rulează pe platforme de tip Unix , cum ar fi GNU / Linux .
O actualizare importantă a fost făcută în iulie 2009odată cu încorporarea lucrării efectuate pe Gallium3D , dezvoltată în principal de compania Tungsten Graphics (achiziționată de VMware ) și planificată inițial să înlocuiască Mesa 3D. Această nouă versiune simplifică dezvoltarea driverelor grafice oferind un nivel unic de abstracție cerut de driverele grafice și care poate folosi el însuși diferite procese de accelerare bazate pe OpenGL, OpenGL ES , OpenCL sau chiar Direct3D (ceea ce Wine ar putea atrage). În general, ar trebui să permită o mai bună utilizare a capacităților procesorelor grafice actuale și poate oferi o metodă universală de decodare video. În cele din urmă, Gallium3D face posibilă utilizarea procesorului grafic (GPU) pentru sarcini de calcul, anterior transferate procesorului central (CPU) (vorbim apoi de calcul general pentru GPU sau GPGPU ).
În arhitectura x86, driverele gratuite pentru procesoarele grafice AMD ( driverele R300 , R600 , Radeon și RadeonSI ) și Nvidia (driver nou ) utilizează Gallium3D. La Intel, pe de altă parte, numai procesoarele i915 generație folosesc galiu, cele mai recente procesoare (i965 arhitectura / șofer), continuă să folosească Mesa pentru conducătorii auto gratuite. Codul de asamblare pentru accelerarea calculelor prin SIMD x86 și x86_64 (AMD64) sunt de asemenea prezenți.
În arhitectura ARM , codul de asamblare pentru accelerarea SIMD ( NEON ) a fost integrat din 2012.
Driverele gratuite, care utilizează Gallium, sunt disponibile în linia principală a Mesa, pentru diferite arhitecturi:
În ceea ce privește procesoarele grafice Mali ARM, o primă versiune a driverului Lima , pentru Mali-400, al cărui dezvoltator a preferat să rămână în afara Mesa, a stagnat din 2012, apoi a fost abandonată în 2013. O nouă versiune a fost lansată.iunie 2017, administrează procesoarele din seria Mali-400 și 450 ale arhitecturii Utgard și ar trebui să fie integrate în Mesa în cursul anului 2018. Alți 2 drivere, Chai pentru arhitectura Midgard (Mail-Txxx) pentru arhitectura Bitfrost (Mail -Gxx) , încep cam în același timp și sunt unificate de la începutul anului 2018, sub numele Panfrost . Driverul comun acceptă OpenGL 3.1 (desktop) și OpenGL ES 3.0 de la începutul anului 2021.
Acceleratorul de redare pur software LLVMpipe , din proiectul Gallium3D, a fost adaptat la arhitectura x86 și la arhitectura ARM . Este implicit legat de Mesa 3D, de la versiunea 10.2, lansată îniunie 2014. Autorii pilotului Panfrost intenționează să-l folosească pentru a permite redarea funcțiilor care nu au fost implementate în faza de dezvoltare.
Mesa 3D implementează următoarele interfețe de programare grafică :
și drivere pentru hardware grafic.
Următorii drivere pentru a converti diferite API-uri 3D în Vulkan și, astfel, beneficiază de performanța sa și de un consum redus de energie cu aplicații care nu sunt proiectate pentru acest API:
Inițial, Mesa 3D făcea toate redările grafice 3D la nivelul procesorului central (CPU) , dar arhitectura lui Mesa 3D s-a deschis pentru a implementa redarea accelerată hardware la nivelul procesorului grafic (GPU) pentru a descărca procesorul central pentru această sarcină. Unul dintre primii drivere care a susținut accelerarea hardware a fost driverul 3dfx pentru API-ul Glide pentru foarte popularele Voodoo I / II și alte plăci grafice . Toate randările au fost realizate indirect în serverul X , ceea ce nu a fost optim în ceea ce privește viteza de redare.
Infrastructura Direct Rendering (DRI) , în cele din urmă a reușit arhitectura veche în cadrul Mesa 3D, oferind o interfață directă de randare 3D pentru aplicații OpenGL.
Versiunea 7.4 a permis hardware-ului suportat (mai întâi Intel, ATI și NVidia mai târziu) să profite de evoluțiile sistemului grafic Linux care sunt Graphics Execution Manager (GEM) și DRI2 , apoi codul Gallium3D a fost integrat în versiunea 7.5.
Versiunea 7.5 lansată pe 17 iulie 2009 implementează OpenGL versiunea 2.1.
Versiunea 7.6, lansată pe 28 septembrie 2009, include suport OpenVG și o implementare alfa a llvmpipe ( mașină virtuală de nivel scăzut ) dezvoltată de José Fonseca și Zack Rusin pentru VMware , făcând posibilă accelerarea anumitor părți ale codului în timpul interpretării pur software prin precompilarea codului.
Versiunea 7.7, lansată pe 21 decembrie 2009, adaugă driverul Gallium „ SVGA ” de la VMware, permițând sistemelor oaspeți să beneficieze de accelerarea 3D în contextul virtualizării .
Versiunea 8.0 lansată pe 9 februarie 2012 implementează versiunea 3.0 a OpenGL.
Versiunea 9.0, lansată pe 8 octombrie 2012, aduce suport pentru OpenGL 3.1. În ceea ce privește în mod specific driverele gratuite bazate pe Gallium3D, această versiune adaugă suportul OpenCL pentru cipurile Nvidia și AMD (driverul R600g pare totuși cel mai avansat dintre driverele gratuite în materie) și cel al VDPAU (pentru moment limitat la MPEG1 și MPEG2).
Versiunea 9.1, lansată pe 22 februarie 2013, aduce suport pentru OpenGL ES 3.0.
Versiunea 9.2, lansată pe 27 august 2013, integrează driverul Gallium3D pentru cipurile Adreno , proiectat de Qualcomm pentru a echipa SoC-urile ARM Snapdragon .
Versiunea 10.0, lansată pe 30 noiembrie 2013, integrează DRI3 și oferă suport pentru OpenGL 3.2 și 3.3.
Versiunea 10.1, lansată pe 4 martie 2014, îmbunătățește suportul OpenGL 3.3 prin adăugarea unor cipuri nVidia și ATI.
Versiunea 10.2, lansată 6 iunie 2014, este primul care este legat implicit de llvmpipe . Acest lucru îmbunătățește foarte mult randarea software-ului (fără accelerarea de către un cip grafic).
Versiunea 10.3, lansată pe 19 septembrie 2014, îmbunătățește suportul OpenGL 4.x prin adăugarea de funcții ale acestui API.
Versiunea 10.4 a fost lansată pe 14 decembrie 2014.
Versiunea 11.0, lansată pe 12 septembrie 2015 implementează OpenGL 4.1.
Versiunea 12.0, lansată pe 8 iulie 2016implementează OpenGL 4.3, adaugă suport parțial pentru Vulkan .
Versiunea 13.0 lansată pe 1 st luna noiembrie în 2016 implementează OpenGL 4.4.
Versiunea 17.0 lansată pe 13 februarie 2017 implementează OpenGL 4.5.
Versiunea 17.1 lansată pe 10 mai 2017 implementează umbrere geometrice în software rasterizer, OpenGL 4.2 pe arhitecturi Intel i965.
Versiunea 17.2 lansată pe 4 septembrie 2017 oferă câteva funcții suplimentare în funcție de arhitecturi.
Versiunea 17.3 lansată pe 8 decembrie 2017 adaugă libtxc_dxtn, activează implicit compresiile de textură GL_EXT_texture_compression_s3tc și GL_ANGLE_texture_compression_dxt, pe arhitecturile care o susțin.
Versiunea 18.0 lansată pe 27 martie 2018 implementează OpenGL 4.5.
Versiunea 19.0 lansată pe 13 martie 2019 implementează OpenGL 4.5.
Versiunea 19.1 lansată pe 11 iunie 2019 implementează OpenGL 4.5.
Versiunea 19.2 lansată pe 25 septembrie 2019, implementează suport Vulkan 1.1, îmbunătățește driverul Panfrost pentru procesoarele grafice ARM Mali , ale familiilor Midgard și, care asociat cu lansarea kernel-ului Linux 5.2, face X11 utilizabil cu acest driver.
Versiunea 20.3, lansată pe 3 decembrie 2020, implementează GL 4.5 pentru llvmpipe, adaugă driverul Lavapipe, echivalentul său pentru Vulkan, Zink, care mapează OpenGL cu Vulkan, acceptă OpenGL 3.3. Noile drivere V3DK (Vulkan pentru Broadcom BCM2711). În cele din urmă, sunt acceptate noi GPU-uri, inclusiv GPU-uri ARM Mali Bifrost prin Panfrost, GPU-uri Intel Gen12 Alder Lake, precum și grafică AMD Dimgrey Cavefish și VanGogh.