This release finally adds support for DMA-BUFs with the screencopy backend, an all-new extcopy
backend for ext-image-copy-capture-v1 which will provide non-wlroots compositor support once other compositors start implementing it, and a few bug-fixes.
New Features
- Added a new
screencopy-dmabuf
backend that uses DMA-BUFs instead of shared memory. (requiresWITH_GBM
, see below)- Also changed the
screencopy
backend to automatically choosescreencopy-dmabuf
overscreencopy-shm
when available.
- Also changed the
- Added new
extcopy-dmabuf
andextcopy-shm
backends that use ext-image-copy-capture-v1 (#46). (extcopy-dmabuf
requiresWITH_GBM
, see below)- Also added an
extcopy
backend that automatically choosesextcopy-dmabuf
overextcopy-shm
when available.
- Also added an
- Added the CMake option
WITH_GBM
for usinglibgbm
andlibdrm
for hardware-agnostic DMA-BUF allocation. This enables the newscreencopy-dmabuf
andextcopy-dmabuf
backends.
Bugfixes
- Fix a potential use-after-free when using
--title
together with--stream
(#53, thanks @danielrainer!) - Rework stream input handling to be less error-prone (#54, thanks @danielrainer!)
- Fixed missing man-page documentation for
--title
Other Changes
- Updated wayland-protocols to 1.41
- Added common DMA-BUF and SHM buffer allocation and import code. This should make adding more backends with both DMA-BUF and SHM support much easier.
- Added common DRM / SHM / GL format database. This should allow finding the correct format for importing textures into GL without needing tables for it in every backend.
Changes since v0.18.0-pre
- Deduplicate initialization code for DMA-BUF / SHM variants of each backend
Upgrading
This release contains new optional dependencies on libgbm
and libdrm
when the WITH_GBM
CMake option is set to ON
. Testers should consider enabling this option to be able to use the new DMA-BUF backends.