summaryrefslogtreecommitdiff
path: root/xserver/glx
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@cvs.openbsd.org>2019-03-19 21:19:58 +0000
committerMatthieu Herrb <matthieu@cvs.openbsd.org>2019-03-19 21:19:58 +0000
commit20cdf7268f0006bb9ffa593ffd2235295b561f51 (patch)
treed931fee6ce2111c6a9a875a00ea0a035dd95e41e /xserver/glx
parentc5e7388ec138dcbf9c68c208cb4764841a0208be (diff)
Update to xserver 1.19.7. Tested by jca@ and stsp@.
Diffstat (limited to 'xserver/glx')
-rw-r--r--xserver/glx/glxdricommon.c3
-rw-r--r--xserver/glx/glxscreens.c5
2 files changed, 8 insertions, 0 deletions
diff --git a/xserver/glx/glxdricommon.c b/xserver/glx/glxdricommon.c
index d3136e87b..dbf199c93 100644
--- a/xserver/glx/glxdricommon.c
+++ b/xserver/glx/glxdricommon.c
@@ -218,6 +218,9 @@ createModeFromConfig(const __DRIcoreExtension * core,
if (duplicateForComp &&
(render_type_is_pbuffer_only(renderType) ||
config->config.rgbBits != 32 ||
+ config->config.redBits != 8 ||
+ config->config.greenBits != 8 ||
+ config->config.blueBits != 8 ||
config->config.visualRating != GLX_NONE ||
config->config.sampleBuffers != 0)) {
free(config);
diff --git a/xserver/glx/glxscreens.c b/xserver/glx/glxscreens.c
index 29bacd988..62d66bc54 100644
--- a/xserver/glx/glxscreens.c
+++ b/xserver/glx/glxscreens.c
@@ -275,6 +275,11 @@ pickFBConfig(__GLXscreen * pGlxScreen, VisualPtr visual)
/* If it's the 32-bit RGBA visual, demand a 32-bit fbconfig. */
if (visual->nplanes == 32 && config->rgbBits != 32)
continue;
+ /* If it's the 32-bit RGBA visual, do not pick sRGB capable config.
+ * This can cause issues with compositors that are not sRGB aware.
+ */
+ if (visual->nplanes == 32 && config->sRGBCapable == GL_TRUE)
+ continue;
/* Can't use the same FBconfig for multiple X visuals. I think. */
if (config->visualID != 0)
continue;