SlideShare a Scribd company logo
1 of 18
Download to read offline
Graphics stack updates for
Raspberry Pi devices
José María Casanova Crespo <jmcasanova@igalia.com>
Juan A. Suárez Romero <jasuarez@igalia.com>
Who we are
 Chema Casanova (@txenoo@fosstodon.org)
 Juan A. Suarez (@jsuarezr@floss.social)
● Working at Igalia graphics team on Raspberry Pi graphics stack for 4
years, and previously on Intel GPU.
Graphics stack updates for Raspberry Pi devices
José María Casanova & Juan A. Suárez
Bookworm Raspberry Pi OS


Graphics stack updates for Raspberry Pi devices
José María Casanova & Juan A. Suárez
Bookworm Raspberry Pi OS (October 2023)
Bullseye Raspberry Pi OS (November 2021)
Terminology
Graphics stack updates for Raspberry Pi devices
José María Casanova & Juan A. Suárez
Kernel Driver Mesa Driver HW GPU
vc4
(display+render)
vc4(GL/ES) Raspberry Pi
1/2/3
VideoCore 4
vc4 (display)
v3d (render)
v3d (GL/ES)
v3dv(Vulkan)
Raspberry Pi
4/5
VideoCore 6/7
Raspberry Pi 5
 GPU Broadcom V3D 7.1.6, same VideoCore architecture
 Higher clock rate, up to 8 RTs, better support for subgroup operations,
better instruction-level parallelism (but a bit more register pressure!), …
 Driver code merged into existing v3d and v3dv drivers in Mesa 23.3 and
Linux Kernel 6.8.
 Same high-level feature support as Raspberry Pi 4:
 Conformant OpenGL ES 3.1 and Vulkan 1.2.
 Non-Conformant OpenGL 3.1
Graphics stack updates for Raspberry Pi devices
José María Casanova & Juan A. Suárez
From OpenGL 2.1 to 3.1
 Important for users on Raspberry Pi platform.
● Most apps target OpenGL instead of OpenGL ES.
 35 new extensions
 Missing HW features, not fully conformant
● 8 Render Targets (supported in Raspberry Pi 5)
● Non-seamless cubemap filtering
● Required RGBA16 render formats not supported
…but we can support everything else
Graphics stack updates for Raspberry Pi devices
José María Casanova & Juan A. Suárez
From Vulkan 1.0 to 1.2
 Exposed 80 new extensions
● Subgroups
● Geometry Shaders
 Improved performance mostly in the shader compiler.
 It improves the v3d OpenGL driver too.
 Zink (OpenGL on Vulkan) works with v3dv
 Support for Android (thanks to Roman Stratiienko)
Graphics stack updates for Raspberry Pi devices
José María Casanova & Juan A. Suárez
Kernel CPU jobs
 For v3dv some Vulkan commands cannot be performed by the GPU alone.
● Timestamp queries, performance queries, indirect CSD jobs.
 This was initially implemented in user space (Mesa) stalling the GPU job
submissions.
 Moving CPU jobs to kernel space, allows DRM schedule to queue, not
stalling the submission, providing more efficient usage of the GPU.
Graphics stack updates for Raspberry Pi devices
José María Casanova & Juan A. Suárez
Kernel GPU stats
 Expose the GPU usage stats per process and global.
 Per process stats uses standard DRM client usage stats (gputop)
 Global stats are exposed using sysfs.
 We measure the accumulated amount of GPU usage using submit and
finish timestamps of GPU jobs.
Graphics stack updates for Raspberry Pi devices
José María Casanova & Juan A. Suárez
Kernel Global GPU stats
Graphics stack updates for Raspberry Pi devices
José María Casanova & Juan A. Suárez
From Xserver to Wayland
 On Bullseye Raspberry Pi OS desktop was running Xserver with Mutter on
the Raspberry Pi 4.
● Openbox was used for previous HW generations.
 When bookworm was released Wayfire became the default wayland
compositor on Raspberry Pi 4 & 5 devices.
● On previous generations, Raspberry Pi [123] Xserver & Openbox is still
the default desktop experience.
Graphics stack updates for Raspberry Pi devices
José María Casanova & Juan A. Suárez
Wayland on Raspberry Pi 4/5
Graphics stack updates for Raspberry Pi devices
José María Casanova & Juan A. Suárez
 Wayfire uses OpenGL wlroots backend and OpenGL for the
plugins.
 Wayland desktop environment looks the same than
bullseye desktop that used Mutter. (Huge effort, thanks to
Simon Long)
Moving to Wayland
Graphics stack updates for Raspberry Pi devices
José María Casanova & Juan A. Suárez
Desktop on Raspberry Pi 1-3
 Xserver+Openbox is still default desktop on bookworm.
 In bullseye initial release, desktop software rendering was used
● Glamor off
● No HW accelerated OpenGL/ES applications
 During the bullseye cycle
● We enabled HW accelerated applications.
● msdri3: We implemented Xserver DRI3 without Glamor.
● No more desktop crashes due GPU memory (CMA) exhaustion.
Graphics stack updates for Raspberry Pi devices
José María Casanova & Juan A. Suárez
Wayland on Raspberry Pi 1-3?
 For wayland we need software rendering composition that allows HW
accelerated applications.
 Wayfire uses OpenGL through wlroots backend or directly (plugins)
● wlroots already has a pixman backend. Use it.
→
● Reimplemented Wayfire plugins using pixman rendering logic.
● Enabled non-coherent kernel buffers Faster CPU blending.
→
 For HW accelerated apps we enabled dmabufs with modifiers in wlroots
pixman backend.
Graphics stack updates for Raspberry Pi devices
José María Casanova & Juan A. Suárez
Questions ?
Graphics stack updates for
Raspberry Pi devices
José María Casanova Crespo <jmcasanova@igalia.com>
Juan A. Suárez Romero <jasuarez@igalia.com>

More Related Content

Similar to Graphics stack updates for Raspberry Pi devices (FOSDEM 2024)

GPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStack
GPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStackGPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStack
GPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStackBrian Schott
 
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...AMD Developer Central
 
Raspberry Pi 3 Tutorial | Raspberry Pi 3 Projects | IoT Projects | IoT Tutori...
Raspberry Pi 3 Tutorial | Raspberry Pi 3 Projects | IoT Projects | IoT Tutori...Raspberry Pi 3 Tutorial | Raspberry Pi 3 Projects | IoT Projects | IoT Tutori...
Raspberry Pi 3 Tutorial | Raspberry Pi 3 Projects | IoT Projects | IoT Tutori...Edureka!
 
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...Umbra Software
 
Raspberry pi Board Hardware & Software Setup
Raspberry pi Board Hardware & Software SetupRaspberry pi Board Hardware & Software Setup
Raspberry pi Board Hardware & Software SetupRANAALIMAJEEDRAJPUT
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialAnne Nicolas
 
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Developer Network
 
UplinQ - qualcomm® snapdragon™ processors a super gaming platform
UplinQ - qualcomm® snapdragon™ processors a super gaming platformUplinQ - qualcomm® snapdragon™ processors a super gaming platform
UplinQ - qualcomm® snapdragon™ processors a super gaming platformSatya Harish
 
10. GPU - Video Card (Display, Graphics, VGA)
10. GPU - Video Card (Display, Graphics, VGA)10. GPU - Video Card (Display, Graphics, VGA)
10. GPU - Video Card (Display, Graphics, VGA)Akhila Dakshina
 
Essential parts to implement own Ozone backend
Essential parts to implement own Ozone backendEssential parts to implement own Ozone backend
Essential parts to implement own Ozone backendIgalia
 
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)Budianto Tandianus
 
JUDCon 2010 Boston : BoxGrinder
JUDCon 2010 Boston : BoxGrinderJUDCon 2010 Boston : BoxGrinder
JUDCon 2010 Boston : BoxGrindermarekgoldmann
 
[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...
[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...
[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...Takahiro Harada
 
Virtual Platforms
Virtual PlatformsVirtual Platforms
Virtual Platformsclkalyan
 
PGI Compilers & Tools Update- March 2018
PGI Compilers & Tools Update- March 2018PGI Compilers & Tools Update- March 2018
PGI Compilers & Tools Update- March 2018NVIDIA
 
Build Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDBBuild Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDBScyllaDB
 
Computação acelerada – a era das ap us roberto brandão, ciência
Computação acelerada – a era das ap us   roberto brandão,  ciênciaComputação acelerada – a era das ap us   roberto brandão,  ciência
Computação acelerada – a era das ap us roberto brandão, ciênciaCampus Party Brasil
 
Proyecto de microcontroladores
Proyecto de microcontroladoresProyecto de microcontroladores
Proyecto de microcontroladoresCarlos Molina
 

Similar to Graphics stack updates for Raspberry Pi devices (FOSDEM 2024) (20)

RResume
RResumeRResume
RResume
 
GPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStack
GPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStackGPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStack
GPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStack
 
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
 
Raspberry Pi 3 Tutorial | Raspberry Pi 3 Projects | IoT Projects | IoT Tutori...
Raspberry Pi 3 Tutorial | Raspberry Pi 3 Projects | IoT Projects | IoT Tutori...Raspberry Pi 3 Tutorial | Raspberry Pi 3 Projects | IoT Projects | IoT Tutori...
Raspberry Pi 3 Tutorial | Raspberry Pi 3 Projects | IoT Projects | IoT Tutori...
 
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
 
IoT evolution
IoT evolutionIoT evolution
IoT evolution
 
Raspberry pi Board Hardware & Software Setup
Raspberry pi Board Hardware & Software SetupRaspberry pi Board Hardware & Software Setup
Raspberry pi Board Hardware & Software Setup
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less special
 
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform
 
UplinQ - qualcomm® snapdragon™ processors a super gaming platform
UplinQ - qualcomm® snapdragon™ processors a super gaming platformUplinQ - qualcomm® snapdragon™ processors a super gaming platform
UplinQ - qualcomm® snapdragon™ processors a super gaming platform
 
10. GPU - Video Card (Display, Graphics, VGA)
10. GPU - Video Card (Display, Graphics, VGA)10. GPU - Video Card (Display, Graphics, VGA)
10. GPU - Video Card (Display, Graphics, VGA)
 
Essential parts to implement own Ozone backend
Essential parts to implement own Ozone backendEssential parts to implement own Ozone backend
Essential parts to implement own Ozone backend
 
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
 
JUDCon 2010 Boston : BoxGrinder
JUDCon 2010 Boston : BoxGrinderJUDCon 2010 Boston : BoxGrinder
JUDCon 2010 Boston : BoxGrinder
 
[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...
[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...
[2018 GDC] Real-Time Ray-Tracing Techniques for Integration into Existing Ren...
 
Virtual Platforms
Virtual PlatformsVirtual Platforms
Virtual Platforms
 
PGI Compilers & Tools Update- March 2018
PGI Compilers & Tools Update- March 2018PGI Compilers & Tools Update- March 2018
PGI Compilers & Tools Update- March 2018
 
Build Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDBBuild Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDB
 
Computação acelerada – a era das ap us roberto brandão, ciência
Computação acelerada – a era das ap us   roberto brandão,  ciênciaComputação acelerada – a era das ap us   roberto brandão,  ciência
Computação acelerada – a era das ap us roberto brandão, ciência
 
Proyecto de microcontroladores
Proyecto de microcontroladoresProyecto de microcontroladores
Proyecto de microcontroladores
 

More from Juan A. Suárez Romero

Writing multimedia applications with Grilo
Writing multimedia applications with GriloWriting multimedia applications with Grilo
Writing multimedia applications with GriloJuan A. Suárez Romero
 
Grilo: Easy Access to Online Multimedia Content
Grilo: Easy Access to Online Multimedia ContentGrilo: Easy Access to Online Multimedia Content
Grilo: Easy Access to Online Multimedia ContentJuan A. Suárez Romero
 
Logical Volume Manager. An Introduction
Logical Volume Manager. An IntroductionLogical Volume Manager. An Introduction
Logical Volume Manager. An IntroductionJuan A. Suárez Romero
 
Una Arquitectura Multiagente Inteligente para la Detección de Intrusos
Una Arquitectura Multiagente Inteligente para la Detección de IntrusosUna Arquitectura Multiagente Inteligente para la Detección de Intrusos
Una Arquitectura Multiagente Inteligente para la Detección de IntrusosJuan A. Suárez Romero
 
An add-on for managing behaviours with priority in JADE
An add-on for managing behaviours with priority in JADEAn add-on for managing behaviours with priority in JADE
An add-on for managing behaviours with priority in JADEJuan A. Suárez Romero
 
Integrating a Priority-Based Scheduler of Behaviours in JADE
Integrating a Priority-Based Scheduler of Behaviours in JADEIntegrating a Priority-Based Scheduler of Behaviours in JADE
Integrating a Priority-Based Scheduler of Behaviours in JADEJuan A. Suárez Romero
 
A New Learning Method for Single Layer Neural Networks Based on a Regularized...
A New Learning Method for Single Layer Neural Networks Based on a Regularized...A New Learning Method for Single Layer Neural Networks Based on a Regularized...
A New Learning Method for Single Layer Neural Networks Based on a Regularized...Juan A. Suárez Romero
 
A Tool for Agent Communication in Mozart/Oz
A Tool for Agent Communication in Mozart/OzA Tool for Agent Communication in Mozart/Oz
A Tool for Agent Communication in Mozart/OzJuan A. Suárez Romero
 
A Multi-Agent Architecture for Intrusion Detection
A Multi-Agent Architecture for Intrusion DetectionA Multi-Agent Architecture for Intrusion Detection
A Multi-Agent Architecture for Intrusion DetectionJuan A. Suárez Romero
 

More from Juan A. Suárez Romero (15)

Writing multimedia applications with Grilo
Writing multimedia applications with GriloWriting multimedia applications with Grilo
Writing multimedia applications with Grilo
 
Grilo: Easy Access to Online Multimedia Content
Grilo: Easy Access to Online Multimedia ContentGrilo: Easy Access to Online Multimedia Content
Grilo: Easy Access to Online Multimedia Content
 
Grilo: present and future
Grilo: present and futureGrilo: present and future
Grilo: present and future
 
Rygel-Grilo
Rygel-GriloRygel-Grilo
Rygel-Grilo
 
MSL2008. Debugging
MSL2008. DebuggingMSL2008. Debugging
MSL2008. Debugging
 
MSL2009. Valgrind
MSL2009. ValgrindMSL2009. Valgrind
MSL2009. Valgrind
 
MSL2009. Gdb
MSL2009. GdbMSL2009. Gdb
MSL2009. Gdb
 
Logical Volume Manager. An Introduction
Logical Volume Manager. An IntroductionLogical Volume Manager. An Introduction
Logical Volume Manager. An Introduction
 
Una Arquitectura Multiagente Inteligente para la Detección de Intrusos
Una Arquitectura Multiagente Inteligente para la Detección de IntrusosUna Arquitectura Multiagente Inteligente para la Detección de Intrusos
Una Arquitectura Multiagente Inteligente para la Detección de Intrusos
 
An add-on for managing behaviours with priority in JADE
An add-on for managing behaviours with priority in JADEAn add-on for managing behaviours with priority in JADE
An add-on for managing behaviours with priority in JADE
 
Integrating a Priority-Based Scheduler of Behaviours in JADE
Integrating a Priority-Based Scheduler of Behaviours in JADEIntegrating a Priority-Based Scheduler of Behaviours in JADE
Integrating a Priority-Based Scheduler of Behaviours in JADE
 
A New Learning Method for Single Layer Neural Networks Based on a Regularized...
A New Learning Method for Single Layer Neural Networks Based on a Regularized...A New Learning Method for Single Layer Neural Networks Based on a Regularized...
A New Learning Method for Single Layer Neural Networks Based on a Regularized...
 
A Tool for Agent Communication in Mozart/Oz
A Tool for Agent Communication in Mozart/OzA Tool for Agent Communication in Mozart/Oz
A Tool for Agent Communication in Mozart/Oz
 
A Multi-Agent Architecture for Intrusion Detection
A Multi-Agent Architecture for Intrusion DetectionA Multi-Agent Architecture for Intrusion Detection
A Multi-Agent Architecture for Intrusion Detection
 
The KNITTER System: KQML for Erlang
The KNITTER System: KQML for ErlangThe KNITTER System: KQML for Erlang
The KNITTER System: KQML for Erlang
 

Recently uploaded

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 

Graphics stack updates for Raspberry Pi devices (FOSDEM 2024)

  • 1. Graphics stack updates for Raspberry Pi devices José María Casanova Crespo <jmcasanova@igalia.com> Juan A. Suárez Romero <jasuarez@igalia.com>
  • 2. Who we are  Chema Casanova (@txenoo@fosstodon.org)  Juan A. Suarez (@jsuarezr@floss.social) ● Working at Igalia graphics team on Raspberry Pi graphics stack for 4 years, and previously on Intel GPU. Graphics stack updates for Raspberry Pi devices José María Casanova & Juan A. Suárez
  • 3. Bookworm Raspberry Pi OS   Graphics stack updates for Raspberry Pi devices José María Casanova & Juan A. Suárez Bookworm Raspberry Pi OS (October 2023) Bullseye Raspberry Pi OS (November 2021)
  • 4. Terminology Graphics stack updates for Raspberry Pi devices José María Casanova & Juan A. Suárez Kernel Driver Mesa Driver HW GPU vc4 (display+render) vc4(GL/ES) Raspberry Pi 1/2/3 VideoCore 4 vc4 (display) v3d (render) v3d (GL/ES) v3dv(Vulkan) Raspberry Pi 4/5 VideoCore 6/7
  • 5. Raspberry Pi 5  GPU Broadcom V3D 7.1.6, same VideoCore architecture  Higher clock rate, up to 8 RTs, better support for subgroup operations, better instruction-level parallelism (but a bit more register pressure!), …  Driver code merged into existing v3d and v3dv drivers in Mesa 23.3 and Linux Kernel 6.8.  Same high-level feature support as Raspberry Pi 4:  Conformant OpenGL ES 3.1 and Vulkan 1.2.  Non-Conformant OpenGL 3.1 Graphics stack updates for Raspberry Pi devices José María Casanova & Juan A. Suárez
  • 6. From OpenGL 2.1 to 3.1  Important for users on Raspberry Pi platform. ● Most apps target OpenGL instead of OpenGL ES.  35 new extensions  Missing HW features, not fully conformant ● 8 Render Targets (supported in Raspberry Pi 5) ● Non-seamless cubemap filtering ● Required RGBA16 render formats not supported …but we can support everything else Graphics stack updates for Raspberry Pi devices José María Casanova & Juan A. Suárez
  • 7. From Vulkan 1.0 to 1.2  Exposed 80 new extensions ● Subgroups ● Geometry Shaders  Improved performance mostly in the shader compiler.  It improves the v3d OpenGL driver too.  Zink (OpenGL on Vulkan) works with v3dv  Support for Android (thanks to Roman Stratiienko) Graphics stack updates for Raspberry Pi devices José María Casanova & Juan A. Suárez
  • 8. Kernel CPU jobs  For v3dv some Vulkan commands cannot be performed by the GPU alone. ● Timestamp queries, performance queries, indirect CSD jobs.  This was initially implemented in user space (Mesa) stalling the GPU job submissions.  Moving CPU jobs to kernel space, allows DRM schedule to queue, not stalling the submission, providing more efficient usage of the GPU. Graphics stack updates for Raspberry Pi devices José María Casanova & Juan A. Suárez
  • 9. Kernel GPU stats  Expose the GPU usage stats per process and global.  Per process stats uses standard DRM client usage stats (gputop)  Global stats are exposed using sysfs.  We measure the accumulated amount of GPU usage using submit and finish timestamps of GPU jobs. Graphics stack updates for Raspberry Pi devices José María Casanova & Juan A. Suárez
  • 10. Kernel Global GPU stats Graphics stack updates for Raspberry Pi devices José María Casanova & Juan A. Suárez
  • 11. From Xserver to Wayland  On Bullseye Raspberry Pi OS desktop was running Xserver with Mutter on the Raspberry Pi 4. ● Openbox was used for previous HW generations.  When bookworm was released Wayfire became the default wayland compositor on Raspberry Pi 4 & 5 devices. ● On previous generations, Raspberry Pi [123] Xserver & Openbox is still the default desktop experience. Graphics stack updates for Raspberry Pi devices José María Casanova & Juan A. Suárez
  • 12. Wayland on Raspberry Pi 4/5 Graphics stack updates for Raspberry Pi devices José María Casanova & Juan A. Suárez  Wayfire uses OpenGL wlroots backend and OpenGL for the plugins.  Wayland desktop environment looks the same than bullseye desktop that used Mutter. (Huge effort, thanks to Simon Long)
  • 13. Moving to Wayland Graphics stack updates for Raspberry Pi devices José María Casanova & Juan A. Suárez
  • 14. Desktop on Raspberry Pi 1-3  Xserver+Openbox is still default desktop on bookworm.  In bullseye initial release, desktop software rendering was used ● Glamor off ● No HW accelerated OpenGL/ES applications  During the bullseye cycle ● We enabled HW accelerated applications. ● msdri3: We implemented Xserver DRI3 without Glamor. ● No more desktop crashes due GPU memory (CMA) exhaustion. Graphics stack updates for Raspberry Pi devices José María Casanova & Juan A. Suárez
  • 15. Wayland on Raspberry Pi 1-3?  For wayland we need software rendering composition that allows HW accelerated applications.  Wayfire uses OpenGL through wlroots backend or directly (plugins) ● wlroots already has a pixman backend. Use it. → ● Reimplemented Wayfire plugins using pixman rendering logic. ● Enabled non-coherent kernel buffers Faster CPU blending. →  For HW accelerated apps we enabled dmabufs with modifiers in wlroots pixman backend. Graphics stack updates for Raspberry Pi devices José María Casanova & Juan A. Suárez
  • 16.
  • 18. Graphics stack updates for Raspberry Pi devices José María Casanova Crespo <jmcasanova@igalia.com> Juan A. Suárez Romero <jasuarez@igalia.com>