As of 2018, it is possible to run Xorg in 30bpp mode (sometimes branded as “Deep Color”) with radeon or amdgpu open drivers, and a capable monitor or two. The extra precision is mainly beneficial for graphical editing work, but can also improve general UI quality by reducing gradient banding artifacts. This feature comes with a number of caveats though; see below for known software compatibility issues.
A digital connector (DVI, HDMI, DisplayPort) is needed - although VGA might work, the extra precision gets lost in the analog noise. Consult your monitor's documentation to ensure it is 30bpp-capable first; it should be safe to attempt this in any case, but if yours lacks support expect to see “signal out of range” errors.
First, test that the basic server works by running it from the console (without X already running):
Xorg -depth 30 -retro
You should see the traditional X11 black and white stipple pattern if everything's working. To get out of this screen, Ctrl+Alt+F1 to switch back to the console and Ctrl+c there to kill the server. If it works, you can move on to making the change more permanent.
Configuring the X server for 30bpp
Users of startx can append the option to their command line:
startx -- -depth 30
If you have a display manager, find the X server arguments in its configuration files and append
To set 30bpp in xorg.conf instead, using slightly longer code:
Section "Screen" Identifier "Screen Name" DefaultDepth 30 EndSection
While most GUI toolkits have no problem with 30bpp, individual software may have graphical issues or crash outright. Anything that uses media-libs/imlib2 or media-libs/libsdl will either crash, not display anything, or misrender. This includes quite a long list of old games, as well as tools that interact with the screen.
- dev-java/icedtea - Applications using AWT will crash immediately on startup, with a
sun.java2d.InvalidPipeExceptionstating that 30bpp is unsupported. This can be partially fixed by setting
_JAVA_OPTIONS='-Dsun.java2d.opengl=true'in your environment.
- games-engines/odamex - black screen
- games-fps/ut2004 - crashes at startup
- media-gfx/scrot - captures black screenshots
- media-video/mpv -
--vo=vdpauproduces garbled output.
--vo=opengl --hwdec=vdpauworks fine, and is the default.
- media-video/obs-studio - crashes at startup
- x11-misc/slim - crashes at startup
- x11-wm/openbox - mostly works, but window decoration backgrounds are drawn too dark (i.e.
- net-im/slack - render in wrong colors, almost all is pink, fonts are unreadable
- net-im/skypeforlinux - render in wrong colors, almost all is pink, fonts are unreadable
- Steam - updater progress box renders wrong, main app crashes at startup