[PATCH weston v3 01/13] protocol: add sub-surfaces

Pekka Paalanen ppaalanen at gmail.com
Mon Apr 29 00:11:46 PDT 2013


On Sat, 27 Apr 2013 15:18:29 -0500
Jason Ekstrand <jason at jlekstrand.net> wrote:

> Sorry to spam the list, but I had another idea kicking around my head
> this weekend that I thought was worth sharing.  Please note that I
> don't think this is a stopper.  I just think it's worth throwing out
> there and seeing if others think it's useful.
> 
> I don't think there are any major holes in commit behavior in the
> current protocol.  That said, there seems to be some confusion on
> commit modes and how they interact with the tree of subalgebras that
> I think is justified. I think this could be (somewhat) solved by the
> following simplification. We could replace the explicit commit modes
> that then impose commit modes on the children with a single
> cache_child_commits request which would begin caching the data for
> child surfaces until commit is called on the same surface.  In terms
> of the current mechanism, cache_child_commits would set synced and
> commit would automatically unset synced.
> 
> The advantage I see to this approach is that it makes it more clear
> that it affects the entire tree and how it does so.  Also, it
> requires the client to explicitly put any synced commits between a
> cached_child_commits and commit which I personally think is cleaner.
> The disadvantage is that it is a little less flexible in that you
> can't cache single children.  However, if you can have "dummy
> nodes" (see previous ML posts), this shouldn't be a problem in most
> cases.
> 
> Again, I don't think this is a show-stopper and I think the protocol
> as-is is ok.  I just thought it might be worth mentioning.
> --Jason Ekstrand

Hi Jason,

isn't this racy? If you want to keep all children always synchronized,
don't you have to re-send cache_child_commits every time you commit the
main surface, and hope that the child components to do not manage to
send a new commit between your commit and cache_child_commits?

We could just rename set_sync and set_desync to something more obvious,
any suggestions?


Thanks,
pq


More information about the wayland-devel mailing list