Skip to content

Draft: staging: add color management protocol

Sebastian Wick requested to merge swick/wayland-protocols:color into main

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:

Requirements:

  • 3 ACKs
  • review
  • 3 implementations of v4 (latest):
    • ???
  • one compositor and one client implementation for each features:
    • icc_v2_v4: Weston, weston-image
    • parametric: KWin, Mesa, GStreamer, GTK
    • set_primaries: KWin, no real world client yet
    • set_luminances: KWin, no real world client yet
    • set_mastering_display_primaries: KWin, Vulkan Layer (will be implemented in Mesa)
    • extended_target_volume: KWin, Vulkan layer (will be implemented in Mesa)
Edited by Sebastian Wick

Merge request reports