staging/color-management: loosen restriction on maxCLL and maxFALL

ANSI/CTA-861-H does not require that maxCLL or maxFALL be within the
Mastering Display Luminance range, and it is common for movies to have a
maxCLL greater than the Mastering Display Luminance. Additionally,
Microsoft's own documentation* contains an example that does not pass
the restriction in the protocol. These values are valid, used in the
real world, and clients should not need to discard them. We keep the
requirement that maxFALL <= maxCLL since that is required, but these
values have no relation to the Mastering Display Luminance.

See #263 for further details on why the restriction on maxCLL and
maxFALL is not desirable. Fixes #263.

*: https://learn.microsoft.com/en-us/windows/win32/api/dxgi1_5/ns-dxgi1_5-dxgi_hdr_metadata_hdr10

Signed-off-by: Dudemanguy <random342@airmail.cc>
This commit is contained in:
Dudemanguy 2025-07-14 22:05:35 -05:00 committed by Pekka Paalanen
parent 6141e11543
commit b0b1010301

View file

@ -77,7 +77,7 @@
only be done by creating a new major version of the extension. only be done by creating a new major version of the extension.
</description> </description>
<interface name="wp_color_manager_v1" version="1"> <interface name="wp_color_manager_v1" version="2">
<description summary="color manager singleton"> <description summary="color manager singleton">
A singleton global interface used for getting color management extensions A singleton global interface used for getting color management extensions
for wl_surface and wl_output objects, and for creating client defined for wl_surface and wl_output objects, and for creating client defined
@ -558,7 +558,7 @@
</event> </event>
</interface> </interface>
<interface name="wp_color_management_output_v1" version="1"> <interface name="wp_color_management_output_v1" version="2">
<description summary="output color properties"> <description summary="output color properties">
A wp_color_management_output_v1 describes the color properties of an A wp_color_management_output_v1 describes the color properties of an
output. output.
@ -628,7 +628,7 @@
</request> </request>
</interface> </interface>
<interface name="wp_color_management_surface_v1" version="1"> <interface name="wp_color_management_surface_v1" version="2">
<description summary="color management extension to a surface"> <description summary="color management extension to a surface">
A wp_color_management_surface_v1 allows the client to set the color A wp_color_management_surface_v1 allows the client to set the color
space and HDR properties of a surface. space and HDR properties of a surface.
@ -716,7 +716,7 @@
</request> </request>
</interface> </interface>
<interface name="wp_color_management_surface_feedback_v1" version="1"> <interface name="wp_color_management_surface_feedback_v1" version="2">
<description summary="color management extension to a surface"> <description summary="color management extension to a surface">
A wp_color_management_surface_feedback_v1 allows the client to get the A wp_color_management_surface_feedback_v1 allows the client to get the
preferred image description of a surface. preferred image description of a surface.
@ -818,7 +818,7 @@
</request> </request>
</interface> </interface>
<interface name="wp_image_description_creator_icc_v1" version="1"> <interface name="wp_image_description_creator_icc_v1" version="2">
<description summary="holder of image description ICC information"> <description summary="holder of image description ICC information">
This type of object is used for collecting all the information required This type of object is used for collecting all the information required
to create a wp_image_description_v1 object from an ICC file. A complete to create a wp_image_description_v1 object from an ICC file. A complete
@ -934,7 +934,7 @@
</request> </request>
</interface> </interface>
<interface name="wp_image_description_creator_params_v1" version="1"> <interface name="wp_image_description_creator_params_v1" version="2">
<description summary="holder of image description parameters"> <description summary="holder of image description parameters">
This type of object is used for collecting all the parameters required This type of object is used for collecting all the parameters required
to create a wp_image_description_v1 object. A complete set of required to create a wp_image_description_v1 object. A complete set of required
@ -1005,14 +1005,16 @@
complete, the protocol error incomplete_set is raised. For the complete, the protocol error incomplete_set is raised. For the
definition of a complete set, see the description of this interface. definition of a complete set, see the description of this interface.
The protocol error invalid_luminance is raised if any of the following When both max_cll and max_fall are set, max_fall must be less or equal
requirements is not met: to max_cll otherwise the invalid_luminance protocol error is raised.
In version 1, these following conditions also result in the
invalid_luminance protocol error. Version 2 and later do not have this
requirement.
- When max_cll is set, it must be greater than min L and less or equal - When max_cll is set, it must be greater than min L and less or equal
to max L of the mastering luminance range. to max L of the mastering luminance range.
- When max_fall is set, it must be greater than min L and less or equal - When max_fall is set, it must be greater than min L and less or equal
to max L of the mastering luminance range. to max L of the mastering luminance range.
- When both max_cll and max_fall are set, max_fall must be less or equal
to max_cll.
If the particular combination of the parameter set is not supported If the particular combination of the parameter set is not supported
by the compositor, the resulting image description object shall by the compositor, the resulting image description object shall
@ -1306,7 +1308,7 @@
</request> </request>
</interface> </interface>
<interface name="wp_image_description_v1" version="1"> <interface name="wp_image_description_v1" version="2">
<description summary="Colorimetric image description"> <description summary="Colorimetric image description">
An image description carries information about the pixel color encoding An image description carries information about the pixel color encoding
and its intended display and viewing environment. The image description is and its intended display and viewing environment. The image description is
@ -1433,7 +1435,7 @@
</request> </request>
</interface> </interface>
<interface name="wp_image_description_info_v1" version="1"> <interface name="wp_image_description_info_v1" version="2">
<description summary="Colorimetric image description information"> <description summary="Colorimetric image description information">
Sends all matching events describing an image description object exactly Sends all matching events describing an image description object exactly
once and finally sends the 'done' event. once and finally sends the 'done' event.