Revert "egl: Fixes transparency with EGL and X11."
authorHal Gentz <zegentzy@protonmail.com>
Fri, 18 Oct 2019 07:03:36 +0000 (01:03 -0600)
committerAdam Jackson <ajax@nwnk.net>
Fri, 18 Oct 2019 18:41:51 +0000 (18:41 +0000)
This reverts commit 90a19074b4e1d4d8f8ababaade8170c05aeecffe.

include/GL/internal/dri_interface.h
src/egl/drivers/dri2/egl_dri2.c
src/egl/drivers/dri2/platform_x11.c
src/egl/main/eglconfig.c
src/egl/main/eglconfig.h
src/egl/main/eglglobals.c
src/mesa/drivers/dri/common/utils.c
src/mesa/main/mtypes.h

index 718b7dde87c7133be2f9b8c99edbada5686bd836..f19ec5168a52a1726b0aa2729c9233f5097b98c8 100644 (file)
@@ -813,8 +813,7 @@ struct __DRIuseInvalidateExtensionRec {
 #define __DRI_ATTRIB_GREEN_SHIFT               51
 #define __DRI_ATTRIB_BLUE_SHIFT                        52
 #define __DRI_ATTRIB_ALPHA_SHIFT               53
-#define __DRI_ATTRIB_CONFIG_SELECT_GROUP       54
-#define __DRI_ATTRIB_MAX                       55
+#define __DRI_ATTRIB_MAX                       54
 
 /* __DRI_ATTRIB_RENDER_TYPE */
 #define __DRI_ATTRIB_RGBA_BIT                  0x01    
index 63864346594bd6ead832d92ffe970d97b006a6a2..23d0e469427db25301ea3f0d45be00ede0de14b0 100644 (file)
@@ -187,7 +187,6 @@ static const EGLint dri2_to_egl_attribute_map[__DRI_ATTRIB_MAX] = {
    [__DRI_ATTRIB_MAX_SWAP_INTERVAL]     = EGL_MAX_SWAP_INTERVAL,
    [__DRI_ATTRIB_MIN_SWAP_INTERVAL]     = EGL_MIN_SWAP_INTERVAL,
    [__DRI_ATTRIB_YINVERTED]             = EGL_Y_INVERTED_NOK,
-   [__DRI_ATTRIB_CONFIG_SELECT_GROUP]   = EGL_CONFIG_SELECT_GROUP_MESA,
 };
 
 const __DRIconfig *
@@ -203,9 +202,6 @@ dri2_get_dri_config(struct dri2_egl_config *conf, EGLint surface_type,
 static EGLBoolean
 dri2_match_config(const _EGLConfig *conf, const _EGLConfig *criteria)
 {
-   if (conf->NativeVisualID != criteria->NativeVisualID)
-      return EGL_FALSE;
-
    if (_eglCompareConfigs(conf, criteria, NULL, EGL_FALSE) != 0)
       return EGL_FALSE;
 
index 414d5f74c5db0759ca77872699714d982565d5b1..5a1e2f31890aaa24c606671516da47051a7d37c5 100644 (file)
@@ -816,25 +816,28 @@ dri2_x11_add_configs_for_visuals(struct dri2_egl_display *dri2_dpy,
                if (dri2_conf->base.ConfigID == config_count + 1)
                   config_count++;
 
-            /* Allows RGB visuals to match a 32-bit RGBA EGLConfig.
+            /* Allow a 24-bit RGB visual to match a 32-bit RGBA EGLConfig.
+             * Ditto for 30-bit RGB visuals to match a 32-bit RGBA EGLConfig.
              * Otherwise it will only match a 32-bit RGBA visual.  On a
              * composited window manager on X11, this will make all of the
              * EGLConfigs with destination alpha get blended by the
              * compositor.  This is probably not what the application
              * wants... especially on drivers that only have 32-bit RGBA
              * EGLConfigs! */
-            unsigned int rgba_mask = ~(visuals[i].red_mask |
-                                       visuals[i].green_mask |
-                                       visuals[i].blue_mask);
-            rgba_shifts[3] = ffs(rgba_mask) - 1;
-            rgba_sizes[3] = util_bitcount(rgba_mask);
-            dri2_conf = dri2_add_config(disp, config, config_count + 1,
-                                        surface_type, config_attrs,
-                                        rgba_shifts, rgba_sizes);
-            if (dri2_conf)
-               if (dri2_conf->base.ConfigID == config_count + 1)
-                  config_count++;
-         }
+            if (d.data->depth == 24 || d.data->depth == 30) {
+               unsigned int rgba_mask = ~(visuals[i].red_mask |
+                                          visuals[i].green_mask |
+                                          visuals[i].blue_mask);
+               rgba_shifts[3] = ffs(rgba_mask) - 1;
+               rgba_sizes[3] = util_bitcount(rgba_mask);
+               dri2_conf = dri2_add_config(disp, config, config_count + 1,
+                                           surface_type, config_attrs,
+                                           rgba_shifts, rgba_sizes);
+               if (dri2_conf)
+                  if (dri2_conf->base.ConfigID == config_count + 1)
+                     config_count++;
+            }
+        }
       }
 
       xcb_depth_next(&d);
index b3362363664916f8dd3ba35469f87e106fbe9141..0a95e8ee05da9edc0989d8852a5f353b0dd7c74f 100644 (file)
@@ -258,9 +258,6 @@ static const struct {
    { EGL_COLOR_COMPONENT_TYPE_EXT,  ATTRIB_TYPE_ENUM,
                                     ATTRIB_CRITERION_EXACT,
                                     EGL_COLOR_COMPONENT_TYPE_FIXED_EXT },
-   { EGL_CONFIG_SELECT_GROUP_MESA,  ATTRIB_TYPE_INTEGER,
-                                    ATTRIB_CRITERION_IGNORE,
-                                    0 },
 };
 
 
@@ -299,8 +296,6 @@ _eglValidateConfig(const _EGLConfig *conf, EGLBoolean for_matching)
             if (val > 1 || val < 0)
                valid = EGL_FALSE;
             break;
-         case EGL_CONFIG_SELECT_GROUP_MESA:
-            break;
          default:
             if (val < 0)
                valid = EGL_FALSE;
@@ -613,10 +608,6 @@ _eglCompareConfigs(const _EGLConfig *conf1, const _EGLConfig *conf2,
    if (conf1 == conf2)
       return 0;
 
-   val1 = conf1->ConfigSelectGroup - conf2->ConfigSelectGroup;
-   if (val1)
-      return val1;
-
    /* the enum values have the desired ordering */
    STATIC_ASSERT(EGL_NONE < EGL_SLOW_CONFIG);
    STATIC_ASSERT(EGL_SLOW_CONFIG < EGL_NON_CONFORMANT_CONFIG);
index 064187ff1dd063d6ce4b9f9b831b4aa800b21460..605289de53650acf9d9e4053d2bea897ff97eca9 100644 (file)
@@ -89,7 +89,6 @@ struct _egl_config
    EGLint FramebufferTargetAndroid;
    EGLint RecordableAndroid;
    EGLint ComponentType;
-   EGLint ConfigSelectGroup;
 };
 
 
@@ -140,7 +139,6 @@ _eglOffsetOfConfig(EGLint attr)
    ATTRIB_MAP(EGL_FRAMEBUFFER_TARGET_ANDROID, FramebufferTargetAndroid);
    ATTRIB_MAP(EGL_RECORDABLE_ANDROID,        RecordableAndroid);
    ATTRIB_MAP(EGL_COLOR_COMPONENT_TYPE_EXT,  ComponentType);
-   ATTRIB_MAP(EGL_CONFIG_SELECT_GROUP_MESA,  ConfigSelectGroup);
 #undef ATTRIB_MAP
    default:
       return -1;
index 71d1fccf75fb879f960696990563298b69985b0c..0d7270333ec0bbb8600ffe9a00efb439916c6763 100644 (file)
@@ -70,8 +70,7 @@ struct _egl_global _eglGlobal =
    " EGL_EXT_device_query"
    " EGL_EXT_platform_base"
    " EGL_KHR_client_get_all_proc_addresses"
-   " EGL_KHR_debug"
-   " EGL_MESA_config_select_group",
+   " EGL_KHR_debug",
 
    .PlatformExtensionString =
 #ifdef HAVE_WAYLAND_PLATFORM
index 2d57aef18f2734fd382f0d6aa168e0708595bcb2..0fdca2d9d84dc9b49c92328ef7f0b7541bfd7ac6 100644 (file)
@@ -379,7 +379,6 @@ driCreateConfigs(mesa_format format,
                    modes->yInverted = GL_TRUE;
                    modes->sRGBCapable = is_srgb;
                    modes->mutableRenderBuffer = mutable_render_buffer;
-                   modes->configSelectGroup = 0;
                }
            }
        }
@@ -469,7 +468,6 @@ static const struct { unsigned int attrib, offset; } attribMap[] = {
     __ATTRIB(__DRI_ATTRIB_YINVERTED,                   yInverted),
     __ATTRIB(__DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE,    sRGBCapable),
     __ATTRIB(__DRI_ATTRIB_MUTABLE_RENDER_BUFFER,       mutableRenderBuffer),
-    __ATTRIB(__DRI_ATTRIB_CONFIG_SELECT_GROUP, configSelectGroup),
 
     /* The struct field doesn't matter here, these are handled by the
      * switch in driGetConfigAttribIndex.  We need them in the array
index 2397ca6b74f8e4e0f7b98bcccfaf23d103f6fcbc..ae93dff40dac496798b2bef85394ceafca066604 100644 (file)
@@ -211,9 +211,6 @@ struct gl_config
 
    /* EGL_KHR_mutable_render_buffer */
    GLuint mutableRenderBuffer; /* bool */
-
-   /* EGL_MESA_config_select_group */
-   GLint configSelectGroup;
 };