introducción a mesa · 2021. 6. 26. · mesa m e s a e s u n a li bre r ía o p e n - so u rce que...
TRANSCRIPT
![Page 2: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/2.jpg)
Sobre míMiembro del Graphics Team en Igalia.Desarrollador de drivers de Mesa desde el año 2014.
Principalmente en los drivers libres de GPUs de Intely Qualcomm Adreno.
Miembro de la Junta Directiva de ymiembro de .
X.Org FoundationKhronos Group
2
![Page 3: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/3.jpg)
MesaMesa es una librería open-source que implementasoporte de OpenGL y Vulkan (y otras APIs) para unagran variedad de hardware.Fue creada por Brian Paul en los años 90.
La versión 1.0 fue publicada en Febrero de 1995.La versión actual es 21.1.3.
Actualmente hay una release por trimestre:AÑO.YY
3
![Page 4: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/4.jpg)
4
![Page 5: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/5.jpg)
FuncionalidadesTraducir llamadas a las APIs a instrucciones que seránejecutadas por el HW.Configuración del HW para la ejecución de losshaders: configurar depth, stencil tests, blend, etc.Buscar soluciones para limitaciones del HW: soportea tipos de 64 bits, falta de instrucciones en el ISA, etc.Indicar a la aplicación los límites del HW: número derecursos disponibles, formatos de imagensoportados...
5
![Page 6: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/6.jpg)
FuncionalidadesMesa se encarga de compilar los shaders ( o
).Hay un frontend compiler que produce como salidaun lenguaje intermedio llamado NIR.Cada uno de los drivers de Mesa, implementa unbackend compiler para obtener el códigoensamblador a partir de NIR.
GLSLSPIR-V
6
![Page 7: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/7.jpg)
GLSL
7
![Page 8: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/8.jpg)
NIR
8
![Page 9: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/9.jpg)
Ensamblador
9
![Page 10: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/10.jpg)
KernelMesa utiliza el API de DRM (Direct RenderingManagement) para hablar con el HW a través delkernel.
Obtener información del dispositivo (GPU id,funcionalidades soportadas...)Reserva de memoria de video.Mapeo de memoria para leer/escribir desde user-space.
10
![Page 11: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/11.jpg)
Drivers en Mesa
GPU Driver OpenGL Driver Vulkan
Intel i915, i965, Iris, Crocus Anvil
AMD r200, r300, r600, radeonsi RADV
Nvidia nouveau, tegra -
Broadcom vc4, v3d vd3v
Qualcomm Adreno freedreno Turnip
Arm Mali lima, panfrost panvk
11
![Page 12: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/12.jpg)
Drivers en Mesa
GPU Driver OpenGL Driver Vulkan
Imagination Technologies imx -
Vivante etnaviv -
Apple M1 asahi -
12
![Page 13: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/13.jpg)
Layered Drivers
Driver Convierte de Convierte a
Zink OpenGL Vulkan
D3D12 OpenGL Direct3D 12
Otros Driver OpenGL Driver Vulkan
Virtual Machines svga3d (vmware), virgl venus
13
![Page 14: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/14.jpg)
Otros drivers
Emulación por software:OpenGL: swrast (llvmpipe), OpenSWR, softpipe.Vulkan: swrast (lavapipe).
Nine: driver de gallium para Direct3D 9.Clover: driver de gallium para OpenCL.
14
![Page 16: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/16.jpg)
ComunidadLa comunidad está formada por desarrolladoresvoluntarios y múltiples empresas.
16
![Page 17: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/17.jpg)
¿Cómo nos organizamos?Lista de correo para desarrolladores.
Canales de IRC (OFTC)#dri-devel, #intel-3d, #radeon, #videocore,#freedreno...
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
17
![Page 18: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/18.jpg)
¿Cómo nos organizamos?Gitlab (issue tracker, revisión de código, integracióncontinua).
https://gitlab.freedesktop.org/mesa/
18
![Page 19: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/19.jpg)
Conferencias.
: 15-17 Septiembre, Virtual..
X.Org Developers ConferenceEdición de 2021
FOSDEM
19
![Page 20: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/20.jpg)
Cómo contribuirTesting!
Instala la última versión de Mesa.Compila el ( ).Si usas Ubuntu, puedes añadir el .Usa una distro que proporcione nightly builds deMesa o, al menos, la última versión estable.
código fuente instruccionesPPA de Oibaf
20
![Page 21: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/21.jpg)
Cómo contribuirPrueba con:
Testing suites como: , , .Videojuegos u otras aplicaciones que usen OpenGLo Vulkan.
Si encuentras un fallo...
¡Repórtalo! ( ).¡Envía un parche arreglándolo! ( ).
VK-GL-CTS piglit crucible
instruccionesinstrucciones
21
![Page 22: Introducción a Mesa · 2021. 6. 26. · Mesa M e s a e s u n a li bre r ía o p e n - so u rce que im p lem enta s o p o r t e d e O pe n G L y Vu lk a n ( y otras A PIs) para u](https://reader036.vdocuments.co/reader036/viewer/2022071523/613cd15c4c23507cb6359fc8/html5/thumbnails/22.jpg)
Más informaciónWebsite
Canal Youtube
https://mesa3d.org
X.Org FoundationX.Org Developers Conference
https://www.youtube.com/channel/UCXlH5v1PkEhjzLFTUTm_U7g
22