Sub-Surfaces Support Added To Wayland Protocol
After the support has been within Wayland's Weston reference compositor for several months, developers have now added sub-surfaces support to the Wayland core protocol itself. Wayland sub-surfaces can make for efficient use of video players and windowed OpenGL games on Wayland.
Sub-surfaces in Weston has been mainline since May and now all the kinks should be worked out in its design so it was determined ready to move to the core Wayland protocol itself rather than just being a Weston addition. Sub-surfaces are surfaces tied to a parent Wayland surface (wl_surface) and ultimately then these surfaces combined form the actual window.
Pekka Paalanen explained in the Git commit adding sub-surfaces to Wayland, "The representative use case for sub-surfaces is a video player window. When the video content is given its own wl_surface, there is no need to modify the video frame contents after decoding or copy them into a whole window sized buffer before submitting it to the compositor. This allows efficient, zero-copy video presentation paths, where video decoding hardware produces a (YUV) buffer, which eventually ends up in a (YUV-capable) hardware overlay and is scanned out directly. This can also be used for zero-copy presentation of windowed OpenGL content, where the OpenGL rendering engine does not need to draw or avoid window decorations. Sub-surfaces allow mixing different buffer types into the same window, e.g. software-rendered decorations in wl_shm buffers, and live content in EGL-based buffers."
Sub-surfaces in Weston has been mainline since May and now all the kinks should be worked out in its design so it was determined ready to move to the core Wayland protocol itself rather than just being a Weston addition. Sub-surfaces are surfaces tied to a parent Wayland surface (wl_surface) and ultimately then these surfaces combined form the actual window.
Pekka Paalanen explained in the Git commit adding sub-surfaces to Wayland, "The representative use case for sub-surfaces is a video player window. When the video content is given its own wl_surface, there is no need to modify the video frame contents after decoding or copy them into a whole window sized buffer before submitting it to the compositor. This allows efficient, zero-copy video presentation paths, where video decoding hardware produces a (YUV) buffer, which eventually ends up in a (YUV-capable) hardware overlay and is scanned out directly. This can also be used for zero-copy presentation of windowed OpenGL content, where the OpenGL rendering engine does not need to draw or avoid window decorations. Sub-surfaces allow mixing different buffer types into the same window, e.g. software-rendered decorations in wl_shm buffers, and live content in EGL-based buffers."
10 Comments