aboutsummaryrefslogtreecommitdiff
path: root/protocol
diff options
context:
space:
mode:
authorIsaac Freund <mail@isaacfreund.com>2022-07-06 17:47:19 +0200
committerSimon Ser <contact@emersion.fr>2022-10-24 16:19:25 +0000
commita773231c42812e56c5966fc6a035aa9c6108175a (patch)
treec49efe72c903ed6e2f3f4a7b63f72f92061886e4 /protocol
parentc2d2773df57750081b16d56da13b5015d752cbd7 (diff)
wlr-output-management: implement adaptive sync
Version 4 of the protocol adds support for reporting/setting adaptive sync state of outputs. Implement these new requests/events in wlroots.
Diffstat (limited to 'protocol')
-rw-r--r--protocol/wlr-output-management-unstable-v1.xml36
1 files changed, 32 insertions, 4 deletions
diff --git a/protocol/wlr-output-management-unstable-v1.xml b/protocol/wlr-output-management-unstable-v1.xml
index 3568e04c..411e2f04 100644
--- a/protocol/wlr-output-management-unstable-v1.xml
+++ b/protocol/wlr-output-management-unstable-v1.xml
@@ -39,7 +39,7 @@
interface version number is reset.
</description>
- <interface name="zwlr_output_manager_v1" version="3">
+ <interface name="zwlr_output_manager_v1" version="4">
<description summary="output device configuration manager">
This interface is a manager that allows reading and writing the current
output device configuration.
@@ -125,7 +125,7 @@
</event>
</interface>
- <interface name="zwlr_output_head_v1" version="3">
+ <interface name="zwlr_output_head_v1" version="4">
<description summary="output device">
A head is an output device. The difference between a wl_output object and
a head is that heads are advertised even if they are turned off. A head
@@ -338,6 +338,22 @@
object.
</description>
</request>
+
+ <!-- Version 4 additions -->
+
+ <enum name="adaptive_sync_state" since="4">
+ <entry name="disabled" value="0" summary="adaptive sync is disabled"/>
+ <entry name="enabled" value="1" summary="adaptive sync is enabled"/>
+ </enum>
+
+ <event name="adaptive_sync" since="4">
+ <description summary="current adaptive sync state">
+ This event describes whether adaptive sync is currently enabled for
+ the head or not. Adaptive sync is also known as Variable Refresh
+ Rate or VRR.
+ </description>
+ <arg name="state" type="uint" enum="adaptive_sync_state"/>
+ </event>
</interface>
<interface name="zwlr_output_mode_v1" version="3">
@@ -395,7 +411,7 @@
</request>
</interface>
- <interface name="zwlr_output_configuration_v1" version="3">
+ <interface name="zwlr_output_configuration_v1" version="4">
<description summary="output configuration">
This object is used by the client to describe a full output configuration.
@@ -513,7 +529,7 @@
</request>
</interface>
- <interface name="zwlr_output_configuration_head_v1" version="3">
+ <interface name="zwlr_output_configuration_head_v1" version="4">
<description summary="head configuration">
This object is used by the client to update a single head's configuration.
@@ -526,6 +542,8 @@
<entry name="invalid_custom_mode" value="3" summary="mode is invalid"/>
<entry name="invalid_transform" value="4" summary="transform value outside enum"/>
<entry name="invalid_scale" value="5" summary="scale negative or zero"/>
+ <entry name="invalid_adaptive_sync_state" value="6" since="4"
+ summary="invalid enum value used in the set_adaptive_sync request"/>
</enum>
<request name="set_mode">
@@ -569,5 +587,15 @@
</description>
<arg name="scale" type="fixed"/>
</request>
+
+ <!-- Version 4 additions -->
+
+ <request name="set_adaptive_sync" since="4">
+ <description summary="enable/disable adaptive sync">
+ This request enables/disables adaptive sync. Adaptive sync is also
+ known as Variable Refresh Rate or VRR.
+ </description>
+ <arg name="state" type="uint" enum="zwlr_output_head_v1.adaptive_sync_state"/>
+ </request>
</interface>
</protocol>