30-bit X session and programs requiring 24-bit depth
antoine at nagafix.co.uk
Fri Feb 14 17:32:15 UTC 2020
On 14/02/2020 18:53, Marek Szuba wrote:
> I do quite a lot of photo editing on my box and with both my monitors
> and my graphics card (amdgpu) supporting 10-bit colour channels, I tend
> to run X at colour depth 30. Unfortunately some software, most notably
> programs using OpenGL it seems, refuse to run in this mode - presumably
> (I have seen this mentioned as the reason of problems with 30-bit mode
> under Windows when the first cards supporting it came out) because the
> software assumes 8-bit alpha channel but with the frame buffer still
> being only 32-bit it is only 2-bit. Seeing as there seem to be no way of
> switching colour depth on the fly, the best I have been able to come up
> with is two separate X sessions - one at depth 30 and one at 24.
> Is there, or perhaps will there be some way in the near future, to work
> around this problem - either by increasing framebuffer BPP (tried it a
> while ago but it didn't seem to accept anything more than 32), using a
> virtual X server (tried using Xephyr but it complained about there being
> no matching screen), or some other way I haven't thought of?
If you don't mind the indirection this introduces:
xpra start --start=xterm --attach=yes
This will start your application (ie: xterm) on a 24-bit virtual
framebuffer and display it on your local 30-bit display.
The pixel depth upscaling will be done by your OpenGL driver, or failing
that, in software.
The reverse is also possible, with a local display at 24-bit:
xpra start --start=xterm --attach=yes --pixel-depth=30
Runs the app on a 30 bit virtual display.
Apparently, there are apps that require a 30-bit display to use GPU
image processing and some users don't care if they don't actually see
the extra bit depth when doing so.
> Thank you in advance for your comments.
More information about the xorg