dri2: Add notes on lists that should be linked to their length fields but are not.
[free-sw/xcb/proto] / src / dri2.xml
index dbd43f8..3b4c12e 100644 (file)
@@ -28,24 +28,32 @@ authorization from the authors.
 -->
 
 <xcb header="dri2" extension-xname="DRI2" extension-name="DRI2"
-  major-version="1" minor-version="1">
+  major-version="1" minor-version="4">
   <import>xproto</import>
 
   <enum name="Attachment">
-    <item name="BufferFrontLeft" />
-    <item name="BufferBackLeft" />
-    <item name="BufferFrontRight" />
-    <item name="BufferBackRight" />
-    <item name="BufferDepth" />
-    <item name="BufferStencil" />
-    <item name="BufferAccum" />
-    <item name="BufferFakeFrontLeft" />
-    <item name="BufferFakeFrontRight" />
-    <item name="BufferDepthStencil" />
+    <item name="BufferFrontLeft">      <value>0</value> </item>
+    <item name="BufferBackLeft">       <value>1</value> </item>
+    <item name="BufferFrontRight">     <value>2</value> </item>
+    <item name="BufferBackRight">      <value>3</value> </item>
+    <item name="BufferDepth">          <value>4</value> </item>
+    <item name="BufferStencil">        <value>5</value> </item>
+    <item name="BufferAccum">          <value>6</value> </item>
+    <item name="BufferFakeFrontLeft">  <value>7</value> </item>
+    <item name="BufferFakeFrontRight"> <value>8</value> </item>
+    <item name="BufferDepthStencil">   <value>9</value> </item>
+    <item name="BufferHiz">            <value>10</value> </item>
   </enum>
 
   <enum name="DriverType">
-    <item name="DRI" />
+    <item name="DRI">   <value>0</value> </item>
+    <item name="VDPAU"> <value>1</value> </item>
+  </enum>
+
+  <enum name="EventType">
+    <item name="ExchangeComplete"><value>1</value></item>
+    <item name="BlitComplete">    <value>2</value></item>
+    <item name="FlipComplete">    <value>3</value></item>
   </enum>
 
   <!-- Types -->
@@ -90,7 +98,7 @@ authorization from the authors.
              <op op="&amp;">
                  <op op="+">
                      <fieldref>driver_name_length</fieldref>
-                     <value> 3 </value>
+                     <value>3</value>
                  </op>
                  <unop op="~">
                      <value>3</value>
@@ -125,7 +133,10 @@ authorization from the authors.
   <request name="GetBuffers" opcode="5">
     <field type="DRAWABLE" name="drawable" />
     <field type="CARD32" name="count" />
-    <list type="CARD32" name="attachments" />
+    <list type="CARD32" name="attachments">
+    <!-- The length field should be linked but we can't correct it without breaking API -->
+    <!-- <fieldref>count</fieldref> -->
+    </list>
     <reply>
       <pad bytes="1" />
       <field type="CARD32" name="width" />
@@ -151,7 +162,10 @@ authorization from the authors.
   <request name="GetBuffersWithFormat" opcode="7">
     <field type="DRAWABLE" name="drawable" />
     <field type="CARD32" name="count" />
-    <list type="AttachFormat" name="attachments" />
+    <list type="AttachFormat" name="attachments">
+    <!-- The length field should be linked but we can't correct it without breaking API -->
+    <!-- <fieldref>count</fieldref> -->
+    </list>
     <reply>
       <pad bytes="1" />
       <field type="CARD32" name="width" />
@@ -163,4 +177,106 @@ authorization from the authors.
       </list>
     </reply>
   </request>
+
+  <!-- Version 1.2 -->
+
+  <request name="SwapBuffers" opcode="8">
+    <field type="DRAWABLE" name="drawable" />
+    <field type="CARD32" name="target_msc_hi" />
+    <field type="CARD32" name="target_msc_lo" />
+    <field type="CARD32" name="divisor_hi" />
+    <field type="CARD32" name="divisor_lo" />
+    <field type="CARD32" name="remainder_hi" />
+    <field type="CARD32" name="remainder_lo" />
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD32" name="swap_hi" />
+      <field type="CARD32" name="swap_lo" />
+    </reply>
+  </request>
+
+  <request name="GetMSC" opcode="9">
+    <field type="DRAWABLE" name="drawable" />
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD32" name="ust_hi" />
+      <field type="CARD32" name="ust_lo" />
+      <field type="CARD32" name="msc_hi" />
+      <field type="CARD32" name="msc_lo" />
+      <field type="CARD32" name="sbc_hi" />
+      <field type="CARD32" name="sbc_lo" />
+    </reply>
+  </request>
+
+  <request name="WaitMSC" opcode="10">
+    <field type="DRAWABLE" name="drawable" />
+    <field type="CARD32" name="target_msc_hi" />
+    <field type="CARD32" name="target_msc_lo" />
+    <field type="CARD32" name="divisor_hi" />
+    <field type="CARD32" name="divisor_lo" />
+    <field type="CARD32" name="remainder_hi" />
+    <field type="CARD32" name="remainder_lo" />
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD32" name="ust_hi" />
+      <field type="CARD32" name="ust_lo" />
+      <field type="CARD32" name="msc_hi" />
+      <field type="CARD32" name="msc_lo" />
+      <field type="CARD32" name="sbc_hi" />
+      <field type="CARD32" name="sbc_lo" />
+    </reply>
+  </request>
+
+  <request name="WaitSBC" opcode="11">
+    <field type="DRAWABLE" name="drawable" />
+    <field type="CARD32" name="target_sbc_hi" />
+    <field type="CARD32" name="target_sbc_lo" />
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD32" name="ust_hi" />
+      <field type="CARD32" name="ust_lo" />
+      <field type="CARD32" name="msc_hi" />
+      <field type="CARD32" name="msc_lo" />
+      <field type="CARD32" name="sbc_hi" />
+      <field type="CARD32" name="sbc_lo" />
+    </reply>
+  </request>
+
+  <request name="SwapInterval" opcode="12">
+    <field type="DRAWABLE" name="drawable" />
+    <field type="CARD32" name="interval" />
+  </request>
+
+  <!-- Version 1.4 -->
+
+  <request name="GetParam" opcode="13">
+    <field type="DRAWABLE" name="drawable" />
+    <field type="CARD32" name="param" />
+    <reply>
+      <field type="BOOL" name="is_param_recognized" />
+      <field type="CARD32" name="value_hi" />
+      <field type="CARD32" name="value_lo" />
+    </reply>
+  </request>
+
+  <!-- Events -->
+
+  <event name="BufferSwapComplete" number="0">
+    <pad bytes="1" />
+    <field type="CARD16" name="event_type" enum="EventType" />
+    <pad bytes="2" />
+    <field type="DRAWABLE" name="drawable" />
+    <field type="CARD32" name="ust_hi" />
+    <field type="CARD32" name="ust_lo" />
+    <field type="CARD32" name="msc_hi" />
+    <field type="CARD32" name="msc_lo" />
+    <field type="CARD32" name="sbc" />
+  </event>
+
+  <!-- Version 1.3 -->
+
+  <event name="InvalidateBuffers" number="1">
+    <pad bytes="1" />
+    <field type="DRAWABLE" name="drawable" />
+  </event>
 </xcb>