Draft: staging: add color management protocol
The aim of the color management extension is to allow clients to know the color properties of outputs, and to tell the compositor about the color properties of their content on surfaces. Doing this enables a compositor to perform automatic color management of content for different outputs according to how content is intended to look like.
Documentation
Additional documentation is being developed in https://gitlab.freedesktop.org/pq/color-and-hdr .
Protocol development
We are developing this proposal by filing sub-MRs in Sebastian's fork and merging them into the branch this MR is based on.
Eventually everything in this MR will be squashed into a single patch before landing.
Experimentation
To facilitate experimentation with the protocol, variants of the protocol in this MR are available at https://gitlab.freedesktop.org/swick/wayland-protocols/-/commits/color-xx. The current version is xx-color-management-v4.xml
.
These variant are for experimentation only and will go away eventually! Compositors should hide support for those protocol behind some kind of flag to prevent this protocol variant from becoming widespread.
All interfaces renamed use the xx prefix instead of wp. The branch won't get updates from upstream without discussing it first to make sure different experimental clients and compositors can be reasonably used together.
Upstreaming process
Please add a comment to the MR when you want to...
- ACK the protocol
- officially review the MR
- have a client or server implementation (mention the supported features)
Implementations:
- KWin (v4): https://invent.kde.org/plasma/kwin/-/merge_requests/6126
- Mutter (v4): https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3893
- Weston (v4): weston!1590 (merged)
- weston-image (v4 ICC client)
- Mesa:
- Vulkan (v4): mesa/mesa!31991
- EGL: ?
- GStreamer (v2): gstreamer/gstreamer!6830
- GTK (v4): https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7489
- mpv (v4 with
--vo=dmabuf-wayland
) - Qt (v4): https://codereview.qt-project.org/c/qt/qtwayland/+/595322
Requirements:
-
3 ACKs -
review -
3 implementations of wp_color_manager_v1
(not yet merged):- servers:
- clients:
- Mesa/Vulkan: mesa/mesa!32038
-
one compositor and one client implementation for each features: -
icc_v2_v4
: Weston, weston-image -
parametric
: KWin, Mesa, GStreamer, GTK, mpv -
set_primaries
: KWin, GTK, (Qt) -
set_luminances
: KWin, no real world client yet -
set_mastering_display_primaries
: KWin, mpv, Mesa/Vulkan (Quake II RTX) -
extended_target_volume
: KWin, Mesa/Vulkan (Quake II RTX)
-
-
Compositor implementation features: -
combine ICC-based and parametric image descriptions into a color transformation
-