Articulo de referencia

Mesa (gráficos por computadora)

'''Formerly:''' Tungsten Graphics {{cite news|url=http://www.infoworld.com/d/virtualization/vmwares-year-end-acquisition-tungsten-graphics-196|title=VMware's year end acquisitio...

Mesa , también conocida como Mesa3D y The Mesa 3D Graphics Library , es una implementación de código abierto de OpenGL , OpenGL ES , Vulkan y otras especificaciones de API gráficas , así como OpenCL para computación en GPU. Mesa implementa estas especificaciones con controladores de hardware gráfico específicos del proveedor, controladores de renderizado de software, controladores de capas (de traducción) y más [ 3 ] .

En los sistemas Linux, la aceleración de GPU se proporciona principalmente a través de Mesa. AMD admite los controladores RadeonSI y RADV en Mesa como sus controladores de GPU oficiales en Linux [ 4 ] . Intel solo ha admitido los controladores Mesa en sistemas Linux. Google utiliza el controlador Freedreno en Mesa en algunos Chromebooks con procesadores Qualcomm [ 5 ] . Los sistemas con tarjetas Nvidia suelen usar el controlador propietario Nvidia GeForce , pero hay esfuerzos en curso para escribir controladores Mesa Nvidia llamados Nouveau y NVK [ 6 ] . A partir de 2026, NVK todavía suele ser más lento que el controlador propietario, pero la diferencia de rendimiento está disminuyendo continuamente a medida que se desarrolla más [ 7 ] .

Además de las aplicaciones 3D como los juegos, los servidores de visualización modernos ( Glamor de X.org o Weston de Wayland ) utilizan OpenGL/ EGL ; por lo tanto, todos los gráficos suelen pasar por Mesa.

Mesa está alojado en freedesktop.org y fue iniciado en agosto de 1993 por Brian Paul , quien aún participa activamente en el proyecto. Posteriormente, Mesa fue ampliamente adoptado y ahora cuenta con numerosas contribuciones de diversas personas y empresas de todo el mundo, incluyendo a la mayoría de los fabricantes de hardware gráfico y otras partes interesadas, como Valve Corporation .

Descripción general

Los videojuegos delegan los cálculos de renderizado a la GPU mediante OpenGL en tiempo real. Los sombreadores se escriben en OpenGL Shading Language o SPIR-V y se compilan en la CPU. Los programas compilados se ejecutan en la GPU.
Ilustración de la pila gráfica de Linux : DRM y libDRM, Mesa 3D . El servidor de visualización pertenece al sistema de ventanas y no es necesario, por ejemplo, para juegos.

Implementaciones de API de renderizado

Las implementaciones libres de Wayland dependen de la implementación de EGL de Mesa . La biblioteca especial llamada libwayland-EGL , escrita para facilitar el acceso al framebuffer , debería haber quedado obsoleta con el lanzamiento de EGL 1.5. En la GDC 2014 , AMD estaba explorando un cambio de estrategia hacia el uso de DRM en lugar de su blob en el kernel. [ 8 ]
Captura de pantalla de glxinfo, que muestra información de la implementación de OpenGL de Mesa en un sistema y glxgears, un programa para probar la implementación de OpenGL en un sistema

Mesa es conocida por albergar implementaciones de API gráficas . Históricamente, la API principal que Mesa ha implementado es OpenGL , junto con otras especificaciones relacionadas con el Grupo Khronos (como OpenVG , OpenGL ES o, más recientemente, EGL ). Pero Mesa puede implementar otras API y, de hecho, lo hizo con Glide (obsoleto) y Direct3D 9 desde julio de 2013. [ 9 ] Mesa tampoco es específica de sistemas operativos tipo Unix: en Windows, por ejemplo, Mesa proporciona una API OpenGL sobre DirectX.

Mesa implementa una capa de traducción entre una API gráfica como OpenGL y los controladores de hardware gráfico del núcleo del sistema operativo. La versión compatible de las distintas API gráficas depende del controlador, ya que cada controlador de hardware tiene su propia implementación (y, por lo tanto, su estado). Esto es especialmente cierto para los controladores "clásicos", mientras que los controladores Gallium3D comparten código común que tiende a homogeneizar las extensiones y versiones compatibles.

Mesa mantiene una matriz de soporte con el estado de la conformidad actual de OpenGL [ 10 ] [ 11 ] visualizada en mesamatrix .net .

Tabla de API de renderizado

Vulcano

El Grupo Khronos anunció oficialmente la API Vulkan en marzo de 2015 y lanzó Vulkan 1.0 el 16 de febrero de 2016. Vulkan rompe la compatibilidad con OpenGL y abandona por completo su concepto de máquina de estados monolítica. Los desarrolladores de Gallium3D describieron Vulkan como algo similar a Gallium3D 2.0: Gallium3D separa el código que implementa la máquina de estados de OpenGL del código específico del hardware.

La versión 1.3 está disponible de inmediato con Mesa 22.0. El hardware compatible con OpenGL ES 3.1 debería funcionar con Vulkan Nivel 1.3 o anterior. [ 54 ]

Así como Gallium3D procesa TGSI, Vulkan procesa SPIR-V ( Standard Portable Intermediate Representation versión "V", como en "Vulkan").

Intel lanzó su implementación de un controlador Vulkan para su hardware el mismo día en que se publicó oficialmente la especificación, pero no se integró en el núcleo hasta abril y, por lo tanto, pasó a formar parte de Mesa 12.0, lanzado en julio de 2016. Si bien el controlador i965 ya no se había escrito de acuerdo con las especificaciones de Gallium3D, para el controlador Vulkan tiene aún menos sentido adaptarlo a Gallium3D. De manera similar, no hay ninguna razón técnica para adaptarlo a NIR, pero aun así, los empleados de Intel implementaron su controlador Vulkan de esa manera. [ 55 ]

Es de esperar que el controlador Vulkan propietario de AMD, que se lanzó en marzo y se anunció que se lanzaría como software libre y de código abierto en el futuro y se integraría en Mesa, también abandone Gallium3D. [ 56 ]

RADV es un proyecto gratuito para AMD y está disponible desde la versión 13. [ 57 ] La conformidad con Khronos-Test llegó en la versión 17.3. Actualmente, cuenta con soporte completo para Vulkan 1.0 y 1.1 desde Mesa 18.1.

Nvidia lanzó su controlador GeForce propietario con soporte para Vulkan el día del lanzamiento, e Imagination Technologies (PowerVR), Qualcomm (Adreno) y ARM (Mali) han hecho lo mismo o, al menos, han anunciado controladores Vulkan propietarios para Android y otros sistemas operativos. Sin embargo, aún está por verse cuándo y si aparecerán implementaciones adicionales de Vulkan gratuitas y de código abierto para estas GPU.

Mesa Software Driver VIRGL comienza el desarrollo de Vulkan en 2018 con proyectos GSOC para el soporte de máquinas virtuales. [ 58 ]

Lavapipe es un controlador Vulkan de software basado en CPU y hermano de LLVMpipe. Mesa versión 21.1 admite Vulkan 1.1+. [ 59 ]

Google introduce el controlador Venus Vulkan para máquinas virtuales en Mesa 21.1 con soporte completo para Vulkan 1.2+. [ 60 ]

Qualcomm Turnip y Broadcom v3dv son nuevos controladores para hardware Qualcomm Adreno y Broadcom Raspberry 4. Turnip es el equivalente de freedreno para OpenGL en Vulkan. V3dv admite Vulkan 1.0+ desde Mesa 20.3. En la versión 21.1, Turnip admite Vulkan 1.1+. [ 61 ] [ 62 ] [ 63 ]

Panfrost PanVK para ARM Mali está en camino a Vulkan 1.1, pero solo la versión 1.0 está disponible de forma estable con Mesa 22.0. [ 64 ]

Project Dozen conecta Direct 3D 12 (d3d12) con Vulkan para la emulación de Linux WSL2 en Windows 10 y 11. En Mesa 23.2, Vulkan 1.0 es totalmente compatible y ofrece compatibilidad con el 80% de las versiones 1.1 y 1.2 (mesamatrix). [ 65 ] [ 66 ]

Vallado explícito

Una barrera de memoria que separa un búfer del resto se denomina valla. Las vallas garantizan que un búfer no se sobrescriba antes de que finalicen las operaciones de renderizado y visualización. El uso de vallas implícitas permite la sincronización entre los controladores gráficos y el hardware de la GPU. La valla indica cuándo un componente deja de usar un búfer para que otro pueda procesarlo o reutilizarlo. Anteriormente, el kernel de Linux contaba con un mecanismo de vallas implícitas, donde una valla se adjuntaba directamente a un búfer (como los identificadores GEM y los descriptores de archivo), pero el espacio de usuario lo desconocía. El uso de vallas explícitas expone las vallas al espacio de usuario, que las obtiene tanto del subsistema Direct Rendering Manager (DRM) como de la GPU. Vulkan requiere el uso de vallas explícitas, las cuales ofrecen ventajas para el rastreo y la depuración.

El kernel de Linux 4.9 añadió el marco de sincronización de Android a la rama principal. [ 67 ]

Gestión genérica de búferes

La administración genérica de búferes (GBM) es una API que proporciona un mecanismo para asignar búferes para la renderización de gráficos vinculada a Mesa. GBM está diseñada para usarse como una plataforma nativa para EGL en DRM u openwfd. El identificador que crea se puede usar para inicializar EGL y para crear búferes de destino de renderización. [ 68 ]

Mesa GBM es una abstracción de las API de gestión de búfer específicas del controlador gráfico (por ejemplo, las diversas bibliotecas libdrm_*), implementada internamente mediante llamadas a los controladores de GPU Mesa.

Por ejemplo, el compositor Wayland Weston realiza su renderizado utilizando OpenGL ES 2, que inicializa mediante una llamada a EGL. Dado que el servidor se ejecuta en el " controlador KMS básico ", utiliza la plataforma DRM EGL, que en realidad podría denominarse plataforma GBM, puesto que se basa en la interfaz Mesa GBM.

En XDC2014, el empleado de Nvidia, Andy Ritger, propuso mejorar EGL para reemplazar GBM. [ 69 ] Esto no fue bien recibido por la comunidad, y Nvidia finalmente cambió de opinión, [ 70 ] y adoptó otro enfoque.

Implementaciones de API de aceleración de vídeo

Existen tres formas posibles de realizar los cálculos necesarios para la codificación y decodificación de secuencias de vídeo:

  1. Utilizar una implementación de software de un algoritmo de compresión o descompresión de vídeo (comúnmente llamado CODEC) y ejecutar este software en la CPU .
  2. utilizar una implementación de software de un algoritmo de compresión o descompresión de vídeo (comúnmente llamado CODEC) y ejecutar este software en la GPU (el motor de renderizado 3D )
  3. Utilizan una implementación de hardware completa (o parcial) de un algoritmo de compresión o descompresión de vídeo; se ha vuelto muy común integrar estos ASIC en el chip de la GPU/CPU/SoC y, por lo tanto, están ampliamente disponibles; por razones de marketing, las empresas han establecido marcas para sus ASIC, como PureVideo (Nvidia), Unified Video Decoder (AMD), Video Coding Engine (AMD), Quick Sync Video (Intel), DaVinci (Texas Instruments), CedarX (Allwinner), Crystal HD (Broadcom); algunos ASIC están disponibles para su licencia como núcleo de propiedad intelectual de semiconductores ; normalmente, diferentes versiones implementan diferentes algoritmos de compresión y/o descompresión de vídeo; el soporte para estos ASIC generalmente pertenece al controlador del kernel, para inicializar el hardware y realizar tareas de bajo nivel. Mesa, que se ejecuta en el espacio de usuario, alberga las implementaciones de varias API para software, por ejemplo, el reproductor multimedia VLC , GStreamer , HandBrake , etc., para acceder convenientemente a estos ASIC:

Por ejemplo, Nouveau , que se ha desarrollado como parte de Mesa, pero que también incluye un componente del kernel de Linux, que se está desarrollando como parte del kernel de Linux, admite los ASIC de la marca PureVideo y proporciona acceso a ellos a través de VDPAU y parcialmente a través de XvMC . [ 71 ]

El controlador radeon gratuito admite el decodificador de vídeo unificado y el motor de codificación de vídeo a través de VDPAU y OpenMAX. [ 72 ]

V4L2 es una interfaz entre el núcleo del sistema operativo y el espacio de usuario para flujos de bits de vídeo proporcionados por cámaras web o sintonizadores de televisión.

Debido a problemas de patentes relacionados con los códecs de vídeo H.264 , H.265 y VC-1 , Fedora Linux deshabilitó la compatibilidad con la aceleración VAAPI para estos en su compilación de Mesa en septiembre de 2022. [ 73 ]

Controladores de dispositivos

Los controladores de dispositivos gráficos se implementan mediante dos componentes: un UMD (controlador en modo usuario) y un KMD (controlador en modo kernel). A partir del kernel de Linux 4.2, AMD Catalyst y Mesa compartirán el mismo controlador del kernel de Linux: amdgpu . Amdgpu proporciona interfaces definidas por DRM y KMS.

Los controladores de dispositivos gratuitos y de código abierto disponibles para conjuntos de chips gráficos son "administrados" por Mesa (porque la implementación gratuita y de código abierto existente de las API se desarrolla dentro de Mesa). Actualmente hay dos marcos para escribir controladores gráficos: "clásico" y Gallium3D. [ 74 ] Se ofrece una descripción general de algunos (pero no todos) los controladores disponibles en Mesa en mesamatrix.net .

Existen controladores de dispositivos para tarjetas AMD/ATI R100 a R800, Intel y Nvidia con aceleración 3D. Anteriormente existían controladores para el procesador IBM/Toshiba/Sony Cell de la PlayStation 3 , los chipsets S3 Virge y Savage , los chipsets VIA, Matrox G200 y G400, y otros. [ 75 ]

Los controladores libres y de código abierto compiten con los controladores propietarios de código cerrado. Dependiendo de la disponibilidad de documentación de hardware y personal, los controladores libres y de código abierto se quedan más o menos rezagados en cuanto a la compatibilidad con la aceleración 3D del nuevo hardware. Además, el rendimiento de la renderización 3D solía ser significativamente más lento, con algunas excepciones notables. [ 76 ] [ 77 ] [ 78 ] [ 79 ] Hoy en día, esto sigue siendo cierto para Nouveau en la mayoría de las GPU de NVIDIA, mientras que en las GPU Radeon de AMD, el controlador abierto ahora iguala o supera en la mayoría de los casos el rendimiento del controlador propietario.

Infraestructura de renderizado directo (DRI)

Cuando las tarjetas gráficas 3D se popularizaron en las PC, algunos individuos, con el apoyo parcial de ciertas empresas, comenzaron a trabajar para añadir más compatibilidad con la renderización 3D acelerada por hardware a Mesa. La Infraestructura de Renderización Directa (DRI) fue uno de estos enfoques para conectar Mesa, OpenGL y otras bibliotecas de API de renderización 3D con los controladores de dispositivos y el hardware. Tras alcanzar un nivel básico de usabilidad, la compatibilidad con DRI se añadió oficialmente a Mesa. Esto amplió significativamente el rango de compatibilidad de hardware disponible al usar la biblioteca Mesa. [ 80 ]

Al adaptarse a DRI, la biblioteca Mesa finalmente asumió el rol del componente de interfaz de un marco OpenGL completo con diversos componentes de backend que podían ofrecer distintos grados de soporte de hardware 3D sin perder la capacidad total de renderizado por software. El sistema completo utilizaba muchos componentes de software diferentes. [ 80 ]

Si bien el diseño requiere que todos estos componentes interactúen cuidadosamente, las interfaces entre ellos son relativamente fijas. No obstante, dado que la mayoría de los componentes que interactúan con la pila Mesa son de código abierto, a menudo se realizan trabajos experimentales modificando varios componentes a la vez, así como las interfaces entre ellos. Si dichos experimentos resultan exitosos, pueden incorporarse a la siguiente versión principal o secundaria. Esto se aplica, por ejemplo, a la actualización de la especificación DRI desarrollada entre 2007 y 2008. El resultado de esta experimentación, DRI2, funciona sin bloqueos y con soporte mejorado para el búfer de respaldo. Para ello, se creó una rama especial de Git de Mesa. [ 81 ]

DRI3 es compatible con el controlador de Intel desde 2013 [ 82 ] [ 83 ] y viene por defecto en algunas distribuciones de Linux desde 2016 [ 84 ] para habilitar la compatibilidad con Vulkan y más. También viene por defecto en el hardware de AMD desde finales de 2016 (X.Org Server 1.18.3 y versiones posteriores). [ 85 ]

Renderizadores de software

Mesa también contiene múltiples implementaciones de renderizado por software , softpipe , llvmpipe y lavapipe , que permiten que OpenGL, Vulkan y más se ejecuten en la CPU como alternativa cuando no hay aceleradores de hardware gráfico presentes [ 86 ] .

VirGL es un rasterizador para máquinas virtuales implementado en Mesa 11.1 desde 2015 con soporte para OpenGL 3.3 y mostrado en Mesamatrix desde Mesa 18. En la nueva Mesa 18.2, ofrece más soporte que otros con OpenGL 4.3 y OpenGL ES 3.2. Aproximadamente el 80% de las características de OpenGL 4.4 y 4.5 también están listas. El desarrollo de Vulkan comienza con los proyectos de GSOC 2018. [ 87 ] [ 88 ] [ 89 ] [ 58 ] [ 90 ] [ 91 ] [ 92 ]

El estado actual de virGL en Mesamatrix es soporte completo para OpenGL 4.6+ y OpenGL ES 3.2+ con algunos programas necesarios para Linux. [ 93 ]

D3d12 es un proyecto de Microsoft para la emulación de WSL2 de OpenGL 3.3+ y OpenCL 1.2+ con Direct3D 12. D3D12 se fusionó en 21.0. [ 94 ] El estado actual en Mesa 23.1 es OpenGL 4.2+ con casi 4.4+ y OpenGL ES 3.1+.

Venus es un nuevo controlador Vulkan VirtIO para GPU en máquinas virtuales de Google. Venus se integró en la versión 21.1 y se lanzó al público en la versión 21.2. [ 60 ] Venus admite Vulkan 1.3+ en Mesa 23.1. El hardware mínimo requerido es Vulkan 1.1 con algunas extensiones. [ 95 ]

Mega conductores

La idea de agrupar varios controladores en un único controlador "mega" fue propuesta por Emma Anholt. Esto permite que una sola copia del código compartido de Mesa se utilice entre varios controladores (en lugar de que exista en cada controlador por separado) y ofrece un mejor rendimiento que una biblioteca compartida independiente debido a la eliminación de la interfaz de la biblioteca interna. [ 96 ] Los rastreadores de estado para VDPAU y XvMC se han convertido en bibliotecas separadas. [ 97 ]

base de datos de sombreado

shader-db es una colección de aproximadamente 20 000 shaders recopilados de diversos videojuegos y pruebas de rendimiento, además de algunos scripts para compilarlos y obtener estadísticas. Shader-db está diseñado para ayudar a validar una optimización.

Se observó que una cantidad inesperada de sombreadores no estaban escritos a mano, sino generados. Esto significa que estos sombreadores se escribieron originalmente en HLSL y luego se tradujeron a GLSL mediante algún programa traductor, como por ejemplo HLSL2GLSL . El problema es que el código generado suele estar lejos de ser óptimo. Matt Turner comentó que era mucho más fácil solucionar esto en el programa traductor que hacer que el compilador de Mesa se encargara de procesar sombreadores tan complejos.

shader-db no puede considerarse software libre ni de código abierto. Para usarlo legalmente, se requiere una licencia para todos los videojuegos en los que se incluyan los shaders.

Arquitectura de software

Un controlador gráfico consta de una implementación de la máquina de estados de OpenGL y una pila de compilación para compilar los sombreadores al lenguaje de máquina de la GPU. Esta compilación, al igual que prácticamente todo lo demás, se ejecuta en la CPU; luego, los sombreadores compilados se envían a la GPU y esta los ejecuta. (SDL = Simple DirectMedia Layer ).
Las representaciones intermedias (IR) en Mesa son: GLSL IR, Mesa IR, TGSI y LLVM IR . Faltan HIR, LIR y NIR.
Mesa IR será retirada por completo.

Los denominados "controladores de dispositivos gráficos en modo de usuario" (UMD) en Mesa tienen muy pocas similitudes con lo que generalmente se denomina un controlador de dispositivo . Existen un par de diferencias:

  • Están diseñados para funcionar sobre controladores de dispositivos gráficos en modo kernel ya existentes, que, por ejemplo, están disponibles como parte del kernel de Linux que se encuentra en el código fuente. /drivers/gpu/drm/Cada UMD se comunica con su contraparte en modo kernel con la ayuda de una biblioteca específica, llamada libdrm_specific , y una genérica, llamada libdrm . Esta sección se centrará únicamente en la parte del modo usuario por encima de libdrm.
  • Existe alguna implementación de la máquina de estados finitos como la especificada por, por ejemplo, OpenGL; esta implementación de la máquina de estados de OpenGL puede ser compartida entre múltiples UMD o no.
  • Consisten en gran parte en algún tipo de compilador, que ingiere, por ejemplo, GLSL y finalmente genera código máquina . Los analizadores sintácticos pueden ser compartidos entre varios UMD o ser específicos.

Representaciones intermedias de Mesa

Uno de los objetivos de Mesa es la optimización del código que se ejecutará en la GPU correspondiente. Otro es el intercambio de código. En lugar de documentar las partes del software, este artículo se centrará en las representaciones intermedias utilizadas en el proceso de compilación y optimización. Véase el árbol de sintaxis abstracta (AST) y la forma de asignación única estática (forma SSA).

SPIR-V

SPIR-V es una versión específica de la Representación Intermedia Portátil Estándar (SPIR) . La idea es que las aplicaciones gráficas generen código SPIR-V en lugar de GLSL. A diferencia de este último, SPIR-V es binario para evitar diferencias de implementación entre los front-ends del compilador GLSL de diferentes implementaciones de controladores, ya que esto ha sido una fuente importante de incompatibilidades y errores en las aplicaciones. Además, el binario de SPIR-V suele pasar por optimizaciones generales. La representación binaria de SPIR-V también ofrece cierto grado de ofuscación, lo que podría resultar atractivo para algunos proveedores de software como forma de protección de la propiedad intelectual; sin embargo, SPIR-V contiene información suficiente para la reflexión y existen herramientas que lo traducen de nuevo a código de alto nivel legible por humanos y de alta calidad . Un UMD solo necesita aplicar optimizaciones específicas para el hardware compatible. [ 98 ]

GLSL IR

[ 99 ]

Mesa IR

NIR

NIR (New Internal Representation) se introdujo para superar las limitaciones de TGSI. [ 100 ] [ 101 ] NIR se extendió en las últimas versiones y versiones actuales como base del soporte Spir-V y es desde 2016 el área de desarrollo principal. LLVMpipe, i965, RadeonSI, Nouveau, freedreno, vc4 se cambiaron de TGSI a NIR. RADV, Zink y otros controladores nuevos comienzan con NIR. Todos los controladores con soporte completo para OpenGL 4.6 están relacionados con NIR mediante el soporte SPIR-V. Además, AMD r600 tiene una bifurcación con NIR para un mejor soporte de las series HD5000 y HD6000. Esta opción para r600 es predeterminada desde Mesa 21.0. [ 102 ]

TGSI

La infraestructura de sombreado de Tungsten Graphics (TGSI) fue presentada en 2008 por Tungsten Graphics. Todos los UMD de estilo Gallium3D admiten TGSI. NIR es ahora el área de desarrollo principal, por lo que TGSI solo es compatible con controladores antiguos como la infraestructura predeterminada r300g y se dejará de usar en unos años.

El código GLSL-To-TGSI se eliminará en Mesa 22.2. Por defecto, se utilizará la versión más reciente de NIR-to-TGSI con GLSL-to-NIR para todos los controladores NIR nativos. Algunos controladores TGSI más antiguos son compatibles con esta ruta de código NIR. Posteriormente, NIR-To-TGSI quedará obsoleto solo para los controladores NIR nativos. [ 103 ]

LLVM IR

llvmpipeNo genera código máquina, sino LLVM IR. A partir de aquí, LLVM realiza optimizaciones y la compilación a código máquina. Esto implica que también debe estar instalada una versión mínima de LLVM.

Compilador GLSL de Mesa

El compilador GLSL de Mesa genera su propio IR. Dado que cada controlador tiene requisitos muy diferentes a los de un LIR, distingue entre HIR (IR de alto nivel) y LIR (IR de bajo nivel).

Galio3D

Gallium3D es un conjunto de interfaces y una colección de bibliotecas de soporte [ 105 ] diseñadas para facilitar la programación de controladores de dispositivos para chipsets gráficos 3D para múltiples sistemas operativos, renderizado o API de aceleración de video. Es un software de controlador de dispositivos gráficos gratuito y de código abierto .

Se proporciona una matriz de características en mesamatrix.net .

El desarrollo de Gallium3D comenzó en 2008 en Tungsten Graphics, [ 106 ] y la implementación está disponible como software libre y de código abierto como parte de Mesa 3D, alojado en freedesktop.org . El objetivo principal es simplificar el desarrollo de controladores, agrupando el código duplicado de varios controladores diferentes en un solo punto y brindando soporte a las arquitecturas de hardware modernas. Esto se logra mediante una mejor división del trabajo, por ejemplo, dejando la gestión de memoria al controlador DRI del kernel .

Gallium3D ha sido parte de Mesa desde 2009 [ 107 ] y es utilizado por todos los controladores que no son Vulkan a partir de la versión 22.0 [ 108 ] . A partir de 2026, hay al menos 20 controladores Gallium3D [ 109 ] , incluidos controladores de hardware, implementaciones de software, paso de virtualización y capas de traducción que implementan Gallium3D sobre API como Vulkan , la API Metal de Apple y Direct3D 12 de Microsoft .

Arquitectura de software

Gallium3D facilita la programación de controladores de dispositivos dividiendo el controlador de dispositivo gráfico en tres partes. Esto se logra mediante la introducción de dos interfaces : la interfaz Gallium3D State Tracker y la interfaz Gallium3D WinSys . Los tres componentes se denominan:

Rastreador de estado de Galio3D
Cada API gráfica mediante la cual se accede a un controlador de dispositivo tiene su propio rastreador de estado; por ejemplo, existe un rastreador de estado de Gallium3D para OpenGL y otro diferente (Rusticl) para OpenCL . Cada rastreador de estado contiene una implementación de la interfaz del rastreador de estado de Gallium3D y es utilizado por todos los controladores de dispositivos de hardware de Gallium3D existentes.
Controlador de dispositivo de hardware Gallium3D
Este es el código específico del acelerador gráfico 3D subyacente, pero solo hasta donde lo permite la interfaz Gallium3D WinSys. Existe un controlador de hardware Gallium3D único para cada chip gráfico disponible, y cada uno implementa la interfaz Gallium3D State Tracker, así como la interfaz Gallium3D WinSys. El controlador de hardware Gallium3D entiende NIR (NIR Intermediate Representation, un acrónimo recursivo), un lenguaje intermedio para describir sombreadores. Este código tradujo los sombreadores NIR del rastreador de estado al conjunto de instrucciones implementado por la GPU.
Galio3D WinSys
Esto es específico del núcleo subyacente del sistema operativo , y cada uno implementa la interfaz Gallium3D WinSys para interactuar con todos los controladores de dispositivos de hardware Gallium3D disponibles.
La mayoría de los controladores de hardware pueden consumir NIR directamente (y recurrir a tgsi_to_nir para los sombreadores internos que no utilizan glsl_to_nir). Los controladores de hardware antiguos que aún necesitan TGSI pueden usar nir_to_tgsi para convertir el código NIR del rastreador de estado a TGSI.
Ilustración de la pila gráfica de Linux
Mesa/ DRI y Gallium3D tienen modelos de controladores diferentes. Ambos comparten gran parte de su código libre y de código abierto .
Ejemplo de matriz para la implementación del modelo de controlador Gallium3D. Gracias a la introducción de la interfaz Gallium3D Tracker y la interfaz Gallium3D WinSys, se requieren solo 18 módulos en lugar de 36. Cada módulo WinSys puede interactuar con cada módulo de controlador de dispositivo Gallium3D y con cada módulo State Tracker.

Diferencias con los controladores gráficos clásicos

Gallium3D proporciona una API unificada que expone funciones de hardware estándar, como unidades de sombreado que se encuentran en el hardware moderno. Por lo tanto, las API 3D como OpenGL 1.x/2.x, OpenGL 3.x, OpenVG , infraestructura GPGPU o incluso Direct3D (como se encuentra en la capa de compatibilidad de Wine ) necesitarán solo un único back-end, llamado rastreador de estado, dirigido a la API de Gallium3D. Por el contrario, los controladores de dispositivos DRI heredados requerían un back-end diferente para cada plataforma de hardware, y varias otras API necesitaban traducción a OpenGL, a costa de la duplicación de código. [ 110 ] [ 111 ] [ 112 ] Todos los controladores de dispositivos de proveedores, debido a su naturaleza propietaria y de código cerrado, están escritos de esa manera, lo que significa que, por ejemplo, AMD Catalyst implementa tanto OpenGL como Direct3D , y los controladores de proveedores para GeForce tienen sus implementaciones.

En Gallium3D, los controladores del kernel Direct Rendering Manager (DRM) gestionarán la memoria y los controladores Direct Rendering Interface (DRI2) estarán más orientados al procesamiento de la GPU. [ 113 ]

Infraestructura de sombreado de gráficos Tungsten

Tungsten Graphics Shader Infrastructure (TGSI) es una representación intermedia utilizada en algunas partes de Mesa. Los sombreadores escritos en OpenGL Shading Language se traducen/compilan a TGSI, se optimizan y, finalmente, los sombreadores TGSI se compilan en sombreadores para el conjunto de instrucciones de la GPU utilizada.

A partir de 2026, la mayoría de los conductores habrán dejado de usar TGSI y se habrán decantado por NIR.

Representación intermedia NIR

NIR es la representación intermedia principal en Mesa. El desarrollo de NIR comenzó en 2014 dentro de Intel y, con el tiempo, NIR ha reemplazado a TGSI en la mayor parte de Mesa [ 114 ] .

Historia

Los autores originales de Gallium3D fueron Keith Whitwell y Brian Paul en Tungsten Graphics (adquirida por VMware en 2008). [ 115 ]

Hitos

13-07-2008  ( 13-07-2008 )
El desarrollo de Nouveau se realiza exclusivamente para el marco de trabajo Gallium. El antiguo controlador DRI se eliminó de la rama principal del repositorio Mesa en Freedesktop.org. [ 116 ]
11-02-2009  ( 11-02-2009 )
La rama de galio-0.2 se fusionó con la rama principal Master de Mesa. [ 117 ] El desarrollo se realiza en la rama principal de Mesa.
25-02-2009  ( 25-02-2009 )
Gallium3D puede ejecutarse en núcleos Linux y FreeBSD. [ 118 ]
01-05-2009  ( 01-05-2009 )
Zack Rusin de Tungsten Graphics agregó el rastreador de estado OpenVG a Mesa 3D, [ 119 ] lo que permite que los gráficos vectoriales escalables sean acelerados por hardware por cualquier controlador basado en Gallium3D.
17-07-2009  ( 17-07-2009 )
Se lanza Mesa3D 7.5, la primera versión que incluye Gallium3D. [ 120 ]
10-09-2010  ( 10-09-2010 )
Se agregó soporte inicial para las GPU Evergreen al controlador r600g. [ 121 ]
21-09-2010  ( 21-09-2010 )
Existen dos controladores Gallium3D para hardware ATI, conocidos como r300g y r600g, para las GPU R300-R500 y R600-Evergreen respectivamente.
21-09-2010  ( 21-09-2010 )
Se realizaron importantes modificaciones al código para admitir Direct3D 10 y 11. [ 122 ] Con el tiempo, esto podría ofrecer la posibilidad de utilizar implementaciones recientes de Direct3D en sistemas Linux.
30-11-2011  ( 30-11-2011 )
Los controladores Intel 965g y Cell Gallium se eliminaron de la rama principal de Mesa por no recibir mantenimiento y estar defectuosos. [ 123 ] [ 124 ]
30-11-2013  ( 30-11-2013 )
Mesa 10 con OpenGL 3.2, 3.3 y OpenCL 1.0+
18-11-2014  ( 18-11-2014 )
Se realizaron importantes modificaciones al código para dar soporte a Direct3D 9. [ 125 ]
15-09-2015  ( 15-09-2015 )
Mesa 11 con OpenGL 4.0, 4.1 y OpenCL 1.2 (incompleto)
15/12/2015  ( 15/12/2015 )
Controlador VIRGL de Mesa 11.1 para máquinas virtuales con OpenGL 3.3
8 de julio de 2016  ( 8 de julio de 2016 )
Mesa 12 con OpenGL 4.2, 4.3 y Vulkan 1.0 (Intel ANV y AMD RADV)
01-11-2016  ( 01-11-2016 )
Mesa 13 con OpenGL 4.4 y OpenGL ES 3.2
13-02-2017  ( 13-02-2017 )
Mesa 17.0 con OpenGL 4.5 y controlador freedreno con OpenGL 3.0 y 3.1
10-05-2017  ( 10-05-2017 )
Mesa 17.1 OpenGL 4.2+ para Intel Ivy Bridge (más que el controlador Intel para Windows, OpenGL 3.3+ para Intel Open SWR Rasterizer (importante para computadoras en clúster para simulaciones enormes)
08-12-2017  ( 08-12-2017 )
Mesa 17.3 Controlador AMD Vulkan RADV totalmente compatible en la prueba Khronos de Vulkan 1.0
18-05-2018  ( 18-05-2018 )
Mesa 18.1 con Vulkan 1.1 (Intel ANV y AMD RADV)
07-09-2018  ( 07-09-2018 )
Mesa 18.2 con OpenGL 4.3 para Soft Driver VIRGL (importante para máquinas virtuales en clústeres de computación en la nube), OpenGL ES 3.1 para Freedreno con Adreno A5xx
11-06-2019  ( 11-06-2019 )
Mesa 19.1 se lanzó con el controlador de gráficos 'iris' de próxima generación de Intel para iGPU de generación 8+, creado con Gallium3D [ 126 ].
11/12/2019  ( 11/12/2019 )
Mesa 19.3 lanzó OpenGL 4.6 con Intel i965 de séptima generación o superior e Iris de octava generación o superior opcional.
18-03-2020  ( 18-03-2020 )
Mesa 20.0 lanzó OpenGL 4.6 con AMD GCN y Vulkan 1.2 para Intel.
27-05-2020  ( 27-05-2020 )
Mesa 20.1 lanzó soporte para vectorización NIR y soporte para memoria virtual compartida para OpenCL en Clover.
30-11-2020  ( 30-11-2020 )
Mesa 20.3 ofrece soporte completo para OpenCL 1.2 en Clover [ 15 ].
11/03/2021  ( 11/03/2021 )
Soporte inicial de Mesa 21.0 para "D3D12": Direct 3D 12 para WSL2 en Windows 10 con OpenGL 3.3+, ARM Freedreno: OpenGL 3.3+
05/05/2021  ( 05/05/2021 )
Soporte inicial de Mesa 21.1 para el controlador de GPU Google VirtIO "Venus" con Vulkan 1.2+; Zink: OpenGL 4.6+, OpenGL ES 3.1+; Qualcomm Turnip, Lavapipe: Vulkan 1.1+
04-08-2021  ( 04-08-2021 )
Mesa 21.2 se lanzó con un nuevo controlador Intel Crocus, basado en Gallium3D, que admite iGPU Intel Sandy Bridge hasta Haswell, reemplazando la necesidad del antiguo controlador i965 que no utilizaba Gallium3D. También se agregó el controlador PanVK Vulkan para GPU ARM Mali.
09-03-2022  ( 09-03-2022 )
Mesa 22.0 eliminó todos los controladores heredados que no eran de Gallium3D [ 127 ] . También tiene soporte completo para Vulkan 1.3 de Intel Anvil y AMD RADV.
10-05-2023  ( 10-05-2023 )
Mesa 23.1 OpenCL con Rust: RustiCL para hardware AMD GCN disponible (más hardware en desarrollo) [ 128 ]
30-09-2023  ( 30-09-2023 )
Mesa 23.2 con Apple Asahi OpenGL 3.1 y OpenGL ES 3.0, RADV admite Ray Tracing en AMD RDNA 2 y 3, soporte de decodificación H.265 de Intel Anvil Vulkan [ 129 ]

Actuación

Los controladores maduros en Mesa a menudo pueden superar a los controladores propietarios para ese mismo hardware. Particularmente en dispositivos de juegos portátiles que tienen limitaciones significativas tanto en potencia como en temperatura, se ha demostrado que ejecutar Linux con controladores Mesa supera de manera consistente y significativa a Windows con los controladores propietarios del fabricante en el mismo hardware [ 130 ] , a veces hasta en un 75% [ 131 ] . Microsoft supuestamente estableció un objetivo interno de poder igualar el rendimiento de SteamOS en dispositivos de juegos portátiles [ 132 ] .

Historia

El iniciador del proyecto, Brian Paul, era un aficionado a los gráficos. Pensó que sería divertido implementar una biblioteca de gráficos 3D simple usando la API OpenGL, que luego podría usar en lugar de VOGL (Very Ordinary GL Like Library). [ 133 ] A partir de 1993, pasó dieciocho meses de desarrollo a tiempo parcial antes de lanzar el software en Internet en febrero de 1995. [ 134 ] El software fue bien recibido y la gente comenzó a contribuir a su desarrollo. Mesa comenzó renderizando todos los gráficos 3D por computadora en la CPU . A pesar de esto, la arquitectura interna de Mesa fue diseñada para ser abierta para conectarse a la renderización 3D acelerada por el procesador gráfico . En esta primera fase, la renderización se hizo indirectamente en el servidor de visualización , dejando cierta sobrecarga y una velocidad notablemente inferior al máximo teórico. El Diamond Monster 3D , que usaba el chipset Voodoo Graphics , fue uno de los primeros dispositivos de hardware 3D compatibles con Mesa.

El primer soporte real para hardware gráfico se añadió a Mesa en 1997, basado en la API Glide para las entonces nuevas tarjetas gráficas 3dfx Voodoo I/II y sus sucesoras. [ 80 ] Un problema importante de usar Glide como capa de aceleración era su tendencia a ejecutarse en pantalla completa, lo cual solo era adecuado para juegos de ordenador. Además, Glide bloqueaba la memoria de pantalla, impidiendo así que el servidor de visualización realizara otras tareas de la interfaz gráfica de usuario. [ 135 ]

Mesa 10 cumple con OpenGL 3.3 para hardware de GPU Intel, AMD/ATI y Nvidia. Mesa 11 se anunció con algunos controladores compatibles con OpenGL 4.1. [ 136 ]

Mesa 12 incluye compatibilidad con OpenGL 4.2 y 4.3, así como con Intel Vulkan 1.0.

Mesa 13 incorporó soporte de Intel para OpenGL 4.4 y 4.5 (todas las características son compatibles con Intel Gen 8+, Radeon GCN, Nvidia (Fermi, Kepler), pero no hay prueba de Khronos para la etiqueta 4.5) y soporte experimental para AMD Vulkan 1.0 a través del controlador comunitario RADV. OpenGL ES 3.2 es posible con Intel Skylake (Gen9). [ 57 ]

La primera versión estable de 2017 es la 17.0 (contando el año nuevo). [ 40 ] [ 137 ] [ 138 ] Las características listas están certificadas OpenGL 4.5, OpenGL 4.5 para Intel Haswell, [ 139 ] [ 140 ] OpenGL 4.3 para Nvidia Maxwell y Pascal (GM107+). [ 141 ] Se midió una gran ganancia de rendimiento con Maxwell 1 (GeForce GTX 750 Ti y más con GM1xx). Las tarjetas Maxwell-2 (GeForce GTX 980 y más con GM2xx) tienen una frecuencia reducida sin información de Nvidia. [ 142 ]

El conjunto de pruebas Khronos CTS para OpenGL 4.4, 4.5 y OpenGL ES 3.0+ ya es de código abierto (24/01/2017) y todas las pruebas para Mesa 13 y 17 ahora se pueden realizar sin coste alguno. [ 143 ]

La segunda versión estable de 2017, la 17.1.0, se lanzó el 10 de mayo de 2017 con algunas mejoras interesantes. OpenGL 4.2+ para Intel Ivy Bridge y OpenGL 3.3+ para Intel Open SWR Rasterizer son dos de las novedades más destacadas. [ 144 ] [ 145 ]

Debido a la naturaleza modular de OpenGL, Mesa puede admitir extensiones de versiones más recientes de OpenGL sin afirmar que ofrece soporte completo para dichas versiones. Por ejemplo, en julio de 2016, Mesa admitía OpenGL ES 3.1, pero también todas las extensiones de OpenGL ES 3.2, excepto cinco, así como varias extensiones que no formaban parte de ninguna versión de OpenGL ni de OpenGL ES. [ 146 ]

La tercera versión, la 17.2, está disponible desde septiembre de 2017 e incluye nuevas características de OpenGL 4.6 y mejoras de velocidad en 3D para procesadores Intel y AMD. Solo el 1,4 % de las pruebas fallan con OpenGL 4.5 en Nouveau para Kepler. [ 147 ]

La versión 4.ª, la 17.3, está disponible desde diciembre de 2017. Se han implementado numerosas mejoras en muchos controladores. OpenGL 4.6 está prácticamente disponible (Spir-V aún no está listo). El controlador AMD Vulkan RADV ahora cumple totalmente con Khronos-Test. [ 148 ]

La primera versión de 2018 es la 18.0 y está disponible desde marzo de 2018 con el mismo esquema que en 2017. [ 13 ] La compatibilidad total con OpenGL 4.6 no está lista, pero muchas características y mejoras se probaron con éxito en RC3. La compatibilidad con 10 bits para Intel i965 en Colors también es un aspecto destacado. [ 149 ] La novedad es la compatibilidad con Intel Cannon Lake y AMD Vega con la versión actual de Linux. Los chips AMD Evergreen (RV800 o R900) están cerca de la compatibilidad con OpenGL 4.5. Los chips AMD R600 o RV700 antiguos solo pueden admitir OpenGL 3.3 con algunas características de OpenGL 4.x. Freedreno es el controlador para el hardware Adreno y está cerca de la compatibilidad con OpenGL 3.3.

La segunda versión de 2018 es la 18.1 y está disponible desde mayo. El objetivo es Vulkan 1.1.72 en el controlador Intel ANV y AMD RADV. OpenGL 4.6 con spir-V también es un objetivo principal. El trabajo permanente es la posible finalización de características y optimización de controladores para hardware más antiguo como AMD R600/Evergreen, Nvidia Tesla y anteriores, Fermi, Kepler o Intel Sandybridge, Ivybridge, Haswell o Broadwell. La arquitectura ARM también ha experimentado grandes mejoras en Adreno 3xx/4xx/5xx y Broadwell VC4/VC5 para Raspi con el objetivo principal OpenGL ES.

La tercera versión de 2018 es la 18.2 y estará disponible en la versión estable del calendario en septiembre. OpenGL 4.6 con spir-V y Vulkan 1.1.80 están en desarrollo. El controlador de software para máquinas virtuales VIRGL está listo para OpenGL 4.3 y OpenGL ES 3.2. RadeonSI también está listo para OpenGL ES 3.2. La compatibilidad con compresión de texturas ASTC y la compatibilidad con el modo de compatibilidad para OpenGL 4.4 (3.1 en la versión 18.1) son otras características destacadas de RadeonSI para tarjetas AMD GCN. El nuevo Vulkan 1.1 y más funciones para Intel y AMD están disponibles. Consulte más detalles sobre Vulkan en Mesamatrix. [ 35 ]

La cuarta versión de 2018 es la 18.3 y se lanzó como versión estable 18.3.1 en diciembre de 2018. Muchas características en detalle y la compatibilidad con hardware más reciente son sus partes principales. La compatibilidad total con OpenGL 4.6 aún no está lista. [ 150 ] [ 151 ]

La primera versión de 2019 es la 19.0 y se lanzó en marzo. Aún no cuenta con soporte completo para OpenGL 4.6, pero se han implementado muchas mejoras en este sentido en todos los controladores. [ 152 ] [ 153 ]

La segunda versión de 2019 es la 19.1. Una característica clave es la transición de TGSI a NIR, lo que supone un paso hacia OpenGL 4.6 con soporte para SPIR-V y una compatibilidad más amplia con OpenCL. RadeonSI funciona bien con NIR en la versión de desarrollo. [ 154 ]

La tercera versión de 2019 es la 19.2. OpenGL 4.6 está listo para la versión beta del nuevo controlador Intel Iris. [ 155 ]

La cuarta versión de 2019 es la 19.3. OpenGL 4.6 está lista para Intel i965 y es opcional para el nuevo controlador Iris. [ 34 ]

La primera versión de 2020 es la 20.0. Vulkan 1.2 está listo para AMD RADV e Intel ANV. Intel Iris es el predeterminado para Intel Broadwell Gen 8+. [ 156 ] [ 157 ] El controlador RadeonSI cambió para usar NIR por defecto, en lugar de TGSI.

La segunda versión de 2020 es la 20.1. Se han implementado muchas mejoras en varios controladores. Zink es un nuevo controlador virtual para OpenGL sobre Vulkan. [ 31 ]

La tercera versión de 2020 es la 20.2. OpenGL 3.0 para Zink es una nueva característica. LLVMpipe será compatible con OpenGL 4.3+ (4.5+ en la versión 20.3). ARM Panfrost se ha mejorado considerablemente con muchos módulos. Es posible usar memoria virtual compartida para OpenCL en Nouveau con Pascal y versiones posteriores. [ 158 ] [ 159 ] [ 160 ]

La cuarta versión de 2020 es la 20.3. v3d y v3dv son nuevos controladores para OpenGL y Vulkan 1.0 con hardware Broadcom como Raspberry Pi 4. OpenCL 1.2 es totalmente compatible en el módulo clover. Zink es compatible con OpenGL 3.3+. El controlador virtual LLVMpipe ahora es compatible con OpenGL 4.5+ y se prevé la versión 4.6. Lavapipe (originalmente llamado Vallium [ 161 ] ) como árbol Vulkan de LLVMpipe se fusiona. [ 162 ] [ 15 ] [ 163 ] [ 164 ] [ 165 ]

En Mesa 21.0, d3d12 se fusionará con OpenGL 3.0 a 3.3. Microsoft y Collabora desarrollan una nueva emulación de d3d12 en WSL2 para Windows 10 con Direct 3D 12. OpenCL 1.2 también es el objetivo en d3d12. Se realiza una aceleración de un factor de 2 a 5 en Benchmark SPECviewperf con código OpenGL mejorado. [ 94 ] [ 166 ] [ 167 ] [ 168 ] Muchas características de Mesa 21.0 mejoran el rendimiento. [ 169 ] La nueva versión 21.0.0 es pública desde el 11 de marzo de 2021.

Mesa 21.1 es el segundo lanzamiento del año 2021. [ 170 ] OpenGL 4.6+ y OpenGL ES 3.1+ están disponibles para Zink. El controlador AMD 600g puede cambiar a NIR con más posibilidades para las antiguas tarjetas Radeon HD 5000 y 6000. [ 171 ] Qualcomm Turnip alcanza Vulkan 1.1+ y la emulación de software Lavapipe Vulkan 1.1+. El controlador de GPU Google VirtIO Venus con Vulkan 1.2+ se fusiona en estado experimental con bajo rendimiento en el árbol principal de mesa. [ 60 ]

Mesa 21.2 es la tercera versión del año 2021. El controlador de E/S virtual Vulkan de Google, Venus, se presentará oficialmente con soporte completo para Vulkan 1.2+ (más mesamatrix). ARM Panfrost: el soporte para OpenGL ES 3.1+ está disponible y panVK es el nuevo controlador Vulkan. El soporte inicial comenzó para ARM Apple M1 con el nuevo controlador Asahi. La versión 21.2 está disponible desde el 4 de agosto de 2021. [ 172 ]

Los cambios arquitectónicos propuestos implican la migración de controladores heredados a un árbol "clásico" independiente para optimizar el mantenimiento y la corrección de errores para el marco moderno Gallium3D . Una complicación significativa sigue siendo el controlador Intel i965 , que proporciona soporte crítico para hardware heredado popular, incluida la microarquitectura Intel Haswell , y mantiene la compatibilidad con Windows 10. [ 173 ] Un nuevo controlador Gallium3D, Crocus, para gráficos Intel Gen 4 a Haswell está en desarrollo para completar el área de Gallium3D con una posible división en la próxima época del año 2021. Crocus está disponible opcionalmente en 21.2. [ 174 ] La rama Amber es para controladores antiguos sin funciones Gallium 3D como Radeon R200, Intel i915 y 965 con la versión actual 21.3.9. [ 175 ]

En la versión 22.0, los controladores clásicos se han retirado. Vulkan 1.3 está disponible para Intel Anvil y AMD RADV. [ 176 ]

Microsoft presenta el nuevo controlador "Dozen" para WSL 2 en fase de desarrollo temprana como Vulkan sobre d3d12 en Mesa 22.1. [ 177 ]

RustiCL está disponible en la versión 22.3 con conformidad oficial OpenCL 3.0 para gráficos Intel XE. Su rendimiento es igual o superior al de AMD ROCm con la tarjeta AMD 6700 XT. [ 178 ] [ 179 ]

Un objetivo principal del desarrollo de Mesa 23.0 fue el trazado de rayos para Vulkan. [ 180 ] [ 181 ]

Microsoft desarrolla el controlador Dozen para Vulkan en WSL. Vulkan 1.0+ con un 80% de compatibilidad con 1.1 y 1.2 estará disponible en Mesa 23.2 tras un retraso hasta la versión 23.1 (véase mesamatrix). [ 182 ] RustiCL para hardware AMD está disponible en la versión 23.1. [ 128 ]

VirGL para máquinas virtuales pasa en Mesa 23.2 a OpenGL 4.6. [ 183 ] Apple Asahi para máquinas Apple Arm pasa de OpenGL 2.1 a 3.1 con el 90% de las características de OpenGL 3.2 y 3.3 y OpenGL ES 2.0 a 3.0. [ 184 ]

Microsoft admite OpenGL 4.6+ en WSL en Mesa 24.0 (en Mesa 23.3: 4.3+) con el controlador de traducción DirectX 12 docena. [ 185 ]

Véase también

Referencias

  1. Marshall, David (16 de diciembre de 2008). "Adquisición de Tungsten Graphics por parte de VMware a finales de año" . InfoWorld . Consultado el 6 de agosto de 2011 .
  2. " [ ANUNCIO ] mesa 26.1.5" . 15 de julio de 2026 . Consultado el 18 de julio de 2026 .
  3. "Plataformas y controladores: la documentación más reciente de la biblioteca de gráficos 3D Mesa" .
  4. "Notas de la versión 25.20.3 del software Radeon™ para Linux®" .
  5. "Google está utilizando con éxito los controladores de código abierto Qualcomm GL/VLK en Chromebooks" .
  6. "NVK" . La biblioteca de gráficos 3D de Mesa . Consultado el 12 de diciembre de 2025 .{{cite web}}: CS1 mantenimiento: estado de la URL ( enlace )
  7. "Estado del juego NVK" .
  8. "AMD explora una nueva estrategia de controladores para Linux" . 22 de marzo de 2014. Consultado el 23 de marzo de 2014 .
  9. "Lanzamiento de compatibilidad con Direct3D 9 para Linux a través de Gallium3D, permitiendo la ejecución de juegos - Phoronix" . Phoronix.com . Consultado el 1 de agosto de 2018 .
  10. "mesa/mesa - La biblioteca de gráficos 3D de Mesa" . Consultado el 2 de noviembre de 2016 .
  11. "La matriz OpenGL vs Mesa" . 25 de marzo de 2015. Consultado el 29 de marzo de 2015 .
  12. "Notas de la versión: la documentación más reciente de la biblioteca de gráficos 3D Mesa" .
  13. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 "Calendario de lanzamientos" . Mesa3d.org . Consultado el 1 de agosto de 2018 .
  14. "Mesa 23.1 lanzada - Phoronix" .
  15. 1 2 3 "Soporte para OpenCL 1.2 integrado en Gallium3D Clover de Mesa mientras se aborda OpenCL 3.0 - Phoronix" .
  16. Larabel, Michael (4 de marzo de 2015). "Se elimina el soporte para OpenVG de Gallium3D" . Phoronix . Consultado el 11 de julio de 2015 .
  17. "St/Vega: Eliminar. (3acd7a34) · Commits · Mesa / Mesa · GitLab" . 3 de marzo de 2015.
  18. "últimos parches para el rastreador de estados "nueve"" . Cgit.freedesktop.org . 4 de febrero de 2016.
  19. Larabel, Michael (14 de diciembre de 2014). "Mesa 10.4 se lanza oficialmente con Direct3D 9 State Tracker" . Phoronix . Consultado el 11 de julio de 2015 .
  20. "Mesa 23.0 lanzada - Phoronix" .
  21. "Mesa 22.3 lanzada - Phoronix" .
  22. "Mesa 22.2 lanzada - Phoronix" .
  23. "Mesa 22.1 lanzada - Phoronix" .
  24. "Mesa 22.0 lanzada - Phoronix" .
  25. "Mesa 21.3 lanzada - Phoronix" .
  26. "Mesa 21.2 lanzada con nuevo controlador Intel Crocus, PanVK, código M1 temprano - Phoronix" .
  27. "Mesa 21.1 lanzada con sombreado de tasa variable RADV, más mejoras de Intel Vulkan - Phoronix" .
  28. "Mesa 21.0 lanzada con numerosas mejoras de RADV, nuevas extensiones de Vulkan y muchas correcciones - Phoronix" .
  29. "Mesa 20.3 lanzada con grandes mejoras para controladores gráficos de código abierto - Phoronix" .
  30. "Mesa 20.2.2 lanzada con una variedad aleatoria de correcciones" . www.phoronix.com .
  31. 1 2 "Mesa 20.1 incluye importantes mejoras para los controladores gráficos de código abierto de Intel y Radeon - Phoronix" .
  32. "Los benchmarks NIR de RadeonSI muestran un gran progreso con Mesa 20.0 - Phoronix" .
  33. "Mesa 19.3-RC1 lanzada con OpenGL 4.6 para Intel, muchas mejoras en el controlador Vulkan - Phoronix" .
  34. 1 2 "Mesa 19.3 introduce muchas mejoras en los controladores OpenGL + Vulkan de código abierto" . www.phoronix.com .
  35. 1 2 "Mesa 18.2 se lanzará pronto con muchas mejoras en los controladores OpenGL/Vulkan - Phoronix" . www.phoronix.com .
  36. "Mesa 18.0 debería llegar hoy con muchas mejoras en los controladores Vulkan/OpenGL - Phoronix" . Phoronix.com . Consultado el 1 de agosto de 2018 .
  37. "GalliumCompute" . Dri.freedesktop.org . Consultado el 24 de enero de 2019 .
  38. "Actualización del estado de Clover" (PDF) . Consultado el 27 de marzo de 2020 .
  39. " [ Mesa-announce ] mesa 17.0.0" . 13 de febrero de 2017 . Consultado el 13 de febrero de 2017 .
  40. 1 2 "Mesa 17.0.0 Lanzamiento oficial" . Phoronix . 13 de febrero de 2017. Consultado el 13 de febrero de 2017 .
  41. " [ Mesa-announce ] mesa 13.0.0" . Noviembre de 2016 . Consultado el 2 de noviembre de 2016 .
  42. 1 2 "Mesa 12.0 lanzada con soporte para OpenGL 4.3, Intel Vulkan y muchas otras características" . 8 de julio de 2016. Consultado el 8 de julio de 2016 .
  43. " [ Mesa-announce ] Mesa 11.2.0" . 4 de abril de 2016 . Consultado el 4 de abril de 2016 .
  44. « [ Mesa-anuncio ] Mesa 11.1.0» . 15 de diciembre de 2015 . Consultado el 15 de diciembre de 2015 .
  45. " [ Mesa-announce ] Mesa 11.0.0" . 12 de septiembre de 2015 . Consultado el 26 de septiembre de 2015 .
  46. " [ Mesa-announce ] Mesa 10.6.0" . 15 de junio de 2015 . Consultado el 15 de junio de 2015 .
  47. Larabel, Michael (26 de octubre de 2013). "Características que se pueden encontrar en Mesa 10.0" . Phoronix .
  48. " [ Mesa-announce ] Mesa 10.5.0" . 7 de marzo de 2015 . Consultado el 7 de marzo de 2015 .
  49. " [ Mesa-announce ] Mesa 10.4.0 lanzado" . 14 de diciembre de 2014 . Consultado el 7 de marzo de 2015 .
  50. " [ Mesa-announce ] Mesa 10.3 lanzado" . 19 de septiembre de 2014 . Consultado el 7 de marzo de 2015 .
  51. " [ Mesa-announce ] Mesa 10.2 lanzado" . 7 de junio de 2014 . Consultado el 7 de marzo de 2015 .
  52. " [ Mesa-announce ] Mesa 10.1 lanzado" . 5 de marzo de 2014 . Consultado el 7 de marzo de 2015 .
  53. " [ Mesa-announce ] Mesa 10.0 lanzada" . Diciembre de 2013 . Consultado el 7 de marzo de 2015 .
  54. "Vulkan 1.3 lanzado con renderizado dinámico en el núcleo, nueva hoja de ruta para GPU modernas" .
  55. "Programa" (PDF) . www.x.org .
  56. "Controlador Radeon Vulkan añadido a Mesa, nuevos benchmarks de Radeon Vulkan vs. OpenGL + AMDGPU-PRO - Phoronix" . Phoronix.com . Consultado el 1 de agosto de 2018 .
  57. 1 2 "RADV Radeon Vulkan Driver Submitted for Review to be Included in Mesa - Phoronix" . Archivado del original el 4 de noviembre de 2016. Recuperado el 3 de noviembre de 2016 .
  58. 1 2 "Vulkan Virgl ha comenzado a apoyar esta API de gráficos/computación dentro de las máquinas virtuales - Phoronix" . www.phoronix.com .
  59. "Vulkan basado en CPU Lavapipe portado a Windows - Phoronix" .
  60. 1 2 3 "El controlador Vulkan "Venus" de VirtIO-GPU de Google se fusionó con Mesa 21.1" . www.phoronix.com .
  61. "El controlador Vulkan de código abierto Qualcomm "TURNIP" añade una importante función de rendimiento " . www.phoronix.com
  62. "Controlador Vulkan TURNIP en funcionamiento en KGSL de Qualcomm" . www.phoronix.com .
  63. "Controlador Vulkan para Raspberry Pi 4 "V3DV" fusionado en Mesa 20.3 - Phoronix" .
  64. "PanVK retira por ahora la publicidad de Vulkan 1.1" .
  65. "El código Mesa "DZN" de Microsoft logra una conformidad con Vulkan 1.0 superior al 99,75 %" .
  66. ""Docena" se fusionó con Mesa para implementar Vulkan en Direct3D 12" .
  67. Edge, Jake (5 de octubre de 2016). "Llevando el vallado explícito de Android a la rama principal" . LWN.net .
  68. "libgbm en los repositorios de Debian" . Packages.debian.org .
  69. "Habilitación de sistemas de ventanas alternativos con una implementación de controlador gráfico que no sea Mesa" . X.org .
  70. "NVIDIA busca comentarios sobre su proyecto de asignador de memoria para dispositivos" . Phoronix .
  71. «Nouveau Video Aceleración» . freedesktop.org .
  72. "Matriz de características de Radeon" . freedesktop.org .
  73. "Fedora Linux desactiva la compatibilidad de Mesa con H.264 / H.265 / VC1 VA-API por motivos legales" . Phoronix . Consultado el 1 de octubre de 2022 .
  74. ^ Toral, Iago (8 de agosto de 2014). "Sumergirse en Mesa" . Consultado el 19 de mayo de 2016 .
  75. "Página de estado de la infraestructura de renderizado directo" . freedesktop.org .
  76. "Cómo mejorar el rendimiento de los juegos en tu máquina Linux - APC" . Apcmag.com . 25 de julio de 2013. Archivado del original el 25 de enero de 2019. Consultado el 1 de agosto de 2018 .
  77. "Linux: Mesa, Gallium3D, Nouveau y controladores NVIDIA, prueba de OpenGL (GTX 280, GTX 480, GTX 580) – Geeks3D" . Geeks3d.com . 10 de enero de 2012. Consultado el 1 de agosto de 2018 .
  78. "El controlador Nouveau sigue siendo mucho más lento que el controlador oficial de NVIDIA - Phoronix" . Phoronix.com . Consultado el 1 de agosto de 2018 .
  79. "Intel/NVIDIA/AMD compiten en el rendimiento de los controladores de GPU Linux de código abierto/cerrado - Phoronix" . Phoronix.com . Consultado el 1 de agosto de 2018 .
  80. 1 2 3 Paul, Brian (10 de agosto de 2000). "Introducción a la infraestructura de renderizado directo" . Dri.sourceforge.net . Archivado del original el 16 de marzo de 2018. Recuperado el 25 de enero de 2012 .
  81. "DRI2" . X.org . Consultado el 25 de enero de 2012 .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  82. "DRI3 y presente [ LWN.net ] " . lwn.net . Consultado el 1 de agosto de 2018 .
  83. " [ PARCHE 0/6 ] Agregar soporte para DRI3000 a los controladores core e i965" . Lists.freedesktop.org. 31 de octubre de 2013 . Consultado el 1 de agosto de 2018 .
  84. "xorg-x11-drv-intel-2.99.917-19.20151206.fc23 (re)habilitado dri3 por defecto - kde - Listas de correo de Fedora" . lists.fedoraproject.org . Consultado el 3 de diciembre de 2016 .
  85. "Radeon-AMDGPU-1.19-Updates" . Google.de . Consultado el 3 de diciembre de 2016 .
  86. "LLVMpipe" .
  87. "Mesa (Master): Virgl: Agregar controlador para virtio-gpu 3D (V2)" . Archivado del original el 28 de agosto de 2018. Recuperado el 28 de agosto de 2018 .
  88. "Seguimiento de las características de OpenGL de VirGL de Mesa - Phoronix" . www.phoronix.com .
  89. "VirGL de Mesa ahora ofrece soporte para OpenGL 4.2 en máquinas virtuales invitadas - Phoronix" . www.phoronix.com .
  90. " Rendimiento actual de Virgl3D, planes futuros - Phoronix" . www.phoronix.com
  91. "¿Qué hay de nuevo en el mundo virtual?" (PDF) . Archivado (PDF) del original el 1 de octubre de 2018. Consultado el 19 de noviembre de 2023 .
  92. "¿Qué hay de nuevo en el mundo virtual de la GPU?" (PDF) . Archivado del original (PDF) el 28 de octubre de 2020.
  93. "VirGL: la documentación más reciente de la biblioteca de gráficos 3D de Mesa" .
  94. 1 2 "Mesa 21.0 fusiona Direct3D 12 con el controlador Gallium3D - Phoronix" .
  95. "Virtio-GPU Venus: la documentación más reciente de la biblioteca de gráficos 3D Mesa" .
  96. «Megaconductores DRI» . X.org . 25 de septiembre de 2013.
  97. "Los rastreadores de estado VDPAU y XvMC ahora son bibliotecas separadas" . Phoronix.com . 23 de junio de 2014.
  98. Especificación SPIR-V (Provisional)
    • cgit.freedesktop.org/mesa/mesa/tree/src/compiler/glsl/README
    • XDC2014, Matt Turner: Vídeo en YouTube , Matt Turner - Compilador GLSL: De dónde venimos y hacia dónde vamos
    • XDC2015 , Matt Turner : Vídeo en YouTube , www.x.org/wiki/Events/XDC2015/Program/turner_glsl_compiler.pdf​​​​​​
  99. "Introducción — Documentación de NIR 0.0.1" .
  100. «NIR: Un nuevo compilador IR para Mesa» .
    • Connor Abbott - NIR, o más allá de GLSL IR en Mesa XDC2014
      • (Mesa-dev) 15/12/2014 Reintroducción de NIR, un nuevo IR para mesa
    • cgit.freedesktop.org/mesa/mesa/tree/src/compiler/nir/README
    • fosdem.org/2016/schedule/event/i965_nir/attachments/slides/1113/export/events/attachments/i965_nir/slides/1113/nir_vec4_i965_fosdem_2016_rc1.pdf
    • NIR en RadeonSI
    • Actualización Nouveau 2018
    • Nouveau con NIR en Mesa 19.3
  101. "Mesa se prepara para abandonar el antiguo GLSL-To-TGSI: eliminación de gran cantidad de código, mejora del rendimiento y correcciones" .
  102. "Crear archivo de configuración" . cgit.freedesktop.org . Documentación de Gallium.
  103. Fonseca, José (27 de abril de 2008). "Gallium3D: Introducción" . Recuperado el 20 de junio de 2014 .
  104. Fonseca, José. "MESA3D.org: Introducción" . Archivado del original el 2 de noviembre de 2016. Recuperado el 28 de octubre de 2016 .
  105. "¡Gallium3D ya está en el código base principal de Mesa!" . Phoronix . 11 de febrero de 2009 . Consultado el 26 de octubre de 2010 .
  106. "Rama de Ámbar" .
  107. "La matriz de controladores de Mesa" .
  108. "TG-Gallium3D" . Tungsten Graphics. Archivado del original el 3 de mayo de 2008. Consultado el 1 de abril de 2008 .
  109. Rusin, Zack (6 de febrero de 2008). "GPGPU" . Consultado el 1 de abril de 2008 .
  110. Rusin, Zack (7 de febrero de 2008). "OpenVG y la aceleración de 2D" . Recuperado el 1 de abril de 2008 .
  111. "DRI2" . 4 de octubre de 2007. Archivado del original el 4 de julio de 2008. Consultado el 1 de abril de 2008 .
  112. "En defensa de NIR" .
  113. Marshall, David (16 de diciembre de 2008). "Adquisición de Tungsten Graphics por parte de VMware a finales de año" . InfoWorld.
  114. "nouveau: dile adiós al antiguo controlador DRI... (cgit en FDO)" . Cgit.freedesktop.org . 13 de julio de 2008.
  115. "¡Gallium3D ya está en el código base de Mainline Mesa!" . Phoronix.com . 11 de febrero de 2009.
  116. Larabel, Michael (25 de febrero de 2009). "Gallium3D, EGL ahora se puede compilar en FreeBSD" . Phoronix .
  117. "El rastreador de estado de OpenVG está en Mesa 3D" . Sourceforge.net . 1 de mayo de 2009.
  118. "Notas de la versión de Mesa 7.5 / 17 de julio de 2009" . Mesa3d.org . 17 de julio de 2009. Archivado del original el 13 de junio de 2010. Consultado el 12 de septiembre de 2017 .
  119. "r600g: agregar soporte inicial para versiones permanentes (cgit en FDO)" . Cgit.freedesktop.org . 10 de septiembre de 2010.
  120. "d3d1x: agregar nuevo rastreador de estado COM de Direct3D 10/11 para Gallium" . Cgit.freedesktop.org . 21 de septiembre de 2010.
  121. Larabel, Michael (30 de noviembre de 2011). "Se retira el controlador Gallium3D Intel 965" . Phoronix . pág. 1. Consultado el 1 de diciembre de 2011 . 
  122. Larabel, Michael (30 de noviembre de 2011). "También se abandona el controlador de celdas Gallium3D" . Phoronix . pág. 1. Consultado el 1 de diciembre de 2011 . 
  123. "nine: Agregar rastreador de estado nine para Direct3D9 (v3)" . Cgit.freedesktop.org . 18 de noviembre de 2014.
  124. "Mesa 19.1 lanzada con Intel Gallium3D experimental y otros nuevos controladores GL/VLK - Phoronix" . www.phoronix.com . Consultado el 21 de septiembre de 2019 .
  125. "Rama de Ámbar" .
  126. 1 2 "Mesa 23.1 publicada con RadeonSI Rusticl-OpenCL, RADV GPL" .
  127. "El desarrollo de características de Mesa 23.2 concluye con numerosas extensiones nuevas de Vulkan" .
  128. "Los juegos se ejecutan más rápido en SteamOS que en Windows 11, según las pruebas de Ars" .
  129. "SteamOS destruye Windows hasta en un 75%, y tengo las pruebas para demostrarlo" .
  130. "¿Qué es Windows K2? El gran plan de Microsoft para salvar Windows 11 y recuperar la confianza de los usuarios" .
  131. "Introducción a Mesa" . Equipo de Mesa . Archivado del original el 4 de mayo de 2015. Consultado el 8 de junio de 2015 .
  132. "Historial del proyecto" . Documentación de Mesa . Consultado el 11 de marzo de 2021 .
  133. "¿Cuál es la relación entre Glide y DRI?" . dri.freedesktop.org . Consultado el 25 de enero de 2012 .
  134. "Se ha creado una rama de Mesa 11.0, comienza la campaña de lanzamiento" . 22 de agosto de 2015. Consultado el 22 de agosto de 2015 .
  135. "mesa/mesa - La biblioteca de gráficos 3D Mesa" . Cgit.freedesktop.org . Consultado el 1 de agosto de 2018 .
  136. "Los grandes cambios y mejoras de Mesa 17.0 - Phoronix" . Phoronix.com . Consultado el 1 de agosto de 2018 .
  137. "mesa/mesa - La biblioteca de gráficos 3D Mesa" . Cgit.freedesktop.org . Consultado el 1 de agosto de 2018 .
  138. "Programa" (PDF) . www.x.org . 2016.
  139. "mesa/mesa - La biblioteca de gráficos 3D Mesa" . Cgit.freedesktop.org . Consultado el 1 de agosto de 2018 .
  140. "Un vistazo a las enormes mejoras de rendimiento con Nouveau Mesa 17.0-devel en Maxwell - Phoronix" . Phoronix.com . Consultado el 1 de agosto de 2018 .
  141. "Pruebas de conformidad OpenGL / OpenGL ES de código abierto de Khronos - Phoronix" . Phoronix.com . Consultado el 1 de agosto de 2018 .
  142. "Las grandes características de Mesa 17.1: Vega, caché de sombreado RadeonSI, Vulkan en desarrollo, nuevas extensiones de OpenGL - Phoronix" . Phoronix.com . Consultado el 1 de agosto de 2018 .
  143. "Notas de la versión de Mesa" . Mesa3d.org . Consultado el 1 de agosto de 2018 .
  144. "La matriz OpenGL vs Mesa" . mesamatrix.net . Consultado el 31 de julio de 2016 .
  145. "Listado de eventos" (PDF) . www.x.org .
  146. "Características de Mesa 17.3: actualizaciones de Vulkan, mejor rendimiento - Phoronix" . Phoronix.com . Consultado el 1 de agosto de 2018 .
  147. "Mesa 18.0 incluye muchas mejoras en OpenGL/Vulkan, caché de sombreado Intel y extras - Phoronix" . Phoronix.com . Consultado el 1 de agosto de 2018 .
  148. "Las nuevas y brillantes características de Mesa 18.3 para controladores gráficos Intel/Radeon de código abierto - Phoronix" . www.phoronix.com .
  149. "Mesa logró un progreso enorme en 2018 en controladores Vulkan/OpenGL de código abierto - Phoronix" . www.phoronix.com .
  150. "Las nuevas características que llegarán a Mesa 19.0: Adiciones de Vulkan, FreeSync, Soft FP64 y más - Phoronix" .
  151. "Comparativa de rendimiento de enero de Mesa 18.2 vs. 18.3 vs. 19.0 para RadeonSI/RADV - Phoronix" .
  152. "Ejecutando el backend NIR de RadeonSI con Mesa 19.1 Git" . www.phoronix.com .
  153. "El controlador Iris Gallium3D de Intel ahora tiene mejor soporte para el perfil de compatibilidad OpenGL - Phoronix" .
  154. "Mesa 20.0-rc1 lanzada con Intel Gallium3D predeterminado, OpenGL 4.6 para RadeonSI, Vulkan 1.2 - Phoronix" .
  155. "Mesa 20.0 lanzada con grandes mejoras para Intel, AMD Radeon Vulkan/OpenGL - Phoronix" .
  156. "Zink ahora es OpenGL 3.0 completo para GL genérico sobre Vulkan - Phoronix" .
  157. "Finaliza el desarrollo de Mesa 20.2 tras la llegada de muchas novedades - Phoronix" .
  158. "Nouveau de Mesa 20.2 habilita HMM, ahora se admite OpenCL SVM - Phoronix" .
  159. "La implementación de software Vulkan de Mesa ahora se conoce como Lavapipe" . Phoronix .
  160. "Los desarrolladores de V3DV presentan planes para integrar el controlador Vulkan de Raspberry Pi 4 en Mesa - Phoronix" .
  161. "Zink en Mesa 20.3 ahora llega a OpenGL 3.3, puede ejecutar Blender con este OpenGL-on-Vulkan - Phoronix" .
  162. "OpenGL 4.5 ya está habilitado para LLVMpipe con Mesa 20.3, y se adaptará para la versión 20.2 - Phoronix" .
  163. ^ "VALLIUM se fusionó con Mesa 20.3 como Vulkan Front-End para Gallium3D" . Forónix .
  164. "Mesa para capas de mapeo" (PDF) . Archivado del original (PDF) el 30 de octubre de 2020.
  165. "Microsoft + Collabora trabajan para mapear OpenGL/OpenCL sobre DirectX 12 - Phoronix" .
  166. "Mesa ahora es entre 2 y 5 veces más rápido para SPECViewPerf tras las optimizaciones de OpenGL" . www.phoronix.com .
  167. "Mesa 21.0 tiene muchas novedades, especialmente para gráficos de código abierto Radeon - Phoronix" .
  168. "Mesa 21.1-rc1 lanzada con optimizaciones de RADV, Zink más rápido y muchas otras características nuevas - Phoronix" .
  169. «Mesa%2021.1 - Forónix» .
  170. "Mesa 21.2 lanzada con nuevo controlador Intel Crocus, PanVK y código M1 preliminar" . www.phoronix.com .
  171. "Se plantea una propuesta para eliminar los controladores OpenGL clásicos de Mesa de la versión principal este año" . www.phoronix.com .
  172. "Crocus Gallium3D se acerca a Mainline Mesa para Gallium3D i965 a través de Haswell Graphics - Phoronix" .
  173. "Amber Branch: la documentación más reciente de la biblioteca de gráficos 3D Mesa" .
  174. "Se lanza Mesa 22.0-rc1 con muchas características de controladores de GPU para Linux de Radeon e Intel, Vulkan 1.3" .
  175. "La docena de Mesa está cerca de ofrecer Vulkan sobre Direct3D 12" . www.phoronix.com .
  176. "El Rusticl de Mesa logra la conformidad oficial con OpenCL 3.0" .
  177. "La implementación OpenCL Rusticl de Mesa puede superar el rendimiento de la pila de cómputo ROCm de Radeon" .
  178. "El desarrollo de características de Mesa 23.0 finaliza con muchas adiciones a Vulkan" .
  179. "Se lanza Mesa 23.0 con muchos cambios para los controladores gráficos de código abierto Radeon e Intel" .
  180. "El controlador DZN Mesa de Microsoft ya llega a Vulkan 1.2" .
  181. "Mesa 23.2 Virgl incorpora soporte para OpenGL 4.6 dentro de máquinas virtuales" .
  182. "Mesa 23.2 recibe cambios de Asahi AGX Gallium3D para OpenGL 3.1 + GLES 3.0" .
  183. "Microsoft habilita la compatibilidad con OpenGL 4.6 sobre Direct3D 12" .
  • Sitio web oficialEdita esto en Wikidata
  • Edge, Jake (octubre de 2013). "La historia de Mesa" .
  • freedesktop.org - Gallium3D , un artículo sobre el estado actual de Gallium3D.
  • Fonseca, José (abril de 2008), Introducción a Gallium3D
  • Rusin, Zack (21 de septiembre de 2007), Gallium3D
  • Corbet, Jonathan (noviembre de 2007), Gestión de memoria para procesadores gráficos
  • Decodificación de vídeo acelerada por GPU genérica , proyecto de Google Summer of Code 2008 que utiliza Gallium, archivado del original el 31 de julio de 2008.
  • Rusin, Zack (2008), Gallium3D: Gráficos bien hechos (PDF) (presentación), Akademy
  • Rusin, Zack (2008), Gallium3D: Gráficos bien hechos (presentación), Akademy , archivado del original (vídeo) el 1 de enero de 2011.
  • Actualización sobre las adaptaciones de Gallium3D a AROS y Haiku (PDF) , FOSDEM 2010, 7 de febrero de 2010
  1. "Guía de administración README" . Repositorios git de Kernel.org .