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.

    • Laser@feddit.de
      link
      fedilink
      arrow-up
      8
      ·
      edit-2
      1 year ago

      As pointed out, they don’t use it. However, there are loose plan for KWin to migrate to wlroots one day, and in fact a hostile fork exists that is exactly that (KWinFT). So a compositor can make use of wlroots to implement Wayland functionality, sway for example does exactly that, unsurprisingly since they’re sister projects by the same author.

      It should be noted that libwayland (mentioned in the patch notes) also exist, and wlroot actually depends on it, so I guess libwayland is like the lower level stuff while wlroots saves you some work to integrate libwayland into your compositor; the motto is “Pluggable, composable, unopinionated modules for building a Wayland compositor; or about 60,000 lines of code you were going to write anyway.”

    • Chewy@discuss.tchncs.deOP
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      wlroots is a library that can be used to implement a compositor like KWin or mutter (GNOME). In practice wlroots is used in Sway, Hyprland, river, and more.

      What wlroots-based compositors, KWin, and mutter share is that they implement a similar set of the display protocol Wayland. E.g. KWin and Sway implement the Wayland extension wlr_layer_shell