Explicit sync: forward progress requirements for never-signaled acquire fences
If a client
- commits a buffer with an acquire fence
- never signals the acquire fence
- commits a different buffer
can the client expect forward progress or does it have to assume that the second buffer will never be displayed?
Example 1:
- Consider an xdg_toplevel (no subsurfaces)
- Client attaches buffer A with acquire fence N
- Client commits
- Client attaches buffer B with acquire fence M
- Client commits
If the client signals M but never signals N, can he expect that buffer B will eventually be shown?
Example 2:
- Consider an xdg_toplevel X with a SYNC sub-surface Y
- Client attaches buffer A to X (no explicit sync)
- Client attaches buffer B to Y with acquire fence N
- Client commits both
- Client destroys the sub-surface
If the client never signals N, can he expect that the commit will eventually be shown?
Example 3:
- Consider two independent xdg_toplevel X and Y
- Client attaches buffer A to X with acquire fence N
- Client commits X
- Client attaches buffer B to Y (no explicit sync)
- Client commits Y
If the client never signals N, can he expect that buffer B will eventually be shown?