glx: Skip multisampled configs when matching pre-existing X visuals.
In __glXScreenInit() we generate the set of GLX visuals in two steps: first we match each pre-existing X visual with a corresponding FBConfig, then we generate a new X visual to correspond to all the remaining FBConfigs. The first step is used for the two default 24-bit visuals (true color and direct color) and for the 32-bit visual. If windowsystem multisampling is enabled in Mesa, we need to ensure that none of these three visuals gets matched to a multisampled config. Fixes a bug with windowsystem multisampling in gnome-shell. If the X server happens to match up a multisampled FBConfig to the 32-bit visual, gnome-shell will try to use it to read pixels from alpha-blended windows (such as gnome-terminal), resulting in no window appearing on screen. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Chad Versace <chad.versace@linux.intel.com> Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
c0540b4c8d
commit
16d8da5ca9
|
@ -288,6 +288,9 @@ pickFBConfig(__GLXscreen * pGlxScreen, VisualPtr visual)
|
|||
continue;
|
||||
if (config->visualRating != GLX_NONE)
|
||||
continue;
|
||||
/* Ignore multisampled configs */
|
||||
if (config->sampleBuffers)
|
||||
continue;
|
||||
if (glxConvertToXVisualType(config->visualType) != visual->class)
|
||||
continue;
|
||||
/* If it's the 32-bit RGBA visual, demand a 32-bit fbconfig. */
|
||||
|
|
Loading…
Reference in New Issue
Block a user