Add support for GL_MESA_shader_debug.
[mesa.git] / src / mesa / glapi / gl_API.xml
index 88e11ceed39e2fb80da90051c29782e2a2437834..d5e299add9814a16c21f514de39c3b9a29a62157 100644 (file)
@@ -1,125 +1,5 @@
 <?xml version="1.0"?>
-<!DOCTYPE OpenGLAPI [
-<!ELEMENT OpenGLAPI (category+)>
-<!ELEMENT category (type*, enum*, function*)*>
-<!ELEMENT type EMPTY>
-<!ELEMENT enum (size*)>
-<!ELEMENT size EMPTY>
-<!ELEMENT function (param*, return?, glx?)*>
-<!ELEMENT param EMPTY>
-<!ELEMENT return EMPTY>
-<!ELEMENT glx EMPTY>
-
-<!ATTLIST category name   CDATA #REQUIRED
-                   number CDATA #IMPLIED>
-<!ATTLIST type     name   CDATA #REQUIRED
-                   size   CDATA #REQUIRED
-                   glx_name CDATA #IMPLIED>
-<!ATTLIST enum     name   CDATA #REQUIRED
-                   count  CDATA #IMPLIED
-                   value  CDATA #REQUIRED>
-<!ATTLIST function name   CDATA #REQUIRED
-                   alias  CDATA #IMPLIED
-                   offset CDATA #IMPLIED
-                   vectorequiv CDATA #IMPLIED>
-<!ATTLIST size     name   CDATA #REQUIRED
-                   mode   CDATA #IMPLIED>
-<!ATTLIST param    name   CDATA #REQUIRED
-                   type   CDATA #REQUIRED
-                   count  CDATA #IMPLIED
-                   counter  CDATA #IMPLIED
-                   count_scale  CDATA #IMPLIED
-                   output   CDATA #IMPLIED
-                   img_width     CDATA #IMPLIED
-                   img_height    CDATA #IMPLIED
-                   img_depth     CDATA #IMPLIED
-                   img_extent    CDATA #IMPLIED
-                   img_xoff      CDATA #IMPLIED
-                   img_yoff      CDATA #IMPLIED
-                   img_zoff      CDATA #IMPLIED
-                   img_woff      CDATA #IMPLIED
-                   img_format    CDATA #IMPLIED
-                   img_type      CDATA #IMPLIED
-                   img_target    CDATA #IMPLIED
-                   img_send_null CDATA #IMPLIED
-                   img_null_flag CDATA #IMPLIED
-                   img_pad_dimensions CDATA #IMPLIED
-                   variable_param  CDATA #IMPLIED>
-<!ATTLIST return   type     CDATA #REQUIRED>
-<!ATTLIST glx      rop      CDATA #IMPLIED
-                   sop      CDATA #IMPLIED
-                   vendorpriv  CDATA #IMPLIED
-                   large    CDATA #IMPLIED
-                   doubles_in_order CDATA #IMPLIED
-                   always_array CDATA #IMPLIED
-                   handcode CDATA #IMPLIED
-                   img_reset CDATA #IMPLIED
-                   dimensions_in_reply CDATA #IMPLIED
-                   ignore   CDATA #IMPLIED>
-]>
-
-<!--
-The various attributes for param and glx have the meanings listed below.
-When adding new functions, please annote them correctly.  In most cases this
-will just mean adding a '<glx ignore="true"/>' tag.
-
-param:
-     name - name of the parameter
-     type - fully qualified type (e.g., with "const", etc.)
-     count - for counted arrays (e.g., the 'lists' parameter to glCallLists),
-         the parameter or literal that represents the count.  For functions
-         like glVertex3fv it will be a litteral, for others it will be one of
-         the parameters.
-     counter - this parameter is a counter that will be referenced by the
-         'count' attribute in another parameter.
-     count_scale - literal value scale factor for the 'count' attribute.
-         See ProgramParameters4dvNV for an example.
-     output - this parameter is used to store the output of the function.
-     variable_param - name of parameter used to determine the number of
-         elements referenced by this parameter.  This should be the name of a
-         single enum parameter.  Most of the gl*Parameter[if]v functions use
-         this.  Additionally, the enums that can be passed should be properly
-         annotated.
-     img_width / img_height / img_depth / img_extent - name of parameters
-         (or hardcoded integer) used for the dimensions of pixel data.
-     img_xoff / img_yoff / img_zoff / img_woff - name of parameters used
-         for x, y, z, and w offsets of pixel data.
-     img_format - name of parameter used as the pixel data format.
-     img_type - name of parameter used as the pixel data type.
-     img_target - name of parameter used as a texture target.  Non-texture
-        pixel data should hardcode 0.
-     img_send_null - boolean flag to determine if blank pixel data should
-        be sent when a NULL pointer is passed.  This is only used by
-        TexImage1D and TexImage2D.
-     img_null_flag - boolean flag to determine if an extra flag is used to
-        determine if a NULL pixel pointer was passed.  This is used by
-        TexSubImage1D, TexSubImage2D, TexImage3D and others.
-     img_pad_dimensions - boolean flag to determine if dimension data and
-        offset data should be padded to the next even number of dimensions.
-        For example, this will insert an empty "height" field after the
-        "width" field in the protocol for TexImage1D.
-
-glx:
-     rop - Opcode value for "render" commands
-     sop - Opcode value for "single" commands
-     vendorpriv - Opcode value for vendor private (or vendor private with
-         reply) commands
-     large - set to "true" of the render command can use RenderLarge protocol.
-     doubles_in_order - older commands always put GLdouble data at the
-         start of the render packet.  Newer commands (e.g., 
-         ProgramEnvParameter4dvARB) put the in the order that they appear
-         in the parameter list.
-     always_array - some single commands take reply data as an array or as
-         return value data (e.g., glGetLightfv).  Other single commands take
-         reply data only as an array (e.g., glGetClipPlane).
-     handcode - some functions are just too complicated to generate 
-         (e.g., glSeperableFilter2D) or operate only on client-side data
-         (e.g., glVertexPointer) and must be handcoded.
-     ignore - some functions have an entry in the dispatch table, but aren't
-         suitable for protocol implementation (e.g., glLockArraysEXT).  This
-         also applies to functions that don't have any GLX protocol specified
-         (e.g., glGetFogFuncSGIS).
--->
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
 
 <OpenGLAPI>
 
@@ -1198,31 +1078,31 @@ glx:
     <enum name="SCISSOR_BIT"                              value="0x00080000"/>
     <enum name="ALL_ATTRIB_BITS"                          value="0x000FFFFF"/>
 
-    <type name="double"  size="8"  glx_name="FLOAT64"/>
-    <type name="clampd"  size="8"  glx_name="FLOAT64"/>
+    <type name="double"  size="8"  float="true"    glx_name="FLOAT64"/>
+    <type name="clampd"  size="8"  float="true"    glx_name="FLOAT64"/>
 
-    <type name="float"   size="4"  glx_name="FLOAT32"/>
-    <type name="clampf"  size="4"  glx_name="FLOAT32"/>
+    <type name="float"   size="4"  float="true"    glx_name="FLOAT32"/>
+    <type name="clampf"  size="4"  float="true"    glx_name="FLOAT32"/>
 
-    <type name="int"     size="4"  glx_name="CARD32"/>
-    <type name="uint"    size="4"  glx_name="CARD32"/>
-    <type name="sizei"   size="4"  glx_name="CARD32"/>
-    <type name="enum"    size="4"  glx_name="ENUM"/>
-    <type name="bitfield" size="4" glx_name="CARD32"/>
+    <type name="int"     size="4"                  glx_name="CARD32"/>
+    <type name="uint"    size="4"  unsigned="true" glx_name="CARD32"/>
+    <type name="sizei"   size="4"  unsigned="true" glx_name="CARD32"/>
+    <type name="enum"    size="4"  unsigned="true" glx_name="ENUM"/>
+    <type name="bitfield" size="4" unsigned="true" glx_name="CARD32"/>
 
-    <type name="short"   size="2"  glx_name="CARD16"/>
-    <type name="ushort"  size="2"  glx_name="CARD16"/>
+    <type name="short"   size="2"                  glx_name="CARD16"/>
+    <type name="ushort"  size="2"  unsigned="true" glx_name="CARD16"/>
 
-    <type name="byte"    size="1"  glx_name="CARD8"/>
-    <type name="ubyte"   size="1"  glx_name="CARD8"/>
-    <type name="boolean" size="1"  glx_name="CARD8"/>
+    <type name="byte"    size="1"                  glx_name="CARD8"/>
+    <type name="ubyte"   size="1"  unsigned="true" glx_name="CARD8"/>
+    <type name="boolean" size="1"  unsigned="true" glx_name="CARD8"/>
     
-    <type name="void"    size="0"/>
+    <type name="void"    size="1"/>
 
     <function name="NewList" offset="0">
         <param name="list" type="GLuint"/>
         <param name="mode" type="GLenum"/>
-        <glx sop="101" note_unflushed="true"/>
+        <glx sop="101"/>
     </function>
 
     <function name="EndList" offset="1">
@@ -1244,7 +1124,7 @@ glx:
     <function name="DeleteLists" offset="4">
         <param name="list" type="GLuint"/>
         <param name="range" type="GLsizei"/>
-        <glx sop="103" note_unflushed="true"/>
+        <glx sop="103"/>
     </function>
 
     <function name="GenLists" offset="5">
@@ -2684,13 +2564,13 @@ glx:
     <function name="PixelStoref" offset="249">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-        <glx sop="109" handcode="client" note_unflushed="true"/>
+        <glx sop="109" handcode="client"/>
     </function>
 
     <function name="PixelStorei" offset="250">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-        <glx sop="110" handcode="client" note_unflushed="true"/>
+        <glx sop="110" handcode="client"/>
     </function>
 
     <function name="PixelMapfv" offset="251">
@@ -2800,21 +2680,21 @@ glx:
     <function name="GetMapdv" offset="266">
         <param name="target" type="GLenum"/>
         <param name="query" type="GLenum"/>
-        <param name="v" type="GLdouble *" output="true" variable_param="target, query"/>
+        <param name="v" type="GLdouble *" output="true" variable_param="target query"/>
         <glx sop="120"/>
     </function>
 
     <function name="GetMapfv" offset="267">
         <param name="target" type="GLenum"/>
         <param name="query" type="GLenum"/>
-        <param name="v" type="GLfloat *" output="true" variable_param="target, query"/>
+        <param name="v" type="GLfloat *" output="true" variable_param="target query"/>
         <glx sop="121"/>
     </function>
 
     <function name="GetMapiv" offset="268">
         <param name="target" type="GLenum"/>
         <param name="query" type="GLenum"/>
-        <param name="v" type="GLint *" output="true" variable_param="target, query"/>
+        <param name="v" type="GLint *" output="true" variable_param="target query"/>
         <glx sop="122"/>
     </function>
 
@@ -4235,7 +4115,7 @@ glx:
     <enum name="NUM_COMPRESSED_TEXTURE_FORMATS" count="1" value="0x86A2">
         <size name="Get" mode="get"/>
     </enum>
-    <enum name="COMPRESSED_TEXTURE_FORMATS"    count="?"  value="0x86A3">
+    <enum name="COMPRESSED_TEXTURE_FORMATS"    count="-1"  value="0x86A3">
         <size name="Get" mode="get"/>
     </enum>
     <enum name="CLAMP_TO_BORDER"                          value="0x812D"/>
@@ -5004,7 +4884,7 @@ glx:
     <enum name="DYNAMIC_READ"                             value="0x88E9"/>
     <enum name="DYNAMIC_COPY"                             value="0x88EA"/>
     <enum name="SAMPLES_PASSED"                count="1"  value="0x8914"/>
-    <enum name="FOG_COORD_SOURCE"                         value="0x8450">
+    <enum name="FOG_COORD_SRC"                            value="0x8450">
         <size name="Get" mode="get"/>
     </enum>
     <enum name="FOG_COORD"                                value="0x8451"/>
@@ -5029,8 +4909,8 @@ glx:
     <enum name="SRC1_ALPHA"                               value="0x8589"/>
     <enum name="SRC2_ALPHA"                               value="0x858A"/>
 
-    <type name="intptr"   size="4"  glx_name="CARD32"/>
-    <type name="sizeiptr" size="4"  glx_name="CARD32"/>
+    <type name="intptr"   size="4"                  glx_name="CARD32"/>
+    <type name="sizeiptr" size="4"  unsigned="true" glx_name="CARD32"/>
 
     <function name="BindBuffer" alias="BindBufferARB">
         <param name="target" type="GLenum"/>
@@ -5039,15 +4919,15 @@ glx:
 
     <function name="BufferData" alias="BufferDataARB">
         <param name="target" type="GLenum"/>
-        <param name="size" type="GLsizeiptrARB"/>
+        <param name="size" type="GLsizeiptr"/>
         <param name="data" type="const GLvoid *"/>
         <param name="usage" type="GLenum"/>
     </function>
 
     <function name="BufferSubData" alias="BufferSubDataARB">
         <param name="target" type="GLenum"/>
-        <param name="offset" type="GLintptrARB"/>
-        <param name="size" type="GLsizeiptrARB"/>
+        <param name="offset" type="GLintptr"/>
+        <param name="size" type="GLsizeiptr"/>
         <param name="data" type="const GLvoid *"/>
     </function>
 
@@ -5075,8 +4955,8 @@ glx:
 
     <function name="GetBufferSubData" alias="GetBufferSubDataARB">
         <param name="target" type="GLenum"/>
-        <param name="offset" type="GLintptrARB"/>
-        <param name="size" type="GLsizeiptrARB"/>
+        <param name="offset" type="GLintptr"/>
+        <param name="size" type="GLsizeiptr"/>
         <param name="data" type="GLvoid *" output="true"/>
     </function>
 
@@ -6008,19 +5888,19 @@ glx:
     </function>
 
     <function name="WindowPos2dvARB" alias="WindowPos2dvMESA">
-        <param name="p" type="const GLdouble *"/>
+        <param name="v" type="const GLdouble *"/>
     </function>
 
     <function name="WindowPos2fvARB" alias="WindowPos2fvMESA">
-        <param name="p" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *"/>
     </function>
 
     <function name="WindowPos2ivARB" alias="WindowPos2ivMESA">
-        <param name="p" type="const GLint *"/>
+        <param name="v" type="const GLint *"/>
     </function>
 
     <function name="WindowPos2svARB" alias="WindowPos2svMESA">
-        <param name="p" type="const GLshort *"/>
+        <param name="v" type="const GLshort *"/>
     </function>
 
     <function name="WindowPos3dARB" alias="WindowPos3dMESA">
@@ -6048,19 +5928,19 @@ glx:
     </function>
 
     <function name="WindowPos3dvARB" alias="WindowPos3dvMESA">
-        <param name="p" type="const GLdouble *"/>
+        <param name="v" type="const GLdouble *"/>
     </function>
 
     <function name="WindowPos3fvARB" alias="WindowPos3fvMESA">
-        <param name="p" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *"/>
     </function>
 
     <function name="WindowPos3ivARB" alias="WindowPos3ivMESA">
-        <param name="p" type="const GLint *"/>
+        <param name="v" type="const GLint *"/>
     </function>
 
     <function name="WindowPos3svARB" alias="WindowPos3svMESA">
-        <param name="p" type="const GLshort *"/>
+        <param name="v" type="const GLshort *"/>
     </function>
 </category>
 
@@ -6742,8 +6622,8 @@ glx:
     <enum name="DYNAMIC_READ_ARB"                         value="0x88E9"/>
     <enum name="DYNAMIC_COPY_ARB"                         value="0x88EA"/>
 
-    <type name="intptrARB" size="4"/>
-    <type name="sizeiptrARB" size="4"/>
+    <type name="intptrARB"                   size="4"/>
+    <type name="sizeiptrARB" unsigned="true" size="4"/>
 
     <function name="BindBufferARB" offset="688">
         <param name="target" type="GLenum"/>
@@ -6841,7 +6721,7 @@ glx:
     <function name="GenQueriesARB" offset="700">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="ids" type="GLuint *" output="true" count="n"/>
-        <glx sop="162"/>
+        <glx sop="162" always_array="true"/>
     </function>
 
     <function name="DeleteQueriesARB" offset="701">
@@ -8042,7 +7922,7 @@ glx:
     <function name="SharpenTexFuncSGIS" offset="444">
         <param name="target" type="GLenum"/>
         <param name="n" type="GLsizei" counter="true"/>
-        <param name="points" type="const GLfloat *" counter="n" count_scale="2"/>
+        <param name="points" type="const GLfloat *" count="n" count_scale="2"/>
         <glx rop="2052" ignore="true"/>
     </function>
 
@@ -8389,7 +8269,7 @@ glx:
 <category name="GL_SGIS_fog_function" number="64">
     <function name="FogFuncSGIS" offset="?">
         <param name="n" type="GLsizei" counter="true"/>
-        <param name="points" type="const GLfloat *" counter="n" count_scale="2"/>
+        <param name="points" type="const GLfloat *" count="n" count_scale="2"/>
         <glx rop="2067" ignore="true"/>
     </function>
 
@@ -8532,7 +8412,7 @@ glx:
 
     <function name="ColorTableEXT" alias="ColorTable">
         <param name="target" type="GLenum"/>
-        <param name="internalFormat" type="GLenum"/>
+        <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
@@ -10285,7 +10165,7 @@ glx:
 
     <function name="GenFencesNV" offset="648">
         <param name="n" type="GLsizei" counter="true"/>
-        <param name="fences" type="GLuint *" output="true" counter="n"/>
+        <param name="fences" type="GLuint *" output="true" count="n"/>
         <glx ignore="true"/>
     </function>
 
@@ -10547,13 +10427,13 @@ glx:
 
     <function name="BindProgramNV" offset="579">
         <param name="target" type="GLenum"/>
-        <param name="id" type="GLuint"/>
+        <param name="program" type="GLuint"/>
         <glx rop="4180"/>
     </function>
 
     <function name="DeleteProgramsNV" offset="580">
         <param name="n" type="GLsizei" counter="true"/>
-        <param name="ids" type="const GLuint *" count="n"/>
+        <param name="programs" type="const GLuint *" count="n"/>
         <glx vendorpriv="1294"/>
     </function>
 
@@ -10566,9 +10446,9 @@ glx:
 
     <function name="GenProgramsNV" offset="582">
         <param name="n" type="GLsizei" counter="true"/>
-        <param name="ids" type="GLuint *" output="true" count="n"/>
-        <glx vendorpriv="1295"/>
-    </function>
+        <param name="programs" type="GLuint *" output="true" count="n"/>
+        <glx vendorpriv="1295" always_array="true"/>
+     </function>
 
     <!-- This isn't 100% correct.  Currently, the only valid value of pname
          is GL_PROGRAM_PARAMETER_NV, and the count for that pname is always
@@ -10638,12 +10518,12 @@ glx:
     <function name="GetVertexAttribPointervNV" offset="591">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="pointer" type="GLvoid **" output="true"/>
+        <param name="params" type="GLvoid **" output="true"/>
         <glx handcode="true"/>
     </function>
 
     <function name="IsProgramNV" offset="592">
-        <param name="id" type="GLuint"/>
+        <param name="program" type="GLuint"/>
         <return type="GLboolean"/>
         <glx vendorpriv="1304"/>
     </function>
@@ -10957,22 +10837,22 @@ glx:
     <function name="VertexAttribs2dvNV" offset="632">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
-        <param name="v" type="const GLdouble *" doubles_in_order="true" count="n" count_scale="2"/>
-        <glx rop="4211"/>
+        <param name="v" type="const GLdouble *" count="n" count_scale="2"/>
+        <glx rop="4211" doubles_in_order="true"/>
     </function>
 
     <function name="VertexAttribs3dvNV" offset="635">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
-        <param name="v" type="const GLdouble *" doubles_in_order="true" count="n" count_scale="3"/>
-        <glx rop="4212"/>
+        <param name="v" type="const GLdouble *" count="n" count_scale="3"/>
+        <glx rop="4212" doubles_in_order="true"/>
     </function>
 
     <function name="VertexAttribs4dvNV" offset="638">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
-        <param name="v" type="const GLdouble *" doubles_in_order="true" count="n" count_scale="4"/>
-        <glx rop="4213"/>
+        <param name="v" type="const GLdouble *" count="n" count_scale="4"/>
+        <glx rop="4213" doubles_in_order="true"/>
     </function>
 
     <function name="VertexAttribs4ubvNV" offset="641">
@@ -11212,7 +11092,7 @@ glx:
 
     <function name="PointParameteriNV" offset="642">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint"/>
+        <param name="param" type="GLint"/>
         <glx rop="4221"/>
     </function>
 
@@ -11230,7 +11110,7 @@ glx:
     <!-- No new functions, types, enums. -->
 </category>
 
-<category name="EXT_stencil_two_side" number="268">
+<category name="GL_EXT_stencil_two_side" number="268">
     <enum name="STENCIL_TEST_TWO_SIDE_EXT"     count="1"  value="0x8910">
         <size name="Get" mode="get"/>
     </enum>
@@ -11244,6 +11124,8 @@ glx:
     </function>
 </category>
 
+<xi:include href="APPLE_vertex_array_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
 <category name="GL_APPLE_ycbcr_422" number="275">
     <enum name="YCBCR_422_APPLE"                          value="0x85B9"/>
     <enum name="UNSIGNED_SHORT_8_8_APPLE"                 value="0x85BA"/>
@@ -11498,158 +11380,7 @@ glx:
     <enum name="MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB" count="1" value="0x8B4C"/>
 </category>
 
-<category name="GL_EXT_framebuffer_object" number="310">
-    <enum name="FRAMEBUFFER_EXT" value="0x8D40"/>
-    <enum name="RENDERBUFFER_EXT" value="0x8D41"/>
-    <enum name="STENCIL_INDEX_EXT" value="0x8D45"/>
-    <enum name="STENCIL_INDEX1_EXT" value="0x8D46"/>
-    <enum name="STENCIL_INDEX4_EXT" value="0x8D47"/>
-    <enum name="STENCIL_INDEX8_EXT" value="0x8D48"/>
-    <enum name="STENCIL_INDEX16_EXT" value="0x8D49"/>
-    <enum name="RENDERBUFFER_WIDTH_EXT" value="0x8D42"/>
-    <enum name="RENDERBUFFER_HEIGHT_EXT" value="0x8D43"/>
-    <enum name="RENDERBUFFER_INTERNAL_FORMAT_EXT" value="0x8D44"/>
-    <enum name="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT" value="0x8CD0"/>
-    <enum name="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT" value="0x8CD1"/>
-    <enum name="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT" value="0x8CD2"/>
-    <enum name="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT" value="0x8CD3"/>
-    <enum name="FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT" value="0x8CD4"/>
-    <enum name="COLOR_ATTACHMENT0_EXT" value="0x8CE0"/>
-    <enum name="COLOR_ATTACHMENT1_EXT" value="0x8CE1"/>
-    <enum name="COLOR_ATTACHMENT2_EXT" value="0x8CE2"/>
-    <enum name="COLOR_ATTACHMENT3_EXT" value="0x8CE3"/>
-    <enum name="COLOR_ATTACHMENT4_EXT" value="0x8CE4"/>
-    <enum name="COLOR_ATTACHMENT5_EXT" value="0x8CE5"/>
-    <enum name="COLOR_ATTACHMENT6_EXT" value="0x8CE6"/>
-    <enum name="COLOR_ATTACHMENT7_EXT" value="0x8CE7"/>
-    <enum name="COLOR_ATTACHMENT8_EXT" value="0x8CE8"/>
-    <enum name="COLOR_ATTACHMENT9_EXT" value="0x8CE9"/>
-    <enum name="COLOR_ATTACHMENT10_EXT" value="0x8CEA"/>
-    <enum name="COLOR_ATTACHMENT11_EXT" value="0x8CEB"/>
-    <enum name="COLOR_ATTACHMENT12_EXT" value="0x8CEC"/>
-    <enum name="COLOR_ATTACHMENT13_EXT" value="0x8CED"/>
-    <enum name="COLOR_ATTACHMENT14_EXT" value="0x8CEE"/>
-    <enum name="COLOR_ATTACHMENT15_EXT" value="0x8CEF"/>
-    <enum name="DEPTH_ATTACHMENT_EXT" value="0x8D00"/>
-    <enum name="STENCIL_ATTACHMENT_EXT" value="0x8D20"/>
-    <enum name="FRAMEBUFFER_COMPLETE_EXT" value="0x8CD5"/>
-    <enum name="FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT" value="0x8CD6"/>
-    <enum name="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT" value="0x8CD7"/>
-    <enum name="FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT" value="0x8CD8"/>
-    <enum name="FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT" value="0x8CD9"/>
-    <enum name="FRAMEBUFFER_INCOMPLETE_FORMATS_EXT" value="0x8CDA"/>
-    <enum name="FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT" value="0x8CDB"/>
-    <enum name="FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT" value="0x8CDC"/>
-    <enum name="FRAMEBUFFER_UNSUPPORTED_EXT" value="0x8CDD"/>
-    <enum name="FRAMEBUFFER_STATUS_ERROR_EXT" value="0x8CDE"/>
-    <enum name="FRAMEBUFFER_BINDING_EXT" value="0x8CA6"/>
-    <enum name="RENDERBUFFER_BINDING_EXT" value="0x8CA7"/>
-    <enum name="MAX_COLOR_ATTACHMENTS_EXT" value="0x8CDF"/>
-    <enum name="MAX_RENDERBUFFER_SIZE_EXT" value="0x84E8"/>
-    <enum name="INVALID_FRAMEBUFFER_OPERATION_EXT" value="0x0506"/>
-
-    <function name="IsRenderbufferEXT" offset="796">
-      <param name="renderbuffer" type="GLuint"/>
-      <return type="GLboolean"/>
-    </function>
-
-    <function name="BindRenderbufferEXT" offset="797">
-      <param name="target" type="GLenum"/>
-      <param name="renderbuffer" type="GLuint"/>
-    </function>
-
-    <function name="DeleteRenderbuffersEXT" offset="798">
-      <param name="n" type="GLsizei"/>
-      <param name="renderbuffers" type="const GLuint *"/>
-    </function>
-
-    <function name="GenRenderbuffersEXT" offset="799">
-      <param name="n" type="GLsizei"/>
-      <param name="renderbuffers" type="GLuint *"/>
-    </function>
-
-    <function name="RenderbufferStorageEXT" offset="800">
-      <param name="target" type="GLenum"/>
-      <param name="internalformat" type="GLenum"/>
-      <param name="width" type="GLsizei"/>
-      <param name="height" type="GLsizei"/>
-    </function>
-
-    <function name="GetRenderbufferParameterivEXT" offset="801">
-      <param name="target" type="GLenum"/>
-      <param name="pname" type="GLenum"/>
-      <param name="params" type="GLint *"/>
-    </function>
-
-    <function name="IsFramebufferEXT" offset="802">
-      <param name="framebuffer" type="GLuint"/>
-      <return type="GLboolean"/>
-    </function>
-
-    <function name="BindFramebufferEXT" offset="803">
-      <param name="target" type="GLenum"/>
-      <param name="framebuffer" type="GLuint"/>
-    </function>
-
-    <function name="DeleteFramebuffersEXT" offset="804">
-      <param name="n" type="GLsizei"/>
-      <param name="framebuffers" type="const GLuint *"/>
-    </function>
-
-    <function name="GenFramebuffersEXT" offset="805">
-      <param name="n" type="GLsizei"/>
-      <param name="framebuffers" type="GLuint *"/>
-    </function>
-
-    <function name="CheckFramebufferStatusEXT" offset="806">
-      <param name="target" type="GLenum"/>
-      <return type="GLenum"/>
-    </function>
-
-    <function name="FramebufferTexture1DEXT" offset="807">
-      <param name="target" type="GLenum"/>
-      <param name="attachment" type="GLenum"/>
-      <param name="textarget" type="GLenum"/>
-      <param name="texture" type="GLuint"/>
-      <param name="level" type="GLint"/>
-    </function>
-
-    <function name="FramebufferTexture2DEXT" offset="808">
-      <param name="target" type="GLenum"/>
-      <param name="attachment" type="GLenum"/>
-      <param name="textarget" type="GLenum"/>
-      <param name="texture" type="GLuint"/>
-      <param name="level" type="GLint"/>
-    </function>
-
-    <function name="FramebufferTexture3DEXT" offset="809">
-      <param name="target" type="GLenum"/>
-      <param name="attachment" type="GLenum"/>
-      <param name="textarget" type="GLenum"/>
-      <param name="texture" type="GLuint"/>
-      <param name="level" type="GLint"/>
-      <param name="zoffsetl" type="GLint"/>
-    </function>
-
-    <function name="FramebufferRenderbufferEXT" offset="810">
-      <param name="target" type="GLenum"/>
-      <param name="attachment" type="GLenum"/>
-      <param name="renderbuffertarget" type="GLenum"/>
-      <param name="renderbuffer" type="GLuint"/>
-    </function>
-
-    <function name="GetFramebufferAttachmentParameterivEXT" offset="811">
-      <param name="target" type="GLenum"/>
-      <param name="attachment" type="GLenum"/>
-      <param name="pname" type="GLenum"/>
-      <param name="params" type="GLint *"/>
-    </function>
-
-    <function name="GenerateMipmapEXT" offset="812">
-      <param name="target" type="GLenum"/>
-    </function>
-</category>
-
+<xi:include href="EXT_framebuffer_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <!-- Extension number 307 is a GLX extension. -->
 <!-- Extension number 308 is a GLX extension. -->
@@ -11677,6 +11408,38 @@ glx:
     </function>
 </category>
 
+<category name="GL_MESA_shader_debug">
+    <enum name="DEBUG_OBJECT_MESA"                        value="0x8759"/>
+    <enum name="DEBUG_PRINT_MESA"                         value="0x875A"/>
+    <enum name="DEBUG_ASSERT_MESA"                        value="0x875B"/>
+    <function name="CreateDebugObjectMESA">
+        <return type="GLhandleARB"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="ClearDebugLogMESA" offset="?">
+        <param name="obj" type="GLhandleARB"/>
+        <param name="logType" type="GLenum"/>
+        <param name="shaderType" type="GLenum"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="GetDebugLogMESA" offset="?">
+        <param name="obj" type="GLhandleARB"/>
+        <param name="logType" type="GLenum"/>
+        <param name="shaderType" type="GLenum"/>
+        <param name="maxLength" type="GLsizei"/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="debugLog" type="GLcharARB *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="GetDebugLogLengthMESA" offset="?">
+        <return type="GLsizei"/>
+        <param name="obj" type="GLhandleARB"/>
+        <param name="logType" type="GLenum"/>
+        <param name="shaderType" type="GLenum"/>
+        <glx ignore="true"/>
+    </function>
+</category>
+
 <category name="GL_SGIS_point_parameters">
     <enum name="POINT_SIZE_MIN_SGIS"           count="1"  value="0x8126">
         <size name="PointParameterfvEXT"/>
@@ -11753,4 +11516,39 @@ glx:
     </function>
 </category>
 
+<category name="GL_EXT_timer_query" number="310">
+    <enum name="TIME_ELAPSED_EXT" value="0x88BF"/>
+    <type name="int64EXT"                  size="8"/>
+    <type name="uint64EXT" unsigned="true" size="8"/>
+    <function name="GetQueryObjecti64vEXT" offset="816">
+        <param name="id" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint64EXT *"/>
+    </function>
+    <function name="GetQueryObjectui64vEXT" offset="817">
+        <param name="id" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLuint64EXT *"/>
+    </function>
+</category>
+
+<category name="GL_EXT_framebuffer_blit" number="316">
+    <enum name="READ_FRAMEBUFFER_EXT" value="0x8CA8"/>
+    <enum name="DRAW_FRAMEBUFFER_EXT" value="0x8CA9"/>
+    <enum name="DRAW_FRAMEBUFFER_BINDING_EXT" value="0x8CA6"/>
+    <enum name="READ_FRAMEBUFFER_BINDING_EXT" value="0x8CAA"/>
+    <function name="BlitFramebufferEXT" offset="818">
+        <param name="srcX0" type="GLint"/>
+        <param name="srcY0" type="GLint"/>
+        <param name="srcX1" type="GLint"/>
+        <param name="srcY1" type="GLint"/>
+        <param name="dstX0" type="GLint"/>
+        <param name="dstY0" type="GLint"/>
+        <param name="dstX1" type="GLint"/>
+        <param name="dstY1" type="GLint"/>
+        <param name="mask" type="GLbitfield"/>
+        <param name="filter" type="GLenum"/>
+    </function>
+</category>
+
 </OpenGLAPI>