State of the shell

igalia 11 views 33 slides Aug 21, 2024
Slide 1
Slide 1 of 33
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33

About This Presentation

Another year has passed, another reason to celebrate the achievements of dozens
of contributors. Let's talk about what was achieved in GNOME Shell, Mutter, and
related components since last talk, and cover the highlights and latest
development plans.

(c) GUADEC 2024
The GNOME Conference
Denver,...


Slide Content

StateoftheShell
Carlos Garnacho
Florian Müllner
Georges Stavracas
Jonas Ådahl
Robert Mader

Welcome!

Mtter

Website

PreWaylandBilds
∙ Many refactors
∙ Ifdefs for the last mile
∙ Intent: legacy-free bilds

ExplicitSync
∙ Synchronization primitives for rendering pipelines
∙ Wayland clients passing bffers before they are finished (46)
∙ Compositor passing PipeWire bffers before they are finished (47)
∙ Implicitly handled in free drivers, bt needed by NVIDI
∙ Will make writing Vlkan drivers easier

DRMLease
∙ Lease DRM devices to applications
∙ VR headsets!
∙ Monado, SteamVR

Snapshotting
∙ Rendering approach inspired (copied) from GTK4
∙ new object - CltterSnapshot - bilds the rendering tree
∙ Completely retained render ops tree
∙ Still an experiment / research effort

Snapshotting
Root
Color Clip
Trans
form
Tex
Layer
Color Tex

HDR
∙ More complex on a desktop compared to e.g. a TV and gaming console
∙ Mix SDR and HDR to avoid SDR being too bright (47)
∙ llow Wayland clients to tag their srfaces (47? 48?)

HDR
∙ HDR can case increased power sage so sholdn't be on all the time
∙ Still needs enabling via looking glass, bt this will change

HDR
∙ Mtter ses 10 bits per component scanot format by defalt when
spported by drivers
Shold improve color accracy / redce banding (46)

VariableRefreshRate
∙ Some things want to se the maximize refresh rate
Scrolling, animations
∙ Some things do not
Video, games
∙ Deciding when and mixing is difficlt
∙ Kernel PI a bit awkward
∙ Ths, still behind an experimental featre flag

VideoOffloading
∙ YUV/YCrCb “video pixel format” spport (45)
YUV formats are sally reqire less space (“sbsampling”).
Needs to get converted to RGB eventally.
“Offloading” means that this step happens in the compositor or even in
the display hardware, both sally being more efficient than doing it in the
app.
Toolkits like GTK4 and apps increasingly make se of this.
Related to HDR/color protocol work for optimal reslts.

VideoOffloading
∙ Scaling and cropping sing display hardware (46)
More efficient than doing an extra copy in GL/Vlkan
Usefl for videos and games when the content dimensions don’t match
the screens.
Single-pixel-bffer protocol optimization allows black backgrond when
sing a single handware plane (“primary” plane), enabling zero-copy
playback for most videos on most common hardware.
∙ Ftre (48?): Mltiple hardware planes (“overlay”/”nderlay”).

Screencasting
∙ Performance improvements (blitting) (46)
∙ Explicit modifiers (46)
∙ Explicit sync (47)

Inpt
∙ Last pieces of grab rework (46)
∙ Gestre framework (46)
∙ Gestres (47?)
∙ Global shortcts (47?)

InptConfigration
∙ Tablets
Improved pressre crve (46)
Pressre range (47)
Styls actions (47)
Tablet disambigation (46)
∙ Trackball independent settings (46)
∙ XKB model (46)

WaylandProtocols
∙ DRM lease (46)
∙ linx-drm-syncobj-v1 (46)
∙ XDG dialog (47)
∙ Stable Tablet protocol (47)
∙ Session Management (47?)

SpecialMentions

SpecialMentions
∙ Cogl cleanps and GObjectification
∙ Removal of json-glib sage from cltter
∙ Redction of deprecated PIs from split Cogl / Cltter times
∙ Moving away from Cairo

GNOMEShell

Notifications
∙ Headers (46)
∙ Expand in calendar / on toch (46/47)
∙ pp groping (47?)
∙ Spport for protocol enhancements (v2)

Notifications

BreakTimers
∙ Settings for ser well-being
Typing breaks
Eye rest breaks

ccentColors
• New appearance setting
• Standardized via desktop portal
• Spport in libadwaita and the Shell

11yImprovements
∙ Reworked high-contrast style (46)
∙ Follow “switch-shapes” setting (46)
∙ Shortcts portal (47?)

Screencasting
∙ Using DMBf sharing with Pipewire, doing format conversion and download
in GL (46)
∙ V-PI HW encoding (47)

SpecialMentions

SpecialMentions
∙ New on-screen keyboard featres (46)
∙ Better extension states (reqested vs. real) (46)
∙ Improved captive portal handling (47)

Q&

ThankYo!

StateoftheShell
Carlos Garnacho
Florian Müllner
Georges Stavracas
Jonas Ådahl
Robert Mader