시몽

Status update, May 2020

This month I’ve started working with Valve, the company behind the Steam game platform. I’ll be helping them improving gamescope, their gaming Wayland compositor. Unlike existing compositors, gamescope uses Vulkan and libliftoff. Because these are pretty new technologies, there are a lot of missing pieces in various projects. Working on gamescope involves sending patches to other projects across the graphics stack to get everything working properly, this is pretty cool. For instance, I’ve sent a RADV patch to fix Vulkan DMA-BUF import.

In other Wayland news, I’ve worked a lot on wlroots’ DRM backend. DRM has two interfaces: the legacy interface, which we need to continue to support for older drivers, and the atomic interface, which has all the shiny new features. The atomic interface allows to take better advantage of modern GPUs: libliftoff needs the atomic interface to use hardware planes.

The legacy interface provides a lot of functions to update the GPU state (e.g. drmModeSetCrtc to set the mode, drmModeSetCursor to set the cursor image, drmModeMoveCursor to move it and so on). The atomic interface, on the other hand, allows the compositor to submit the whole GPU state in one commit. Up until now, we were using the atomic interface just like the legacy interface, submitting a lot of small atomic commits, each one changing part of the state. With the help of Scott Anderson I’ve incrementally reworked the DRM backend to stop doing that and to submit a single atomic commit per page-flip instead.

The next step is to add support for test-only atomic commits, allowing compositors to check whether a configuration will work before applying it. This should help compositors avoid some black-screen-on-hotplug situations. This also paves the way for libliftoff support in wlroots. On the long run, all of this work will integrate with output layers and the scene-graph.

The mako notification daemon is getting some interesting improvements. Ongy has been working on multiple surface support, which will allow users to specify the notification position on a per-notification basis. Up until now, this wasn’t possible; all notifications were showing up next to each other. For example, important notifications could show up over fullscreen apps, or volume/brightness notifications could show up in the middle of the screen. This will enable a whole new class of use-cases!

Additionally, the notification icon position can now be customized. I also have a work-in-progress patch to allow commands to be executed when a new notification appears.

I’ve also started working on a static linker, sld. My goal is to keep it small and simple. Right now it can already link exit(42) and “Hello World”! The next step is to link “Hello World” with musl, which is pretty close (mostly blocked by .bss support). I still need to redesign the current code to allow for dead code elimination, so I don’t expect the current architecture to stay as-is for long. Working on a linker has been pretty fun so far! (And omitting dynamic linking sure avoids a lot of complexity and magic.)

Other projects have seen various improvements. Max Mazurov has contributed a lot of patches for my Go libraries, adding client support to go-milter and server OAUTHBEARER support to go-sasl among a lot of other things. sidediff now supports patches in addition to diffs, so you can curl a lists.sr.ht patch directly into it. xdg-desktop-portal-wlr 0.1.0 has been released and is proving pretty stable, allowing Sway users to use their web browser’s screen sharing feature. The webmail project formely known as koushin has been renamed to alps. Drew DeVault and myself have been pushing a lot of small features and bug fixes.

And that’s all for this month!


Articles from blogs I follow

Vulkan 1.4 sur Asahi Linux

English version follows. Aujourd’hui, Khronos Group a sorti la spécification 1.4 de l’API graphique standard Vulkan. Le projet Asahi Linux est fier d’annoncer le premier pilote Vulkan 1.4 pour le matériel d’Apple. En effet, notre pilote graphique Honeykrisp est…

via On Life and Lisp

Display/KMS Meeting at XDC 2024: Detailed Report

XDC 2024 in Montreal was another fantastic gathering for the Linux Graphics community. It was again a great time to immerse in the world of graphics development, engage in stimulating conversations, and learn from inspiring developers. Many Igalia colleagues …

via Wen.onweb

Unleashing Power: Enabling Super Pages on the RPi

Unleashing the power of 3D graphics in the Raspberry Pi is a key commitment for Igalia through its collaboration with Raspberry Pi. The introduction of Super Pages for the Raspberry Pi 4 and 5 marks another step in this journey, offering some performance enha…

via Maíra Canal

Generated by openring