30-bit X session and programs requiring 24-bit depth

Antoine Martin antoine at nagafix.co.uk
Mon Feb 17 09:01:35 UTC 2020

On 17/02/2020 15:51, Ilya Anfimov wrote:
> On Sat, Feb 15, 2020 at 12:32:15AM +0700, Antoine Martin wrote:
>> On 14/02/2020 18:53, Marek Szuba wrote:
>>> Hello,
>>> 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.
>  And with software-only OpenGL.
If you want accelerated OpenGL within the xpra session, use VirtualGL:
xpra start --start="vglrun xterm" --attach=yes
>  xpra itself is not really good at either proxying or accelerating
> glx/dri.
Xpra doesn't even attempt to do these things, that's not its job.


>> 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.
>> Antoine
>>> Thank you in advance for your comments.
>> _______________________________________________
>> xorg at lists.x.org: X.Org support
>> Archives: http://lists.freedesktop.org/archives/xorg
>> Info: https://lists.x.org/mailman/listinfo/xorg
>> Your subscription address: %(user_address)s

More information about the xorg mailing list