시몽

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

Status update, June 2021

Hiya! Got another status update for you. First, let me share this picture that my dad and I took on our recent astronomy trip (click for full res): Bonus Venus: So, what’s new? With SourceHut, there are a few neat goings-on. For one, thanks to Michael Forney …

via Drew DeVault's blog

Making Reading from VRAM less Catastrophic

In an earlier article I showed how reading from VRAM with the CPU can be very slow. It however turns out there there are ways to make it less slow.

via Bas Nieuwenhuizen

I’m Gonna Pretend I Didn’t See That

Memes

via Mike Blumenkrantz

Generated by openring