Release highlights:
-
New protocol implementations:
- content-type-v1 to tag surfaces with their content type (audio, video, game, etc).
- xwayland-shell-v1 to improve XWayland reliability.
- wp-fractional-scale-v1 to allow clients to submit buffers with a non-integer scale factor matching the output.
- tearing-control to allow clients to opt-in for tearing page-flips.
- security-context-v1 to identify clients running in sandboxes.
- cursor-shape-v1 for server-side cursor themes.
-
Introduce a new output layers API to leverage KMS planes.
-
Add a new renderer API with improved design and performance. Add an API to query the time taken to render.
-
Continued work on the Vulkan renderer: add more RGB formats, add YUV buffers, add interoperability with implicit synchronization instead of blocking.
-
Add support for the new wl_surface.preferred_buffer_{scale,transform} events.
-
Improved scene-graph, including support for linux-dmabuf feedback and clipping surfaces.
-
Improved wlr_cursor which now keeps track of the current cursor image.
-
Add an implementation of the wl_shm interface, replacing libwayland's for improved reliability and performance.
-
The Wayland backend supports embedding a wlroots compositor inside an existing Wayland client.
-
wl_surface roles have been refactored.
At least it does not look blurry with fractional scaling enabled, which is the biggest issue IMO. The current hacky way is not ideal I agree but at least it is functional