Humble ping x2 On 14/10/14 15:25, Emil Velikov wrote: > Humble ping. > > On 23/09/14 01:25, Emil Velikov wrote: >> From: Sjoerd Simons <sjoerd.sim...@collabora.co.uk> >> >> When using RGBA EGLConfigs allow both RGB and RGBA X visuals, such that >> application can decide whether they want to use RGBA (and have the >> compositor blend their windows). >> >> On my system with this change EGLConfigs with a 24 bit visual comes up >> first, as such applications blindly picking the first EGLConfig will >> still get an RGB X visual. >> >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67676 >> --- >> >> Hello gents, >> >> This patch has been stuck in bugzilla since February this year. Bringing >> it around here to gather greater exposure and perhaps some >> comments/reviews. >> >> -Emil >> >> src/egl/drivers/dri2/egl_dri2.c | 5 +++++ >> src/egl/drivers/dri2/platform_x11.c | 17 +++++++++-------- >> 2 files changed, 14 insertions(+), 8 deletions(-) >> >> diff --git a/src/egl/drivers/dri2/egl_dri2.c >> b/src/egl/drivers/dri2/egl_dri2.c >> index 20a7243..2ed90a7 100644 >> --- a/src/egl/drivers/dri2/egl_dri2.c >> +++ b/src/egl/drivers/dri2/egl_dri2.c >> @@ -110,6 +110,11 @@ EGLint dri2_to_egl_attribute_map[] = { >> static EGLBoolean >> dri2_match_config(const _EGLConfig *conf, const _EGLConfig *criteria) >> { >> + >> + if (criteria->NativeVisualID != EGL_DONT_CARE && >> + 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 a7a7338..3395fb7 100644 >> --- a/src/egl/drivers/dri2/platform_x11.c >> +++ b/src/egl/drivers/dri2/platform_x11.c >> @@ -672,14 +672,15 @@ dri2_x11_add_configs_for_visuals(struct >> dri2_egl_display *dri2_dpy, >> dri2_add_config(disp, dri2_dpy->driver_configs[j], id++, >> surface_type, config_attrs, rgba_masks); >> >> - /* Allow a 24-bit RGB visual 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! */ >> - if (d.data->depth == 24) { >> + /* Allow both 24-bit RGB visual and 32 bit RGBA 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! >> + * Allowing both allows applications to make the decision >> whether >> + * 32 bit visuals are intended */ >> + if (d.data->depth == 24 || d.data->depth == 32) { >> rgba_masks[3] = >> ~(rgba_masks[0] | rgba_masks[1] | rgba_masks[2]); >> dri2_add_config(disp, dri2_dpy->driver_configs[j], id++, >> >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev