23
Introducción a Mesa Samuel Iglesias Gonsálvez [email protected] 1

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

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 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

Introducción a MesaSamuel Iglesias Gonsálvez

[email protected]

1

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

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

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

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

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

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

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

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

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

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

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

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

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

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 15: 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

¿Qué soporta cada driver? Mesa matrix

15

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

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

¿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

¿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

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

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

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

Más informaciónWebsite

Twitter

Canal Youtube

https://mesa3d.org

X.Org FoundationX.Org Developers Conference

https://www.youtube.com/channel/UCXlH5v1PkEhjzLFTUTm_U7g

22

Page 23: 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

Q&A

¡Estamos contratando!

23