This is only used on linux to account for the fact that different windows (as well as offscreen ones) may have a different visual (therefore GLXConfig), and so we don't have a guarantee that one "real" GLContext can be made current with arbitrary GLSurfaces, so we still need to (potentially) create multiple real GLContexts when we do context virtualization. It causes a bunch of complexity, in particular for SkiaRenderer (see crbug.com/902904 ).
This is mostly due to the fact that we prefer the root visual, which may not be RGBA, for browser windows, because it can save a blit on swap when not using a compositing manager. We want to use an RGBA visual however for transparency, although that only works with compositing managers.
The thought then is that we could decide:
- if no compositing manager, always pick the root visual, since transparency won't work.
- if we have a compositing manager, always pick the RGBA visual, since the blit optimization is unlikely to pan out (unless the compositing manager tries to un-redirect, but we hint to disable that because it causes tearing - https://bugs.chromium.org/p/chromium/issues/detail?id=344141#c48).
That way we wouldn't need multiple real GLContext any more.
Comment 1 by vmi...@chromium.org
, Nov 9Status: Available (was: Untriaged)