dri2.xml revision b26960f7
1d4401354Smrg<?xml version="1.0" encoding="utf-8"?>
2d4401354Smrg<!--
3d4401354SmrgCopyright (C) 2005 Jeremy Kolb.
4d4401354SmrgCopyright © 2009 Intel Corporation
5d4401354SmrgAll Rights Reserved.
6d4401354Smrg
7d4401354SmrgPermission is hereby granted, free of charge, to any person obtaining a copy
8d4401354Smrgof this software and associated documentation files (the "Software"), to deal
9d4401354Smrgin the Software without restriction, including without limitation the rights
10d4401354Smrgto use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11d4401354Smrgcopies of the Software, and to permit persons to whom the Software is
12d4401354Smrgfurnished to do so, subject to the following conditions:
13d4401354Smrg
14d4401354SmrgThe above copyright notice and this permission notice shall be included in all
15d4401354Smrgcopies or substantial portions of the Software.
16d4401354Smrg
17d4401354SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18d4401354SmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19d4401354SmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20d4401354SmrgAUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
21d4401354SmrgACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22d4401354SmrgWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23d4401354Smrg
24d4401354SmrgExcept as contained in this notice, the names of the authors or their
25d4401354Smrginstitutions shall not be used in advertising or otherwise to promote the
26d4401354Smrgsale, use or other dealings in this Software without prior written
27d4401354Smrgauthorization from the authors.
28d4401354Smrg-->
29d4401354Smrg
30d4401354Smrg<xcb header="dri2" extension-xname="DRI2" extension-name="DRI2"
31986c8b3dSmrg  major-version="1" minor-version="4">
32d4401354Smrg  <import>xproto</import>
33d4401354Smrg
34d4401354Smrg  <enum name="Attachment">
35f591e195Smrg    <item name="BufferFrontLeft">      <value>0</value> </item>
36f591e195Smrg    <item name="BufferBackLeft">       <value>1</value> </item>
37f591e195Smrg    <item name="BufferFrontRight">     <value>2</value> </item>
38f591e195Smrg    <item name="BufferBackRight">      <value>3</value> </item>
39f591e195Smrg    <item name="BufferDepth">          <value>4</value> </item>
40f591e195Smrg    <item name="BufferStencil">        <value>5</value> </item>
41f591e195Smrg    <item name="BufferAccum">          <value>6</value> </item>
42f591e195Smrg    <item name="BufferFakeFrontLeft">  <value>7</value> </item>
43f591e195Smrg    <item name="BufferFakeFrontRight"> <value>8</value> </item>
44f591e195Smrg    <item name="BufferDepthStencil">   <value>9</value> </item>
45f591e195Smrg    <item name="BufferHiz">            <value>10</value> </item>
46d4401354Smrg  </enum>
47d4401354Smrg
48d4401354Smrg  <enum name="DriverType">
49f591e195Smrg    <item name="DRI">   <value>0</value> </item>
50f591e195Smrg    <item name="VDPAU"> <value>1</value> </item>
51986c8b3dSmrg  </enum>
52986c8b3dSmrg
53986c8b3dSmrg  <enum name="EventType">
54986c8b3dSmrg    <item name="ExchangeComplete"><value>1</value></item>
55986c8b3dSmrg    <item name="BlitComplete">    <value>2</value></item>
56986c8b3dSmrg    <item name="FlipComplete">    <value>3</value></item>
57d4401354Smrg  </enum>
58d4401354Smrg
59d4401354Smrg  <!-- Types -->
60d4401354Smrg
61d4401354Smrg  <struct name="DRI2Buffer">
62d4401354Smrg    <field type="CARD32" name="attachment" enum="Attachment" />
63d4401354Smrg    <field type="CARD32" name="name" />
64d4401354Smrg    <field type="CARD32" name="pitch" />
65d4401354Smrg    <field type="CARD32" name="cpp" />
66d4401354Smrg    <field type="CARD32" name="flags" />
67d4401354Smrg  </struct>
68d4401354Smrg
69d4401354Smrg  <struct name="AttachFormat">
70d4401354Smrg    <field type="CARD32" name="attachment" enum="Attachment" />
71d4401354Smrg    <field type="CARD32" name="format" />
72d4401354Smrg  </struct>
73d4401354Smrg
74d4401354Smrg  <!-- Requests -->
75d4401354Smrg  <request name="QueryVersion" opcode="0">
76d4401354Smrg    <field type="CARD32" name="major_version" />
77d4401354Smrg    <field type="CARD32" name="minor_version" />
78d4401354Smrg    <reply>
79d4401354Smrg      <pad bytes="1" />
80d4401354Smrg      <field type="CARD32" name="major_version" />
81d4401354Smrg      <field type="CARD32" name="minor_version" />
82d4401354Smrg    </reply>
83d4401354Smrg  </request>
84d4401354Smrg
85d4401354Smrg  <request name="Connect" opcode="1">
86d4401354Smrg    <field type="WINDOW" name="window" />
87d4401354Smrg    <field type="CARD32" name="driver_type" enum="DriverType" />
88d4401354Smrg    <reply>
89d4401354Smrg      <pad bytes="1" />
90d4401354Smrg      <field type="CARD32" name="driver_name_length" />
91d4401354Smrg      <field type="CARD32" name="device_name_length" />
92d4401354Smrg      <pad bytes="16" />
93d4401354Smrg      <list type="char" name="driver_name">
94d4401354Smrg        <fieldref>driver_name_length</fieldref>
95d4401354Smrg      </list>
96986c8b3dSmrg      <list type="void" name="alignment_pad">
97986c8b3dSmrg	  <op op="-">
98986c8b3dSmrg	      <op op="&amp;">
99986c8b3dSmrg		  <op op="+">
100986c8b3dSmrg		      <fieldref>driver_name_length</fieldref>
101b26960f7Smrg		      <value>3</value>
102986c8b3dSmrg		  </op>
103986c8b3dSmrg		  <unop op="~">
104986c8b3dSmrg		      <value>3</value>
105986c8b3dSmrg		  </unop>
106986c8b3dSmrg	      </op>
107986c8b3dSmrg	      <fieldref>driver_name_length</fieldref>
108986c8b3dSmrg	  </op>
109986c8b3dSmrg      </list>
110d4401354Smrg      <list type="char" name="device_name">
111d4401354Smrg        <fieldref>device_name_length</fieldref>
112d4401354Smrg      </list>
113d4401354Smrg    </reply>
114d4401354Smrg  </request>
115d4401354Smrg
116d4401354Smrg  <request name="Authenticate" opcode="2">
117d4401354Smrg    <field type="WINDOW" name="window" />
118d4401354Smrg    <field type="CARD32" name="magic" />
119d4401354Smrg    <reply>
120d4401354Smrg      <pad bytes="1" />
121d4401354Smrg      <field type="CARD32" name="authenticated" />
122d4401354Smrg    </reply>
123d4401354Smrg  </request>
124d4401354Smrg
125d4401354Smrg  <request name="CreateDrawable" opcode="3">
126d4401354Smrg    <field type="DRAWABLE" name="drawable" />
127d4401354Smrg  </request>
128d4401354Smrg
129d4401354Smrg  <request name="DestroyDrawable" opcode="4">
130d4401354Smrg    <field type="DRAWABLE" name="drawable" />
131d4401354Smrg  </request>
132d4401354Smrg
133d4401354Smrg  <request name="GetBuffers" opcode="5">
134d4401354Smrg    <field type="DRAWABLE" name="drawable" />
135d4401354Smrg    <field type="CARD32" name="count" />
136b26960f7Smrg    <list type="CARD32" name="attachments">
137b26960f7Smrg    <!-- The length field should be linked but we can't correct it without breaking API -->
138b26960f7Smrg    <!-- <fieldref>count</fieldref> -->
139b26960f7Smrg    </list>
140d4401354Smrg    <reply>
141d4401354Smrg      <pad bytes="1" />
142d4401354Smrg      <field type="CARD32" name="width" />
143d4401354Smrg      <field type="CARD32" name="height" />
144d4401354Smrg      <field type="CARD32" name="count" />
145d4401354Smrg      <pad bytes="12" />
146d4401354Smrg      <list type="DRI2Buffer" name="buffers">
147d4401354Smrg        <fieldref>count</fieldref>
148d4401354Smrg      </list>
149d4401354Smrg    </reply>
150d4401354Smrg  </request>
151d4401354Smrg
152d4401354Smrg  <request name="CopyRegion" opcode="6">
153d4401354Smrg    <field type="DRAWABLE" name="drawable" />
154d4401354Smrg    <field type="CARD32" name="region" />
155d4401354Smrg    <field type="CARD32" name="dest" />
156d4401354Smrg    <field type="CARD32" name="src" />
157d4401354Smrg    <reply>
158d4401354Smrg      <pad bytes="1" />
159d4401354Smrg    </reply>
160d4401354Smrg  </request>
161d4401354Smrg
162d4401354Smrg  <request name="GetBuffersWithFormat" opcode="7">
163d4401354Smrg    <field type="DRAWABLE" name="drawable" />
164d4401354Smrg    <field type="CARD32" name="count" />
165b26960f7Smrg    <list type="AttachFormat" name="attachments">
166b26960f7Smrg    <!-- The length field should be linked but we can't correct it without breaking API -->
167b26960f7Smrg    <!-- <fieldref>count</fieldref> -->
168b26960f7Smrg    </list>
169d4401354Smrg    <reply>
170d4401354Smrg      <pad bytes="1" />
171d4401354Smrg      <field type="CARD32" name="width" />
172d4401354Smrg      <field type="CARD32" name="height" />
173d4401354Smrg      <field type="CARD32" name="count" />
174d4401354Smrg      <pad bytes="12" />
175d4401354Smrg      <list type="DRI2Buffer" name="buffers">
176d4401354Smrg        <fieldref>count</fieldref>
177d4401354Smrg      </list>
178d4401354Smrg    </reply>
179d4401354Smrg  </request>
180986c8b3dSmrg
181986c8b3dSmrg  <!-- Version 1.2 -->
182986c8b3dSmrg
183986c8b3dSmrg  <request name="SwapBuffers" opcode="8">
184986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
185986c8b3dSmrg    <field type="CARD32" name="target_msc_hi" />
186986c8b3dSmrg    <field type="CARD32" name="target_msc_lo" />
187986c8b3dSmrg    <field type="CARD32" name="divisor_hi" />
188986c8b3dSmrg    <field type="CARD32" name="divisor_lo" />
189986c8b3dSmrg    <field type="CARD32" name="remainder_hi" />
190986c8b3dSmrg    <field type="CARD32" name="remainder_lo" />
191986c8b3dSmrg    <reply>
192986c8b3dSmrg      <pad bytes="1" />
193986c8b3dSmrg      <field type="CARD32" name="swap_hi" />
194986c8b3dSmrg      <field type="CARD32" name="swap_lo" />
195986c8b3dSmrg    </reply>
196986c8b3dSmrg  </request>
197986c8b3dSmrg
198986c8b3dSmrg  <request name="GetMSC" opcode="9">
199986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
200986c8b3dSmrg    <reply>
201986c8b3dSmrg      <pad bytes="1" />
202986c8b3dSmrg      <field type="CARD32" name="ust_hi" />
203986c8b3dSmrg      <field type="CARD32" name="ust_lo" />
204986c8b3dSmrg      <field type="CARD32" name="msc_hi" />
205986c8b3dSmrg      <field type="CARD32" name="msc_lo" />
206986c8b3dSmrg      <field type="CARD32" name="sbc_hi" />
207986c8b3dSmrg      <field type="CARD32" name="sbc_lo" />
208986c8b3dSmrg    </reply>
209986c8b3dSmrg  </request>
210986c8b3dSmrg
211986c8b3dSmrg  <request name="WaitMSC" opcode="10">
212986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
213986c8b3dSmrg    <field type="CARD32" name="target_msc_hi" />
214986c8b3dSmrg    <field type="CARD32" name="target_msc_lo" />
215986c8b3dSmrg    <field type="CARD32" name="divisor_hi" />
216986c8b3dSmrg    <field type="CARD32" name="divisor_lo" />
217986c8b3dSmrg    <field type="CARD32" name="remainder_hi" />
218986c8b3dSmrg    <field type="CARD32" name="remainder_lo" />
219986c8b3dSmrg    <reply>
220986c8b3dSmrg      <pad bytes="1" />
221986c8b3dSmrg      <field type="CARD32" name="ust_hi" />
222986c8b3dSmrg      <field type="CARD32" name="ust_lo" />
223986c8b3dSmrg      <field type="CARD32" name="msc_hi" />
224986c8b3dSmrg      <field type="CARD32" name="msc_lo" />
225986c8b3dSmrg      <field type="CARD32" name="sbc_hi" />
226986c8b3dSmrg      <field type="CARD32" name="sbc_lo" />
227986c8b3dSmrg    </reply>
228986c8b3dSmrg  </request>
229986c8b3dSmrg
230986c8b3dSmrg  <request name="WaitSBC" opcode="11">
231986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
232986c8b3dSmrg    <field type="CARD32" name="target_sbc_hi" />
233986c8b3dSmrg    <field type="CARD32" name="target_sbc_lo" />
234986c8b3dSmrg    <reply>
235986c8b3dSmrg      <pad bytes="1" />
236986c8b3dSmrg      <field type="CARD32" name="ust_hi" />
237986c8b3dSmrg      <field type="CARD32" name="ust_lo" />
238986c8b3dSmrg      <field type="CARD32" name="msc_hi" />
239986c8b3dSmrg      <field type="CARD32" name="msc_lo" />
240986c8b3dSmrg      <field type="CARD32" name="sbc_hi" />
241986c8b3dSmrg      <field type="CARD32" name="sbc_lo" />
242986c8b3dSmrg    </reply>
243986c8b3dSmrg  </request>
244986c8b3dSmrg
245986c8b3dSmrg  <request name="SwapInterval" opcode="12">
246986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
247986c8b3dSmrg    <field type="CARD32" name="interval" />
248986c8b3dSmrg  </request>
249986c8b3dSmrg
250986c8b3dSmrg  <!-- Version 1.4 -->
251986c8b3dSmrg
252986c8b3dSmrg  <request name="GetParam" opcode="13">
253986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
254986c8b3dSmrg    <field type="CARD32" name="param" />
255986c8b3dSmrg    <reply>
256986c8b3dSmrg      <field type="BOOL" name="is_param_recognized" />
257986c8b3dSmrg      <field type="CARD32" name="value_hi" />
258986c8b3dSmrg      <field type="CARD32" name="value_lo" />
259986c8b3dSmrg    </reply>
260986c8b3dSmrg  </request>
261986c8b3dSmrg
262986c8b3dSmrg  <!-- Events -->
263986c8b3dSmrg
264986c8b3dSmrg  <event name="BufferSwapComplete" number="0">
265986c8b3dSmrg    <pad bytes="1" />
266986c8b3dSmrg    <field type="CARD16" name="event_type" enum="EventType" />
267986c8b3dSmrg    <pad bytes="2" />
268986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
269986c8b3dSmrg    <field type="CARD32" name="ust_hi" />
270986c8b3dSmrg    <field type="CARD32" name="ust_lo" />
271986c8b3dSmrg    <field type="CARD32" name="msc_hi" />
272986c8b3dSmrg    <field type="CARD32" name="msc_lo" />
273986c8b3dSmrg    <field type="CARD32" name="sbc" />
274986c8b3dSmrg  </event>
275986c8b3dSmrg
276986c8b3dSmrg  <!-- Version 1.3 -->
277986c8b3dSmrg
278986c8b3dSmrg  <event name="InvalidateBuffers" number="1">
279986c8b3dSmrg    <pad bytes="1" />
280986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
281986c8b3dSmrg  </event>
282d4401354Smrg</xcb>
283