Skip to content

Introduce wlr_shm

Simon Ser requested to merge emersion/wlroots:shm into master

This is a re-implementation of wl_shm. The motivations for using this over the one shipped in libwayland are:

  • Properly handle SIGBUS when accessing a wl_buffer's underlying data after the wl_buffer protocol object has been destroyed. With the current code, we just crash if the client does that and then shrinks the backing file.
  • No need to fight the wl_shm_buffer API anymore. This was awkward because we weren't notified when clients created a wl_shm buffer, and this doesn't play well with our wlr_buffer abstraction.
  • Access to the underlying FD. This makes it possible to forward the wl_shm buffer to a parent compositor with the Wayland/X11 backends.
  • Better stride checks. We can use our format table to ensure that the stride is consistent with the bpp and width.

Closes: #3493 (closed)

Edited by Simon Ser

Merge request reports