diff options
author | Paul Berry <stereotype441@gmail.com> | 2012-07-31 15:15:56 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-08-15 13:25:08 -0700 |
commit | 16d8da5ca99211bd180f532d78d7c5943d38c8ad (patch) | |
tree | e99501bc0537ff313c32eb079eb75a08abff63db /glx/glxscreens.c | |
parent | c0540b4c8db676d18a9a09828f1590b0b16f9ebc (diff) |
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>
Diffstat (limited to 'glx/glxscreens.c')
-rw-r--r-- | glx/glxscreens.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/glx/glxscreens.c b/glx/glxscreens.c index 037b03765..61d590cc8 100644 --- a/glx/glxscreens.c +++ b/glx/glxscreens.c @@ -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. */ |