fbpx
Wikipedia

Mesa 3D

Mesa 3D es una biblioteca gráfica de código abierto, desarrollada inicialmente por Brian Paul en agosto de 1993, que proporciona una implementación genérica de OpenGL para renderizar gráficos tridimensionales en plataformas múltiples. Desde septiembre de 2012 Mesa ha recibido el visto bueno de Khronos como API compatible OpenGL.[3]

Mesa 3D
Información general
Tipo de programa Biblioteca
Autor Brian Paul
Desarrollador Mesa 3D Team[1]
Modelo de desarrollo código abierto
Lanzamiento inicial Agosto de 1993
Licencia Licencia MIT
Información técnica
Programado en C, Ensamblador[2]
Versiones
Última versión estable Mesa 21.3.1 (info) ( 1 de diciembre de 2021 (1 mes y 13 días))
Última versión en pruebas 1.0febrero de 1995
Enlaces
Sitio web oficial
Repositorio de código
Seguimiento de errores

Mesa es mantenido por freedesktop.org, que es también donde se hospedan los servidores gráficos X.org y Wayland, y varios controladores de gráficos de código abierto.

En los sistemas basados en Unix tales como los derivados de BSD, o las distribuciones de Linux, Mesa implementa una capa de traducción independiente del fabricante entre un API de gráficos como OpenGL y los controladores de gráficos en el núcleo del sistema operativo. Además de las aplicaciones 3D, como juegos, los servidores gráficos utilizan llamadas OpenGL/EGL para producir la imagen en pantalla, por lo tanto, todos los gráficos (en aquellas implementaciones que se apoyen en esta librería) suelen pasar por Mesa. Algunos controladores (típicamente los propietarios desarrollados por los fabricantes) proporcionan su propia implementación de los API gráficos en lugar de usar Mesa.

Arquitectura de software

 
Linux y Mesa 3D
 
La implementación EGL más libwayland-EGL en Mesa 3D y Wayland

Mesa está disponible y puede ser compilado en prácticamente cualquier plataforma moderna y es distribuido bajo la Licencia MIT. Al no ser una implementación oficial de OpenGL por razones de licencia, los desarrolladores de Mesa han trabajado para mantener el API en línea con los más recientes estándares y pruebas conformadas de OpenGL.

Mientras Mesa soporta varios tipos de aceleradores gráficos por hardware, también puede ser compilado como un renderizador solamente de software. Al ser de código abierto, es posible usarlo para estudiar el comportamiento interno de un render compatible con OpenGL.

Implementación de API's gráficas

Históricamente, la principal API que Mesa implementa es OpenGL, junto a otras relacionadas del grupo Khronos (como OpenVG, OpenGL ES o recientemente EGL), pero Mesa puede implementar otras API's y de hecho lo hace con otras como Glide (en desuso) y Direct3D.

La versión soportada de las diferentes API's gráficas depende del controlador, porque cada uno tiene su propia implementación y por lo tanto su propia versión soportada. Esto ocurre especialmente cuando el controlador no está desarrollado con Gallium3D (dónde los controladores comparten código que tiende a homogeneizar la versión soportada).

OpenGL

Mesa 10.x soporta oficialmente OpenGL 3.3 con hardware gráfico Intel, AMD y Nvidia. Mesa 11.0 soporta OpenGL 4.1 en algunos controladores. Existe una tabla en la página oficial de Mesa con la versión soportada por cada uno de los controladores.

Hay que tener en cuenta que debido a la arquitectura modular de Mesa, hay extensiones de versiones recientes de OpenGL que también están implementadas, pero al no estar todas las que conforman la versión completa, dichas versiones no se consideran todavía soportadas.

Vulkan

El Grupo Khronos anunció el API Vulkan en marzo de 2015, y Vulkan 1.0 fue lanzado oficialmente el 16 de febrero de 2016.

Vulkan rompe la compatibilidad con OpenGL y abandona totalmente el concepto de una máquina de estados monolítica gigante. Los desarrolladores de Gallium3D dicen que Vulkan viene a ser Gallium3D 2.0 (Gallium3D separa la implementación de la máquina de estados de OpenGL del código propio de cada controlador gráfico).

Al mismo tiempo que Gallium3D recibe como entrada TGSI (Tungsten Graphics Shader Infrastructure), Vulkan recibe SPIR-V (Standard Portable Intermediate Representation - Vulkan), ambos lenguajes de representación intermedia de Shaders.

Intel lanzó su implementación del controlador Vulkan el mismo día que la especificación fue oficialmente lanzada, pero no fue hasta abril del mismo año cuando se introdujo en la rama principal del desarrollo de Mesa, por lo que la primera versión estable en soportarlo fue Mesa 12.0 en junio de 2016. Ya que el desarrollo del controlador i965 de Intel no fue desarrollado siguiendo las especificaciones de la arquitectura Gallium3D, tiene aún menos sentido seguirlas en el caso del controlador de Vulkan.

AMD lanzó su controlador propietario en marzo de 2016. En diciembre de 2017 se liberó el código de este controlador bajo el paraguas de su iniciativa GPUOpen, bajo el nombre AMDVLK. En paralelo y de manera no oficial se desarrolla el controlador RADV, desarrollado por David Airlie (mantenedor del subsistema DRM y desarrollador de Red Hat) y Bas Nieuwenhuizen, para dar soporte Vulkan, que fue incluido en Mesa en octubre de 2016 y publicado en versión estable a partir de Mesa 13.0. Actualmente, el desempeño de ambos controladores es similar en la mayoría de benchmarks, pero la comunidad ofrece soporte mayoritario a RADV por usar componentes más estandarizados (AMDVLK, al contrario que RADV, no está incluido en Mesa, tiene su propia infraestructura y usa una versión modificada de LLVM).

Por su parte, Nvidia lanzó su controlador propietario con soporte Vulkan en el día de lanzamiento, al igual que Imagination Technologies (PowerVR), Qualcomm (Adreno) y ARM (Mali) para Android y otros sistemas operativos. Pero cuándo, o si algún día llegarán a ser libres estos controladores es incierto.

Gallium3D

Gallium3D es un framework que tiene como objetivo facilitar el desarrollo de controladores gráficos. Los controladores gráficos más representativos que se han desarrollado con este framework son los AMD Radeon R300g (R300, R400 y R500), R600g (R600, R700, HD 5000 y HD 6000) y RadeonSI (AMD Radeon HD 7000 series / GCN y posteriores), los controladores Nouveau NV50 (GeForce 8, GeForce 9, GeForce 100, GeForce 200 y GeForce 300) y NVC0 (GeForce 400 y GeForce 500), y algunos otros como Freedreno.

Comparado con la forma tradicional del desarrollo de controladores gráficos, Gallium3D tiene las siguientes ventajas:

  • Hace los controladores más simples y pequeños: los actuales controladores son muy complejos, contienen mucho código duplicado y su programación está estrechamente ligada a la API de OpenGL 1.x / 2.x
  • Modelado para hardware moderno: la nueva arquitectura de controlador es una abstracción de hardware en lugar de un simple traductor de hardware OpenGL.
  • Soporte de múltiples API's gráficas: no está atado a un API gráfico específico.
  • Soporte de múltiples sistemas operativos.

Gallium3D consta de un conjunto de interfaces y una colección de bibliotecas destinadas a facilitar la programación de los controladores gráficos, y separa el controlador en 3 partes:

  • Gallium3D State Tracker: implementación propia de cada API gráfica. Esto permite unificar código entre los distintos controladores. Parte fundamental del controlador contenida en Mesa.
  • Controlador gráfico Gallium3D: código específico propio de cada hardware gráfico, y se alimenta de código en lenguaje TGSI o NIR, ambos lenguajes de representación intermedia de shaders. Este código es traducido desde GLSL (lenguaje propio de OpenGL) y luego traducido en el juego de instrucciones de la GPU.
  • Gallium3D WinSys: es propio del sistema operativo y se encuentra en el núcleo, ejecutándose típicamente en modo protegido e implementa el API de llamadas al sistema en todos los controladores gráficos.

El desarrollo de Gallium3D comenzó en 2008 en Tungsten Graphics y la implementación está disponible como software libre siendo parte de Mesa 3D desde 2009.

Referencias

  1. mesa3d.org - Developers
  2. «Mesa Languages Page» (en inglés). Open Hub. Consultado el 15 de diciembre de 2015. 
  3. OpenGL ES Conformant Products en khronos.org

Enlaces externos

  •   Datos: Q1778544
  •   Multimedia: Mesa 3D

mesa, biblioteca, gráfica, código, abierto, desarrollada, inicialmente, brian, paul, agosto, 1993, proporciona, implementación, genérica, opengl, para, renderizar, gráficos, tridimensionales, plataformas, múltiples, desde, septiembre, 2012, mesa, recibido, vis. Mesa 3D es una biblioteca grafica de codigo abierto desarrollada inicialmente por Brian Paul en agosto de 1993 que proporciona una implementacion generica de OpenGL para renderizar graficos tridimensionales en plataformas multiples Desde septiembre de 2012 Mesa ha recibido el visto bueno de Khronos como API compatible OpenGL 3 Mesa 3DInformacion generalTipo de programaBibliotecaAutorBrian PaulDesarrolladorMesa 3D Team 1 Modelo de desarrollocodigo abiertoLanzamiento inicialAgosto de 1993LicenciaLicencia MITInformacion tecnicaProgramado enC Ensamblador 2 VersionesUltima version estableMesa 21 3 1 info 1 de diciembre de 2021 1 mes y 13 dias Ultima version en pruebas1 0febrero de 1995EnlacesSitio web oficial Repositorio de codigo Seguimiento de errores editar datos en Wikidata Mesa es mantenido por freedesktop org que es tambien donde se hospedan los servidores graficos X org y Wayland y varios controladores de graficos de codigo abierto En los sistemas basados en Unix tales como los derivados de BSD o las distribuciones de Linux Mesa implementa una capa de traduccion independiente del fabricante entre un API de graficos como OpenGL y los controladores de graficos en el nucleo del sistema operativo Ademas de las aplicaciones 3D como juegos los servidores graficos utilizan llamadas OpenGL EGL para producir la imagen en pantalla por lo tanto todos los graficos en aquellas implementaciones que se apoyen en esta libreria suelen pasar por Mesa Algunos controladores tipicamente los propietarios desarrollados por los fabricantes proporcionan su propia implementacion de los API graficos en lugar de usar Mesa Indice 1 Arquitectura de software 1 1 Implementacion de API s graficas 1 1 1 OpenGL 1 1 2 Vulkan 1 2 Gallium3D 2 Referencias 3 Enlaces externosArquitectura de software Editar Linux y Mesa 3D La implementacion EGL mas libwayland EGL en Mesa 3D y Wayland Mesa esta disponible y puede ser compilado en practicamente cualquier plataforma moderna y es distribuido bajo la Licencia MIT Al no ser una implementacion oficial de OpenGL por razones de licencia los desarrolladores de Mesa han trabajado para mantener el API en linea con los mas recientes estandares y pruebas conformadas de OpenGL Mientras Mesa soporta varios tipos de aceleradores graficos por hardware tambien puede ser compilado como un renderizador solamente de software Al ser de codigo abierto es posible usarlo para estudiar el comportamiento interno de un render compatible con OpenGL Implementacion de API s graficas Editar Historicamente la principal API que Mesa implementa es OpenGL junto a otras relacionadas del grupo Khronos como OpenVG OpenGL ES o recientemente EGL pero Mesa puede implementar otras API s y de hecho lo hace con otras como Glide en desuso y Direct3D La version soportada de las diferentes API s graficas depende del controlador porque cada uno tiene su propia implementacion y por lo tanto su propia version soportada Esto ocurre especialmente cuando el controlador no esta desarrollado con Gallium3D donde los controladores comparten codigo que tiende a homogeneizar la version soportada OpenGL Editar Mesa 10 x soporta oficialmente OpenGL 3 3 con hardware grafico Intel AMD y Nvidia Mesa 11 0 soporta OpenGL 4 1 en algunos controladores Existe una tabla en la pagina oficial de Mesa con la version soportada por cada uno de los controladores Hay que tener en cuenta que debido a la arquitectura modular de Mesa hay extensiones de versiones recientes de OpenGL que tambien estan implementadas pero al no estar todas las que conforman la version completa dichas versiones no se consideran todavia soportadas Vulkan Editar El Grupo Khronos anuncio el API Vulkan en marzo de 2015 y Vulkan 1 0 fue lanzado oficialmente el 16 de febrero de 2016 Vulkan rompe la compatibilidad con OpenGL y abandona totalmente el concepto de una maquina de estados monolitica gigante Los desarrolladores de Gallium3D dicen que Vulkan viene a ser Gallium3D 2 0 Gallium3D separa la implementacion de la maquina de estados de OpenGL del codigo propio de cada controlador grafico Al mismo tiempo que Gallium3D recibe como entrada TGSI Tungsten Graphics Shader Infrastructure Vulkan recibe SPIR V Standard Portable Intermediate Representation Vulkan ambos lenguajes de representacion intermedia de Shaders Intel lanzo su implementacion del controlador Vulkan el mismo dia que la especificacion fue oficialmente lanzada pero no fue hasta abril del mismo ano cuando se introdujo en la rama principal del desarrollo de Mesa por lo que la primera version estable en soportarlo fue Mesa 12 0 en junio de 2016 Ya que el desarrollo del controlador i965 de Intel no fue desarrollado siguiendo las especificaciones de la arquitectura Gallium3D tiene aun menos sentido seguirlas en el caso del controlador de Vulkan AMD lanzo su controlador propietario en marzo de 2016 En diciembre de 2017 se libero el codigo de este controlador bajo el paraguas de su iniciativa GPUOpen bajo el nombre AMDVLK En paralelo y de manera no oficial se desarrolla el controlador RADV desarrollado por David Airlie mantenedor del subsistema DRM y desarrollador de Red Hat y Bas Nieuwenhuizen para dar soporte Vulkan que fue incluido en Mesa en octubre de 2016 y publicado en version estable a partir de Mesa 13 0 Actualmente el desempeno de ambos controladores es similar en la mayoria de benchmarks pero la comunidad ofrece soporte mayoritario a RADV por usar componentes mas estandarizados AMDVLK al contrario que RADV no esta incluido en Mesa tiene su propia infraestructura y usa una version modificada de LLVM Por su parte Nvidia lanzo su controlador propietario con soporte Vulkan en el dia de lanzamiento al igual que Imagination Technologies PowerVR Qualcomm Adreno y ARM Mali para Android y otros sistemas operativos Pero cuando o si algun dia llegaran a ser libres estos controladores es incierto Gallium3D Editar Gallium3D es un framework que tiene como objetivo facilitar el desarrollo de controladores graficos Los controladores graficos mas representativos que se han desarrollado con este framework son los AMD Radeon R300g R300 R400 y R500 R600g R600 R700 HD 5000 y HD 6000 y RadeonSI AMD Radeon HD 7000 series GCN y posteriores los controladores Nouveau NV50 GeForce 8 GeForce 9 GeForce 100 GeForce 200 y GeForce 300 y NVC0 GeForce 400 y GeForce 500 y algunos otros como Freedreno Comparado con la forma tradicional del desarrollo de controladores graficos Gallium3D tiene las siguientes ventajas Hace los controladores mas simples y pequenos los actuales controladores son muy complejos contienen mucho codigo duplicado y su programacion esta estrechamente ligada a la API de OpenGL 1 x 2 x Modelado para hardware moderno la nueva arquitectura de controlador es una abstraccion de hardware en lugar de un simple traductor de hardware OpenGL Soporte de multiples API s graficas no esta atado a un API grafico especifico Soporte de multiples sistemas operativos Gallium3D consta de un conjunto de interfaces y una coleccion de bibliotecas destinadas a facilitar la programacion de los controladores graficos y separa el controlador en 3 partes Gallium3D State Tracker implementacion propia de cada API grafica Esto permite unificar codigo entre los distintos controladores Parte fundamental del controlador contenida en Mesa Controlador grafico Gallium3D codigo especifico propio de cada hardware grafico y se alimenta de codigo en lenguaje TGSI o NIR ambos lenguajes de representacion intermedia de shaders Este codigo es traducido desde GLSL lenguaje propio de OpenGL y luego traducido en el juego de instrucciones de la GPU Gallium3D WinSys es propio del sistema operativo y se encuentra en el nucleo ejecutandose tipicamente en modo protegido e implementa el API de llamadas al sistema en todos los controladores graficos El desarrollo de Gallium3D comenzo en 2008 en Tungsten Graphics y la implementacion esta disponible como software libre siendo parte de Mesa 3D desde 2009 Referencias Editar mesa3d org Developers Mesa Languages Page en ingles Open Hub Consultado el 15 de diciembre de 2015 OpenGL ES Conformant Products en khronos orgEnlaces externos EditarMesa 3D informacion y documentacion sobre Mesa 3D Mesa 3D y DRI Wiki en freedesktop org Gallium3D en freedesktop org Datos Q1778544 Multimedia Mesa 3D Obtenido de https es wikipedia org w index php title Mesa 3D amp oldid 140142247, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos