xref: /OK3568_Linux_fs/external/xserver/hw/xwayland/drm.xml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun<?xml version="1.0" encoding="UTF-8"?>
2*4882a593Smuzhiyun<protocol name="drm">
3*4882a593Smuzhiyun
4*4882a593Smuzhiyun  <copyright>
5*4882a593Smuzhiyun    Copyright © 2008-2011 Kristian Høgsberg
6*4882a593Smuzhiyun    Copyright © 2010-2011 Intel Corporation
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun    Permission to use, copy, modify, distribute, and sell this
9*4882a593Smuzhiyun    software and its documentation for any purpose is hereby granted
10*4882a593Smuzhiyun    without fee, provided that\n the above copyright notice appear in
11*4882a593Smuzhiyun    all copies and that both that copyright notice and this permission
12*4882a593Smuzhiyun    notice appear in supporting documentation, and that the name of
13*4882a593Smuzhiyun    the copyright holders not be used in advertising or publicity
14*4882a593Smuzhiyun    pertaining to distribution of the software without specific,
15*4882a593Smuzhiyun    written prior permission.  The copyright holders make no
16*4882a593Smuzhiyun    representations about the suitability of this software for any
17*4882a593Smuzhiyun    purpose.  It is provided "as is" without express or implied
18*4882a593Smuzhiyun    warranty.
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun    THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
21*4882a593Smuzhiyun    SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
22*4882a593Smuzhiyun    FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
23*4882a593Smuzhiyun    SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
24*4882a593Smuzhiyun    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
25*4882a593Smuzhiyun    AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
26*4882a593Smuzhiyun    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
27*4882a593Smuzhiyun    THIS SOFTWARE.
28*4882a593Smuzhiyun  </copyright>
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun  <!-- drm support. This object is created by the server and published
31*4882a593Smuzhiyun       using the display's global event. -->
32*4882a593Smuzhiyun  <interface name="wl_drm" version="2">
33*4882a593Smuzhiyun    <enum name="error">
34*4882a593Smuzhiyun      <entry name="authenticate_fail" value="0"/>
35*4882a593Smuzhiyun      <entry name="invalid_format" value="1"/>
36*4882a593Smuzhiyun      <entry name="invalid_name" value="2"/>
37*4882a593Smuzhiyun    </enum>
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun    <enum name="format">
40*4882a593Smuzhiyun      <!-- The drm format codes match the #defines in drm_fourcc.h.
41*4882a593Smuzhiyun           The formats actually supported by the compositor will be
42*4882a593Smuzhiyun           reported by the format event. -->
43*4882a593Smuzhiyun      <entry name="c8" value="0x20203843"/>
44*4882a593Smuzhiyun      <entry name="rgb332" value="0x38424752"/>
45*4882a593Smuzhiyun      <entry name="bgr233" value="0x38524742"/>
46*4882a593Smuzhiyun      <entry name="xrgb4444" value="0x32315258"/>
47*4882a593Smuzhiyun      <entry name="xbgr4444" value="0x32314258"/>
48*4882a593Smuzhiyun      <entry name="rgbx4444" value="0x32315852"/>
49*4882a593Smuzhiyun      <entry name="bgrx4444" value="0x32315842"/>
50*4882a593Smuzhiyun      <entry name="argb4444" value="0x32315241"/>
51*4882a593Smuzhiyun      <entry name="abgr4444" value="0x32314241"/>
52*4882a593Smuzhiyun      <entry name="rgba4444" value="0x32314152"/>
53*4882a593Smuzhiyun      <entry name="bgra4444" value="0x32314142"/>
54*4882a593Smuzhiyun      <entry name="xrgb1555" value="0x35315258"/>
55*4882a593Smuzhiyun      <entry name="xbgr1555" value="0x35314258"/>
56*4882a593Smuzhiyun      <entry name="rgbx5551" value="0x35315852"/>
57*4882a593Smuzhiyun      <entry name="bgrx5551" value="0x35315842"/>
58*4882a593Smuzhiyun      <entry name="argb1555" value="0x35315241"/>
59*4882a593Smuzhiyun      <entry name="abgr1555" value="0x35314241"/>
60*4882a593Smuzhiyun      <entry name="rgba5551" value="0x35314152"/>
61*4882a593Smuzhiyun      <entry name="bgra5551" value="0x35314142"/>
62*4882a593Smuzhiyun      <entry name="rgb565" value="0x36314752"/>
63*4882a593Smuzhiyun      <entry name="bgr565" value="0x36314742"/>
64*4882a593Smuzhiyun      <entry name="rgb888" value="0x34324752"/>
65*4882a593Smuzhiyun      <entry name="bgr888" value="0x34324742"/>
66*4882a593Smuzhiyun      <entry name="xrgb8888" value="0x34325258"/>
67*4882a593Smuzhiyun      <entry name="xbgr8888" value="0x34324258"/>
68*4882a593Smuzhiyun      <entry name="rgbx8888" value="0x34325852"/>
69*4882a593Smuzhiyun      <entry name="bgrx8888" value="0x34325842"/>
70*4882a593Smuzhiyun      <entry name="argb8888" value="0x34325241"/>
71*4882a593Smuzhiyun      <entry name="abgr8888" value="0x34324241"/>
72*4882a593Smuzhiyun      <entry name="rgba8888" value="0x34324152"/>
73*4882a593Smuzhiyun      <entry name="bgra8888" value="0x34324142"/>
74*4882a593Smuzhiyun      <entry name="xrgb2101010" value="0x30335258"/>
75*4882a593Smuzhiyun      <entry name="xbgr2101010" value="0x30334258"/>
76*4882a593Smuzhiyun      <entry name="rgbx1010102" value="0x30335852"/>
77*4882a593Smuzhiyun      <entry name="bgrx1010102" value="0x30335842"/>
78*4882a593Smuzhiyun      <entry name="argb2101010" value="0x30335241"/>
79*4882a593Smuzhiyun      <entry name="abgr2101010" value="0x30334241"/>
80*4882a593Smuzhiyun      <entry name="rgba1010102" value="0x30334152"/>
81*4882a593Smuzhiyun      <entry name="bgra1010102" value="0x30334142"/>
82*4882a593Smuzhiyun      <entry name="yuyv" value="0x56595559"/>
83*4882a593Smuzhiyun      <entry name="yvyu" value="0x55595659"/>
84*4882a593Smuzhiyun      <entry name="uyvy" value="0x59565955"/>
85*4882a593Smuzhiyun      <entry name="vyuy" value="0x59555956"/>
86*4882a593Smuzhiyun      <entry name="ayuv" value="0x56555941"/>
87*4882a593Smuzhiyun      <entry name="nv12" value="0x3231564e"/>
88*4882a593Smuzhiyun      <entry name="nv21" value="0x3132564e"/>
89*4882a593Smuzhiyun      <entry name="nv16" value="0x3631564e"/>
90*4882a593Smuzhiyun      <entry name="nv61" value="0x3136564e"/>
91*4882a593Smuzhiyun      <entry name="yuv410" value="0x39565559"/>
92*4882a593Smuzhiyun      <entry name="yvu410" value="0x39555659"/>
93*4882a593Smuzhiyun      <entry name="yuv411" value="0x31315559"/>
94*4882a593Smuzhiyun      <entry name="yvu411" value="0x31315659"/>
95*4882a593Smuzhiyun      <entry name="yuv420" value="0x32315559"/>
96*4882a593Smuzhiyun      <entry name="yvu420" value="0x32315659"/>
97*4882a593Smuzhiyun      <entry name="yuv422" value="0x36315559"/>
98*4882a593Smuzhiyun      <entry name="yvu422" value="0x36315659"/>
99*4882a593Smuzhiyun      <entry name="yuv444" value="0x34325559"/>
100*4882a593Smuzhiyun      <entry name="yvu444" value="0x34325659"/>
101*4882a593Smuzhiyun    </enum>
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun    <!-- Call this request with the magic received from drmGetMagic().
104*4882a593Smuzhiyun         It will be passed on to the drmAuthMagic() or
105*4882a593Smuzhiyun         DRIAuthConnection() call.  This authentication must be
106*4882a593Smuzhiyun         completed before create_buffer could be used. -->
107*4882a593Smuzhiyun    <request name="authenticate">
108*4882a593Smuzhiyun      <arg name="id" type="uint"/>
109*4882a593Smuzhiyun    </request>
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun    <!-- Create a wayland buffer for the named DRM buffer.  The DRM
112*4882a593Smuzhiyun         surface must have a name using the flink ioctl -->
113*4882a593Smuzhiyun    <request name="create_buffer">
114*4882a593Smuzhiyun      <arg name="id" type="new_id" interface="wl_buffer"/>
115*4882a593Smuzhiyun      <arg name="name" type="uint"/>
116*4882a593Smuzhiyun      <arg name="width" type="int"/>
117*4882a593Smuzhiyun      <arg name="height" type="int"/>
118*4882a593Smuzhiyun      <arg name="stride" type="uint"/>
119*4882a593Smuzhiyun      <arg name="format" type="uint"/>
120*4882a593Smuzhiyun    </request>
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun    <!-- Create a wayland buffer for the named DRM buffer.  The DRM
123*4882a593Smuzhiyun         surface must have a name using the flink ioctl -->
124*4882a593Smuzhiyun    <request name="create_planar_buffer">
125*4882a593Smuzhiyun      <arg name="id" type="new_id" interface="wl_buffer"/>
126*4882a593Smuzhiyun      <arg name="name" type="uint"/>
127*4882a593Smuzhiyun      <arg name="width" type="int"/>
128*4882a593Smuzhiyun      <arg name="height" type="int"/>
129*4882a593Smuzhiyun      <arg name="format" type="uint"/>
130*4882a593Smuzhiyun      <arg name="offset0" type="int"/>
131*4882a593Smuzhiyun      <arg name="stride0" type="int"/>
132*4882a593Smuzhiyun      <arg name="offset1" type="int"/>
133*4882a593Smuzhiyun      <arg name="stride1" type="int"/>
134*4882a593Smuzhiyun      <arg name="offset2" type="int"/>
135*4882a593Smuzhiyun      <arg name="stride2" type="int"/>
136*4882a593Smuzhiyun    </request>
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun    <!-- Notification of the path of the drm device which is used by
139*4882a593Smuzhiyun         the server.  The client should use this device for creating
140*4882a593Smuzhiyun         local buffers.  Only buffers created from this device should
141*4882a593Smuzhiyun         be be passed to the server using this drm object's
142*4882a593Smuzhiyun         create_buffer request. -->
143*4882a593Smuzhiyun    <event name="device">
144*4882a593Smuzhiyun      <arg name="name" type="string"/>
145*4882a593Smuzhiyun    </event>
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun    <event name="format">
148*4882a593Smuzhiyun      <arg name="format" type="uint"/>
149*4882a593Smuzhiyun    </event>
150*4882a593Smuzhiyun
151*4882a593Smuzhiyun    <!-- Raised if the authenticate request succeeded -->
152*4882a593Smuzhiyun    <event name="authenticated"/>
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun    <enum name="capability" since="2">
155*4882a593Smuzhiyun      <description summary="wl_drm capability bitmask">
156*4882a593Smuzhiyun        Bitmask of capabilities.
157*4882a593Smuzhiyun      </description>
158*4882a593Smuzhiyun      <entry name="prime" value="1" summary="wl_drm prime available"/>
159*4882a593Smuzhiyun    </enum>
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun    <event name="capabilities">
162*4882a593Smuzhiyun      <arg name="value" type="uint"/>
163*4882a593Smuzhiyun    </event>
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun    <!-- Version 2 additions -->
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun    <!-- Create a wayland buffer for the prime fd.  Use for regular and planar
168*4882a593Smuzhiyun         buffers.  Pass 0 for offset and stride for unused planes. -->
169*4882a593Smuzhiyun    <request name="create_prime_buffer" since="2">
170*4882a593Smuzhiyun      <arg name="id" type="new_id" interface="wl_buffer"/>
171*4882a593Smuzhiyun      <arg name="name" type="fd"/>
172*4882a593Smuzhiyun      <arg name="width" type="int"/>
173*4882a593Smuzhiyun      <arg name="height" type="int"/>
174*4882a593Smuzhiyun      <arg name="format" type="uint"/>
175*4882a593Smuzhiyun      <arg name="offset0" type="int"/>
176*4882a593Smuzhiyun      <arg name="stride0" type="int"/>
177*4882a593Smuzhiyun      <arg name="offset1" type="int"/>
178*4882a593Smuzhiyun      <arg name="stride1" type="int"/>
179*4882a593Smuzhiyun      <arg name="offset2" type="int"/>
180*4882a593Smuzhiyun      <arg name="stride2" type="int"/>
181*4882a593Smuzhiyun    </request>
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun  </interface>
184*4882a593Smuzhiyun
185*4882a593Smuzhiyun</protocol>
186