NVIDIA Proposes "DeepColor Visual" Extension For X.Org Server, For HDR On Linux

Written by Michael Larabel in X.Org on 18 July 2017 at 08:36 AM EDT. 31 Comments
Since last year NVIDIA has been working on HDR support for the Linux desktop. They've worked on support for their driver, but with the Linux infrastructure for High Dynamic Range monitors lacking, they've been working on lower-level Linux improvements to allow for a HDR Linux desktop ecosystem with this next-generation of displays.

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.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week