From: Adam Jackson Date: Fri, 6 Sep 2019 16:30:19 +0000 (-0400) Subject: mesa: Eliminate gl_config::rgbMode X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=366b2e5c19109762cbdb3c31ac487826b6dd903a;p=mesa.git mesa: Eliminate gl_config::rgbMode Reviewed-by: Eric Anholt Reviewed-by: Marek Olšák --- diff --git a/src/gallium/state_trackers/glx/xlib/glx_api.c b/src/gallium/state_trackers/glx/xlib/glx_api.c index 748efea8649..b9ad7bebe30 100644 --- a/src/gallium/state_trackers/glx/xlib/glx_api.c +++ b/src/gallium/state_trackers/glx/xlib/glx_api.c @@ -191,6 +191,9 @@ save_glx_visual( Display *dpy, XVisualInfo *vinfo, GLint i; GLboolean comparePointers; + if (!rgbFlag) + return NULL; + if (dbFlag) { /* Check if the MESA_BACK_BUFFER env var is set */ char *backbuffer = getenv("MESA_BACK_BUFFER"); @@ -234,7 +237,6 @@ save_glx_visual( Display *dpy, XVisualInfo *vinfo, && v->mesa_visual.numAuxBuffers == numAuxBuffers && v->mesa_visual.samples == num_samples && v->ximage_flag == ximageFlag - && v->mesa_visual.rgbMode == rgbFlag && v->mesa_visual.doubleBufferMode == dbFlag && v->mesa_visual.stereoMode == stereoFlag && (v->mesa_visual.alphaBits > 0) == alphaFlag @@ -1522,12 +1524,7 @@ get_config( XMesaVisual xmvis, int attrib, int *value, GLboolean fbconfig ) case GLX_RGBA: if (fbconfig) return GLX_BAD_ATTRIBUTE; - if (xmvis->mesa_visual.rgbMode) { - *value = True; - } - else { - *value = False; - } + *value = True; return 0; case GLX_DOUBLEBUFFER: *value = (int) xmvis->mesa_visual.doubleBufferMode; @@ -1639,10 +1636,7 @@ get_config( XMesaVisual xmvis, int attrib, int *value, GLboolean fbconfig ) case GLX_RENDER_TYPE_SGIX: if (!fbconfig) return GLX_BAD_ATTRIBUTE; - if (xmvis->mesa_visual.rgbMode) - *value = GLX_RGBA_BIT; - else - *value = GLX_COLOR_INDEX_BIT; + *value = GLX_RGBA_BIT; break; case GLX_X_RENDERABLE_SGIX: if (!fbconfig) @@ -2222,10 +2216,7 @@ glXQueryContext( Display *dpy, GLXContext ctx, int attribute, int *value ) *value = xmctx->xm_visual->visinfo->visualid; break; case GLX_RENDER_TYPE: - if (xmctx->xm_visual->mesa_visual.rgbMode) - *value = GLX_RGBA_TYPE; - else - *value = GLX_COLOR_INDEX_TYPE; + *value = GLX_RGBA_TYPE; break; case GLX_SCREEN: *value = 0; diff --git a/src/gallium/state_trackers/glx/xlib/xm_api.c b/src/gallium/state_trackers/glx/xlib/xm_api.c index 3e01922c982..4351cd6e622 100644 --- a/src/gallium/state_trackers/glx/xlib/xm_api.c +++ b/src/gallium/state_trackers/glx/xlib/xm_api.c @@ -636,15 +636,13 @@ xmesa_free_buffer(XMesaBuffer buffer) * initializing the context's visual and buffer information. * \param v the XMesaVisual to initialize * \param b the XMesaBuffer to initialize (may be NULL) - * \param rgb_flag TRUE = RGBA mode, FALSE = color index mode * \param window the window/pixmap we're rendering into * \param cmap the colormap associated with the window/pixmap * \return GL_TRUE=success, GL_FALSE=failure */ static GLboolean initialize_visual_and_buffer(XMesaVisual v, XMesaBuffer b, - GLboolean rgb_flag, Drawable window, - Colormap cmap) + Drawable window, Colormap cmap) { assert(!b || b->xm_visual == v); @@ -652,28 +650,22 @@ initialize_visual_and_buffer(XMesaVisual v, XMesaBuffer b, v->BitsPerPixel = bits_per_pixel(v); assert(v->BitsPerPixel > 0); - if (rgb_flag == GL_FALSE) { - /* COLOR-INDEXED WINDOW: not supported*/ + /* RGB WINDOW: + * We support RGB rendering into almost any kind of visual. + */ + const int xclass = v->visualType; + if (xclass != GLX_TRUE_COLOR && xclass != GLX_DIRECT_COLOR) { + _mesa_warning(NULL, + "XMesa: RGB mode rendering not supported in given visual.\n"); return GL_FALSE; } - else { - /* RGB WINDOW: - * We support RGB rendering into almost any kind of visual. - */ - const int xclass = v->visualType; - if (xclass != GLX_TRUE_COLOR && xclass != GLX_DIRECT_COLOR) { - _mesa_warning(NULL, - "XMesa: RGB mode rendering not supported in given visual.\n"); - return GL_FALSE; - } - if (v->BitsPerPixel == 32) { - /* We use XImages for all front/back buffers. If an X Window or - * X Pixmap is 32bpp, there's no guarantee that the alpha channel - * will be preserved. For XImages we're in luck. - */ - v->mesa_visual.alphaBits = 8; - } + if (v->BitsPerPixel == 32) { + /* We use XImages for all front/back buffers. If an X Window or + * X Pixmap is 32bpp, there's no guarantee that the alpha channel + * will be preserved. For XImages we're in luck. + */ + v->mesa_visual.alphaBits = 8; } /* @@ -774,6 +766,9 @@ XMesaVisual XMesaCreateVisual( Display *display, if (!xmdpy) return NULL; + if (!rgb_flag) + return NULL; + /* For debugging only */ if (getenv("MESA_XSYNC")) { /* This makes debugging X easier. @@ -820,7 +815,7 @@ XMesaVisual XMesaCreateVisual( Display *display, if (alpha_flag) v->mesa_visual.alphaBits = 8; - (void) initialize_visual_and_buffer( v, NULL, rgb_flag, 0, 0 ); + (void) initialize_visual_and_buffer( v, NULL, 0, 0 ); { const int xclass = v->visualType; @@ -848,7 +843,6 @@ XMesaVisual XMesaCreateVisual( Display *display, { struct gl_config *vis = &v->mesa_visual; - vis->rgbMode = GL_TRUE; vis->doubleBufferMode = db_flag; vis->stereoMode = stereo_flag; @@ -1109,8 +1103,7 @@ XMesaCreateWindowBuffer(XMesaVisual v, Window w) if (!b) return NULL; - if (!initialize_visual_and_buffer( v, b, v->mesa_visual.rgbMode, - (Drawable) w, cmap )) { + if (!initialize_visual_and_buffer( v, b, (Drawable) w, cmap )) { xmesa_free_buffer(b); return NULL; } @@ -1140,8 +1133,7 @@ XMesaCreatePixmapBuffer(XMesaVisual v, Pixmap p, Colormap cmap) if (!b) return NULL; - if (!initialize_visual_and_buffer(v, b, v->mesa_visual.rgbMode, - (Drawable) p, cmap)) { + if (!initialize_visual_and_buffer(v, b, (Drawable) p, cmap)) { xmesa_free_buffer(b); return NULL; } @@ -1199,8 +1191,7 @@ XMesaCreatePixmapTextureBuffer(XMesaVisual v, Pixmap p, b->TextureFormat = format; b->TextureMipmap = mipmap; - if (!initialize_visual_and_buffer(v, b, v->mesa_visual.rgbMode, - (Drawable) p, cmap)) { + if (!initialize_visual_and_buffer(v, b, (Drawable) p, cmap)) { xmesa_free_buffer(b); return NULL; } @@ -1229,8 +1220,7 @@ XMesaCreatePBuffer(XMesaVisual v, Colormap cmap, if (!b) return NULL; - if (!initialize_visual_and_buffer(v, b, v->mesa_visual.rgbMode, - drawable, cmap)) { + if (!initialize_visual_and_buffer(v, b, drawable, cmap)) { xmesa_free_buffer(b); return NULL; } diff --git a/src/mesa/drivers/dri/common/utils.c b/src/mesa/drivers/dri/common/utils.c index 8621c36e988..0fdca2d9d84 100644 --- a/src/mesa/drivers/dri/common/utils.c +++ b/src/mesa/drivers/dri/common/utils.c @@ -355,7 +355,6 @@ driCreateConfigs(mesa_format format, modes->transparentBlue = GLX_DONT_CARE; modes->transparentAlpha = GLX_DONT_CARE; modes->transparentIndex = GLX_DONT_CARE; - modes->rgbMode = GL_TRUE; if (db_modes[i] == __DRI_ATTRIB_SWAP_NONE) { modes->doubleBufferMode = GL_FALSE; diff --git a/src/mesa/drivers/x11/fakeglx.c b/src/mesa/drivers/x11/fakeglx.c index af60bfaaa4e..593c8d1f7eb 100644 --- a/src/mesa/drivers/x11/fakeglx.c +++ b/src/mesa/drivers/x11/fakeglx.c @@ -1551,12 +1551,7 @@ get_config( XMesaVisual xmvis, int attrib, int *value, GLboolean fbconfig ) case GLX_RGBA: if (fbconfig) return GLX_BAD_ATTRIBUTE; - if (xmvis->mesa_visual.rgbMode) { - *value = True; - } - else { - *value = False; - } + *value = True; return 0; case GLX_DOUBLEBUFFER: *value = (int) xmvis->mesa_visual.doubleBufferMode; @@ -1618,12 +1613,7 @@ get_config( XMesaVisual xmvis, int attrib, int *value, GLboolean fbconfig ) } else if (xmvis->mesa_visual.level>0) { /* overlay */ - if (xmvis->mesa_visual.rgbMode) { - *value = GLX_TRANSPARENT_RGB_EXT; - } - else { - *value = GLX_TRANSPARENT_INDEX_EXT; - } + *value = GLX_TRANSPARENT_RGB_EXT; } else if (xmvis->mesa_visual.level<0) { /* underlay */ @@ -1691,10 +1681,8 @@ get_config( XMesaVisual xmvis, int attrib, int *value, GLboolean fbconfig ) return GLX_BAD_ATTRIBUTE; if (xmvis->mesa_visual.floatMode) *value = GLX_RGBA_FLOAT_BIT_ARB; - else if (xmvis->mesa_visual.rgbMode) - *value = GLX_RGBA_BIT; else - *value = GLX_COLOR_INDEX_BIT; + *value = GLX_RGBA_BIT; break; case GLX_X_RENDERABLE_SGIX: if (!fbconfig) diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index ee5eee32948..5a8f0ff191e 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -287,7 +287,6 @@ _mesa_initialize_visual( struct gl_config *vis, assert(accumBlueBits >= 0); assert(accumAlphaBits >= 0); - vis->rgbMode = GL_TRUE; vis->doubleBufferMode = dbFlag; vis->stereoMode = stereoFlag; diff --git a/src/mesa/main/framebuffer.c b/src/mesa/main/framebuffer.c index 727831e3d97..9246a0465a6 100644 --- a/src/mesa/main/framebuffer.c +++ b/src/mesa/main/framebuffer.c @@ -435,7 +435,6 @@ _mesa_update_framebuffer_visual(struct gl_context *ctx, struct gl_framebuffer *fb) { memset(&fb->Visual, 0, sizeof(fb->Visual)); - fb->Visual.rgbMode = GL_TRUE; /* assume this */ /* find first RGB renderbuffer */ for (unsigned i = 0; i < BUFFER_COUNT; i++) { diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index af5b60fcf5a..b7eef64bfd9 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -159,7 +159,6 @@ _mesa_varying_slot_in_fs(gl_varying_slot slot) */ struct gl_config { - GLboolean rgbMode; GLboolean floatMode; GLuint doubleBufferMode; GLuint stereoMode; diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c index b49e269124c..62af7ba921b 100644 --- a/src/mesa/state_tracker/st_manager.c +++ b/src/mesa/state_tracker/st_manager.c @@ -380,8 +380,6 @@ st_visual_to_context_mode(const struct st_visual *visual, mode->stereoMode = GL_TRUE; if (visual->color_format != PIPE_FORMAT_NONE) { - mode->rgbMode = GL_TRUE; - mode->redBits = util_format_get_component_bits(visual->color_format, UTIL_FORMAT_COLORSPACE_RGB, 0);