79 lines
4 KiB
XML
79 lines
4 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<protocol name="gamescope_xwayland">
|
|
|
|
<copyright>
|
|
Copyright © 2021 Valve Corporation
|
|
|
|
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="gamescope-specific xwayland protocol">
|
|
This is a private Gamescope protocol. Regular Wayland clients must not use
|
|
it.
|
|
</description>
|
|
|
|
<interface name="gamescope_xwayland" version="2">
|
|
<request name="destroy" type="destructor"></request>
|
|
|
|
<request name="override_window_content">
|
|
<description summary="override an X11's window wl_surface">
|
|
Xwayland creates a wl_surface for each X11 window. It sends a
|
|
WL_SURFACE_ID client message to indicate the mapping between the X11
|
|
windows and the wl_surface objects.
|
|
|
|
This request overrides this mapping for a given X11 window, allowing an
|
|
X11 client to submit buffers via the Wayland protocol. The override
|
|
only affects buffer submission. Everything else (e.g. input events)
|
|
still uses Xwayland's WL_SURFACE_ID.
|
|
</description>
|
|
<arg name="surface" type="object" interface="wl_surface" summary="Wayland surface"/>
|
|
<arg name="x11_window" type="uint" summary="X11 window ID"/>
|
|
</request>
|
|
|
|
<request name="swapchain_feedback" since="2">
|
|
<description summary="provide swapchain feedback">
|
|
Provide swapchain feedback to the compositor.
|
|
|
|
This is what the useless tearing protocol should have been.
|
|
Absolutely not enough information in the final protocol to do what we want for SteamOS --
|
|
which is have the Allow Tearing toggle apply to *both* Mailbox + Immediate and NOT fifo,
|
|
essentially acting as an override for tearing on/off for games.
|
|
The upstream protocol is very useless for our usecase here.
|
|
|
|
Provides image count ahead of time instead of needing to try and calculate it from
|
|
an initial stall if we are doing low latency.
|
|
|
|
Provides colorspace info for us to do HDR for both HDR10 PQ and scRGB.
|
|
The upstream HDR efforts seem to have no interest in supporting scRGB but we *need* that so /shrug
|
|
We can do it here now! Yipee!
|
|
|
|
Swapchain feedback solves so many problems! :D
|
|
</description>
|
|
<arg name="surface" type="object" interface="wl_surface" summary="Wayland surface"/>
|
|
<arg name="image_count" type="uint" summary="image count of swapchain"/>
|
|
<arg name="vk_format" type="uint" summary="VkFormat of swapchain"/>
|
|
<arg name="vk_colorspace" type="uint" summary="VkColorSpaceKHR of swapchain"/>
|
|
<arg name="vk_composite_alpha" type="uint" summary="VkCompositeAlphaFlagBitsKHR of swapchain"/>
|
|
<arg name="vk_pre_transform" type="uint" summary="VkSurfaceTransformFlagBitsKHR of swapchain"/>
|
|
<arg name="vk_present_mode" type="uint" summary="VkPresentModeKHR of swapchain"/>
|
|
<arg name="vk_clipped" type="uint" summary="clipped (VkBool32) of swapchain"/>
|
|
</request>
|
|
</interface>
|
|
</protocol>
|