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.

  • ChewyOP
    link
    fedilink
    1610 months 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
      210 months 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?

      • ChewyOP
        link
        fedilink
        310 months 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
        link
        fedilink
        210 months 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