NVIDIA Proposes "DeepColor Visual" Extension For X.Org Server, For HDR On Linux
Proposed by NVIDIA today is a DeepColor Visual Class Extension for the X.Org Server to be used by High Dynamic Range drawables and handling of colorspace/encoding and pixel formats. Multiple NVIDIA developers have been working on this X extension internally for months while now they believe it's in a usable form worth posting for discussion by other X.Org developers. The extension should work with EGL, GLX, and Vulkan while obviously it's up to the driver/compositor/server to implement much of their HDR handling work.
Here's the introduction to the proposed X extension for DeepColor Visuals:
The DeepColor Extension provides a new visual class, DeepColor, designed for handling visuals that are incompatible with the existing core X visual classes: StaticGray, StaticColor, TrueColor, GrayScale, PseudoColor, or DirectColor.
These visual classes provided by the core X11 protocol are insufficient for visuals that require a greater than 32 bit depth, or non-integer formats. As such, they are not suitable for many HDR formats.
In order to support a variety of HDR formats or any other formats that are incompatible with the core X11 visual classes, DeepColor doesn't rely on a colormap to define the relationship between pixel values and colors. Instead, windows with DeepColor visuals will rely on a window property to define a colorspace/encoding, chosen from an enumerated set of colorspaces/encodings associated with the root window. Compositors may detect changes in the colorspace/encoding of redirected windows by listening for PropertyNotify events.
In addition to supporting a variety of colorspaces/encodings, DeepColor visuals must also support a variety of pixel formats, e.g. FP16 RGBA. The information provided by the existing XVisualInfo structure is insufficient for differentiating such formats, so a mechanism must be provided for clients to determine the pixel formats of DeepColor visuals.
Intel developers have also begun working on HDR support for the Linux DRM code and Fedora / Red Hat will be tackling Linux HDR issues too. Great to see the growing number of companies interested in HDR monitor support for the Linux desktop as for right now this support is lagging behind Windows' capabilities and support.
The proposal for this new X extension can be found via xorg-devel. As of writing this article, no other X.Org developers have yet commented on the work.