dri2.xml revision f591e195
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>
101986c8b3dSmrg		      <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" />
136d4401354Smrg    <list type="CARD32" name="attachments" />
137d4401354Smrg    <reply>
138d4401354Smrg      <pad bytes="1" />
139d4401354Smrg      <field type="CARD32" name="width" />
140d4401354Smrg      <field type="CARD32" name="height" />
141d4401354Smrg      <field type="CARD32" name="count" />
142d4401354Smrg      <pad bytes="12" />
143d4401354Smrg      <list type="DRI2Buffer" name="buffers">
144d4401354Smrg        <fieldref>count</fieldref>
145d4401354Smrg      </list>
146d4401354Smrg    </reply>
147d4401354Smrg  </request>
148d4401354Smrg
149d4401354Smrg  <request name="CopyRegion" opcode="6">
150d4401354Smrg    <field type="DRAWABLE" name="drawable" />
151d4401354Smrg    <field type="CARD32" name="region" />
152d4401354Smrg    <field type="CARD32" name="dest" />
153d4401354Smrg    <field type="CARD32" name="src" />
154d4401354Smrg    <reply>
155d4401354Smrg      <pad bytes="1" />
156d4401354Smrg    </reply>
157d4401354Smrg  </request>
158d4401354Smrg
159d4401354Smrg  <request name="GetBuffersWithFormat" opcode="7">
160d4401354Smrg    <field type="DRAWABLE" name="drawable" />
161d4401354Smrg    <field type="CARD32" name="count" />
162d4401354Smrg    <list type="AttachFormat" name="attachments" />
163d4401354Smrg    <reply>
164d4401354Smrg      <pad bytes="1" />
165d4401354Smrg      <field type="CARD32" name="width" />
166d4401354Smrg      <field type="CARD32" name="height" />
167d4401354Smrg      <field type="CARD32" name="count" />
168d4401354Smrg      <pad bytes="12" />
169d4401354Smrg      <list type="DRI2Buffer" name="buffers">
170d4401354Smrg        <fieldref>count</fieldref>
171d4401354Smrg      </list>
172d4401354Smrg    </reply>
173d4401354Smrg  </request>
174986c8b3dSmrg
175986c8b3dSmrg  <!-- Version 1.2 -->
176986c8b3dSmrg
177986c8b3dSmrg  <request name="SwapBuffers" opcode="8">
178986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
179986c8b3dSmrg    <field type="CARD32" name="target_msc_hi" />
180986c8b3dSmrg    <field type="CARD32" name="target_msc_lo" />
181986c8b3dSmrg    <field type="CARD32" name="divisor_hi" />
182986c8b3dSmrg    <field type="CARD32" name="divisor_lo" />
183986c8b3dSmrg    <field type="CARD32" name="remainder_hi" />
184986c8b3dSmrg    <field type="CARD32" name="remainder_lo" />
185986c8b3dSmrg    <reply>
186986c8b3dSmrg      <pad bytes="1" />
187986c8b3dSmrg      <field type="CARD32" name="swap_hi" />
188986c8b3dSmrg      <field type="CARD32" name="swap_lo" />
189986c8b3dSmrg    </reply>
190986c8b3dSmrg  </request>
191986c8b3dSmrg
192986c8b3dSmrg  <request name="GetMSC" opcode="9">
193986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
194986c8b3dSmrg    <reply>
195986c8b3dSmrg      <pad bytes="1" />
196986c8b3dSmrg      <field type="CARD32" name="ust_hi" />
197986c8b3dSmrg      <field type="CARD32" name="ust_lo" />
198986c8b3dSmrg      <field type="CARD32" name="msc_hi" />
199986c8b3dSmrg      <field type="CARD32" name="msc_lo" />
200986c8b3dSmrg      <field type="CARD32" name="sbc_hi" />
201986c8b3dSmrg      <field type="CARD32" name="sbc_lo" />
202986c8b3dSmrg    </reply>
203986c8b3dSmrg  </request>
204986c8b3dSmrg
205986c8b3dSmrg  <request name="WaitMSC" opcode="10">
206986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
207986c8b3dSmrg    <field type="CARD32" name="target_msc_hi" />
208986c8b3dSmrg    <field type="CARD32" name="target_msc_lo" />
209986c8b3dSmrg    <field type="CARD32" name="divisor_hi" />
210986c8b3dSmrg    <field type="CARD32" name="divisor_lo" />
211986c8b3dSmrg    <field type="CARD32" name="remainder_hi" />
212986c8b3dSmrg    <field type="CARD32" name="remainder_lo" />
213986c8b3dSmrg    <reply>
214986c8b3dSmrg      <pad bytes="1" />
215986c8b3dSmrg      <field type="CARD32" name="ust_hi" />
216986c8b3dSmrg      <field type="CARD32" name="ust_lo" />
217986c8b3dSmrg      <field type="CARD32" name="msc_hi" />
218986c8b3dSmrg      <field type="CARD32" name="msc_lo" />
219986c8b3dSmrg      <field type="CARD32" name="sbc_hi" />
220986c8b3dSmrg      <field type="CARD32" name="sbc_lo" />
221986c8b3dSmrg    </reply>
222986c8b3dSmrg  </request>
223986c8b3dSmrg
224986c8b3dSmrg  <request name="WaitSBC" opcode="11">
225986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
226986c8b3dSmrg    <field type="CARD32" name="target_sbc_hi" />
227986c8b3dSmrg    <field type="CARD32" name="target_sbc_lo" />
228986c8b3dSmrg    <reply>
229986c8b3dSmrg      <pad bytes="1" />
230986c8b3dSmrg      <field type="CARD32" name="ust_hi" />
231986c8b3dSmrg      <field type="CARD32" name="ust_lo" />
232986c8b3dSmrg      <field type="CARD32" name="msc_hi" />
233986c8b3dSmrg      <field type="CARD32" name="msc_lo" />
234986c8b3dSmrg      <field type="CARD32" name="sbc_hi" />
235986c8b3dSmrg      <field type="CARD32" name="sbc_lo" />
236986c8b3dSmrg    </reply>
237986c8b3dSmrg  </request>
238986c8b3dSmrg
239986c8b3dSmrg  <request name="SwapInterval" opcode="12">
240986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
241986c8b3dSmrg    <field type="CARD32" name="interval" />
242986c8b3dSmrg  </request>
243986c8b3dSmrg
244986c8b3dSmrg  <!-- Version 1.4 -->
245986c8b3dSmrg
246986c8b3dSmrg  <request name="GetParam" opcode="13">
247986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
248986c8b3dSmrg    <field type="CARD32" name="param" />
249986c8b3dSmrg    <reply>
250986c8b3dSmrg      <field type="BOOL" name="is_param_recognized" />
251986c8b3dSmrg      <field type="CARD32" name="value_hi" />
252986c8b3dSmrg      <field type="CARD32" name="value_lo" />
253986c8b3dSmrg    </reply>
254986c8b3dSmrg  </request>
255986c8b3dSmrg
256986c8b3dSmrg  <!-- Events -->
257986c8b3dSmrg
258986c8b3dSmrg  <event name="BufferSwapComplete" number="0">
259986c8b3dSmrg    <pad bytes="1" />
260986c8b3dSmrg    <field type="CARD16" name="event_type" enum="EventType" />
261986c8b3dSmrg    <pad bytes="2" />
262986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
263986c8b3dSmrg    <field type="CARD32" name="ust_hi" />
264986c8b3dSmrg    <field type="CARD32" name="ust_lo" />
265986c8b3dSmrg    <field type="CARD32" name="msc_hi" />
266986c8b3dSmrg    <field type="CARD32" name="msc_lo" />
267986c8b3dSmrg    <field type="CARD32" name="sbc" />
268986c8b3dSmrg  </event>
269986c8b3dSmrg
270986c8b3dSmrg  <!-- Version 1.3 -->
271986c8b3dSmrg
272986c8b3dSmrg  <event name="InvalidateBuffers" number="1">
273986c8b3dSmrg    <pad bytes="1" />
274986c8b3dSmrg    <field type="DRAWABLE" name="drawable" />
275986c8b3dSmrg  </event>
276d4401354Smrg</xcb>
277