시몽

Status update, May 2021

Hi!

This month, a lot has happened in the Wayland world as usual. The most exciting news is the introduction of the new Pixman renderer in wlroots, allowing more Wayland compositors to be used on setups lacking a proper GPU or GPU driver. The use-cases include old hardware, hardware where an open-source driver isn’t available, continuous integration, VMs, and more. The Pixman renderer should be significantly faster than our previous llvmpipe-based fallback. That said, there are still a lot of opportunities for optimizations (if you’re interested, have a look at the various TODOs in render/pixman/renderer.c).

In addition to the Pixman renderer, the backend + renderer + allocator initialization has been revamped to better accommodate for many types of backends and renderers (including third-party implementations). The initialization is a little tricky because each of these components is only compatible with a subset of the others. A DRM dumb buffer allocator has been introduced to allow the Pixman renderer to work with the DRM backend, and the GLES2 renderer has been made optional. The GLES2 renderer is now able to re-use DMA-BUF textures, improving performance on multi-GPU setups among other things. Much of this wlroots work has been done by bl4ckb0ne, thanks a lot!

In other Wayland news, I’ve started working on a new protocol: linux-explicit-synchronization-v2. The first version relies on the kernel’s sync_file mechanism, but a new abstraction has been introduced since then: drm_syncobj timelines. The timelines remove many limitations from the previous API and are easier to use, see the Vulkan blog post. The goal of the new Wayland protocol is to allow compositors which haven’t implemented v1 yet to fast-forward to the new API without having to care too much about the legacy API. The triggers for all of this work are the repeated calls to action by Jason Ekstrand, and the recent (and lengthy) thread about upcoming AMD hardware on dri-devel. I’ve also submitted another core protocol patch to allow clients to better track buffer releases, a service that was provided by linux-explicit-synchronization-v1.

I’ve continued contributing to Mesa: as part of my Valve-sponsored work, all of my libva patches have been merged and radv can now import tiled multi-planar buffers. Additionally, I’ve started working on a new EGL extension to allow rendering to main memory. This would allow the GLES2 renderer in wlroots 0.13+ to be used with llvmpipe, something that has been lost during the renderer v6 upgrade. The main motivation is to allow compositors that hard-depend on OpenGL (e.g. Wayfire) to work on setups without a GPU.

This month marks the very first release of my soju IRC bouncer. Thanks a lot to all contributors, especially delthas and Hubert Hirtz for their significant involvement! I’ve been using soju for a while, and I hope we’ll be able to offer an upgrade for the traditional IRC experience (while remaining in line with the spirit of IRC). There are many in-progress workstreams, including offering a better API to register an account and improving chat history fetching.

Speaking of releases, I’ve also tagged the long overdue mako 1.5. The notification daemon has gained a whole lot of new features: more customization options, an history buffer, regex matching, better support for non-systemd distributions, among other things. In the master branch, support for synchronous hints has been merged, making it easier to replace previous notifications from scripts.

That’s about it for this month! As a spoiler for the next status update, I’ve started go-emailthreads, a new project to replace python-emailthreads. This should help lists.sr.ht get better at presenting email discussions and allow a full migration to GraphQL. Stay tuned for more!


Questions, comments? Please use my public inbox by sending a plain-text email to ~emersion/public-inbox@lists.sr.ht.

Articles from blogs I follow

Reverse-engineering the Mali G78

After a month of reverse-engineering, we’re excited to release documentation on the Valhall instruction set, available as a PDF. The findings are summarized in an XML architecture description for machine consumption. In tandem with the documentation, we’v…

via On Life and Lisp

Status update, July 2021

Hallo uit Nederland! I’m writing to you from a temporary workstation in Amsterdam, pending the installation of a better one that I’ll put together after I visit a furniture store today. I’ve had to slow a few things down somewhat while I prepare for this mov…

via Drew DeVault's blog

Updating the Go Memory Model

What changes should we make to Go's memory model? (Memory Models, Part 3)

via research!rsc

Generated by openring