Mesa (gràfics)

De la Viquipèdia, l'enciclopèdia lliure
Mesa

Tipusprogramari lliure, graphics library (en) Tradueix, biblioteca informàtica i C library (en) Tradueix Modifica el valor a Wikidata
Versió inicialagost 1993 Modifica el valor a Wikidata
Versió estable
24.0.6 (24 abril 2024) Modifica el valor a Wikidata
Versió prèvia
24.1.0-rc1 (24 abril 2024) Modifica el valor a Wikidata


Llicènciallicència MIT Modifica el valor a Wikidata
Característiques tècniques
Sistema operatiuLinux, FreeBSD, NetBSD, OpenBSD i Haiku Modifica el valor a Wikidata
Escrit enC++, C i Llenguatge assemblador Modifica el valor a Wikidata
Equip
Creador/sBrian Paul Modifica el valor a Wikidata
Desenvolupador(s)Intel, Red Hat, Tungsten Graphics, VMware, AMD, Collabora, Valve Corporation, Kenneth William Graunke, Ian Damian Romanick, Caio Marcelo de Oliveira Filho, Timothy Arceri i José R Fonseca (en) Tradueix Modifica el valor a Wikidata
Més informació
Lloc webmesa3d.org (anglès) Modifica el valor a Wikidata
Stack ExchangeEtiqueta Modifica el valor a Wikidata
SourceForgemesa3d Modifica el valor a Wikidata
Seguiment d'errorsSeguiment d'errors Modifica el valor a Wikidata
Free Software DirectoryMesa Modifica el valor a Wikidata

Mesa, també anomenada Mesa3D i The Mesa 3D Graphics Library, és una implementació de codi obert d'OpenGL, Vulkan i altres especificacions de l'API gràfica. Mesa tradueix aquestes especificacions a controladors de maquinari gràfics específics del proveïdor.

Els seus usuaris més importants són dos controladors de gràfics desenvolupats i finançats principalment per Intel i AMD per al seu maquinari respectiu (AMD promou els seus controladors Mesa Radeon i RadeonSI sobre l'AMD Catalyst obsolet, i Intel només ha donat suport al controlador Mesa). Els controladors de gràfics propietaris (per exemple, el controlador Nvidia GeForce i Catalyst) substitueixen tot el Mesa, proporcionant la seva pròpia implementació d'una API de gràfics. La comunitat desenvolupa sobretot un esforç de codi obert per escriure un controlador Mesa Nvidia anomenat Nouveau.

Els videojocs subcontracten els càlculs de renderització a la GPU mitjançant OpenGL en temps real. Els shaders s'escriuen en OpenGL Shading Language o SPIR-V i es compilen a la CPU. Els programes compilats s'executen a la GPU.

A més d'aplicacions 3D com els jocs, els servidors de visualització moderns (X.org's Glamour o Wayland 's Weston) utilitzen OpenGL/EGL; per tant, tots els gràfics solen passar per Mesa.

Il·lustració de la pila de gràfics de Linux: DRM i libDRM, Mesa 3D. El servidor de visualització pertany al sistema de finestres i no és necessari, per exemple, per als jocs.

Mesa està allotjada per freedesktop.org i va ser iniciada l'agost de 1993 per Brian Paul, que encara està actiu en el projecte. Posteriorment Mesa va ser àmpliament adoptat i ara conté nombroses contribucions de diverses persones i corporacions d'arreu del món, inclosos els fabricants de maquinari gràfic del grup Khronos que administren l'especificació OpenGL. Per a Linux, el desenvolupament també ha estat parcialment impulsat pel crowdfunding.[1]

Visió general[modifica]

Les implementacions gratuïtes de Wayland es basen en la implementació de Mesa d' EGL. La biblioteca especial anomenada libwayland-EGL, escrita per donar cabuda a l'accés al framebuffer, hauria d'haver quedat obsoleta per la versió EGL 1.5. Al GDC 2014, AMD estava explorant un canvi d'estratègia per utilitzar DRM en comptes del seu blob dins del nucli.[2]

Implementacions d'API de renderització[modifica]

Mesa es coneix com a implementacions d'allotjament d'API gràfiques. Històricament, la principal API que Mesa ha implementat és OpenGL, juntament amb altres especificacions relacionades amb Khronos Group (com OpenVG, OpenGL ES o recentment EGL). Però Mesa pot implementar altres API i, de fet, ho va fer amb Glide (obsolet) i Direct3D 9 des del juliol de 2013.[3] Mesa tampoc és específic dels sistemes operatius semblants a Unix: a Windows, per exemple, Mesa proporciona una API OpenGL a través de DirectX.

Mesa implementa una capa de traducció entre una API gràfica com OpenGL i els controladors de maquinari gràfic del nucli del sistema operatiu. La versió admesa de les diferents API gràfiques depèn del controlador, perquè cada controlador de maquinari té la seva pròpia implementació (i, per tant, estat). Això és especialment cert per als controladors "clàssics", mentre que els controladors Gallium3D comparteixen codi comú que tendeixen a homogeneïtzar les extensions i versions compatibles.

Mesa manté una matriu de suport amb l'estat de la conformitat actual d'OpenGL [4][5] visualitzat a mesamatrix.net. Mesa 10 compleix amb OpenGL 3.3 per a maquinari Intel, AMD/ATI i GPU Nvidia. Es va anunciar Mesa 11 amb alguns controladors compatibles amb OpenGL 4.1.[6]

Mesa 12 conté OpenGL 4.2 i 4.3 i suport Intel Vulkan 1.0.

Mesa 13 va aportar suport d'Intel per a OpenGL 4.4 i 4.5 (totes les funcions són compatibles amb Intel Gen 8+, Radeon GCN, Nvidia (Fermi, Kepler), però no Khronos-Test per a 4.5-Label) i suport experimental AMD Vulkan 1.0 a través del controlador de la comunitat RADV. OpenGL ES 3.2 és possible amb Intel Skylake (Gen9).[7]

La primera versió estable de 2017 és la 17.0 (compte de l'any nou).[8][9] Les funcions Ready estan certificades OpenGL 4.5, OpenGL 4.5 per a Intel Haswell,[10][11] OpenGL 4.3 per a Nvidia Maxwell i Pascal (GM107+).[12] Es va mesurar un gran guany de rendiment amb Maxwell 1 (GeForce GTX 750 Ti i més amb GM1xx). Les targetes Maxwell-2-Cards (GeForce GTX 980 i més amb GM2xx) estan sota clock sense informació de Nvidia.[13]

Història[modifica]

L'iniciador del projecte Brian Paul era un aficionat als gràfics. Va pensar que seria divertit implementar una simple biblioteca de gràfics en 3D mitjançant l'API d'OpenGL, que després podria utilitzar en lloc de VOGL (biblioteca GL Like molt normal).[14] A partir de 1993, va passar divuit mesos de desenvolupament a temps parcial abans de llançar el programari a Internet el febrer de 1995.[15] El programari va ser ben rebut i la gent va començar a contribuir al seu desenvolupament. Mesa va començar representant tots els gràfics d'ordinador en 3D a la CPU. Malgrat això, l'arquitectura interna de Mesa va ser dissenyada per estar oberta per connectar-se a la representació 3D accelerada del processador gràfic. En aquesta primera fase, la renderització es va fer de manera indirecta al servidor de visualització, deixant una mica de sobrecàrrega i una velocitat notable endarrerida del màxim teòric. El Diamond Monster 3D, utilitzant el chipset Voodoo Graphics, va ser un dels primers dispositius de maquinari 3D suportats per Mesa.

El primer suport de maquinari gràfic veritable es va afegir a Mesa el 1997, basat en l'API Glide per a les llavors noves targetes gràfiques 3dfx Voodoo I/II i els seus successors.[16] Un problema important d'utilitzar Glide com a capa d'acceleració era l'hàbit de Glide per executar-se a pantalla completa, que només era adequat per a jocs d'ordinador. A més, Glide va bloquejar la memòria de la pantalla i, per tant, es va bloquejar el servidor de visualització per fer cap altra tasca de la GUI.[17]

Referències[modifica]

  1. «Improve OpenGL support for the Linux Graphics Drivers - Mesa» (en anglès). Indiegogo, 11-12-2013. [Consulta: 21 gener 2015].
  2. «AMD exploring new Linux driver Strategy» (en anglès), 22-03-2014. [Consulta: 23 març 2014].
  3. «Direct3D 9 Support Released For Linux Via Gallium3D, Running Games - Phoronix» (en anglès). Phoronix.com. [Consulta: 1r agost 2018].
  4. «mesa/mesa - The Mesa 3D Graphics Library» (en anglès). [Consulta: 2 novembre 2016].
  5. «The OpenGL vs Mesa matrix» (en anglès), 25-03-2015. [Consulta: 29 març 2015].
  6. «Mesa 11.0 Has Been Branched, The Release March Begins» (en anglès), 22-08-2015. [Consulta: 22 agost 2015].
  7. «RADV Radeon Vulkan Driver Submitted for Review to be Included in Mesa - Phoronix» (en anglès). Arxivat de l'original el 4 novembre 2016. [Consulta: 3 novembre 2016].
  8. «mesa/mesa - The Mesa 3D Graphics Library» (en anglès). Cgit.freedesktop.org. [Consulta: 1r agost 2018].
  9. «The Big Changes, Improvements of Mesa 17.0 - Phoronix» (en anglès). Phoronix.com. [Consulta: 1r agost 2018].
  10. «mesa/mesa - The Mesa 3D Graphics Library» (en anglès). Cgit.freedesktop.org. [Consulta: 1r agost 2018].
  11. «Program» (en anglès). www.x.org, 2016.
  12. «mesa/mesa - The Mesa 3D Graphics Library» (en anglès). Cgit.freedesktop.org. [Consulta: 1r agost 2018].
  13. «A Look at the Huge Performance Boosts With Nouveau Mesa 17.0-devel on Maxwell - Phoronix» (en anglès). Phoronix.com. [Consulta: 1r agost 2018].
  14. «Mesa Introduction» (en anglès). Mesa Team. Arxivat de l'original el 4 maig 2015. [Consulta: 8 juny 2015].
  15. «Project History» (en anglès). Mesa Documentation. [Consulta: 11 març 2021].
  16. Paul, Brian. «Introduction to the Direct Rendering Infrastructure» (en anglès). Dri.sourceforge.net, 10-08-2000. [Consulta: 25 gener 2012].
  17. «What's the relationship between Glide and DRI?» (en anglès). dri.freedesktop.org. [Consulta: 25 gener 2012].