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

Kristian Høgsberg hoegsberg at gmail.com
Fri May 10 17:25:45 PDT 2013


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.

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?

Thanks for driving this work,
Kristian

> The previous series, v2, was announced in
> http://lists.freedesktop.org/archives/wayland-devel/2013-February/007590.html
> Personally, I believe that all the previously open issues are now
> sufficiently explored, that there should not be any big surprises.
> 
> The major changes in v3 are:
> 
> - Improved protocol object destruction rules: wl_subsurface simply
>   becomes inert, if the corresponding wl_surface is destroyed.
> 
> - Added support for nested sub-surfaces. You can now have
>   sub-sub-surfaces, and so on.
> 
> - Renamed the commit modes, and adjusted their behaviour to support
>   nested sub-surfaces better. If a sub-surface is synchronized, all
>   its children will act synchronized, too.
> 
> - Completed the server side protocol implementation with sub-surface
>   nesting support, and double-buffered sub-surface z-order updates.
> 
> And of course bug fixes, and a rebase on top of the current upstream
> master branch.
> 
> 
> The following changes since commit 2e437207435a1b8720b5c623ccfc773e171ccf68:
> 
>   window: Add a log handler for window.c clients (2013-04-16 20:46:59 -0400)
> 
> are available in the git repository at:
> 
>   git://git.collabora.co.uk/git/user/pq/weston.git subsurface-v3
> 
> for you to fetch changes up to 098b2911ead4ad0d9726d1bc192a87ca8ad9295d:
> 
>   window: add DBG code for leaf management and redraws (2013-04-25 12:10:18 +0300)
> 
> 
> Giulio Camuffo (2):
>   shell: enable moving and resizing of a surface when clicking on a
>     subsurface
>   shell: account for the subsurfaces when going fullscreen or maximizing
> 
> Pekka Paalanen (11):
>   protocol: add sub-surfaces
>   compositor: introduce sub-surfaces
>   tests: add sub-surface protocol tests
>   shell: keyboard focus and restacking fixes for sub-surfaces
>   window: implement shm triple-buffering
>   window: create sub-surfaces
>   window: implement per-surface redraws
>   clients: add subsurfaces demo
>   window: prevent EGL sub-surface deadlock
>   window: throttle resizing to the main surface
>   window: add DBG code for leaf management and redraws
> 
>  clients/.gitignore      |   3 +
>  clients/Makefile.am     |  12 +
>  clients/subsurfaces.c   | 792 ++++++++++++++++++++++++++++++++++++++++++++++++
>  clients/window.c        | 460 ++++++++++++++++++++++++----
>  clients/window.h        |  19 ++
>  configure.ac            |   3 +
>  protocol/subsurface.xml | 236 +++++++++++++++
>  src/.gitignore          |   3 +
>  src/Makefile.am         |   4 +
>  src/compositor.c        | 747 ++++++++++++++++++++++++++++++++++++++++++++-
>  src/compositor.h        |  58 ++++
>  src/shell.c             | 172 ++++++++---
>  tests/.gitignore        |   3 +
>  tests/Makefile.am       |   9 +-
>  tests/subsurface-test.c | 325 ++++++++++++++++++++
>  15 files changed, 2732 insertions(+), 114 deletions(-)
>  create mode 100644 clients/subsurfaces.c
>  create mode 100644 protocol/subsurface.xml
>  create mode 100644 tests/subsurface-test.c
> 
> This patch series applies on top of the current upstream master branch
> without any additional patches. The series is browsable in cgit:
> http://cgit.collabora.com/git/user/pq/weston.git/log/?h=subsurface-v3
> 
> To do (free to take, not necessarily me):
> 
> - A Weston demo client with window decorations stitched from 4
>   sub-surfaces, handling input in all sub-surface. (Giulio already has
>   an example in Qt.)
> 
> - Nested sub-surface tests and a demo. Nesting is currently untested.
> 
> - Fix full-surface alpha for windows that have sub-surfaces.
> 
> - Investigate if the shell "black surfaces" could be implemented as
>   server-side sub-surfaces more easily than they are now.
> 
> I have not forgotten about the clipping & scaling protocol extension,
> and I have some ideas for it, but it is free for taking, too. If
> you're interested in taking a shot at any of these items, let me know
> so we can avoid overlapping work.
> 
> When you build this series, remember --with-cairo-glesv2, or the
> subsurfaces demo application may not get built.
> 
> 
> Thanks,
> pq
> 
> -- 
> 1.8.1.5
> 


More information about the wayland-devel mailing list