From c17d35b4029a58e7c29b5024dbc0f4da2b45f893 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Wed, 24 Mar 2021 12:16:51 -0400 Subject: [PATCH] mesa: Remove transparency state from struct gl_config We never set this to anything interesting, and this is really winsys state not GL state anyway. Nota bene: __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE is set to GLX_NONE instead of the GLX_DONT_CARE we looked like we were doing before. This is to preserve backward compatibility with older (technically, all current) X servers, which when building their fbconfigs initialize a field named 'transparentPixel' _twice_, and the second time from __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE, but then uses 'transparentPixel's value for GLX_TRANSPARENT_TYPE. Which, GLX_DONT_CARE isn't a valid value for that, so glx-fbconfig-sanity fails among much else. This is harmless, in that I don't think any DRI driver has ever wired this up (I can't find any evidence in r100 or mga history) and certainly none that we can currently load have this working. Reviewed-by: Eric Anholt Part-of: --- src/mesa/drivers/dri/common/utils.c | 23 ++++++++++------------- src/mesa/main/mtypes.h | 6 ------ 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/mesa/drivers/dri/common/utils.c b/src/mesa/drivers/dri/common/utils.c index 7270367c54e..a11817e450a 100644 --- a/src/mesa/drivers/dri/common/utils.c +++ b/src/mesa/drivers/dri/common/utils.c @@ -350,13 +350,6 @@ driCreateConfigs(mesa_format format, modes->stencilBits = stencil_bits[k]; modes->depthBits = depth_bits[k]; - modes->transparentPixel = GLX_NONE; - modes->transparentRed = GLX_DONT_CARE; - modes->transparentGreen = GLX_DONT_CARE; - modes->transparentBlue = GLX_DONT_CARE; - modes->transparentAlpha = GLX_DONT_CARE; - modes->transparentIndex = GLX_DONT_CARE; - if (db_modes[i] == __DRI_ATTRIB_SWAP_NONE) { modes->doubleBufferMode = GL_FALSE; modes->swapMethod = __DRI_ATTRIB_SWAP_UNDEFINED; @@ -466,12 +459,16 @@ driGetConfigAttribIndex(const __DRIconfig *config, __ATTRIB(__DRI_ATTRIB_DOUBLE_BUFFER, doubleBufferMode); __ATTRIB(__DRI_ATTRIB_STEREO, stereoMode); __ATTRIB(__DRI_ATTRIB_AUX_BUFFERS, numAuxBuffers); - __ATTRIB(__DRI_ATTRIB_TRANSPARENT_TYPE, transparentPixel); - __ATTRIB(__DRI_ATTRIB_TRANSPARENT_INDEX_VALUE, transparentPixel); - __ATTRIB(__DRI_ATTRIB_TRANSPARENT_RED_VALUE, transparentRed); - __ATTRIB(__DRI_ATTRIB_TRANSPARENT_GREEN_VALUE, transparentGreen); - __ATTRIB(__DRI_ATTRIB_TRANSPARENT_BLUE_VALUE, transparentBlue); - __ATTRIB(__DRI_ATTRIB_TRANSPARENT_ALPHA_VALUE, transparentAlpha); + case __DRI_ATTRIB_TRANSPARENT_TYPE: + case __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE: /* horrible bc hack */ + *value = GLX_NONE; + break; + case __DRI_ATTRIB_TRANSPARENT_RED_VALUE: + case __DRI_ATTRIB_TRANSPARENT_GREEN_VALUE: + case __DRI_ATTRIB_TRANSPARENT_BLUE_VALUE: + case __DRI_ATTRIB_TRANSPARENT_ALPHA_VALUE: + *value = GLX_DONT_CARE; + break; case __DRI_ATTRIB_FLOAT_MODE: *value = config->modes.floatMode; break; diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 97178e9cfbe..4c77561ef60 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -182,12 +182,6 @@ struct gl_config /* EXT_visual_rating / GLX 1.2 */ GLint visualRating; - /* EXT_visual_info / GLX 1.2 */ - GLint transparentPixel; - /* colors are floats scaled to ints */ - GLint transparentRed, transparentGreen, transparentBlue, transparentAlpha; - GLint transparentIndex; - /* ARB_multisample / SGIS_multisample */ GLint sampleBuffers; GLuint samples;