If my understanding is correct, support for displays with 10 bpc instead of 8 bpc color depth was added to mutter in time for GNOME 46. I have a monitor (system specifications below) which is meant to support 10-bit color depth, but I’m not noticing any less banding in general than was present in the past. I would like to know how to test if:
My setup is recognized as supporting a 10 bpc format
The monitor is actually displaying colors at that depth
Any advice/suggestions you all have would be appreciated.
You can run drm_info, search for a “Plane” (under “Planes”) where the “type” is “Primary”. Under there you should see an entry called “FB_ID” that contains the size and format used to drive the monitor. If the format has “2101010” or similar in it (e.g. XRGB2101010) then it’s 10 bit depth. This is what it could look like:
That’s my first question answered. As for my second question, I have attempted to answer it by opening GIMP and creating two identical gradients (black to white, linear RGB, no dithering), one in a file with 8-bit integer precision and one in a file with 16-bit integer precision. The banding looked identical on both. Is this a valid test?
I’d attach the gradients, but it seems like Discourse converts my 16-bit image to 8-bit, defeating the purpose of that.
After running drm_info & viewing gradients in GIMP as described above, I also checked screen.colorDepth in Firefox, which reported a value of 24 (I expected 30). I have opened issue #3512 on Gitlab. Thanks to @jadahl for providing the first part of this solution.
Update: neither GIMP nor Firefox support high color depth images, rendering those tests useless. I’m switching the solution flag from my own reply to @jadahl’s.