Use depth-24 visual as default, but create a XRGB8888 visual too

In commit 2c4cb0c1529ac638f5538e189c60522648b00e9f we tried to create a
depth 32 visual and set it as the default.

However, it is actually pScrn->depth that is the "default", since that
is what is used by armsoc when creating FBs for our scanout BOs
(see OMAPMapMem() for root window, and drmmode_update_scanouts() for the
drmmode_xf86crtc_resize() / per-crtc scanouts).

Instead, we can go back to using a default depth-24 visual for the
root window and scanouts.  Since they now agree, the drmSetCrtc when
switching from blit-to-flip (or vice versa) will see two FBs with the same
depth, and will just do a fb update instead of a full mode switch.

However, we still let armsoc provide a depth-32 visual so Mali can back
its "EGL Configs with alpha" with a depth-32 XRGB8888 visual instead
of letting the COMPOSITE extension create an "alternate depth-32 visual"
that would trigger implicit redirection.

BUG=chromium:345706
TEST=boot,sanity check ui
TEST=glmark2-es2 (non-fullscreen) on top of UI works
TEST=Google+ hangout w/ screen sharing works w/out any flashing
TEST=crouton works again! ;)

Change-Id: I643a587148c32e8acee59bfcd6ccd47afc1e2e1a
Reviewed-on: https://chromium-review.googlesource.com/187424
Tested-by: Daniel Kurtz <djkurtz@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Commit-Queue: Daniel Kurtz <djkurtz@chromium.org>
1 file changed