egl: Puts RGBA visuals in the second config selection group.
That way applications don't get windows that are compositor alpha-blended accidentally. In the ideal world, this would be done by the xserver, as it does for GLX, however, an appropriate place could not be found, so it's being placed here instead. Fixes: 049f343e8ac "egl: Allow 24-bit visuals for 32-bit RGBA8888 configs" Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67676 Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Hal Gentz <zegentzy@protonmail.com>
This commit is contained in:
@@ -831,9 +831,17 @@ dri2_x11_add_configs_for_visuals(struct dri2_egl_display *dri2_dpy,
|
||||
dri2_conf = dri2_add_config(disp, config, config_count + 1,
|
||||
surface_type, config_attrs,
|
||||
rgba_shifts, rgba_sizes);
|
||||
if (dri2_conf)
|
||||
if (dri2_conf) {
|
||||
if (dri2_conf->base.ConfigID == config_count + 1)
|
||||
config_count++;
|
||||
|
||||
/* Put RGBA visuals in the second ConfigSelectGroup so that they
|
||||
* have lower priority. Applications probably don't want the
|
||||
* compositor to alpha-blend their windows.
|
||||
*/
|
||||
if (d.data->depth != 24 && d.data->depth != 30)
|
||||
++dri2_conf->base.ConfigSelectGroup;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user