SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
static void
_f_do_barnacle_install_properties(GObjectClass
*gobject_class)
{
GParamSpec *pspec;
/* Party code attribute */
pspec = g_param_spec_uint64
(F_DO_BARNACLE_CODE,
"Barnacle code.",
"Barnacle code",
0,
G_MAXUINT64,
G_MAXUINT64 /*
default value */,
G_PARAM_READABLE
| G_PARAM_WRITABLE |
G_PARAM_PRIVATE);
g_object_class_install_property (gobject_class,
F_DO_BARNACLE_PROP_CODE,
Gráficos 3D en Linux con Mesa
Iago Toral Quiroga <itoral@igalia.com>
Contenidos
1. Introducción a los gráficos 3D
2. Interfaces de programación
3. Mesa
4. X Developers Conference (XDC)
Introducción a los gráficos 3D
Aplicaciones
Cine / TV
Juegos
Edición
Blender
Realidad Virtual
Desktop shells
Gnome Shell
Navegadores web
Epiphany Web Browser
Sistemas embebidos
Android
Y mucho más:
● Ingeniería y diseño industrial
● Medicina
● Simulación
● Formación
● Márketing y comunicación
● Etc.
Introducción a los gráficos 3D
Funcionamiento
sketchfab.com
sketchfab.com
wikipedia.org shadertoy.com
Vertex Shader
sketchfab.com
Tessellation Shader
panda3d.org
Rasterization
Sasha Willems
Fragment Shader
sketchfab.com
Interfaces de programación
sketchfab.com
shadertoy.com
Mesa 3D
● Implementación de código abierto de EGL,
OpenGL, Vulkan y más APIs.
● Iniciado como un proyecto personal de
Brian Paul, versión 1.0 en 1995.
● Presente en todas las distribuciones de
Linux.
● Principalmente C, con algo de C++ y
python.
Mesa 3D – Introducción
● Intel (i965, i915, anvil)
● AMD (radeonsi, r600, radv)
● NVIDIA (nouveau)
● Imagination (imx)
● Broadcom (vc4, vc5)
● Qualcomm (freedreno)
● Freescale (etnaviv)
Mesa 3D – Drivers de hardware
● AMD
● Broadcom
● Collabora
● Feral Interactive
● Google
● Igalia
● Intel
Mesa 3D – Participación corporativa
● NVIDIA
● Pengutronix
● RedHat
● Samsung
● Valve
● VMware
● Agosto 2014, Khronos anuncia OpenGL 4.5
● Mesa soporta OpenGL 3.3.
● Julio 2017, Khronos anuncia OpenGL 4.6
● Proceso de “conformance” abierto en Febrero de
2018.
● Driver Mesa Intel downstream “conformant” en dia 0.
● Trabajo en curso para llevar la versión conformance
a upstream.
Mesa 3D – Evolución
● En 2015 Khronos anuncia Vulkan.
● Driver Mesa Intel (anvil) “conformant” dia
0.
● En Marzo de 2018 Khronos anuncia Vulkan
1.1.
● Driver Mesa Intel (anvil) “conformant” dia
0.
Mesa 3D – Evolución
Mesa 3D – Estado actual
Mesa 3D – Diseño
● Puntos de entrada en el API
● Validación / error-checking
● Estructuras de datos comunes
(shaders, texturas, framebuffers, etc)
● Conversiones de formatos de pixel
● Fallbacks “meta” y software
● Compiladores de shaders
(GLSL, SPIR-V, NIR)
● Utilidades (tablas hash, listas
enlazadas, algoritmos comunes, etc.)
● WynSys (integración con el entorno
de ventanas)
● Generación y optimización de codigo
nativo (shaders)
● “Blitting” engine
● Programación del estado de la GPU
● Comunicación con el Kernel
● Gestión de recursos del hardware
● Implementación de “hardware hooks” de
Mesa
Mesa front-endMesa front-end
Driver back-endDriver back-end
Mesa 3D – Diseño
GLSL Shader SPIR-V Shader
Parser GLSL AST
IR nativoCodigo nativo
App
Mesa
Driver
TGSI
GLSL IR NIROpt
LLVM IR
Opt
Opt
Opt
glslangValidator
OpenGL API Vulkan API (y OpenGL 4.6)
Mesa 3D – Ejemplo (GLSL)
Mesa 3D – Ejemplo (SPIR-V)
Mesa 3D – Ejemplo (NIR)
Mesa 3D – Ejemplo (i965 asm)
Mesa 3D – Variables de entorno
https://www.mesa3d.org/envvars.html
Captura de trazas, shaders GLSL, forzado o desactivado de
determinados comportamientos, ...
Obtener trazas de shaders en Intel GPUs:
INTEL_DEBUG=vs,tcs,tes,gs,fs
● Mesa se construye con unos estándares de
calidad altos.
● Énfasis en la existencia de tests que permitan
validar las implementaciones.
● Piglit es un conjunto de tests para OpenGL y
OpenGL ES.
● Contiene decenas de miles de tests.
● Más de 30.000 tests añadidos desde 2014.
Mesa 3D – Calidad
● Intel proporciona a miembros de la comunidad
acceso a su sistema de integración continua.
● Prueba ramas de desarrollo contra multiples
generaciones de hardware de Intel. Incluye
Piglit, CTS, dEQP y más.
● Requisitos mínimos de push:
● Sin regresiones en Piglit.
● Reviewed-by de otro desarrollador.
Mesa 3D – Calidad
● Los drivers de Mesa están muy bien considerados
en términos de respetar las especificaciones
oficiales de Khronos.
● Desafortunadamente, otros drivers suelen relajar
sus implementaciones para corregir problemas de
aplicaciones / juegos :-(
● Linux no es “mainstream” para el sector de video
juegos. Testing y reporte de fallos menor que en
otras plataformas. Valve está invirtiendo en mejorar
esto.
Mesa 3D – Calidad
● Mesa proporciona drivers hardware y software.
● Importante desarrollo y evolución en los últimos
años, especialmente por parte de Intel.
● Últimas versiones de OpenGL, OpenGL ES y
Vulkan soportadas.
● Estándares de calidad elevados, intenso trabajo
de testing a través de Piglit y otras plataformas.
Mesa 3D – Conclusiones
X Developers Conference 2018
X Developers Conference (XDC)
https://xdc2018.x.org/
X Developers Conference (XDC)
¿Preguntas?

Más contenido relacionado

Similar a Barnacle code property

Colegio de estudios científicos y ...
Colegio de estudios científicos y                                            ...Colegio de estudios científicos y                                            ...
Colegio de estudios científicos y ...maria-sandoval
 
Colegio de estudios científicos y ...
Colegio de estudios científicos y                                            ...Colegio de estudios científicos y                                            ...
Colegio de estudios científicos y ...maria-sandoval
 
Colegio de estudios científicos y ...
Colegio de estudios científicos y                                            ...Colegio de estudios científicos y                                            ...
Colegio de estudios científicos y ...maria-sandoval
 
Direct Xy Open Gl
Direct Xy Open GlDirect Xy Open Gl
Direct Xy Open Glguest5506a9
 
Optimización del rendimiento
Optimización del rendimientoOptimización del rendimiento
Optimización del rendimientoFederico Peinado
 
Frameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesFrameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesADWE Team
 
Miguel angel pastor moreno
Miguel angel pastor morenoMiguel angel pastor moreno
Miguel angel pastor morenoSam Gutierrez M
 
GPUs para Científicos
GPUs para CientíficosGPUs para Científicos
GPUs para CientíficosAntonio Mora
 
Auto cad 2013 de los fundamentos a la presentación detallada
Auto cad 2013 de los fundamentos a la presentación detalladaAuto cad 2013 de los fundamentos a la presentación detallada
Auto cad 2013 de los fundamentos a la presentación detalladaLeón Leon
 
Fase1 grupo103380 76%20(1)
Fase1 grupo103380 76%20(1)Fase1 grupo103380 76%20(1)
Fase1 grupo103380 76%20(1)Johana Lopez
 
Versión del Software
Versión del SoftwareVersión del Software
Versión del Software LuzMedina24
 

Similar a Barnacle code property (20)

Andrid studio
Andrid studioAndrid studio
Andrid studio
 
04 android studio
04 android studio04 android studio
04 android studio
 
Colegio de estudios científicos y ...
Colegio de estudios científicos y                                            ...Colegio de estudios científicos y                                            ...
Colegio de estudios científicos y ...
 
Colegio de estudios científicos y ...
Colegio de estudios científicos y                                            ...Colegio de estudios científicos y                                            ...
Colegio de estudios científicos y ...
 
Colegio de estudios científicos y ...
Colegio de estudios científicos y                                            ...Colegio de estudios científicos y                                            ...
Colegio de estudios científicos y ...
 
Direct Xy Open Gl
Direct Xy Open GlDirect Xy Open Gl
Direct Xy Open Gl
 
Slide share software
Slide share softwareSlide share software
Slide share software
 
Optimización del rendimiento
Optimización del rendimientoOptimización del rendimiento
Optimización del rendimiento
 
Frameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesFrameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móviles
 
Trabajo autonomo 1
Trabajo autonomo 1Trabajo autonomo 1
Trabajo autonomo 1
 
Miguel angel pastor moreno
Miguel angel pastor morenoMiguel angel pastor moreno
Miguel angel pastor moreno
 
GPUs para Científicos
GPUs para CientíficosGPUs para Científicos
GPUs para Científicos
 
Alexi95
Alexi95Alexi95
Alexi95
 
Jordy
JordyJordy
Jordy
 
Jordy
JordyJordy
Jordy
 
Auto cad 2013 de los fundamentos a la presentación detallada
Auto cad 2013 de los fundamentos a la presentación detalladaAuto cad 2013 de los fundamentos a la presentación detallada
Auto cad 2013 de los fundamentos a la presentación detallada
 
Fase1 grupo103380 76%20(1)
Fase1 grupo103380 76%20(1)Fase1 grupo103380 76%20(1)
Fase1 grupo103380 76%20(1)
 
Gpu Lorena[1]
Gpu Lorena[1]Gpu Lorena[1]
Gpu Lorena[1]
 
Windows8trabajo
Windows8trabajoWindows8trabajo
Windows8trabajo
 
Versión del Software
Versión del SoftwareVersión del Software
Versión del Software
 

Más de Igalia

Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JITIgalia
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!Igalia
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerIgalia
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in MesaIgalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera LinuxIgalia
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVMIgalia
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsIgalia
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesIgalia
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSIgalia
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webIgalia
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersIgalia
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...Igalia
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on RaspberryIgalia
 
Enable hardware acceleration for GL applications without glamor on Xorg modes...
Enable hardware acceleration for GL applications without glamor on Xorg modes...Enable hardware acceleration for GL applications without glamor on Xorg modes...
Enable hardware acceleration for GL applications without glamor on Xorg modes...Igalia
 
Async page flip in DRM atomic API
Async page flip in DRM  atomic APIAsync page flip in DRM  atomic API
Async page flip in DRM atomic APIIgalia
 
From the proposal to ECMAScript – Step by Step
From the proposal to ECMAScript – Step by StepFrom the proposal to ECMAScript – Step by Step
From the proposal to ECMAScript – Step by StepIgalia
 
Migrating Babel from CommonJS to ESM
Migrating Babel     from CommonJS to ESMMigrating Babel     from CommonJS to ESM
Migrating Babel from CommonJS to ESMIgalia
 
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...Igalia
 
Freedreno on Android – XDC 2023
Freedreno on Android          – XDC 2023Freedreno on Android          – XDC 2023
Freedreno on Android – XDC 2023Igalia
 
On-going challenges in the Raspberry Pi driver stack – XDC 2023
On-going challenges in the Raspberry Pi driver stack – XDC 2023On-going challenges in the Raspberry Pi driver stack – XDC 2023
On-going challenges in the Raspberry Pi driver stack – XDC 2023Igalia
 

Más de Igalia (20)

Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
 
Enable hardware acceleration for GL applications without glamor on Xorg modes...
Enable hardware acceleration for GL applications without glamor on Xorg modes...Enable hardware acceleration for GL applications without glamor on Xorg modes...
Enable hardware acceleration for GL applications without glamor on Xorg modes...
 
Async page flip in DRM atomic API
Async page flip in DRM  atomic APIAsync page flip in DRM  atomic API
Async page flip in DRM atomic API
 
From the proposal to ECMAScript – Step by Step
From the proposal to ECMAScript – Step by StepFrom the proposal to ECMAScript – Step by Step
From the proposal to ECMAScript – Step by Step
 
Migrating Babel from CommonJS to ESM
Migrating Babel     from CommonJS to ESMMigrating Babel     from CommonJS to ESM
Migrating Babel from CommonJS to ESM
 
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...
The rainbow treasure map: Advanced color management on Linux with AMD/Steam D...
 
Freedreno on Android – XDC 2023
Freedreno on Android          – XDC 2023Freedreno on Android          – XDC 2023
Freedreno on Android – XDC 2023
 
On-going challenges in the Raspberry Pi driver stack – XDC 2023
On-going challenges in the Raspberry Pi driver stack – XDC 2023On-going challenges in the Raspberry Pi driver stack – XDC 2023
On-going challenges in the Raspberry Pi driver stack – XDC 2023
 

Último

tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Luis Olivera
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 

Último (20)

tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 

Barnacle code property

  • 1. static void _f_do_barnacle_install_properties(GObjectClass *gobject_class) { GParamSpec *pspec; /* Party code attribute */ pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE, "Barnacle code.", "Barnacle code", 0, G_MAXUINT64, G_MAXUINT64 /* default value */, G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_PRIVATE); g_object_class_install_property (gobject_class, F_DO_BARNACLE_PROP_CODE, Gráficos 3D en Linux con Mesa Iago Toral Quiroga <itoral@igalia.com>
  • 2. Contenidos 1. Introducción a los gráficos 3D 2. Interfaces de programación 3. Mesa 4. X Developers Conference (XDC)
  • 3. Introducción a los gráficos 3D Aplicaciones
  • 11. Y mucho más: ● Ingeniería y diseño industrial ● Medicina ● Simulación ● Formación ● Márketing y comunicación ● Etc.
  • 12. Introducción a los gráficos 3D Funcionamiento
  • 21.
  • 22.
  • 23.
  • 26. ● Implementación de código abierto de EGL, OpenGL, Vulkan y más APIs. ● Iniciado como un proyecto personal de Brian Paul, versión 1.0 en 1995. ● Presente en todas las distribuciones de Linux. ● Principalmente C, con algo de C++ y python. Mesa 3D – Introducción
  • 27. ● Intel (i965, i915, anvil) ● AMD (radeonsi, r600, radv) ● NVIDIA (nouveau) ● Imagination (imx) ● Broadcom (vc4, vc5) ● Qualcomm (freedreno) ● Freescale (etnaviv) Mesa 3D – Drivers de hardware
  • 28. ● AMD ● Broadcom ● Collabora ● Feral Interactive ● Google ● Igalia ● Intel Mesa 3D – Participación corporativa ● NVIDIA ● Pengutronix ● RedHat ● Samsung ● Valve ● VMware
  • 29. ● Agosto 2014, Khronos anuncia OpenGL 4.5 ● Mesa soporta OpenGL 3.3. ● Julio 2017, Khronos anuncia OpenGL 4.6 ● Proceso de “conformance” abierto en Febrero de 2018. ● Driver Mesa Intel downstream “conformant” en dia 0. ● Trabajo en curso para llevar la versión conformance a upstream. Mesa 3D – Evolución
  • 30. ● En 2015 Khronos anuncia Vulkan. ● Driver Mesa Intel (anvil) “conformant” dia 0. ● En Marzo de 2018 Khronos anuncia Vulkan 1.1. ● Driver Mesa Intel (anvil) “conformant” dia 0. Mesa 3D – Evolución
  • 31. Mesa 3D – Estado actual
  • 32. Mesa 3D – Diseño ● Puntos de entrada en el API ● Validación / error-checking ● Estructuras de datos comunes (shaders, texturas, framebuffers, etc) ● Conversiones de formatos de pixel ● Fallbacks “meta” y software ● Compiladores de shaders (GLSL, SPIR-V, NIR) ● Utilidades (tablas hash, listas enlazadas, algoritmos comunes, etc.) ● WynSys (integración con el entorno de ventanas) ● Generación y optimización de codigo nativo (shaders) ● “Blitting” engine ● Programación del estado de la GPU ● Comunicación con el Kernel ● Gestión de recursos del hardware ● Implementación de “hardware hooks” de Mesa Mesa front-endMesa front-end Driver back-endDriver back-end
  • 33. Mesa 3D – Diseño GLSL Shader SPIR-V Shader Parser GLSL AST IR nativoCodigo nativo App Mesa Driver TGSI GLSL IR NIROpt LLVM IR Opt Opt Opt glslangValidator OpenGL API Vulkan API (y OpenGL 4.6)
  • 34. Mesa 3D – Ejemplo (GLSL)
  • 35. Mesa 3D – Ejemplo (SPIR-V)
  • 36. Mesa 3D – Ejemplo (NIR)
  • 37. Mesa 3D – Ejemplo (i965 asm)
  • 38. Mesa 3D – Variables de entorno https://www.mesa3d.org/envvars.html Captura de trazas, shaders GLSL, forzado o desactivado de determinados comportamientos, ... Obtener trazas de shaders en Intel GPUs: INTEL_DEBUG=vs,tcs,tes,gs,fs
  • 39. ● Mesa se construye con unos estándares de calidad altos. ● Énfasis en la existencia de tests que permitan validar las implementaciones. ● Piglit es un conjunto de tests para OpenGL y OpenGL ES. ● Contiene decenas de miles de tests. ● Más de 30.000 tests añadidos desde 2014. Mesa 3D – Calidad
  • 40. ● Intel proporciona a miembros de la comunidad acceso a su sistema de integración continua. ● Prueba ramas de desarrollo contra multiples generaciones de hardware de Intel. Incluye Piglit, CTS, dEQP y más. ● Requisitos mínimos de push: ● Sin regresiones en Piglit. ● Reviewed-by de otro desarrollador. Mesa 3D – Calidad
  • 41. ● Los drivers de Mesa están muy bien considerados en términos de respetar las especificaciones oficiales de Khronos. ● Desafortunadamente, otros drivers suelen relajar sus implementaciones para corregir problemas de aplicaciones / juegos :-( ● Linux no es “mainstream” para el sector de video juegos. Testing y reporte de fallos menor que en otras plataformas. Valve está invirtiendo en mejorar esto. Mesa 3D – Calidad
  • 42. ● Mesa proporciona drivers hardware y software. ● Importante desarrollo y evolución en los últimos años, especialmente por parte de Intel. ● Últimas versiones de OpenGL, OpenGL ES y Vulkan soportadas. ● Estándares de calidad elevados, intenso trabajo de testing a través de Piglit y otras plataformas. Mesa 3D – Conclusiones
  • 44. X Developers Conference (XDC) https://xdc2018.x.org/