New issue
Advanced search Search tips

Issue 902943 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Task



Sign in to add a comment

Explore removing GLSurface::GetCompatibilityKey

Project Member Reported by piman@chromium.org, Nov 7

Issue description

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.
 
Labels: -Type-Bug Type-Feature
Status: Available (was: Untriaged)
Labels: -Type-Feature Type-Task

Sign in to add a comment