diff options
Diffstat (limited to 'src/egl')
-rw-r--r-- | src/egl/drivers/dri2/egl_dri2.c | 4 | ||||
-rw-r--r-- | src/egl/drivers/dri2/platform_x11.c | 29 | ||||
-rw-r--r-- | src/egl/main/eglconfig.c | 9 | ||||
-rw-r--r-- | src/egl/main/eglconfig.h | 2 | ||||
-rw-r--r-- | src/egl/main/eglglobals.c | 3 |
5 files changed, 17 insertions, 30 deletions
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 63864346594..23d0e469427 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -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; diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c index 414d5f74c5d..5a1e2f31890 100644 --- a/src/egl/drivers/dri2/platform_x11.c +++ b/src/egl/drivers/dri2/platform_x11.c @@ -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); diff --git a/src/egl/main/eglconfig.c b/src/egl/main/eglconfig.c index b3362363664..0a95e8ee05d 100644 --- a/src/egl/main/eglconfig.c +++ b/src/egl/main/eglconfig.c @@ -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); diff --git a/src/egl/main/eglconfig.h b/src/egl/main/eglconfig.h index 064187ff1dd..605289de536 100644 --- a/src/egl/main/eglconfig.h +++ b/src/egl/main/eglconfig.h @@ -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; diff --git a/src/egl/main/eglglobals.c b/src/egl/main/eglglobals.c index 71d1fccf75f..0d7270333ec 100644 --- a/src/egl/main/eglglobals.c +++ b/src/egl/main/eglglobals.c @@ -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 |