You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
4.8 KiB
100 lines
4.8 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<protocol name="vsync_feedback_unstable_v1">
|
|
|
|
<copyright>
|
|
Copyright 2016 The Chromium Authors.
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a
|
|
copy of this software and associated documentation files (the "Software"),
|
|
to deal in the Software without restriction, including without limitation
|
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
and/or sell copies of the Software, and to permit persons to whom the
|
|
Software is furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice (including the next
|
|
paragraph) shall be included in all copies or substantial portions of the
|
|
Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
DEALINGS IN THE SOFTWARE.
|
|
</copyright>
|
|
|
|
<description summary="Protocol for providing vertical synchronization timing">
|
|
This protocol specifies a set of interfaces used to inform the client about
|
|
vertical synchronization timing in a precise way and without unnecessary
|
|
overhead.
|
|
|
|
Warning! The protocol described in this file is experimental and backward
|
|
incompatible changes may be made. Backward compatible changes may be added
|
|
together with the corresponding interface version bump. Backward
|
|
incompatible changes are done by bumping the version number in the protocol
|
|
and interface names and resetting the interface version. Once the protocol
|
|
is to be declared stable, the version number in the protocol is removed and
|
|
the interface version number is reset.
|
|
</description>
|
|
|
|
<interface name="zcr_vsync_feedback_v1" version="1">
|
|
<description summary="Protocol for providing vertical synchronization timing">
|
|
The global interface that allows clients to subscribe for vertical
|
|
synchronization timing data for given wl_output.
|
|
</description>
|
|
|
|
<request name="destroy" type="destructor">
|
|
<description summary="destroy vsync feedback object">
|
|
Destroy this vsync feedback object. Existing vsync timing objects shall
|
|
not be affected by this request.
|
|
</description>
|
|
</request>
|
|
|
|
<request name="get_vsync_timing">
|
|
<description summary="get vsync timing object for given wl_output">
|
|
Create a new vsync timing object that represents a subscription to
|
|
vertical synchronization timing updates of given wl_output object.
|
|
|
|
The newly created object will immediately signal an update to notify
|
|
the subscriber of initial timing parameters.
|
|
</description>
|
|
<arg name="id" type="new_id" interface="zcr_vsync_timing_v1" summary="the new vsync timing interface id"/>
|
|
<arg name="output" type="object" interface="wl_output" summary="the wl_output object to subscribe for timings of" allow-null="true"/>
|
|
</request>
|
|
</interface>
|
|
|
|
<interface name="zcr_vsync_timing_v1" version="1">
|
|
<request name="destroy" type="destructor">
|
|
<description summary="destroy vsync timing object">
|
|
Destroy this vsync timing object.
|
|
</description>
|
|
</request>
|
|
|
|
<event name="update">
|
|
<description summary="vsync timing updated">
|
|
Notifies client that vertical synchronization timing of given wl_output
|
|
has changed.
|
|
|
|
Timing information consists of two data, timebase and interval. Timebase
|
|
is an absolute timestamp of the vsync event that caused the timing to
|
|
change. Interval is a period of time between subsequent vsync events.
|
|
|
|
The unit of all above mentioned time values shall be microseconds and
|
|
absolute timestamps should match the realm of the primary system
|
|
monotonic counter, i.e. the POSIX clock_gettime(CLOCK_MONOTONIC). Data
|
|
type of both values is defined to be a 64-bit unsigned integer, but
|
|
since the biggest unsigned integer datatype defined by the Wayland
|
|
protocol is the 32-bit uint, both timebase and interval are split into
|
|
most significant and least significant part, suffixed by "_h" and "_l"
|
|
respectively.
|
|
</description>
|
|
<arg name="timebase_l" type="uint" summary="new vsync timebase (lower 32 bits)"/>
|
|
<arg name="timebase_h" type="uint" summary="new vsync timebase (upper 32 bits)"/>
|
|
<arg name="interval_l" type="uint" summary="new vsync interval (lower 32 bits)"/>
|
|
<arg name="interval_h" type="uint" summary="new vsync interval (upper 32 bits)"/>
|
|
</event>
|
|
</interface>
|
|
|
|
</protocol>
|