backends/x11/standalone: only use sRGB configurations with depth 24

Credit goes to Mario Kleiner, who bisected this issue.

BUG: 423014
This commit is contained in:
Xaver Hugl 2022-01-29 19:40:40 +01:00 committed by Vlad Zahorodnii
parent fde0e243d9
commit e6fb6ff5d3

View file

@ -464,18 +464,8 @@ bool GlxBackend::initFbConfig()
0
};
bool llvmpipe = false;
// Note that we cannot use GLPlatform::driver() here, because it has not been initialized at this point
if (hasExtension(QByteArrayLiteral("GLX_MESA_query_renderer"))) {
const QByteArray device = glXQueryRendererStringMESA(display(), DefaultScreen(display()), 0, GLX_RENDERER_DEVICE_ID_MESA);
if (device.contains(QByteArrayLiteral("llvmpipe"))) {
llvmpipe = true;
}
}
// Don't request an sRGB configuration with LLVMpipe when the default depth is 16. See bug #408594.
if (!llvmpipe || Xcb::defaultDepth() > 16) {
// Only request sRGB configurations with default depth 24 as it can cause problems with other default depths. See bugs #408594 and #423014.
if (Xcb::defaultDepth() == 24) {
fbconfig = chooseGlxFbConfig(display(), attribs_srgb);
}
if (!fbconfig) {