xref: /aosp_15_r20/external/crosvm/gpu_display/protocol/virtio-gpu-metadata-v1.xml (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker<?xml version="1.0" encoding="UTF-8"?>
2*bb4ee6a4SAndroid Build Coastguard Worker<protocol name="wp_virtio_gpu_metadata_v1">
3*bb4ee6a4SAndroid Build Coastguard Worker  <copyright>
4*bb4ee6a4SAndroid Build Coastguard Worker    Copyright 2021 The Chromium Authors.
5*bb4ee6a4SAndroid Build Coastguard Worker    Permission is hereby granted, free of charge, to any person obtaining a
6*bb4ee6a4SAndroid Build Coastguard Worker    copy of this software and associated documentation files (the "Software"),
7*bb4ee6a4SAndroid Build Coastguard Worker    to deal in the Software without restriction, including without limitation
8*bb4ee6a4SAndroid Build Coastguard Worker    the rights to use, copy, modify, merge, publish, distribute, sublicense,
9*bb4ee6a4SAndroid Build Coastguard Worker    and/or sell copies of the Software, and to permit persons to whom the
10*bb4ee6a4SAndroid Build Coastguard Worker    Software is furnished to do so, subject to the following conditions:
11*bb4ee6a4SAndroid Build Coastguard Worker    The above copyright notice and this permission notice (including the next
12*bb4ee6a4SAndroid Build Coastguard Worker    paragraph) shall be included in all copies or substantial portions of the
13*bb4ee6a4SAndroid Build Coastguard Worker    Software.
14*bb4ee6a4SAndroid Build Coastguard Worker    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15*bb4ee6a4SAndroid Build Coastguard Worker    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16*bb4ee6a4SAndroid Build Coastguard Worker    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17*bb4ee6a4SAndroid Build Coastguard Worker    THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18*bb4ee6a4SAndroid Build Coastguard Worker    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19*bb4ee6a4SAndroid Build Coastguard Worker    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20*bb4ee6a4SAndroid Build Coastguard Worker    DEALINGS IN THE SOFTWARE.
21*bb4ee6a4SAndroid Build Coastguard Worker  </copyright>
22*bb4ee6a4SAndroid Build Coastguard Worker
23*bb4ee6a4SAndroid Build Coastguard Worker  <interface name="wp_virtio_gpu_metadata_v1" version="1">
24*bb4ee6a4SAndroid Build Coastguard Worker    <description summary="attach virtio gpu metadata">
25*bb4ee6a4SAndroid Build Coastguard Worker      The global interface which allows attaching virtio-gpu metadata
26*bb4ee6a4SAndroid Build Coastguard Worker      to wl_surface objects.
27*bb4ee6a4SAndroid Build Coastguard Worker    </description>
28*bb4ee6a4SAndroid Build Coastguard Worker
29*bb4ee6a4SAndroid Build Coastguard Worker    <enum name="error">
30*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="surface_metadata_exists" value="0"
31*bb4ee6a4SAndroid Build Coastguard Worker             summary="the surface already has a metadata object associated"/>
32*bb4ee6a4SAndroid Build Coastguard Worker    </enum>
33*bb4ee6a4SAndroid Build Coastguard Worker
34*bb4ee6a4SAndroid Build Coastguard Worker    <request name="get_surface_metadata">
35*bb4ee6a4SAndroid Build Coastguard Worker      <description summary="extend surface interface for attaching metadata">
36*bb4ee6a4SAndroid Build Coastguard Worker        Instantiate an virtio_gpu_surface_metadata_v1 extension for the given
37*bb4ee6a4SAndroid Build Coastguard Worker        wl_surface to attach virtio gpu metadata. If the given wl_surface
38*bb4ee6a4SAndroid Build Coastguard Worker        already has a surface metadata object associated, the
39*bb4ee6a4SAndroid Build Coastguard Worker        surface_metadata_exists protocol error is raised.
40*bb4ee6a4SAndroid Build Coastguard Worker      </description>
41*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="id" type="new_id" interface="wp_virtio_gpu_surface_metadata_v1"
42*bb4ee6a4SAndroid Build Coastguard Worker           summary="the new metadata interface id"/>
43*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="surface" type="object" interface="wl_surface"
44*bb4ee6a4SAndroid Build Coastguard Worker           summary="the surface"/>
45*bb4ee6a4SAndroid Build Coastguard Worker    </request>
46*bb4ee6a4SAndroid Build Coastguard Worker  </interface>
47*bb4ee6a4SAndroid Build Coastguard Worker
48*bb4ee6a4SAndroid Build Coastguard Worker  <interface name="wp_virtio_gpu_surface_metadata_v1" version="1">
49*bb4ee6a4SAndroid Build Coastguard Worker    <description summary="interface to attach virtio gpu metadata to a wl_surface">
50*bb4ee6a4SAndroid Build Coastguard Worker      An additional interface to a wl_surface object, which allows the
51*bb4ee6a4SAndroid Build Coastguard Worker      client to attach additional metadata to the surface.
52*bb4ee6a4SAndroid Build Coastguard Worker
53*bb4ee6a4SAndroid Build Coastguard Worker      If the wl_surface associated with the virtio_gpu_surface_metadata_v1 is
54*bb4ee6a4SAndroid Build Coastguard Worker      destroyed, all virtio_gpu_surface_metadata_v1 requests except 'destroy'
55*bb4ee6a4SAndroid Build Coastguard Worker      raise the protocol error no_surface.
56*bb4ee6a4SAndroid Build Coastguard Worker
57*bb4ee6a4SAndroid Build Coastguard Worker      If the virtio_gpu_surface_metadata_v1 object is destroyed, the metadata
58*bb4ee6a4SAndroid Build Coastguard Worker      state is removed from the wl_surface. The change will be applied
59*bb4ee6a4SAndroid Build Coastguard Worker      on the next wl_surface.commit.
60*bb4ee6a4SAndroid Build Coastguard Worker    </description>
61*bb4ee6a4SAndroid Build Coastguard Worker
62*bb4ee6a4SAndroid Build Coastguard Worker    <enum name="error">
63*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="no_surface" value="0"
64*bb4ee6a4SAndroid Build Coastguard Worker       summary="the wl_surface was destroyed"/>
65*bb4ee6a4SAndroid Build Coastguard Worker    </enum>
66*bb4ee6a4SAndroid Build Coastguard Worker
67*bb4ee6a4SAndroid Build Coastguard Worker    <request name="set_scanout_id">
68*bb4ee6a4SAndroid Build Coastguard Worker      <description summary="set the virtio gpu scanout id of the surface">
69*bb4ee6a4SAndroid Build Coastguard Worker        Set the virtio gpu scanout id of the associated wl_surface.
70*bb4ee6a4SAndroid Build Coastguard Worker      </description>
71*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="scanout_id" type="uint" summary="virtio gpu scanout id"/>
72*bb4ee6a4SAndroid Build Coastguard Worker    </request>
73*bb4ee6a4SAndroid Build Coastguard Worker  </interface>
74*bb4ee6a4SAndroid Build Coastguard Worker
75*bb4ee6a4SAndroid Build Coastguard Worker</protocol>
76