Skip to content
Snippets Groups Projects
  1. Feb 28, 2025
  2. Feb 21, 2025
  3. Feb 18, 2025
  4. Feb 17, 2025
  5. Feb 13, 2025
    • Pekka Paalanen's avatar
      staging/color-management: credit Niels · b3e507b1
      Pekka Paalanen authored
      
      Niels' efforts predate Sebastian's by another 5 years and they deserve
      to be mentioned.
      
      Sorry for missing them from the commit.
      
      Signed-off-by: default avatarPekka Paalanen <pekka.paalanen@collabora.com>
      b3e507b1
    • Sebastian Wick's avatar
      staging: add color-management protocol · 452e943b
      Sebastian Wick authored and Pekka Paalanen's avatar Pekka Paalanen committed
       # Wayland Color Management and HDR Design Goals
      
      The goals of Wayland color management and *high dynamic range* (HDR) support
      protocol extension are:
      
      - Reliably maintain the display server color setup.
      - Support professional color managed applications (presentation).
      - Support displaying TV broadcasts and other high quality video content.
      - Support a wide variety of monitors and application content,
        including wide gamut and/or HDR.
      - Bring basic color management to applications that are not color-aware at all.
      - Bring adequate color management to Wayland applications that are color-aware
        but not color managed.
      
      Once a display system has been calibrated, measured and configured, it should
      keep its settings until the user intentionally changes them. Achieving this
      reliability requires protecting the system from accidental changes and avoiding
      dependency on hardware default state as much as possible. The former is done by
      not allowing arbitrary programs to change the settings. The latter is realized
      by very careful Wayland compositor implementation that takes into account the
      details of the underlying system API. For example, with DRM also unrecognized
      KMS properties need to be saved and restored.
      
      It should be reasonably possible to run existing color managed applications,
      particularly X11 applications through Xwayland, without need for modification
      and get at least the level of color managed presentation features they received
      on Xorg. It is possible that this requires e.g. re-creating monitor color profiles,
      recalibration, or other reconfiguring.
      
      The use of `xrandr` and similar X11 tools and interfaces are intentionally
      not supported as the Wayland desktop paradigm does not allow clients to force
      effects on other clients. Those global properties, including video mode
      and display color depth, are left to each Wayland compositor's own settings
      management as they are end user preferences.
      
      The protocol extension should be usable for professional broadcast display
      usage, meaning that it is suitable for use inside a television for all of
      aerial, cable, and internet delivered content. However, the extension might not
      be completely sufficient, particularly where it would violate the Wayland
      desktop paradigm (e.g. requests to change display video mode or calibration
      shall not be included).
      
      The support for a wide variety of monitors is achieved by communicating sufficient
      information about the monitors to applications, so that applications can adapt
      to the monitors if they choose to do so. The proper composition and handling of
      a wide variety of application content is achieved by applications describing
      the content in sufficient detail for a Wayland compositor to process it
      correctly.
      
      Applications that pay no mind whatsoever to color management are called
      *color-unaware*. They have been written for an average system that more or less
      resembles (or not) sRGB in its color output. This is the large majority of all
      applications on X11 and Wayland. On a usual consumer monitor they look pretty
      much ok, but on a color managed monitor with special features (wide gamut, HDR)
      they might be an eye sore when displayed side by side with properly color
      managed applications. A goal for Wayland color management is to make these
      application look "pretty much ok" on such special monitors without
      modifications to the applications or toolkits, while letting color managed
      applications look their best simultaneously.
      
      One step forward from color-unaware applications are *color-aware* applications
      that also are not fully color managed applications. These applications are
      fixed to one or few well-known color spaces, the traditional sRGB for instance.
      They don't try to adapt to the monitor and they might not use any *color
      management module* (CMM). These applications can still describe their content's
      color space to a Wayland compositor, which will then take care of color managed
      presentation of the content.
      
      Finally, *color-managed* applications are fully prepared to do all of their own
      color management, and may be using a CMM. They can also adapt their rendering
      to different kinds of monitors, and prefer to know everything they can about a
      monitor in order to do a perfect job. They expect the window system to not
      tamper with the color values they produce.
      
      The above goals imply that a Wayland compositor is an active participant in
      color management, converting all application content into some common color
      space for display on a monitor. As a compositor can do that separately for each
      monitor, it is possible to present the same window adequately color managed on
      multiple monitors simultaneously. It is also possible to keep a monitor in HDR
      mode while showing both *standard dynamic range* (SDR) (traditional or
      unmodified applications) and HDR content simultaneously. A practical use case
      for that is a video player showing a HDR video on one Wayland surface and SDR
      subtitles and user interface on another surface.
      
       History
      
      Wayland color management has been planned and developed for many years.
      This patch is the result of 141 development patches which are stored for
      future reference in the wayland-protocols branch history/color-management:
      https://gitlab.freedesktop.org/wayland/wayland-protocols/-/commits/history/color-management
      
      
      The development started some years even before this.
      
      There have been many contributors over the years. The list below has
      been collected from those 141 patches, and is surely incomplete.
      
      Co-authored-by: default avatarBenjamin Otte <otte@redhat.com>
      Co-authored-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
      Co-authored-by: default avatarColin Marc <hi@colinmarc.com>
      Co-authored-by: default avatarDudemanguy <random342@airmail.cc>
      Co-authored-by: default avatarLeandro Ribeiro <leandro.ribeiro@collabora.com>
      Co-authored-by: default avatarMatthias Clasen <mclasen@redhat.com>
      Co-authored-by: Naveen Kumar's avatarNaveen Kumar <naveen1.kumar@intel.com>
      Co-authored-by: default avatarSebastian Wick <sebastian.wick@redhat.com>
      Co-authored-by: default avatarTimo Witte <timo.witte@gmail.com>
      Co-authored-by: default avatarVictoria Brekenfeld <victoria@system76.com>
      Co-authored-by: default avatarVitaly Prosyak <vitaly.prosyak@amd.com>
      Co-authored-by: default avatarXaver Hugl <xaver.hugl@kde.org>
      
      Signed-off-by: default avatarSebastian Wick <sebastian@sebastianwick.net>
      Signed-off-by: default avatarPekka Paalanen <pekka.paalanen@collabora.com>
      452e943b
  6. Jan 30, 2025
  7. Jan 29, 2025
  8. Jan 21, 2025
  9. Jan 13, 2025
  10. Dec 22, 2024
  11. Dec 20, 2024
  12. Dec 03, 2024
  13. Nov 20, 2024
  14. Nov 07, 2024
  15. Nov 06, 2024
  16. Oct 31, 2024
  17. Oct 30, 2024
  18. Oct 25, 2024
    • Neal Gompa (ニール・ゴンパ)'s avatar
      Add ext-data-control protocol · 1f5f2b50
      Neal Gompa (ニール・ゴンパ) authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
      
      This protocol allows a privileged client to control data devices. In
      particular, the client will be able to manage the current selection and take
      the role of a clipboard manager.
      
      This is a straight port from wlr-data-control-unstable-v1 to ext-, as it
      has not changed in five years and has near-universal compositor adoption.
      
      Signed-off-by: default avatarNeal Gompa <neal@gompa.dev>
      1f5f2b50
  19. Oct 13, 2024
  20. Oct 12, 2024
  21. Oct 11, 2024
  22. Oct 10, 2024
  23. Oct 09, 2024
  24. Oct 07, 2024
Loading