New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 728131 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 672961



Sign in to add a comment

Verify exo subsurface synchronization

Project Member Reported by penghuang@chromium.org, May 31 2017

Issue description

With CL https://codereview.chromium.org/2868473002, exo will only
allocate new surface, when surface's size is changed. It may break
exo subsurface synchronization. We need create a test to verify it.
If it does break, fix it.
 
Blocking: 672961
We might need some form of pixel test to verify this in a reliable way.
I created a wayland client to verify subsurface features, and didn't find any issue. See[1]

[1]https://chromium-review.googlesource.com/c/518983/

If each subsurface has a CompositorFrameSink and they're all submitting CompositorFrames asynchronously then there's no guarantee that a display frame isn't generated at some point within your animation loop. In that case, you'll get an inconsistent frame.
I think for CASH, it shouldn't have this problem, because they all in the same thread, and SubmitCompositorFrame() should be synchronized operations.

For mus, it may happen with current Mus API, but I think we can find a way (for example all CFS share one message pipe in one process) to resolve it.
Sharing a MessagePipe doesn't solve the problem either because the display compositor is on a separate thread (separate process) and so a display frame may be generated at any point in between calls to SubmitCompositorFrame.
As discussed offline, I think we want each exo app to submit a single CompositorFrame. Each exo app is a WindowTreeHost. That should solve the synchronization issues, and allow us to avoid special casing in the window server or viz.
Cc: sadrul@chromium.org
Status: Assigned (was: Started)
Status: Fixed (was: Assigned)
We are using one frame sink for surface tree now, and it should not have any surface sync issue.

Sign in to add a comment