Skip to content
This repository has been archived by the owner on Nov 1, 2021. It is now read-only.

Commit

Permalink
layer-shell: introduce ack for new outputs
Browse files Browse the repository at this point in the history
This ack sequence eliminates the race between a client creating a
new layer surface and the compositor rendering the first frame of a
new output.
  • Loading branch information
ifreund committed Jun 23, 2020
1 parent 06062c6 commit 032cbfe
Showing 1 changed file with 30 additions and 2 deletions.
32 changes: 30 additions & 2 deletions unstable/wlr-layer-shell-unstable-v1.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
THIS SOFTWARE.
</copyright>

<interface name="zwlr_layer_shell_v1" version="2">
<interface name="zwlr_layer_shell_v1" version="3">
<description summary="create surfaces that are layers of the desktop">
Clients can use this interface to assign the surface_layer role to
wl_surfaces. Such surfaces are assigned to a "layer" of the output and
Expand Down Expand Up @@ -82,9 +82,37 @@
<entry name="top" value="2"/>
<entry name="overlay" value="3"/>
</enum>

<!-- Version 3 additions -->

<event name="new_output" since="3">
<description summary="notify of a new wl_output">
This event indicates that a new output has been created. If the client
wishes to create a new layer surface in response to this new output,
it must make an ack_new_output request with the provided serial
after creating any new layer surfaces using the get_layer_surface
request and before the first commit on any of the new surfaces.

This allows the compositor to wait until new layer surfaces are ready
before rendering the first frame of the output.
</description>
<arg name="serial" type="uint"/>
</event>

<request name="ack_new_output" since="3">
<description summary="ack a new_output event">
This request informs the server that following commits on layer surfaces
created by the client take the new output into account.

A client may make multiple ack_new_output requests before committing.
The last request made before the commit indicates which new_output
event the commit is in response to.
</description>
<arg name="serial" type="uint" summary="serial from a new_output event"/>
</request>
</interface>

<interface name="zwlr_layer_surface_v1" version="2">
<interface name="zwlr_layer_surface_v1" version="3">
<description summary="layer metadata interface">
An interface that may be implemented by a wl_surface, for surfaces that
are designed to be rendered as a layer of a stacked desktop-like
Expand Down

0 comments on commit 032cbfe

Please sign in to comment.