|
|
Log in / Subscribe / Register

How many resources for professional graphics

How many resources for professional graphics

Posted Jun 15, 2025 14:47 UTC (Sun) by farnz (subscriber, #17727)
In reply to: How many resources for professional graphics by raven667
Parent article: Ubuntu 25.10 to drop support for GNOME on Xorg

The other really important thing is that hardware's changed.

When X11 was stabilizing, graphics output hardware consisted of a framebuffer feeding data to a RAMDAC that fed a CRT. If you were lucky, the output hardware had a simple overlay for the pointer, where it would switch the RAMDAC to getting data from a different palette and data source for a small rectangle (often in a different format, too - e.g. 4 bit with palette for the pointer, 8 bit with a different palette for the main framebuffer), with one data value reserved for "display the underlying framebuffer, not the pointer".

In this world, you could do things like colour correction by changing the RAMDAC setup slightly; change how it mapped framebuffer bits to voltages, and you got different pictures on the CRT.

Today's graphics output hardware isn't like that. We have a variety of display technologies, and we transfer the picture over a digital link. The graphics output hardware generates the image it sends over that digital link by compositing different framebuffers together, each with their own colourspace conversion, so that you can have a link that's 10 bpc RGB, being fed from an 8 bpc YUV framebuffer and three 8 bpc ARGB framebuffers each with their own conversions to 10 bpc RGB, and with those conversions happening on-the-fly. Further, the graphics output hardware may even be able to alpha-composite framebuffers together; if it can do this, it can sometimes do it before conversion to the link format, sometimes after, and sometimes even in an intermediate format (some hardware can composite in 12 bpc RGB, converting for output).

On top of that, the conversions have become more complicated; in the days when X11 stabilised, your conversion hardware was (at the most sophisticated end) a palette to RGB lookup, followed by a 1D LUT to turn each of R, G and B into voltages. In the modern world, you have 1D LUTs to convert digital values to digital values, 3D LUTs that convert 3 input values as a trio to three output values (so you can do things like have strong green reduce blue a little bit), and even conversion matrices, where you treat the input values as a vector, and multiply by a matrix to get an output vector. And, just to make things even more exciting, the graphics output hardware can directly read some compressed framebuffer formats; instead of having the framebuffer as a literal 1:1 mapping of pixel to output, you can have framebuffers that include shortcuts for things like "the next N pixels are all this fixed value"; this doesn't map nicely to X11's view that it can directly access pixels from the CPU.

X11, in as far as it handled modern hardware capabilities, did so by treating them as acceleration layers; you had the "main" framebuffer, the output link was configured to match the main framebuffer (possibly via a conversion layer for colour correction), and then any compositing was treated as layers for use by things like the Xv extension. For multiple monitor support, the graphics hardware was configured to have a single "virtual" framebuffer, with the output hardware scanning out its own chunk of the virtual framebuffer.

All of this means that the X11 model of hardware is hopelessly out of date, and to actually make full use of the silicon you're paying for (saving power, reducing output latency, reducing DRAM bandwidth used by iGPUs, having multiple colour-corrected windows, handling mixed HDR and SDR content etc), you need something that doesn't look like X11 any more.


to post comments


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds