From 858eb189529ba904cea663168d64440338a16138 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 15 Oct 2024 02:30:08 -0400 Subject: [PATCH] glx: Fix the GLX_EXT_swap_control_tear drawable attributes GLX_SWAP_INTERVAL_EXT is always positive, GLX_LATE_SWAPS_TEAR_EXT is how you tell whether the drawable is set to do it. This aligns us with the spec and NVIDIA's GLX. Closes: mesa/mesa#10193 Fixes: 5e9e4573835 glx/dri3: Implement GLX_EXT_swap_control_tear Part-of: --- src/glx/glx_pbuffer.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/glx/glx_pbuffer.c b/src/glx/glx_pbuffer.c index 9bf99be204f..6b7e6693f42 100644 --- a/src/glx/glx_pbuffer.c +++ b/src/glx/glx_pbuffer.c @@ -296,14 +296,13 @@ __glXGetDrawableAttribute(Display * dpy, GLXDrawable drawable, if (pdraw) { if (attribute == GLX_SWAP_INTERVAL_EXT) { - *value = pdraw->psc->driScreen.getSwapInterval(pdraw); + *value = abs(pdraw->psc->driScreen.getSwapInterval(pdraw)); return 1; } else if (attribute == GLX_MAX_SWAP_INTERVAL_EXT) { *value = pdraw->psc->driScreen.maxSwapInterval; return 1; } else if (attribute == GLX_LATE_SWAPS_TEAR_EXT) { - *value = __glXExtensionBitIsEnabled(pdraw->psc, - EXT_swap_control_tear_bit); + *value = pdraw->psc->driScreen.getSwapInterval(pdraw) < 0; return 1; } }