Implement config compatibility validation for HDR displays - #2344
Open
doug-walker wants to merge 1 commit into
Open
Implement config compatibility validation for HDR displays#2344doug-walker wants to merge 1 commit into
doug-walker wants to merge 1 commit into
Conversation
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds an app-helpers function
CheckCompatibilitythat checks if a config supports a given feature set. For now, it only implements one feature set, which is HDR display support. This is intended to test whether a config implements a minimal set of features needed by applications to work with HDR displays, as managed by operating systems (i.e., as opposed to displays driven directly by an AJA video card, or similar).The requirements on the config are as follows:
cie_xyz_d65_interchangerole.interop_idandencodingattributes on all display color spaces.view_transform. (One exception is allowed, which is if the colorspace has isData true.)With these features, an application may take the result of a
DisplayViewTransformand convert it to whatever color space may be necessary to comply with an operating system's (or perhaps more technically, a windowing system's) requirements. For example, if the (display, view) pair produces Rec.2100-PQ but the application needs to convert that to scRGB to pass it to the operating system, it would be able to do that. (In fact, it could combine all of that into a single OCIO transform, if desired.)The hope is that having these requirements in place will make it easier for config authors to make HDR-ready configs that will work across all applications. This would be an improvement over the current situation where each application may have its own special requirements about what the config contains or how things are named.
Note that the OCIO 2.5 Studio and CG configs for ACES 2.0 already meet these requirements.
I named the one enum for
CheckCompatibilityasCONFIG_HDR_DISPLAY_SUPPORT_26, where the "26" denotes that these are the requirements as of OCIO 2.6. I'm anticipating that we will add additional requirements around view transforms in the future to allow applications to select the appropriate ones for a given display.These requirements are meant to serve all situations in which the OS color management cannot be bypassed on the way to the monitor. So I was thinking of naming the enum
CONFIG_OS_DISPLAY_SUPPORT_26instead. I decided to go with "HDR" since that was the focus of the many discussions that led to this feature, but am open to alternate names.I updated
ociocheckto print the results of the compatibility check. The output comes after the validation check. The new-voption may be used to print why a config is not compatible. Here is an excerpt:Implements #2332. Please note that this is envisioned as part of a larger suite of functions related to HDR and OS-managed display support, that will arrive after 2.6.0 once the working group has reached consensus on the remaining topics.
Assisted by: Claude Code / Sonnet 5