summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom@vmware.com>2017-09-06 16:27:53 +0200
committerAdam Jackson <ajax@redhat.com>2017-09-12 16:13:24 -0400
commit0fc26310d5b09213c65f50bde444a1758172b016 (patch)
tree7e15cd08b8edf9e723fda68322b1e01e605a4257
parentda29a15874229d78ec61946eacdbbed9871e3664 (diff)
glx: Work around a GLX_OML swap method in older dri drivers
The swapMethod config member would typically contain an arbitrary value on older dri drivers. Fix this so that if we detect an illegal value, return GLX_SWAP_UNDEFINED_OML. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
-rw-r--r--glx/glxdricommon.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/glx/glxdricommon.c b/glx/glxdricommon.c
index c35dc1d1e..96f28d021 100644
--- a/glx/glxdricommon.c
+++ b/glx/glxdricommon.c
@@ -158,6 +158,13 @@ createModeFromConfig(const __DRIcoreExtension * core,
config->config.bindToTextureTargets |=
GLX_TEXTURE_RECTANGLE_BIT_EXT;
break;
+ case __DRI_ATTRIB_SWAP_METHOD:
+ /* Workaround for broken dri drivers */
+ if (value != GLX_SWAP_UNDEFINED_OML &&
+ value != GLX_SWAP_COPY_OML &&
+ value != GLX_SWAP_EXCHANGE_OML)
+ value = GLX_SWAP_UNDEFINED_OML;
+ /* Fall through. */
default:
setScalar(&config->config, attrib, value);
break;