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.

  • Chewy@discuss.tchncs.deOP
    link
    fedilink
    arrow-up
    16
    ·
    1 year ago
    • wp-fractional-scale-v1 to allow clients to submit buffers with a non-integer scale factor matching the output.

    This hopefully means Sway and similar will support real fractional scaling for applications, not just the compositor fractional scaling we already have.

    But I don’t know much about application support. Qt and Electron might support it; GTK 4 does not, possibly in a future version).

    https://wayland.app/protocols/fractional-scale-v1

    • tearing-control to allow clients to opt-in for tearing page-flips.

    That’s great for those who need it. Anyone with a modern display should probably just use variable refresh rate (vrr), but even today some devices don’t support it. E.g. there’s been 240Hz laptops without vrr.

    https://wayland.app/protocols/tearing-control-v1

    • Atemu
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      GTK 4 does not, possibly in a future version

      That would be news to me. Has GTK finally managed to switch away from using actual real hardware pixels as its base unit for measurement?

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

        I was sure I read that GTK wants to support true fractional scaling in GTK 5, but I can’t find a source to it. So it was probably just speculation. As far as I understand it, it would require big changes to GTK because everything is build with integer scaling in mind.

        At least GTK 4 already has support for this fractional scaling protocol.

        https://www.phoronix.com/news/GTK-4.11.1

      • Pasta Dental@sh.itjust.works
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        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