[PATCH weston v3 00/13] Sub-surfaces v3

Pekka Paalanen ppaalanen at gmail.com
Sat May 11 03:25:52 PDT 2013


On Fri, 10 May 2013 20:25:45 -0400
Kristian Høgsberg <hoegsberg at gmail.com> wrote:

> On Thu, Apr 25, 2013 at 01:57:40PM +0300, Pekka Paalanen wrote:
> > Hi all,
> > 
> > this is the v3 of the sub-surfaces patch series, and it is no longer
> > an RFC. This means that I consider this series ready for merging into
> > Weston. The server side sub-surface protocol implementation is feature
> > complete. Once the protocol is deemed stable, we will move it into
> > Wayland core. Until then, you need to copy protocol/subsurface.xml if
> > you want to use it in other projects.
> 
> Pekka,
> 
> Great work, I've merged it to master.  I reviewed the protocol and
> weston implementation and skimmed the toytoolkit stuff, and it all
> looks good.  We still have quirks to work out, but that'll be easier
> with the core functionality merged.  I think I saw a crash and there's
> the missing unlock dialog, but we'll figure that out.

Thank you :-)

> On the protocol level, I'm not sure about the eglSwapInterval
> requirement, I feel like there's a better solution - maybe commit on
> the async (is 'async' better than 'desync'?) subsurface can still send
> a frame event even if the parent surface hasn't committed yet?

At least we cannot send the frame callback straight on commit, it
has to be throttled.

I imagine there will be two kinds of continuously updating
sub-surface components:
- running completely on their own clock, possibly regardless of the
  frame callback, which will then be essentially triple- or
  quadruple-buffered; e.g. video
- running completely based on the frame callback, like your usual
  animation

The latter case depends on the frame callback to throttle the
rendering, otherwise it will become busyloop roundtripping.

How should we fake the frame event? What would we throttle it on?

I would prefer the swap interval solution, since that is solving a
client problem in the client (EGL problem in EGL, actually),
rather than adding a trick in the server. The swap interval is not
mandatory, if you synchronize the component more tightly to the
main application for resizes.


Cheers,
pq


More information about the wayland-devel mailing list