I propose the we should change the commit behavior to having commit on the toplevel wl_surface commit itself and all it's subsurfaces atomically. Commiting on subsurfaces should be a no-op. That is to allow eglSwapBuffers to be used in subsurfaces, should you manage to get it to be non-blocking. This isn't a huge loss since clients only need to atomically commit all surfaces anyway.
This has a number of benefits - We can get rid of the commit modes (and the set_sync/set_desync request) and wl_surface.commit becomes easy to reason about - Commiting all surfaces becomes a single request instead of having to walking the surface tree bottom up commiting surface along in synchronized mode - The compositor doesn't have to manage more than 2 states per surface (pending and current) I don't see any drawbacks from this or the reason for the complexity in the current extension
_______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
