MAX_TEXTURE_COORDS_ARB and MAX_TEXTURE_IMAGE_UNITS_ARB had wrong glGet info.
[mesa.git] / src / mesa / glapi / gl_API.xml
index 77d4204483edde6241d011c67fd26a778ca81296..1f23d8c587c72768d530060bb1b956543a1189fc 100644 (file)
@@ -1,127 +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
-                   count  CDATA #IMPLIED
-                   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
-                   doubles_in_order 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>
 
@@ -1200,26 +1078,26 @@ 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"/>
@@ -2486,9 +2364,9 @@ glx:
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLdouble"/>
         <param name="u2" type="GLdouble"/>
-        <param name="stride" type="GLint"/>
+        <param name="stride" type="GLint" client_only="true"/>
         <param name="order" type="GLint"/>
-        <param name="points" type="const GLdouble *"/>
+        <param name="points" type="const GLdouble *" variable_param="order"/>
         <glx rop="143" handcode="true"/>
     </function>
 
@@ -2496,9 +2374,9 @@ glx:
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLfloat"/>
         <param name="u2" type="GLfloat"/>
-        <param name="stride" type="GLint"/>
+        <param name="stride" type="GLint" client_only="true"/>
         <param name="order" type="GLint"/>
-        <param name="points" type="const GLfloat *"/>
+        <param name="points" type="const GLfloat *" variable_param="order"/>
         <glx rop="144" handcode="true"/>
     </function>
 
@@ -2506,13 +2384,13 @@ glx:
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLdouble"/>
         <param name="u2" type="GLdouble"/>
-        <param name="ustride" type="GLint"/>
+        <param name="ustride" type="GLint" client_only="true"/>
         <param name="uorder" type="GLint"/>
         <param name="v1" type="GLdouble"/>
         <param name="v2" type="GLdouble"/>
-        <param name="vstride" type="GLint"/>
+        <param name="vstride" type="GLint" client_only="true"/>
         <param name="vorder" type="GLint"/>
-        <param name="points" type="const GLdouble *"/>
+        <param name="points" type="const GLdouble *" variable_param="uorder"/>
         <glx rop="145" handcode="true"/>
     </function>
 
@@ -2520,13 +2398,13 @@ glx:
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLfloat"/>
         <param name="u2" type="GLfloat"/>
-        <param name="ustride" type="GLint"/>
+        <param name="ustride" type="GLint" client_only="true"/>
         <param name="uorder" type="GLint"/>
         <param name="v1" type="GLfloat"/>
         <param name="v2" type="GLfloat"/>
-        <param name="vstride" type="GLint"/>
+        <param name="vstride" type="GLint" client_only="true"/>
         <param name="vorder" type="GLint"/>
-        <param name="points" type="const GLfloat *"/>
+        <param name="points" type="const GLfloat *" variable_param="uorder"/>
         <glx rop="146" handcode="true"/>
     </function>
 
@@ -2802,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>
 
@@ -4237,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"/>
@@ -5006,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"/>
@@ -5031,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"/>
@@ -5041,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>
 
@@ -5077,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>
 
@@ -5108,67 +4986,739 @@ glx:
         <param name="ids" type="const GLuint *"/>
     </function>
 
-    <function name="IsQuery" alias="IsQueryARB">
-        <param name="id" type="GLuint"/>
-        <return type="GLboolean"/>
+    <function name="IsQuery" alias="IsQueryARB">
+        <param name="id" type="GLuint"/>
+        <return type="GLboolean"/>
+    </function>
+
+    <function name="BeginQuery" alias="BeginQueryARB">
+        <param name="target" type="GLenum"/>
+        <param name="id" type="GLuint"/>
+    </function>
+
+    <function name="EndQuery" alias="EndQueryARB">
+        <param name="target" type="GLenum"/>
+    </function>
+
+    <function name="GetQueryiv" alias="GetQueryivARB">
+        <param name="target" type="GLenum"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+    </function>
+
+    <function name="GetQueryObjectiv" alias="GetQueryObjectivARB">
+        <param name="id" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+    </function>
+
+    <function name="GetQueryObjectuiv" alias="GetQueryObjectuivARB">
+        <param name="id" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLuint *" output="true" variable_param="pname"/>
+    </function>
+</category>
+
+
+<category name="2.0">
+    <!-- XXX some of the enums and functions probably need additional -->
+    <!-- flags/attributes. -->
+
+    <type name="char"   size="1" glx_name="CARD8"/>
+
+    <enum name="GL_BLEND_EQUATION_RGB"            value="0x8009"/>
+    <enum name="VERTEX_ATTRIB_ARRAY_ENABLED"      value="0x8622"/>
+    <enum name="VERTEX_ATTRIB_ARRAY_SIZE"         value="0x8623"/>
+    <enum name="VERTEX_ATTRIB_ARRAY_STRIDE"       value="0x8624"/>
+    <enum name="VERTEX_ATTRIB_ARRAY_TYPE"         value="0x8625"/>
+    <enum name="CURRENT_VERTEX_ATTRIB"            value="0x8626"/>
+    <enum name="VERTEX_PROGRAM_POINT_SIZE"        value="0x8642"/>
+    <enum name="VERTEX_PROGRAM_TWO_SIDE"          value="0x8643"/>
+    <enum name="VERTEX_ATTRIB_ARRAY_POINTER"      value="0x8645"/>
+    <enum name="STENCIL_BACK_FUNC"                value="0x8800"/>
+    <enum name="STENCIL_BACK_FAIL"                value="0x8801"/>
+    <enum name="STENCIL_BACK_PASS_DEPTH_FAIL"     value="0x8802"/>
+    <enum name="STENCIL_BACK_PASS_DEPTH_PASS"     value="0x8803"/>
+    <enum name="MAX_DRAW_BUFFERS"                 value="0x8824"/>
+    <enum name="DRAW_BUFFER0"                     value="0x8825"/>
+    <enum name="DRAW_BUFFER1"                     value="0x8826"/>
+    <enum name="DRAW_BUFFER2"                     value="0x8827"/>
+    <enum name="DRAW_BUFFER3"                     value="0x8828"/>
+    <enum name="DRAW_BUFFER4"                     value="0x8829"/>
+    <enum name="DRAW_BUFFER5"                     value="0x882A"/>
+    <enum name="DRAW_BUFFER6"                     value="0x882B"/>
+    <enum name="DRAW_BUFFER7"                     value="0x882C"/>
+    <enum name="DRAW_BUFFER8"                     value="0x882D"/>
+    <enum name="DRAW_BUFFER9"                     value="0x882E"/>
+    <enum name="DRAW_BUFFER10"                    value="0x882F"/>
+    <enum name="DRAW_BUFFER11"                    value="0x8830"/>
+    <enum name="DRAW_BUFFER12"                    value="0x8831"/>
+    <enum name="DRAW_BUFFER13"                    value="0x8832"/>
+    <enum name="DRAW_BUFFER14"                    value="0x8833"/>
+    <enum name="DRAW_BUFFER15"                    value="0x8834"/>
+    <enum name="BLEND_EQUATION_ALPHA"             value="0x883D"/>
+    <enum name="POINT_SPRITE"                     value="0x8861"/>
+    <enum name="COORD_REPLACE"                    value="0x8862"/>
+    <enum name="MAX_VERTEX_ATTRIBS"               value="0x8869"/>
+    <enum name="VERTEX_ATTRIB_ARRAY_NORMALIZED"   value="0x886A"/>
+    <enum name="MAX_TEXTURE_COORDS"               value="0x8871"/>
+    <enum name="MAX_TEXTURE_IMAGE_UNITS"          value="0x8872"/>
+    <enum name="FRAGMENT_SHADER"                  value="0x8B30"/>
+    <enum name="VERTEX_SHADER"                    value="0x8B31"/>
+    <enum name="MAX_FRAGMENT_UNIFORM_COMPONENTS"  value="0x8B49"/>
+    <enum name="MAX_VERTEX_UNIFORM_COMPONENTS"    value="0x8B4A"/>
+    <enum name="MAX_VARYING_FLOATS"               value="0x8B4B"/>
+    <enum name="MAX_VERTEX_TEXTURE_IMAGE_UNITS"   value="0x8B4C"/>
+    <enum name="MAX_COMBINED_TEXTURE_IMAGE_UNITS" value="0x8B4D"/>
+    <enum name="SHADER_TYPE"                      value="0x8B4F"/>
+    <enum name="FLOAT_VEC2"                       value="0x8B50"/>
+    <enum name="FLOAT_VEC3"                       value="0x8B51"/>
+    <enum name="FLOAT_VEC4"                       value="0x8B52"/>
+    <enum name="INT_VEC2"                         value="0x8B53"/>
+    <enum name="INT_VEC3"                         value="0x8B54"/>
+    <enum name="INT_VEC4"                         value="0x8B55"/>
+    <enum name="BOOL"                             value="0x8B56"/>
+    <enum name="BOOL_VEC2"                        value="0x8B57"/>
+    <enum name="BOOL_VEC3"                        value="0x8B58"/>
+    <enum name="BOOL_VEC4"                        value="0x8B59"/>
+    <enum name="FLOAT_MAT2"                       value="0x8B5A"/>
+    <enum name="FLOAT_MAT3"                       value="0x8B5B"/>
+    <enum name="FLOAT_MAT4"                       value="0x8B5C"/>
+    <enum name="SAMPLER_1D"                       value="0x8B5D"/>
+    <enum name="SAMPLER_2D"                       value="0x8B5E"/>
+    <enum name="SAMPLER_3D"                       value="0x8B5F"/>
+    <enum name="SAMPLER_CUBE"                     value="0x8B60"/>
+    <enum name="SAMPLER_1D_SHADOW"                value="0x8B61"/>
+    <enum name="SAMPLER_2D_SHADOW"                value="0x8B62"/>
+    <enum name="DELETE_STATUS"                    value="0x8B80"/>
+    <enum name="COMPILE_STATUS"                   value="0x8B81"/>
+    <enum name="LINK_STATUS"                      value="0x8B82"/>
+    <enum name="VALIDATE_STATUS"                  value="0x8B83"/>
+    <enum name="INFO_LOG_LENGTH"                  value="0x8B84"/>
+    <enum name="ATTACHED_SHADERS"                 value="0x8B85"/>
+    <enum name="ACTIVE_UNIFORMS"                  value="0x8B86"/>
+    <enum name="ACTIVE_UNIFORM_MAX_LENGTH"        value="0x8B87"/>
+    <enum name="SHADER_SOURCE_LENGTH"             value="0x8B88"/>
+    <enum name="ACTIVE_ATTRIBUTES"                value="0x8B89"/>
+    <enum name="ACTIVE_ATTRIBUTE_MAX_LENGTH"      value="0x8B8A"/>
+    <enum name="FRAGMENT_SHADER_DERIVATIVE_HINT"  value="0x8B8B"/>
+    <enum name="SHADING_LANGUAGE_VERSION"         value="0x8B8C"/>
+    <enum name="CURRENT_PROGRAM"                  value="0x8B8D"/>
+    <enum name="POINT_SPRITE_COORD_ORIGIN" count="1"  value="0x8CA0">
+        <size name="PointParameterfvEXT"/>
+        <size name="PointParameterivNV"/>
+    </enum>
+    <enum name="LOWER_LEFT"                       value="0x8CA1"/>
+    <enum name="UPPER_LEFT"                       value="0x8CA2"/>
+    <enum name="STENCIL_BACK_REF"                 value="0x8CA3"/>
+    <enum name="STENCIL_BACK_VALUE_MASK"          value="0x8CA4"/>
+    <enum name="STENCIL_BACK_WRITEMASK"           value="0x8CA5"/>
+
+    <function name="BlendEquationSeparate" alias="BlendEquationSeparateEXT">
+        <param name="modeRGB" type="GLenum"/>
+        <param name="modeA" type="GLenum"/>
+    </function>
+
+    <function name="DrawBuffers" alias="DrawBuffersARB">
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="bufs" type="const GLenum *" count="n"/>
+    </function>
+
+    <function name="StencilFuncSeparate" offset="assign">
+        <param name="face" type="GLenum"/>
+        <param name="func" type="GLenum"/>
+        <param name="ref" type="GLint"/>
+        <param name="mask" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="StencilOpSeparate" offset="assign">
+        <param name="face" type="GLenum"/>
+        <param name="fail" type="GLenum"/>
+        <param name="zfail" type="GLenum"/>
+        <param name="zpass" type="GLenum"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="StencilMaskSeparate" offset="assign">
+        <param name="face" type="GLenum"/>
+        <param name="mask" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="AttachShader" offset="assign">
+        <param name="program" type="GLuint"/>
+        <param name="shader" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="BindAttribLocation" alias="BindAttribLocationARB">
+        <param name="program" type="GLuint"/>
+        <param name="index" type="GLuint"/>
+        <param name="name" type="const GLchar *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="CompileShader" alias="CompileShaderARB">
+        <param name="shader" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="CreateProgram" offset="assign">
+        <return type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="CreateShader" offset="assign">
+        <param name="type" type="GLenum"/>
+        <return type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="DeleteProgram" offset="assign">
+        <param name="program" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="DeleteShader" offset="assign">
+        <param name="program" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="DetachShader" offset="assign">
+        <param name="program" type="GLuint"/>
+        <param name="shader" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="DisableVertexAttribArray" alias="DisableVertexAttribArrayARB">
+        <param name="index" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="EnableVertexAttribArray" alias="EnableVertexAttribArrayARB">
+        <param name="index" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetActiveAttrib" alias="GetActiveAttribARB">
+        <param name="program" type="GLuint"/>
+        <param name="index" type="GLuint"/>
+        <param name="bufSize" type="GLsizei "/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="size" type="GLint *" output="true"/>
+        <param name="type" type="GLenum *" output="true"/>
+        <param name="name" type="GLchar *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetActiveUniform" alias="GetActiveUniformARB">
+        <param name="program" type="GLuint"/>
+        <param name="index" type="GLuint"/>
+        <param name="bufSize" type="GLsizei"/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="size" type="GLint *" output="true"/>
+        <param name="type" type="GLenum *" output="true"/>
+        <param name="name" type="GLchar *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetAttachedShaders" offset="assign">
+        <param name="program" type="GLuint"/>
+        <param name="maxCount" type="GLsizei"/>
+        <param name="count" type="GLsizei *" output="true"/>
+        <param name="obj" type="GLuint *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetAttribLocation" alias="GetAttribLocationARB">
+        <param name="program" type="GLuint"/>
+        <param name="name" type="const GLchar *"/>
+        <return type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetProgramiv" offset="assign">
+        <param name="program" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetProgramInfoLog" offset="assign">
+        <param name="program" type="GLuint"/>
+        <param name="bufSize" type="GLsizei"/>
+        <param name="length" type="GLsizei *"/>
+        <param name="infoLog" type="GLchar *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetShaderiv" offset="assign">
+        <param name="shader" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetShaderInfoLog" offset="assign">
+        <param name="shader" type="GLuint"/>
+        <param name="bufSize" type="GLsizei"/>
+        <param name="length" type="GLsizei *"/>
+        <param name="infoLog" type="GLchar *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetShaderSource" alias="GetShaderSourceARB">
+        <param name="shader" type="GLuint"/>
+        <param name="bufSize" type="GLsizei"/>
+        <param name="length" type="GLsizei *" output="true"/>
+        <param name="source" type="GLchar *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetUniformLocation" alias="GetUniformLocationARB">
+        <param name="program" type="GLuint"/>
+        <param name="name" type="const GLchar *"/>
+        <return type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetUniformfv" alias="GetUniformfvARB">
+        <param name="program" type="GLuint"/>
+        <param name="location" type="GLint"/>
+        <param name="params" type="GLfloat *" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetUniformiv" alias="GetUniformivARB">
+        <param name="program" type="GLuint"/>
+        <param name="location" type="GLint"/>
+        <param name="params" type="GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetVertexAttribdv" alias="GetVertexAttribdvARB">
+        <param name="index" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetVertexAttribfv" alias="GetVertexAttribfvARB">
+        <param name="index" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetVertexAttribiv" alias="GetVertexAttribivARB">
+        <param name="index" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="GetVertexAttribPointerv" alias="GetVertexAttribPointervNV">
+        <param name="index" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="pointer" type="GLvoid **" output="true"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="IsProgram" offset="assign">
+        <param name="program" type="GLuint"/>
+        <return type="GLboolean"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="IsShader" offset="assign">
+        <param name="shader" type="GLuint"/>
+        <return type="GLboolean"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="LinkProgram" alias="LinkProgramARB">
+        <param name="program" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="ShaderSource" alias="ShaderSourceARB">
+        <param name="shader" type="GLuint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="string" type="const GLchar **"/>
+        <param name="length" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="UseProgram" alias="UseProgramObjectARB">
+        <param name="program" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform1f" alias="Uniform1fARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLfloat"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform2f" alias="Uniform2fARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLfloat"/>
+        <param name="v1" type="GLfloat"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform3f" alias="Uniform3fARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLfloat"/>
+        <param name="v1" type="GLfloat"/>
+        <param name="v2" type="GLfloat"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform4f" alias="Uniform4fARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLfloat"/>
+        <param name="v1" type="GLfloat"/>
+        <param name="v2" type="GLfloat"/>
+        <param name="v3" type="GLfloat"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform1i" alias="Uniform1iARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform2i" alias="Uniform2iARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLint"/>
+        <param name="v1" type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform3i" alias="Uniform3iARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLint"/>
+        <param name="v1" type="GLint"/>
+        <param name="v2" type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform4i" alias="Uniform4iARB">
+        <param name="location" type="GLint"/>
+        <param name="v0" type="GLint"/>
+        <param name="v1" type="GLint"/>
+        <param name="v2" type="GLint"/>
+        <param name="v3" type="GLint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform1fv" alias="Uniform1fvARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform2fv" alias="Uniform2fvARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform3fv" alias="Uniform3fvARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform4fv" alias="Uniform4fvARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="Uniform1iv" alias="Uniform1ivARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform2iv" alias="Uniform2ivARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform3iv" alias="Uniform3ivARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="Uniform4iv" alias="Uniform4ivARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="value" type="const GLint *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="UniformMatrix2fv" alias="UniformMatrix2fvARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="UniformMatrix3fv" alias="UniformMatrix3fvARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="UniformMatrix4fv" alias="UniformMatrix4fvARB">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="ValidateProgram" alias="ValidateProgramARB">
+        <param name="program" type="GLuint"/>
+        <glx ignore="true"/>
+    </function>
+
+    <function name="VertexAttrib1d" alias="VertexAttrib1dARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLdouble"/>
+    </function>
+    <function name="VertexAttrib1dv" alias="VertexAttrib1dvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *"/>
+    </function>
+    <function name="VertexAttrib1f" alias="VertexAttrib1fARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLfloat"/>
+    </function>
+    <function name="VertexAttrib1fv" alias="VertexAttrib1fvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+    <function name="VertexAttrib1s" alias="VertexAttrib1sARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+    </function>
+    <function name="VertexAttrib1sv" alias="VertexAttrib1svARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="VertexAttrib2d" alias="VertexAttrib2dARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+    </function>
+    <function name="VertexAttrib2dv" alias="VertexAttrib2dvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *"/>
+    </function>
+    <function name="VertexAttrib2f" alias="VertexAttrib2fARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+    </function>
+    <function name="VertexAttrib2fv" alias="VertexAttrib2fvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+    <function name="VertexAttrib2s" alias="VertexAttrib2sARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+    </function>
+    <function name="VertexAttrib2sv" alias="VertexAttrib2svARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="VertexAttrib3d" alias="VertexAttrib3dARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+    </function>
+    <function name="VertexAttrib3dv" alias="VertexAttrib3dvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *"/>
+    </function>
+    <function name="VertexAttrib3f" alias="VertexAttrib3fARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+    </function>
+    <function name="VertexAttrib3fv" alias="VertexAttrib3fvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *"/>
+    </function>
+    <function name="VertexAttrib3s" alias="VertexAttrib3sARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+    </function>
+    <function name="VertexAttrib3sv" alias="VertexAttrib3svARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *"/>
+    </function>
+
+    <function name="VertexAttrib4Nbv" alias="VertexAttrib4NbvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLbyte *"/>
+    </function>
+    <function name="VertexAttrib4Niv" alias="VertexAttrib4NivARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLint *"/>
+    </function>
+    <function name="VertexAttrib4Nsv" alias="VertexAttrib4NsvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *"/>
+    </function>
+    <function name="VertexAttrib4Nub" alias="VertexAttrib4NubARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLubyte"/>
+        <param name="y" type="GLubyte"/>
+        <param name="z" type="GLubyte"/>
+        <param name="w" type="GLubyte"/>
+    </function>
+    <function name="VertexAttrib4Nubv" alias="VertexAttrib4NubvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLubyte *"/>
+    </function>
+    <function name="VertexAttrib4Nuiv" alias="VertexAttrib4NuivARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLuint *"/>
+    </function>
+    <function name="VertexAttrib4Nusv" alias="VertexAttrib4NusvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLushort *"/>
+    </function>
+
+    <function name="VertexAttrib4d" alias="VertexAttrib4dARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+        <param name="w" type="GLdouble"/>
     </function>
-
-    <function name="BeginQuery" alias="BeginQueryARB">
-        <param name="target" type="GLenum"/>
-        <param name="id" type="GLuint"/>
+    <function name="VertexAttrib4dv" alias="VertexAttrib4dvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLdouble *"/>
     </function>
-
-    <function name="EndQuery" alias="EndQueryARB">
-        <param name="target" type="GLenum"/>
+    <function name="VertexAttrib4f" alias="VertexAttrib4fARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
+        <param name="w" type="GLfloat"/>
     </function>
-
-    <function name="GetQueryiv" alias="GetQueryivARB">
-        <param name="target" type="GLenum"/>
-        <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+    <function name="VertexAttrib4fv" alias="VertexAttrib4fvARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLfloat *"/>
     </function>
-
-    <function name="GetQueryObjectiv" alias="GetQueryObjectivARB">
-        <param name="id" type="GLuint"/>
-        <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+    <function name="VertexAttrib4s" alias="VertexAttrib4sARB">
+        <param name="index" type="GLuint"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+        <param name="w" type="GLshort"/>
     </function>
-
-    <function name="GetQueryObjectuiv" alias="GetQueryObjectuivARB">
-        <param name="id" type="GLuint"/>
-        <param name="pname" type="GLenum"/>
-        <param name="params" type="GLuint *" output="true" variable_param="pname"/>
+    <function name="VertexAttrib4sv" alias="VertexAttrib4svARB">
+        <param name="index" type="GLuint"/>
+        <param name="v" type="const GLshort *"/>
     </function>
-</category>
 
+    <function name="VertexAttribPointer" alias="VertexAttribPointerARB">
+        <param name="index" type="GLuint"/>
+        <param name="size" type="GLint"/>
+        <param name="type" type="GLenum"/>
+        <param name="normalized" type="GLboolean"/>
+        <param name="stride" type="GLsizei"/>
+        <param name="pointer" type="const GLvoid *"/>
+    </function>
 
-<category name="2.0">
-    <!-- XXX this section is very much incomplete!!! -->
-    <!-- These function offsets may change too!!! -->
+</category>
 
-    <enum name="POINT_SPRITE_COORD_ORIGIN"     count="1"  value="0x8CA0">
-        <size name="PointParameterfvEXT"/>
-        <size name="PointParameterivNV"/>
-    </enum>
 
-    <function name="StencilFuncSeparate" offset="813">
-        <param name="face" type="GLenum"/>
-        <param name="func" type="GLenum"/>
-        <param name="ref" type="GLint"/>
-        <param name="mask" type="GLuint"/>
+<category name="2.1">
+    <!-- XXX some of the enums and functions probably need additional -->
+    <!-- flags/attributes. -->
+
+    <enum name="GL_CURRENT_RASTER_SECONDARY_COLOR" value="0x845F"/>
+    <enum name="GL_PIXEL_PACK_BUFFER"              value="0x88EB"/>
+    <enum name="GL_PIXEL_UNPACK_BUFFER"            value="0x88EC"/>
+    <enum name="GL_PIXEL_PACK_BUFFER_BINDING"      value="0x88ED"/>
+    <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING"    value="0x88EF"/>
+    <enum name="GL_FLOAT_MAT2x3"                   value="0x8B65"/>
+    <enum name="GL_FLOAT_MAT2x4"                   value="0x8B66"/>
+    <enum name="GL_FLOAT_MAT3x2"                   value="0x8B67"/>
+    <enum name="GL_FLOAT_MAT3x4"                   value="0x8B68"/>
+    <enum name="GL_FLOAT_MAT4x2"                   value="0x8B69"/>
+    <enum name="GL_FLOAT_MAT4x3"                   value="0x8B6A"/>
+    <enum name="GL_SRGB"                           value="0x8C40"/>
+    <enum name="GL_SRGB8"                          value="0x8C41"/>
+    <enum name="GL_SRGB_ALPHA"                     value="0x8C42"/>
+    <enum name="GL_SRGB8_ALPHA8"                   value="0x8C43"/>
+    <enum name="GL_SLUMINANCE_ALPHA"               value="0x8C44"/>
+    <enum name="GL_SLUMINANCE8_ALPHA8"             value="0x8C45"/>
+    <enum name="GL_SLUMINANCE"                     value="0x8C46"/>
+    <enum name="GL_SLUMINANCE8"                    value="0x8C47"/>
+    <enum name="GL_COMPRESSED_SRGB"                value="0x8C48"/>
+    <enum name="GL_COMPRESSED_SRGB_ALPHA"          value="0x8C49"/>
+    <enum name="GL_COMPRESSED_SLUMINANCE"          value="0x8C4A"/>
+    <enum name="GL_COMPRESSED_SLUMINANCE_ALPHA"    value="0x8C4B"/>
+
+    <function name="UniformMatrix2x3fv" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
     </function>
-
-    <function name="StencilOpSeparate" offset="814">
-        <param name="face" type="GLenum"/>
-        <param name="fail" type="GLenum"/>
-        <param name="zfail" type="GLenum"/>
-        <param name="zpass" type="GLenum"/>
+    <function name="UniformMatrix3x2fv" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
     </function>
-
-    <function name="StencilMaskSeparate" offset="815">
-        <param name="face" type="GLenum"/>
-        <param name="mask" type="GLuint"/>
+    <function name="UniformMatrix2x4fv" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="UniformMatrix4x2fv" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="UniformMatrix3x4fv" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="UniformMatrix4x3fv" offset="assign">
+        <param name="location" type="GLint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="transpose" type="GLboolean"/>
+        <param name="value" type="const GLfloat *"/>
+        <glx ignore="true"/>
     </function>
+
 </category>
 
 
@@ -5436,22 +5986,22 @@ glx:
     <enum name="TRANSPOSE_TEXTURE_MATRIX_ARB"             value="0x84E5"/>
     <enum name="TRANSPOSE_COLOR_MATRIX_ARB"               value="0x84E6"/>
 
-    <function name="LoadTransposeMatrixfARB" offset="408">
+    <function name="LoadTransposeMatrixfARB" offset="assign">
         <param name="m" type="const GLfloat *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="LoadTransposeMatrixdARB" offset="409">
+    <function name="LoadTransposeMatrixdARB" offset="assign">
         <param name="m" type="const GLdouble *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="MultTransposeMatrixfARB" offset="410">
+    <function name="MultTransposeMatrixfARB" offset="assign">
         <param name="m" type="const GLfloat *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="MultTransposeMatrixdARB" offset="411">
+    <function name="MultTransposeMatrixdARB" offset="assign">
         <param name="m" type="const GLdouble *"/>
         <glx handcode="true"/>
     </function>
@@ -5486,7 +6036,7 @@ glx:
     </enum>
     <enum name="MULTISAMPLE_BIT_ARB"                      value="0x20000000"/>
 
-    <function name="SampleCoverageARB" offset="412">
+    <function name="SampleCoverageARB" offset="assign">
         <param name="value" type="GLclampf"/>
         <param name="invert" type="GLboolean"/>
         <glx rop="229"/>
@@ -5541,12 +6091,12 @@ glx:
         <size name="GetTexLevelParameterfv" mode="get"/>
         <size name="GetTexLevelParameteriv" mode="get"/>
     </enum>
-    <enum name="NUM_TEXTURE_COMPRESSED_FORMATS_ARB" count="1" value="0x86A2">
+    <enum name="NUM_COMPRESSED_TEXTURE_FORMATS_ARB" count="1" value="0x86A2">
         <size name="Get" mode="get"/>
     </enum>
     <enum name="TEXTURE_COMPRESSED_FORMATS_ARB"           value="0x86A3"/>
 
-    <function name="CompressedTexImage3DARB" offset="554">
+    <function name="CompressedTexImage3DARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
@@ -5559,7 +6109,7 @@ glx:
         <glx rop="216" handcode="client"/>
     </function>
 
-    <function name="CompressedTexImage2DARB" offset="555">
+    <function name="CompressedTexImage2DARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
@@ -5571,7 +6121,7 @@ glx:
         <glx rop="215" handcode="client"/>
     </function>
 
-    <function name="CompressedTexImage1DARB" offset="556">
+    <function name="CompressedTexImage1DARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
@@ -5582,7 +6132,7 @@ glx:
         <glx rop="214" handcode="client"/>
     </function>
 
-    <function name="CompressedTexSubImage3DARB" offset="557">
+    <function name="CompressedTexSubImage3DARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
@@ -5597,7 +6147,7 @@ glx:
         <glx rop="219" handcode="client"/>
     </function>
 
-    <function name="CompressedTexSubImage2DARB" offset="558">
+    <function name="CompressedTexSubImage2DARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
@@ -5610,7 +6160,7 @@ glx:
         <glx rop="218" handcode="client"/>
     </function>
 
-    <function name="CompressedTexSubImage1DARB" offset="559">
+    <function name="CompressedTexSubImage1DARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
@@ -5621,7 +6171,7 @@ glx:
         <glx rop="217" handcode="client"/>
     </function>
 
-    <function name="GetCompressedTexImageARB" offset="560">
+    <function name="GetCompressedTexImageARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="img" type="GLvoid *" output="true"/>
@@ -5792,47 +6342,47 @@ glx:
         <size name="Get" mode="get"/>
     </enum>
 
-    <function name="WeightbvARB" offset="?">
+    <function name="WeightbvARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLbyte *"/>
     </function>
 
-    <function name="WeightsvARB" offset="?">
+    <function name="WeightsvARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLshort *"/>
     </function>
 
-    <function name="WeightivARB" offset="?">
+    <function name="WeightivARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLint *"/>
     </function>
 
-    <function name="WeightfvARB" offset="?">
+    <function name="WeightfvARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLfloat *"/>
     </function>
 
-    <function name="WeightdvARB" offset="?">
+    <function name="WeightdvARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLdouble *"/>
     </function>
 
-    <function name="WeightubvARB" offset="?">
+    <function name="WeightubvARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLubyte *"/>
     </function>
 
-    <function name="WeightusvARB" offset="?">
+    <function name="WeightusvARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLushort *"/>
     </function>
 
-    <function name="WeightuivARB" offset="?">
+    <function name="WeightuivARB">
         <param name="size" type="GLint"/>
         <param name="weights" type="const GLuint *"/>
     </function>
 
-    <function name="WeightPointerARB" offset="?">
+    <function name="WeightPointerARB">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
@@ -5840,7 +6390,7 @@ glx:
         <glx handcode="true"/>
     </function>
 
-    <function name="VertexBlendARB" offset="?">
+    <function name="VertexBlendARB">
         <param name="count" type="GLint"/>
     </function>
 </category>
@@ -5875,30 +6425,30 @@ glx:
     </enum>
     <enum name="MATRIX_INDEX_ARRAY_POINTER_ARB"           value="0x8849"/>
 
-    <function name="CurrentPaletteMatrixARB" offset="?">
+    <function name="CurrentPaletteMatrixARB">
         <param name="index" type="GLint"/>
         <glx ignore="true" rop="4329"/>
     </function>
 
-    <function name="MatrixIndexubvARB" offset="?">
+    <function name="MatrixIndexubvARB">
         <param name="size" type="GLint" counter="true"/>
         <param name="indices" type="const GLubyte *" count="size"/>
         <glx ignore="true" rop="4326"/>
     </function>
 
-    <function name="MatrixIndexusvARB" offset="?">
+    <function name="MatrixIndexusvARB">
         <param name="size" type="GLint" counter="true"/>
         <param name="indices" type="const GLushort *" count="size"/>
         <glx ignore="true" rop="4327"/>
     </function>
 
-    <function name="MatrixIndexuivARB" offset="?">
+    <function name="MatrixIndexuivARB">
         <param name="size" type="GLint" counter="true"/>
         <param name="indices" type="const GLuint *" count="size"/>
         <glx ignore="true" rop="4328"/>
     </function>
 
-    <function name="MatrixIndexPointerARB" offset="?">
+    <function name="MatrixIndexPointerARB">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
@@ -6010,19 +6560,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">
@@ -6050,19 +6600,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>
 
@@ -6244,136 +6794,136 @@ glx:
     <enum name="MATRIX30_ARB"                             value="0x88DE"/>
     <enum name="MATRIX31_ARB"                             value="0x88DF"/>
 
-    <function name="GetVertexAttribdvARB" offset="588">
+    <function name="GetVertexAttribdvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
         <glx handcode="client" vendorpriv="1301"/>
     </function>
 
-    <function name="GetVertexAttribfvARB" offset="589">
+    <function name="GetVertexAttribfvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx handcode="client" vendorpriv="1302"/>
     </function>
 
-    <function name="GetVertexAttribivARB" offset="590">
+    <function name="GetVertexAttribivARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx handcode="client" vendorpriv="1303"/>
     </function>
 
-    <function name="VertexAttrib1dARB" offset="603" vectorequiv="VertexAttrib1dvARB">
+    <function name="VertexAttrib1dARB" offset="assign" vectorequiv="VertexAttrib1dvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib1dvARB" offset="604">
+    <function name="VertexAttrib1dvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="1"/>
-        <glx rop="4197"/>
+        <glx rop="4197" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib1fARB" offset="605" vectorequiv="VertexAttrib1fvARB">
+    <function name="VertexAttrib1fARB" offset="assign" vectorequiv="VertexAttrib1fvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib1fvARB" offset="606">
+    <function name="VertexAttrib1fvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="1"/>
         <glx rop="4193"/>
     </function>
 
-    <function name="VertexAttrib1sARB" offset="607" vectorequiv="VertexAttrib1svARB">
+    <function name="VertexAttrib1sARB" offset="assign" vectorequiv="VertexAttrib1svARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib1svARB" offset="608">
+    <function name="VertexAttrib1svARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="1"/>
         <glx rop="4189"/>
     </function>
 
-    <function name="VertexAttrib2dARB" offset="609" vectorequiv="VertexAttrib2dvARB">
+    <function name="VertexAttrib2dARB" offset="assign" vectorequiv="VertexAttrib2dvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib2dvARB" offset="610">
+    <function name="VertexAttrib2dvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="2"/>
-        <glx rop="4198"/>
+        <glx rop="4198" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib2fARB" offset="611" vectorequiv="VertexAttrib2fvARB">
+    <function name="VertexAttrib2fARB" offset="assign" vectorequiv="VertexAttrib2fvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib2fvARB" offset="612">
+    <function name="VertexAttrib2fvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="2"/>
         <glx rop="4194"/>
     </function>
 
-    <function name="VertexAttrib2sARB" offset="613" vectorequiv="VertexAttrib2svARB">
+    <function name="VertexAttrib2sARB" offset="assign" vectorequiv="VertexAttrib2svARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib2svARB" offset="614">
+    <function name="VertexAttrib2svARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="2"/>
         <glx rop="4190"/>
     </function>
 
-    <function name="VertexAttrib3dARB" offset="615" vectorequiv="VertexAttrib3dvARB">
+    <function name="VertexAttrib3dARB" offset="assign" vectorequiv="VertexAttrib3dvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib3dvARB" offset="616">
+    <function name="VertexAttrib3dvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="3"/>
-        <glx rop="4199"/>
+        <glx rop="4199" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib3fARB" offset="617" vectorequiv="VertexAttrib3fvARB">
+    <function name="VertexAttrib3fARB" offset="assign" vectorequiv="VertexAttrib3fvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib3fvARB" offset="618">
+    <function name="VertexAttrib3fvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="3"/>
         <glx rop="4195"/>
     </function>
 
-    <function name="VertexAttrib3sARB" offset="619" vectorequiv="VertexAttrib3svARB">
+    <function name="VertexAttrib3sARB" offset="assign" vectorequiv="VertexAttrib3svARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib3svARB" offset="620">
+    <function name="VertexAttrib3svARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="4191"/>
     </function>
 
-    <function name="VertexAttrib4dARB" offset="621" vectorequiv="VertexAttrib4dvARB">
+    <function name="VertexAttrib4dARB" offset="assign" vectorequiv="VertexAttrib4dvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
@@ -6381,13 +6931,13 @@ glx:
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib4dvARB" offset="622">
+    <function name="VertexAttrib4dvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="4"/>
-        <glx rop="4200"/>
+        <glx rop="4200" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4fARB" offset="623" vectorequiv="VertexAttrib4fvARB">
+    <function name="VertexAttrib4fARB" offset="assign" vectorequiv="VertexAttrib4fvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
@@ -6395,13 +6945,13 @@ glx:
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib4fvARB" offset="624">
+    <function name="VertexAttrib4fvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="4"/>
         <glx rop="4196"/>
     </function>
 
-    <function name="VertexAttrib4sARB" offset="625" vectorequiv="VertexAttrib4svARB">
+    <function name="VertexAttrib4sARB" offset="assign" vectorequiv="VertexAttrib4svARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
@@ -6409,13 +6959,13 @@ glx:
         <param name="w" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib4svARB" offset="626">
+    <function name="VertexAttrib4svARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="4192"/>
     </function>
 
-    <function name="VertexAttrib4NubARB" offset="627" vectorequiv="VertexAttrib4NubvARB">
+    <function name="VertexAttrib4NubARB" offset="assign" vectorequiv="VertexAttrib4NubvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLubyte"/>
         <param name="y" type="GLubyte"/>
@@ -6423,73 +6973,73 @@ glx:
         <param name="w" type="GLubyte"/>
     </function>
 
-    <function name="VertexAttrib4NubvARB" offset="628">
+    <function name="VertexAttrib4NubvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
         <glx rop="4201"/>
     </function>
 
-    <function name="VertexAttrib4bvARB" offset="654">
+    <function name="VertexAttrib4bvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLbyte *" count="4"/>
         <glx rop="4230"/>
     </function>
 
-    <function name="VertexAttrib4ivARB" offset="655">
+    <function name="VertexAttrib4ivARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="4231"/>
     </function>
 
-    <function name="VertexAttrib4ubvARB" offset="656">
+    <function name="VertexAttrib4ubvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
         <glx rop="4232"/>
     </function>
 
-    <function name="VertexAttrib4usvARB" offset="657">
+    <function name="VertexAttrib4usvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLushort *" count="4"/>
         <glx rop="4233"/>
     </function>
 
-    <function name="VertexAttrib4uivARB" offset="658">
+    <function name="VertexAttrib4uivARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLuint *" count="4"/>
         <glx rop="4234"/>
     </function>
 
-    <function name="VertexAttrib4NbvARB" offset="659">
+    <function name="VertexAttrib4NbvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLbyte *" count="4"/>
         <glx rop="4235"/>
     </function>
 
-    <function name="VertexAttrib4NsvARB" offset="660">
+    <function name="VertexAttrib4NsvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="4236"/>
     </function>
 
-    <function name="VertexAttrib4NivARB" offset="661">
+    <function name="VertexAttrib4NivARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="4237"/>
     </function>
 
-    <function name="VertexAttrib4NusvARB" offset="662">
+    <function name="VertexAttrib4NusvARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLushort *" count="4"/>
         <glx rop="4238"/>
     </function>
 
-    <function name="VertexAttrib4NuivARB" offset="663">
+    <function name="VertexAttrib4NuivARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLuint *" count="4"/>
         <glx rop="4239"/>
     </function>
 
-    <function name="VertexAttribPointerARB" offset="664">
+    <function name="VertexAttribPointerARB" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
@@ -6499,17 +7049,17 @@ glx:
         <glx handcode="true"/>
     </function>
 
-    <function name="EnableVertexAttribArrayARB" offset="665">
+    <function name="EnableVertexAttribArrayARB" offset="assign">
         <param name="index" type="GLuint"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="DisableVertexAttribArrayARB" offset="666">
+    <function name="DisableVertexAttribArrayARB" offset="assign">
         <param name="index" type="GLuint"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="ProgramStringARB" offset="667">
+    <function name="ProgramStringARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="len" type="GLsizei" counter="true"/>
@@ -6537,7 +7087,7 @@ glx:
         <return type="GLboolean"/>
     </function>
 
-    <function name="ProgramEnvParameter4dARB" offset="668" vectorequiv="ProgramEnvParameter4dvARB">
+    <function name="ProgramEnvParameter4dARB" offset="assign" vectorequiv="ProgramEnvParameter4dvARB">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
@@ -6546,14 +7096,14 @@ glx:
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="ProgramEnvParameter4dvARB" offset="669">
+    <function name="ProgramEnvParameter4dvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLdouble *" count="4"/>
         <glx rop="4185" doubles_in_order="true"/>
     </function>
 
-    <function name="ProgramEnvParameter4fARB" offset="670" vectorequiv="ProgramEnvParameter4fvARB">
+    <function name="ProgramEnvParameter4fARB" offset="assign" vectorequiv="ProgramEnvParameter4fvARB">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
@@ -6562,14 +7112,14 @@ glx:
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="ProgramEnvParameter4fvARB" offset="671">
+    <function name="ProgramEnvParameter4fvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLfloat *" count="4"/>
         <glx rop="4184"/>
     </function>
 
-    <function name="ProgramLocalParameter4dARB" offset="672" vectorequiv="ProgramLocalParameter4dvARB">
+    <function name="ProgramLocalParameter4dARB" offset="assign" vectorequiv="ProgramLocalParameter4dvARB">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
@@ -6578,14 +7128,14 @@ glx:
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="ProgramLocalParameter4dvARB" offset="673">
+    <function name="ProgramLocalParameter4dvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLdouble *" count="4"/>
         <glx rop="4216" doubles_in_order="true"/>
     </function>
 
-    <function name="ProgramLocalParameter4fARB" offset="674" vectorequiv="ProgramLocalParameter4fvARB">
+    <function name="ProgramLocalParameter4fARB" offset="assign" vectorequiv="ProgramLocalParameter4fvARB">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
@@ -6594,7 +7144,7 @@ glx:
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="ProgramLocalParameter4fvARB" offset="675">
+    <function name="ProgramLocalParameter4fvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLfloat *" count="4"/>
@@ -6613,28 +7163,28 @@ glx:
          the ARB_vertex_program protocol to unused padding.
       -->
 
-    <function name="GetProgramEnvParameterdvARB" offset="676">
+    <function name="GetProgramEnvParameterdvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="GLdouble *" output="true" count="4"/>
         <glx vendorpriv="1297" handcode="client" doubles_in_order="true"/>
     </function>
 
-    <function name="GetProgramEnvParameterfvARB" offset="677">
+    <function name="GetProgramEnvParameterfvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="GLfloat *" output="true" count="4"/>
         <glx vendorpriv="1296" handcode="client"/>
     </function>
 
-    <function name="GetProgramLocalParameterdvARB" offset="678">
+    <function name="GetProgramLocalParameterdvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="GLdouble *" output="true" count="4"/>
         <glx vendorpriv="1306" handcode="client" doubles_in_order="true"/>
     </function>
 
-    <function name="GetProgramLocalParameterfvARB" offset="679">
+    <function name="GetProgramLocalParameterfvARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="GLfloat *" output="true" count="4"/>
@@ -6642,14 +7192,14 @@ glx:
     </function>
 
 
-    <function name="GetProgramivARB" offset="680">
+    <function name="GetProgramivARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx vendorpriv="1307"/>
     </function>
 
-    <function name="GetProgramStringARB" offset="681">
+    <function name="GetProgramStringARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="string" type="GLvoid *" output="true"/>
@@ -6659,7 +7209,7 @@ glx:
     <function name="GetVertexAttribPointervARB" alias="GetVertexAttribPointervNV">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLvoid **" output="true"/>
+        <param name="pointer" type="GLvoid **" output="true"/>
     </function>
 </category>
 
@@ -6704,10 +7254,10 @@ glx:
         <size name="GetProgramivARB" mode="get"/>
     </enum>
     <enum name="MAX_TEXTURE_COORDS_ARB"        count="1"  value="0x8871">
-        <size name="GetProgramivARB" mode="get"/>
+        <size name="Get" mode="get"/>
     </enum>
     <enum name="MAX_TEXTURE_IMAGE_UNITS_ARB"   count="1"  value="0x8872">
-        <size name="GetProgramivARB" mode="get"/>
+        <size name="Get" mode="get"/>
     </enum>
 </category>
 
@@ -6744,16 +7294,16 @@ 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">
+    <function name="BindBufferARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="buffer" type="GLuint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="BufferDataARB" offset="689">
+    <function name="BufferDataARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="size" type="GLsizeiptrARB"/>
         <param name="data" type="const GLvoid *"/>
@@ -6761,7 +7311,7 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="BufferSubDataARB" offset="690">
+    <function name="BufferSubDataARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="offset" type="GLintptrARB"/>
         <param name="size" type="GLsizeiptrARB"/>
@@ -6769,33 +7319,33 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="DeleteBuffersARB" offset="691">
+    <function name="DeleteBuffersARB" offset="assign">
         <param name="n" type="GLsizei"/>
         <param name="buffer" type="const GLuint *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GenBuffersARB" offset="692">
+    <function name="GenBuffersARB" offset="assign">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="buffer" type="GLuint *" output="true" count="n"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetBufferParameterivARB" offset="693">
+    <function name="GetBufferParameterivARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetBufferPointervARB" offset="694">
+    <function name="GetBufferPointervARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLvoid **" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetBufferSubDataARB" offset="695">
+    <function name="GetBufferSubDataARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="offset" type="GLintptrARB"/>
         <param name="size" type="GLsizeiptrARB"/>
@@ -6803,20 +7353,20 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="IsBufferARB" offset="696">
+    <function name="IsBufferARB" offset="assign">
         <param name="buffer" type="GLuint"/>
         <return type="GLboolean"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="MapBufferARB" offset="697">
+    <function name="MapBufferARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="access" type="GLenum"/>
         <return type="GLvoid *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="UnmapBufferARB" offset="698">
+    <function name="UnmapBufferARB" offset="assign">
         <param name="target" type="GLenum"/>
         <return type="GLboolean"/>
         <glx ignore="true"/>
@@ -6840,50 +7390,50 @@ glx:
     </enum>
     <enum name="SAMPLES_PASSED_ARB"                       value="0x8914"/>
 
-    <function name="GenQueriesARB" offset="700">
+    <function name="GenQueriesARB" offset="assign">
         <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">
+    <function name="DeleteQueriesARB" offset="assign">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="ids" type="const GLuint *" count="n"/>
         <glx sop="161"/>
     </function>
 
-    <function name="IsQueryARB" offset="702">
+    <function name="IsQueryARB" offset="assign">
         <param name="id" type="GLuint"/>
         <return type="GLboolean"/>
         <glx sop="163"/>
     </function>
 
-    <function name="BeginQueryARB" offset="703">
+    <function name="BeginQueryARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="id" type="GLuint"/>
         <glx rop="231"/>
     </function>
 
-    <function name="EndQueryARB" offset="704">
+    <function name="EndQueryARB" offset="assign">
         <param name="target" type="GLenum"/>
         <glx rop="232"/>
     </function>
 
-    <function name="GetQueryivARB" offset="705">
+    <function name="GetQueryivARB" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="164"/>
     </function>
 
-    <function name="GetQueryObjectivARB" offset="706">
+    <function name="GetQueryObjectivARB" offset="assign">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="165"/>
     </function>
 
-    <function name="GetQueryObjectuivARB" offset="707">
+    <function name="GetQueryObjectuivARB" offset="assign">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLuint *" output="true" variable_param="pname"/>
@@ -6922,82 +7472,82 @@ glx:
     <type name="charARB"   size="1" glx_name="CARD8"/>
     <type name="handleARB" size="4" glx_name="CARD32"/>
 
-    <function name="DeleteObjectARB" offset="711">
+    <function name="DeleteObjectARB" offset="assign">
         <param name="obj" type="GLhandleARB"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetHandleARB" offset="712">
+    <function name="GetHandleARB" offset="assign">
         <param name="pname" type="GLenum"/>
         <return type="GLhandleARB"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="DetachObjectARB" offset="713">
+    <function name="DetachObjectARB" offset="assign">
         <param name="containerObj" type="GLhandleARB"/>
         <param name="attachedObj" type="GLhandleARB"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="CreateShaderObjectARB" offset="714">
+    <function name="CreateShaderObjectARB" offset="assign">
         <param name="shaderType" type="GLenum"/>
         <return type="GLhandleARB"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="ShaderSourceARB" offset="715">
-        <param name="shaderObj" type="GLhandleARB"/>
+    <function name="ShaderSourceARB" offset="assign">
+        <param name="shader" type="GLhandleARB"/>
         <param name="count" type="GLsizei"/>
         <param name="string" type="const GLcharARB **"/>
         <param name="length" type="const GLint *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="CompileShaderARB" offset="716">
-        <param name="shaderObj" type="GLhandleARB"/>
+    <function name="CompileShaderARB" offset="assign">
+        <param name="shader" type="GLhandleARB"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="CreateProgramObjectARB" offset="717">
+    <function name="CreateProgramObjectARB" offset="assign">
         <return type="GLhandleARB"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="AttachObjectARB" offset="718">
+    <function name="AttachObjectARB" offset="assign">
         <param name="containerObj" type="GLhandleARB"/>
         <param name="obj" type="GLhandleARB"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="LinkProgramARB" offset="719">
-        <param name="programObj" type="GLhandleARB"/>
+    <function name="LinkProgramARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="UseProgramObjectARB" offset="720">
-        <param name="programObj" type="GLhandleARB"/>
+    <function name="UseProgramObjectARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="ValidateProgramARB" offset="721">
-        <param name="programObj" type="GLhandleARB"/>
+    <function name="ValidateProgramARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform1fARB" offset="722">
+    <function name="Uniform1fARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform2fARB" offset="723">
+    <function name="Uniform2fARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLfloat"/>
         <param name="v1" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform3fARB" offset="724">
+    <function name="Uniform3fARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLfloat"/>
         <param name="v1" type="GLfloat"/>
@@ -7005,7 +7555,7 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform4fARB" offset="725">
+    <function name="Uniform4fARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLfloat"/>
         <param name="v1" type="GLfloat"/>
@@ -7014,20 +7564,20 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform1iARB" offset="726">
+    <function name="Uniform1iARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform2iARB" offset="727">
+    <function name="Uniform2iARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLint"/>
         <param name="v1" type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform3iARB" offset="728">
+    <function name="Uniform3iARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLint"/>
         <param name="v1" type="GLint"/>
@@ -7035,7 +7585,7 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform4iARB" offset="729">
+    <function name="Uniform4iARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLint"/>
         <param name="v1" type="GLint"/>
@@ -7044,63 +7594,63 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform1fvARB" offset="730">
+    <function name="Uniform1fvARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <param name="value" type="const GLfloat *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform2fvARB" offset="731">
+    <function name="Uniform2fvARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <param name="value" type="const GLfloat *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform3fvARB" offset="732">
+    <function name="Uniform3fvARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <param name="value" type="const GLfloat *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform4fvARB" offset="733">
+    <function name="Uniform4fvARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <param name="value" type="const GLfloat *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform1ivARB" offset="734">
+    <function name="Uniform1ivARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <param name="value" type="const GLint *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform2ivARB" offset="735">
+    <function name="Uniform2ivARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <param name="value" type="const GLint *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform3ivARB" offset="736">
+    <function name="Uniform3ivARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <param name="value" type="const GLint *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform4ivARB" offset="737">
+    <function name="Uniform4ivARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <param name="value" type="const GLint *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="UniformMatrix2fvARB" offset="738">
+    <function name="UniformMatrix2fvARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <param name="transpose" type="GLboolean"/>
@@ -7108,7 +7658,7 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="UniformMatrix3fvARB" offset="739">
+    <function name="UniformMatrix3fvARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <param name="transpose" type="GLboolean"/>
@@ -7116,7 +7666,7 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="UniformMatrix4fvARB" offset="740">
+    <function name="UniformMatrix4fvARB" offset="assign">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <param name="transpose" type="GLboolean"/>
@@ -7124,21 +7674,21 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="GetObjectParameterfvARB" offset="741">
+    <function name="GetObjectParameterfvARB" offset="assign">
         <param name="obj" type="GLhandleARB"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetObjectParameterivARB" offset="742">
+    <function name="GetObjectParameterivARB" offset="assign">
         <param name="obj" type="GLhandleARB"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetInfoLogARB" offset="743">
+    <function name="GetInfoLogARB" offset="assign">
         <param name="obj" type="GLhandleARB"/>
         <param name="maxLength" type="GLsizei"/>
         <param name="length" type="GLsizei *" output="true"/>
@@ -7146,7 +7696,7 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="GetAttachedObjectsARB" offset="744">
+    <function name="GetAttachedObjectsARB" offset="assign">
         <param name="containerObj" type="GLhandleARB"/>
         <param name="maxLength" type="GLsizei"/>
         <param name="length" type="GLsizei *" output="true"/>
@@ -7154,17 +7704,17 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="GetUniformLocationARB" offset="745">
-        <param name="programObj" type="GLhandleARB"/>
+    <function name="GetUniformLocationARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
         <param name="name" type="const GLcharARB *"/>
         <return type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetActiveUniformARB" offset="746">
-        <param name="programObj" type="GLhandleARB"/>
+    <function name="GetActiveUniformARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
         <param name="index" type="GLuint"/>
-        <param name="maxLength" type="GLsizei"/>
+        <param name="bufSize" type="GLsizei"/>
         <param name="length" type="GLsizei *" output="true"/>
         <param name="size" type="GLint *" output="true"/>
         <param name="type" type="GLenum *" output="true"/>
@@ -7172,23 +7722,23 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="GetUniformfvARB" offset="747">
-        <param name="programObj" type="GLhandleARB"/>
+    <function name="GetUniformfvARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
         <param name="location" type="GLint"/>
         <param name="params" type="GLfloat *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetUniformivARB" offset="748">
-        <param name="programObj" type="GLhandleARB"/>
+    <function name="GetUniformivARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
         <param name="location" type="GLint"/>
         <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetShaderSourceARB" offset="749">
-        <param name="obj" type="GLhandleARB"/>
-        <param name="maxLength" type="GLsizei"/>
+    <function name="GetShaderSourceARB" offset="assign">
+        <param name="shader" type="GLhandleARB"/>
+        <param name="bufSize" type="GLsizei"/>
         <param name="length" type="GLsizei *" output="true"/>
         <param name="source" type="GLcharARB *" output="true"/>
         <glx ignore="true"/>
@@ -7204,17 +7754,17 @@ glx:
     <enum name="OBJECT_ACTIVE_ATTRIBUTES_ARB"             value="0x8B89"/>
     <enum name="OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB"   value="0x8B8A"/>
 
-    <function name="BindAttribLocationARB" offset="750">
-        <param name="programObj" type="GLhandleARB"/>
+    <function name="BindAttribLocationARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
         <param name="index" type="GLuint"/>
         <param name="name" type="const GLcharARB *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetActiveAttribARB" offset="751">
-        <param name="programObj" type="GLhandleARB"/>
+    <function name="GetActiveAttribARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
         <param name="index" type="GLuint"/>
-        <param name="maxLength" type="GLsizei"/>
+        <param name="bufSize" type="GLsizei"/>
         <param name="length" type="GLsizei *" output="true"/>
         <param name="size" type="GLint *" output="true"/>
         <param name="type" type="GLenum *" output="true"/>
@@ -7222,8 +7772,8 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="GetAttribLocationARB" offset="752">
-        <param name="programObj" type="GLhandleARB"/>
+    <function name="GetAttribLocationARB" offset="assign">
+        <param name="program" type="GLhandleARB"/>
         <param name="name" type="const GLcharARB *"/>
         <return type="GLint"/>
         <glx ignore="true"/>
@@ -7312,7 +7862,7 @@ glx:
         <size name="Get" mode="get"/>
     </enum>
 
-    <function name="DrawBuffersARB" offset="413">
+    <function name="DrawBuffersARB" offset="assign">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="bufs" type="const GLenum *" count="n"/>
         <glx rop="233" large="true"/>
@@ -7352,7 +7902,7 @@ glx:
 </category>
 
 <category name="GL_EXT_polygon_offset" number="3">
-    <function name="PolygonOffsetEXT" offset="414">
+    <function name="PolygonOffsetEXT" offset="assign">
         <param name="factor" type="GLfloat"/>
         <param name="bias" type="GLfloat"/>
         <glx rop="4098" ignore="true"/>
@@ -7455,14 +8005,14 @@ glx:
 </category>
 
 <category name="GL_SGIS_texture_filter4" number="7">
-    <function name="GetTexFilterFuncSGIS" offset="415">
+    <function name="GetTexFilterFuncSGIS">
         <param name="target" type="GLenum"/>
         <param name="filter" type="GLenum"/>
         <param name="weights" type="GLfloat *" output="true"/>
         <glx vendorpriv="4101" ignore="true"/>
     </function>
 
-    <function name="TexFilterFuncSGIS" offset="416">
+    <function name="TexFilterFuncSGIS">
         <param name="target" type="GLenum"/>
         <param name="filter" type="GLenum"/>
         <param name="n" type="GLsizei" counter="true"/>
@@ -7598,70 +8148,70 @@ glx:
     </enum>
     <enum name="TABLE_TOO_LARGE_EXT"                      value="0x8031"/>
 
-    <function name="GetHistogramEXT" offset="417">
+    <function name="GetHistogramEXT" alias="GetHistogram" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="reset" type="GLboolean"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="values" type="GLvoid *" output="true"/>
-        <glx vendorpriv="5" handcode="true" ignore="true"/>
+        <param name="values" type="GLvoid *" output="true" img_width="width" img_format="format" img_type="type"/>
+        <glx vendorpriv="5" dimensions_in_reply="true" img_reset="reset"/>
     </function>
 
-    <function name="GetHistogramParameterfvEXT" offset="418">
+    <function name="GetHistogramParameterfvEXT" alias="GetHistogramParameterfv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
-        <glx vendorpriv="6" ignore="true"/>
+        <glx vendorpriv="6"/>
     </function>
 
-    <function name="GetHistogramParameterivEXT" offset="419">
+    <function name="GetHistogramParameterivEXT" alias="GetHistogramParameteriv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
-        <glx vendorpriv="7" ignore="true"/>
+        <glx vendorpriv="7"/>
     </function>
 
-    <function name="GetMinmaxEXT" offset="420">
+    <function name="GetMinmaxEXT" alias="GetMinmax" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="reset" type="GLboolean"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="values" type="GLvoid *" output="true"/>
-        <glx vendorpriv="8" handcode="true" ignore="true"/>
+        <param name="values" type="GLvoid *" output="true" img_width="2" img_format="format" img_type="type"/>
+        <glx vendorpriv="8" img_reset="reset"/>
     </function>
 
-    <function name="GetMinmaxParameterfvEXT" offset="421">
+    <function name="GetMinmaxParameterfvEXT" alias="GetMinmaxParameterfv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
-        <glx vendorpriv="9" ignore="true"/>
+        <glx vendorpriv="9"/>
     </function>
 
-    <function name="GetMinmaxParameterivEXT" offset="422">
+    <function name="GetMinmaxParameterivEXT" alias="GetMinmaxParameteriv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
-        <glx vendorpriv="10" ignore="true"/>
+        <glx vendorpriv="10"/>
     </function>
 
-    <function name="HistogramEXT" alias="Histogram">
+    <function name="HistogramEXT" alias="Histogram" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="internalformat" type="GLenum"/>
         <param name="sink" type="GLboolean"/>
     </function>
 
-    <function name="MinmaxEXT" alias="Minmax">
+    <function name="MinmaxEXT" alias="Minmax" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="sink" type="GLboolean"/>
     </function>
 
-    <function name="ResetHistogramEXT" alias="ResetHistogram">
+    <function name="ResetHistogramEXT" alias="ResetHistogram" static_dispatch="false">
         <param name="target" type="GLenum"/>
     </function>
 
-    <function name="ResetMinmaxEXT" alias="ResetMinmax">
+    <function name="ResetMinmaxEXT" alias="ResetMinmax" static_dispatch="false">
         <param name="target" type="GLenum"/>
     </function>
 </category>
@@ -7733,7 +8283,7 @@ glx:
         <size name="Get" mode="get"/>
     </enum>
 
-    <function name="ConvolutionFilter1DEXT" alias="ConvolutionFilter1D">
+    <function name="ConvolutionFilter1DEXT" alias="ConvolutionFilter1D" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
@@ -7742,7 +8292,7 @@ glx:
         <param name="image" type="const GLvoid *"/>
     </function>
 
-    <function name="ConvolutionFilter2DEXT" alias="ConvolutionFilter2D">
+    <function name="ConvolutionFilter2DEXT" alias="ConvolutionFilter2D" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
@@ -7752,31 +8302,31 @@ glx:
         <param name="image" type="const GLvoid *"/>
     </function>
 
-    <function name="ConvolutionParameterfEXT" alias="ConvolutionParameterf">
+    <function name="ConvolutionParameterfEXT" alias="ConvolutionParameterf" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat"/>
     </function>
 
-    <function name="ConvolutionParameterfvEXT" alias="ConvolutionParameterfv">
+    <function name="ConvolutionParameterfvEXT" alias="ConvolutionParameterfv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 
-    <function name="ConvolutionParameteriEXT" alias="ConvolutionParameteri">
+    <function name="ConvolutionParameteriEXT" alias="ConvolutionParameteri" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint"/>
     </function>
 
-    <function name="ConvolutionParameterivEXT" alias="ConvolutionParameteriv">
+    <function name="ConvolutionParameterivEXT" alias="ConvolutionParameteriv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
     </function>
 
-    <function name="CopyConvolutionFilter1DEXT" alias="CopyConvolutionFilter1D">
+    <function name="CopyConvolutionFilter1DEXT" alias="CopyConvolutionFilter1D" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="x" type="GLint"/>
@@ -7784,7 +8334,7 @@ glx:
         <param name="width" type="GLsizei"/>
     </function>
 
-    <function name="CopyConvolutionFilter2DEXT" alias="CopyConvolutionFilter2D">
+    <function name="CopyConvolutionFilter2DEXT" alias="CopyConvolutionFilter2D" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="x" type="GLint"/>
@@ -7793,39 +8343,39 @@ glx:
         <param name="height" type="GLsizei"/>
     </function>
 
-    <function name="GetConvolutionFilterEXT" offset="423">
+    <function name="GetConvolutionFilterEXT" alias="GetConvolutionFilter" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="image" type="GLvoid *" output="true"/>
-        <glx vendorpriv="1" handcode="true" ignore="true"/>
+        <param name="image" type="GLvoid *" output="true" img_width="width" img_height="height" img_format="format" img_type="type"/>
+        <glx vendorpriv="1" dimensions_in_reply="true"/>
     </function>
 
-    <function name="GetConvolutionParameterfvEXT" offset="424">
+    <function name="GetConvolutionParameterfvEXT" alias="GetConvolutionParameterfv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
-        <glx vendorpriv="2" ignore="true"/>
+        <glx vendorpriv="2"/>
     </function>
 
-    <function name="GetConvolutionParameterivEXT" offset="425">
+    <function name="GetConvolutionParameterivEXT" alias="GetConvolutionParameteriv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
-        <glx vendorpriv="3" ignore="true"/>
+        <glx vendorpriv="3"/>
     </function>
 
-    <function name="GetSeparableFilterEXT" offset="426">
+    <function name="GetSeparableFilterEXT" alias="GetSeparableFilter" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
         <param name="row" type="GLvoid *" output="true"/>
         <param name="column" type="GLvoid *" output="true"/>
         <param name="span" type="GLvoid *" output="true"/>
-        <glx vendorpriv="4" handcode="true" ignore="true"/>
+        <glx vendorpriv="4" handcode="true"/>
     </function>
 
-    <function name="SeparableFilter2DEXT" alias="SeparableFilter2D">
+    <function name="SeparableFilter2DEXT" alias="SeparableFilter2D" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
@@ -7852,7 +8402,52 @@ glx:
 </category>
 
 <category name="GL_SGI_color_table" number="14">
-    <function name="ColorTableSGI" alias="ColorTable">
+    <enum name="COLOR_TABLE_SCALE_SGI"         count="4"  value="0x80D6">
+        <size name="ColorTableParameterfvSGI"/>
+        <size name="ColorTableParameterivSGI"/>
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_BIAS_SGI"          count="4"  value="0x80D7">
+        <size name="ColorTableParameterfvSGI"/>
+        <size name="ColorTableParameterivSGI"/>
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_FORMAT_SGI"        count="1"  value="0x80D8">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_WIDTH_SGI"         count="1"  value="0x80D9">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_RED_SIZE_SGI"      count="1"  value="0x80DA">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_GREEN_SIZE_SGI"    count="1"  value="0x80DB">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_BLUE_SIZE_SGI"     count="1"  value="0x80DC">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_ALPHA_SIZE_SGI"    count="1"  value="0x80DD">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_LUMINANCE_SIZE_SGI" count="1" value="0x80DE">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_INTENSITY_SIZE_SGI" count="1" value="0x80DF">
+        <size name="GetColorTableParameterfvSGI" mode="get"/>
+        <size name="GetColorTableParameterivSGI" mode="get"/>
+    </enum>
+
+    <function name="ColorTableSGI" alias="ColorTable" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
@@ -7861,19 +8456,19 @@ glx:
         <param name="table" type="const GLvoid *"/>
     </function>
 
-    <function name="ColorTableParameterfvSGI" alias="ColorTableParameterfv">
+    <function name="ColorTableParameterfvSGI" alias="ColorTableParameterfv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 
-    <function name="ColorTableParameterivSGI" alias="ColorTableParameteriv">
+    <function name="ColorTableParameterivSGI" alias="ColorTableParameteriv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
     </function>
 
-    <function name="CopyColorTableSGI" alias="CopyColorTable">
+    <function name="CopyColorTableSGI" alias="CopyColorTable" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="x" type="GLint"/>
@@ -7881,61 +8476,61 @@ glx:
         <param name="width" type="GLsizei"/>
     </function>
 
-    <function name="GetColorTableSGI" offset="427">
+    <function name="GetColorTableSGI" alias="GetColorTable" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="table" type="GLvoid *" output="true"/>
-        <glx vendorpriv="4098" handcode="true" ignore="true"/>
+        <param name="table" type="GLvoid *" output="true" img_width="width" img_format="format" img_type="type"/>
+        <glx vendorpriv="4098" dimensions_in_reply="true"/>
     </function>
 
-    <function name="GetColorTableParameterfvSGI" offset="428">
+    <function name="GetColorTableParameterfvSGI" alias="GetColorTableParameterfv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
-        <glx vendorpriv="4099" ignore="true"/>
+        <glx vendorpriv="4099"/>
     </function>
 
-    <function name="GetColorTableParameterivSGI" offset="429">
+    <function name="GetColorTableParameterivSGI" alias="GetColorTableParameteriv" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
-        <glx vendorpriv="4100" ignore="true"/>
+        <glx vendorpriv="4100"/>
     </function>
 </category>
 
 <category name="GL_SGIS_pixel_texture" number="15">
-    <function name="PixelTexGenParameteriSGIS" offset="431">
+    <function name="PixelTexGenParameteriSGIS" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="PixelTexGenParameterivSGIS" offset="432">
+    <function name="PixelTexGenParameterivSGIS" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="PixelTexGenParameterfSGIS" offset="433">
+    <function name="PixelTexGenParameterfSGIS" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="PixelTexGenParameterfvSGIS" offset="434">
+    <function name="PixelTexGenParameterfvSGIS" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetPixelTexGenParameterivSGIS" offset="435">
+    <function name="GetPixelTexGenParameterivSGIS" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetPixelTexGenParameterfvSGIS" offset="436">
+    <function name="GetPixelTexGenParameterfvSGIS" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
@@ -7943,7 +8538,7 @@ glx:
 </category>
 
 <category name="GL_SGIS_texture4D" number="16">
-    <function name="TexImage4DSGIS" offset="437">
+    <function name="TexImage4DSGIS">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
@@ -7958,7 +8553,7 @@ glx:
         <glx rop="2057" ignore="true"/>
     </function>
 
-    <function name="TexSubImage4DSGIS" offset="438">
+    <function name="TexSubImage4DSGIS">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
@@ -7984,7 +8579,7 @@ glx:
 <!-- Extension number 19 is not listed in the extension registry. -->
 
 <category name="GL_EXT_texture_object" number="20">
-    <function name="AreTexturesResidentEXT" offset="439">
+    <function name="AreTexturesResidentEXT" alias="AreTexturesResident">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="textures" type="const GLuint *" count="n"/>
         <param name="residences" type="GLboolean *" output="true" count="n"/>
@@ -7997,22 +8592,19 @@ glx:
         <param name="texture" type="GLuint"/>
     </function>
 
-    <!-- For GLX, this is wrong.  DeleteTexturesEXT and DeleteTextures
-         do not have the same protocol!
-    -->
     <function name="DeleteTexturesEXT" alias="DeleteTextures">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="textures" type="const GLuint *" count="n"/>
         <glx vendorpriv="12"/>
     </function>
 
-    <function name="GenTexturesEXT" offset="440">
+    <function name="GenTexturesEXT" alias="GenTextures">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="textures" type="GLuint *" output="true" count="n"/>
         <glx vendorpriv="13" always_array="true"/>
     </function>
 
-    <function name="IsTextureEXT" offset="441">
+    <function name="IsTextureEXT" alias="IsTexture">
         <param name="texture" type="GLuint"/>
         <return type="GLboolean"/>
         <glx vendorpriv="14"/>
@@ -8026,14 +8618,14 @@ glx:
 </category>
 
 <category name="GL_SGIS_detail_texture" number="21">
-    <function name="DetailTexFuncSGIS" offset="442">
+    <function name="DetailTexFuncSGIS">
         <param name="target" type="GLenum"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="points" type="const GLfloat *" count="n"/>
         <glx rop="2051" ignore="true"/>
     </function>
 
-    <function name="GetDetailTexFuncSGIS" offset="443">
+    <function name="GetDetailTexFuncSGIS">
         <param name="target" type="GLenum"/>
         <param name="points" type="GLfloat *" output="true"/>
         <glx vendorpriv="4096" ignore="true"/>
@@ -8041,14 +8633,14 @@ glx:
 </category>
 
 <category name="GL_SGIS_sharpen_texture" number="22">
-    <function name="SharpenTexFuncSGIS" offset="444">
+    <function name="SharpenTexFuncSGIS">
         <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>
 
-    <function name="GetSharpenTexFuncSGIS" offset="445">
+    <function name="GetSharpenTexFuncSGIS">
         <param name="target" type="GLenum"/>
         <param name="points" type="GLfloat *" output="true"/>
         <glx vendorpriv="4097" ignore="true"/>
@@ -8056,13 +8648,13 @@ glx:
 </category>
 
 <category name="GL_SGIS_multisample" number="25">
-    <function name="SampleMaskSGIS" offset="446">
+    <function name="SampleMaskSGIS" offset="assign" static_dispatch="false">
         <param name="value" type="GLclampf"/>
         <param name="invert" type="GLboolean"/>
         <glx rop="2048"/>
     </function>
 
-    <function name="SamplePatternSGIS" offset="447">
+    <function name="SamplePatternSGIS" offset="assign" static_dispatch="false">
         <param name="pattern" type="GLenum"/>
         <glx rop="2049"/>
     </function>
@@ -8084,7 +8676,7 @@ glx:
         <param name="i" type="GLint"/>
     </function>
 
-    <function name="ColorPointerEXT" offset="448">
+    <function name="ColorPointerEXT" offset="assign">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
@@ -8099,7 +8691,7 @@ glx:
         <param name="count" type="GLsizei"/>
     </function>
 
-    <function name="EdgeFlagPointerEXT" offset="449">
+    <function name="EdgeFlagPointerEXT" offset="assign">
         <param name="stride" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
         <param name="pointer" type="const GLboolean *"/>
@@ -8111,7 +8703,7 @@ glx:
         <param name="params" type="GLvoid **" output="true"/>
     </function>
 
-    <function name="IndexPointerEXT" offset="450">
+    <function name="IndexPointerEXT" offset="assign">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
@@ -8119,7 +8711,7 @@ glx:
         <glx handcode="true"/>
     </function>
 
-    <function name="NormalPointerEXT" offset="451">
+    <function name="NormalPointerEXT" offset="assign">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
@@ -8127,7 +8719,7 @@ glx:
         <glx handcode="true"/>
     </function>
 
-    <function name="TexCoordPointerEXT" offset="452">
+    <function name="TexCoordPointerEXT" offset="assign">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
@@ -8136,7 +8728,7 @@ glx:
         <glx handcode="true"/>
     </function>
 
-    <function name="VertexPointerEXT" offset="453">
+    <function name="VertexPointerEXT" offset="assign">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
@@ -8250,25 +8842,25 @@ glx:
 <!-- Extension number 50 is a GLX extension. -->
 
 <category name="GL_SGIX_sprite" number="52">
-    <function name="SpriteParameterfSGIX" offset="454">
+    <function name="SpriteParameterfSGIX">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="SpriteParameterfvSGIX" offset="455">
+    <function name="SpriteParameterfvSGIX">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="SpriteParameteriSGIX" offset="456">
+    <function name="SpriteParameteriSGIX">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="SpriteParameterivSGIX" offset="457">
+    <function name="SpriteParameterivSGIX">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
         <glx ignore="true"/>
@@ -8289,13 +8881,13 @@ glx:
         <size name="PointParameterfvEXT"/>
     </enum>
 
-    <function name="PointParameterfEXT" offset="458">
+    <function name="PointParameterfEXT" offset="assign">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx rop="2065"/>
     </function>
 
-    <function name="PointParameterfvEXT" offset="459">
+    <function name="PointParameterfvEXT" offset="assign">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
         <glx rop="2066"/>
@@ -8303,33 +8895,33 @@ glx:
 </category>
 
 <category name="GL_SGIX_instruments" number="55">
-    <function name="GetInstrumentsSGIX" offset="460">
+    <function name="GetInstrumentsSGIX">
         <return type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="InstrumentsBufferSGIX" offset="461">
+    <function name="InstrumentsBufferSGIX">
         <param name="size" type="GLsizei"/>
         <param name="buffer" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="PollInstrumentsSGIX" offset="462">
+    <function name="PollInstrumentsSGIX">
         <param name="marker_p" type="GLint *" output="true"/>
         <return type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="ReadInstrumentsSGIX" offset="463">
+    <function name="ReadInstrumentsSGIX">
         <param name="marker" type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="StartInstrumentsSGIX" offset="464">
+    <function name="StartInstrumentsSGIX">
         <glx ignore="true"/>
     </function>
 
-    <function name="StopInstrumentsSGIX" offset="465">
+    <function name="StopInstrumentsSGIX">
         <param name="marker" type="GLint"/>
         <glx ignore="true"/>
     </function>
@@ -8353,14 +8945,14 @@ glx:
 </category>
 
 <category name="GL_SGIX_framezoom" number="57">
-    <function name="FrameZoomSGIX" offset="466">
+    <function name="FrameZoomSGIX">
         <param name="factor" type="GLint"/>
         <glx rop="2072" ignore="true"/>
     </function>
 </category>
 
 <category name="GL_SGIX_tag_sample_buffer" number="58">
-    <function name="TagSampleBufferSGIX" offset="467">
+    <function name="TagSampleBufferSGIX">
         <glx rop="2050" ignore="true"/>
     </function>
 </category>
@@ -8368,14 +8960,14 @@ glx:
 <!-- Extension number 59 is not listed in the extension registry. -->
 
 <category name="GL_SGIX_reference_plane" number="60">
-    <function name="ReferencePlaneSGIX" offset="468">
+    <function name="ReferencePlaneSGIX">
         <param name="equation" type="const GLdouble *" count="4"/>
         <glx rop="2071" ignore="true"/>
     </function>
 </category>
 
 <category name="GL_SGIX_flush_raster" number="61">
-    <function name="FlushRasterSGIX" offset="469">
+    <function name="FlushRasterSGIX">
         <glx vendorpriv="4105" ignore="true"/>
     </function>
 </category>
@@ -8389,13 +8981,13 @@ glx:
 </category>
 
 <category name="GL_SGIS_fog_function" number="64">
-    <function name="FogFuncSGIS" offset="?">
+    <function name="FogFuncSGIS">
         <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>
 
-    <function name="GetFogFuncSGIS" offset="?">
+    <function name="GetFogFuncSGIS">
         <param name="points" type="GLfloat *" output="true"/>
         <!-- GLX protocol for this function is unknown. -->
     </function>
@@ -8410,37 +9002,37 @@ glx:
 </category>
 
 <category name="GL_HP_image_transform" number="66">
-    <function name="ImageTransformParameteriHP" offset="?">
+    <function name="ImageTransformParameteriHP">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
     </function>
 
-    <function name="ImageTransformParameterfHP" offset="?">
+    <function name="ImageTransformParameterfHP">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
     </function>
 
-    <function name="ImageTransformParameterivHP" offset="?">
+    <function name="ImageTransformParameterivHP">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
     </function>
 
-    <function name="ImageTransformParameterfvHP" offset="?">
+    <function name="ImageTransformParameterfvHP">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 
-    <function name="GetImageTransformParameterivHP" offset="?">
+    <function name="GetImageTransformParameterivHP">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
     </function>
 
-    <function name="GetImageTransformParameterfvHP" offset="?">
+    <function name="GetImageTransformParameterfvHP">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
@@ -8466,7 +9058,7 @@ glx:
 <!-- Extension number 73 is not listed in the extension registry. -->
 
 <category name="GL_EXT_color_subtable" number="74">
-    <function name="ColorSubTableEXT" alias="ColorSubTable">
+    <function name="ColorSubTableEXT" alias="ColorSubTable" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="start" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
@@ -8475,7 +9067,7 @@ glx:
         <param name="data" type="const GLvoid *"/>
     </function>
 
-    <function name="CopyColorSubTableEXT" alias="CopyColorSubTable">
+    <function name="CopyColorSubTableEXT" alias="CopyColorSubTable" static_dispatch="false">
         <param name="target" type="GLenum"/>
         <param name="start" type="GLsizei"/>
         <param name="x" type="GLint"/>
@@ -8487,7 +9079,7 @@ glx:
 <!-- Extension number 75 is a GLU extension. -->
 
 <category name="GL_PGI_misc_hints" number="77">
-    <function name="HintPGI" offset="544">
+    <function name="HintPGI">
         <param name="target" type="GLenum"/>
         <param name="mode" type="GLint"/>
         <glx ignore="true"/>
@@ -8534,33 +9126,33 @@ 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"/>
         <param name="table" type="const GLvoid *"/>
     </function>
 
-    <function name="GetColorTableEXT" offset="550">
+    <function name="GetColorTableEXT" alias="GetColorTable">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="data" type="GLvoid *" output="true"/>
-        <glx ignore="true"/>
+        <param name="table" type="GLvoid *" output="true" img_width="width" img_format="format" img_type="type"/>
+        <glx vendorpriv="4098" dimensions_in_reply="true"/>
     </function>
 
-    <function name="GetColorTableParameterivEXT" offset="551">
+    <function name="GetColorTableParameterivEXT" alias="GetColorTableParameteriv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
-        <glx ignore="true"/>
+        <glx vendorpriv="4100"/>
     </function>
 
-    <function name="GetColorTableParameterfvEXT" offset="552">
+    <function name="GetColorTableParameterfvEXT" alias="GetColorTableParameterfv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
-        <glx ignore="true"/>
+        <glx vendorpriv="4099"/>
     </function>
 </category>
 
@@ -8571,42 +9163,42 @@ glx:
 </category>
 
 <category name="GL_SGIX_list_priority" number="80">
-    <function name="GetListParameterfvSGIX" offset="470">
+    <function name="GetListParameterfvSGIX">
         <param name="list" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetListParameterivSGIX" offset="471">
+    <function name="GetListParameterivSGIX">
         <param name="list" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="ListParameterfSGIX" offset="472">
+    <function name="ListParameterfSGIX">
         <param name="list" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="ListParameterfvSGIX" offset="473">
+    <function name="ListParameterfvSGIX">
         <param name="list" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="ListParameteriSGIX" offset="474">
+    <function name="ListParameteriSGIX">
         <param name="list" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="ListParameterivSGIX" offset="475">
+    <function name="ListParameterivSGIX">
         <param name="list" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
@@ -8658,7 +9250,7 @@ glx:
 <!-- Extension number 92 is a GLX extension. -->
 
 <category name="GL_EXT_index_material" number="94">
-    <function name="IndexMaterialEXT" offset="538">
+    <function name="IndexMaterialEXT">
         <param name="face" type="GLenum"/>
         <param name="mode" type="GLenum"/>
         <glx ignore="true"/>
@@ -8666,7 +9258,7 @@ glx:
 </category>
 
 <category name="GL_EXT_index_func" number="95">
-    <function name="IndexFuncEXT" offset="539">
+    <function name="IndexFuncEXT">
         <param name="func" type="GLenum"/>
         <param name="ref" type="GLclampf"/>
         <glx ignore="true"/>
@@ -8674,13 +9266,13 @@ glx:
 </category>
 
 <category name="GL_EXT_compiled_vertex_array" number="97">
-    <function name="LockArraysEXT" offset="540">
+    <function name="LockArraysEXT" offset="assign">
         <param name="first" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <glx handcode="true" ignore="true"/>
     </function>
 
-    <function name="UnlockArraysEXT" offset="541">
+    <function name="UnlockArraysEXT" offset="assign">
         <glx handcode="true" ignore="true"/>
     </function>
 </category>
@@ -8696,13 +9288,13 @@ glx:
         <size name="CullParameterdv"/>
     </enum>
 
-    <function name="CullParameterdvEXT" offset="542">
+    <function name="CullParameterdvEXT" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLdouble *"/> <!-- Spec bug. Should be const. -->
         <glx ignore="true"/>
     </function>
 
-    <function name="CullParameterfvEXT" offset="543">
+    <function name="CullParameterfvEXT" offset="assign" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *"/> <!-- Spec bug. Should be const. -->
         <glx ignore="true"/>
@@ -8714,121 +9306,121 @@ glx:
 
 <!-- Shouldn't this be EXT_fragment_lighting? -->
 <category name="GL_SGIX_fragment_lighting" number="102">
-    <function name="FragmentColorMaterialSGIX" offset="476">
+    <function name="FragmentColorMaterialSGIX">
         <param name="face" type="GLenum"/>
         <param name="mode" type="GLenum"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightfSGIX" offset="477">
+    <function name="FragmentLightfSGIX">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightfvSGIX" offset="478">
+    <function name="FragmentLightfvSGIX">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightiSGIX" offset="479">
+    <function name="FragmentLightiSGIX">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightivSGIX" offset="480">
+    <function name="FragmentLightivSGIX">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightModelfSGIX" offset="481">
+    <function name="FragmentLightModelfSGIX">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightModelfvSGIX" offset="482">
+    <function name="FragmentLightModelfvSGIX">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightModeliSGIX" offset="483">
+    <function name="FragmentLightModeliSGIX">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="FragmentLightModelivSGIX" offset="484">
+    <function name="FragmentLightModelivSGIX">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="FragmentMaterialfSGIX" offset="485">
+    <function name="FragmentMaterialfSGIX">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="FragmentMaterialfvSGIX" offset="486">
+    <function name="FragmentMaterialfvSGIX">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="FragmentMaterialiSGIX" offset="487">
+    <function name="FragmentMaterialiSGIX">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="FragmentMaterialivSGIX" offset="488">
+    <function name="FragmentMaterialivSGIX">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetFragmentLightfvSGIX" offset="489">
+    <function name="GetFragmentLightfvSGIX">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetFragmentLightivSGIX" offset="490">
+    <function name="GetFragmentLightivSGIX">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetFragmentMaterialfvSGIX" offset="491">
+    <function name="GetFragmentMaterialfvSGIX">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetFragmentMaterialivSGIX" offset="492">
+    <function name="GetFragmentMaterialivSGIX">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="LightEnviSGIX" offset="493">
+    <function name="LightEnviSGIX">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx ignore="true"/>
@@ -8865,15 +9457,15 @@ glx:
 <!-- Extension number 116 is not listed in the extension registry. -->
 
 <category name="GL_EXT_light_texture" number="117">
-    <function name="ApplyTextureEXT" offset="?">
+    <function name="ApplyTextureEXT">
         <param name="mode" type="GLenum"/>
     </function>
 
-    <function name="TextureLightEXT" offset="?">
+    <function name="TextureLightEXT">
         <param name="pname" type="GLenum"/>
     </function>
 
-    <function name="TextureMaterialEXT" offset="?">
+    <function name="TextureMaterialEXT">
         <param name="face" type="GLenum"/>
         <param name="mode" type="GLenum"/>
     </function>
@@ -8891,55 +9483,55 @@ glx:
 <!-- Extension number 131 is not listed in the extension registry. -->
 
 <category name="GL_SGIX_async" number="132">
-    <function name="AsyncMarkerSGIX" offset="?">
+    <function name="AsyncMarkerSGIX">
         <param name="marker" type="GLuint"/>
     </function>
 
-    <function name="FinishAsyncSGIX" offset="?">
+    <function name="FinishAsyncSGIX">
         <param name="markerp" type="GLuint *"/> <!-- Spec bug. Should be const. -->
         <return type="GLint"/>
     </function>
 
-    <function name="PollAsyncSGIX" offset="?">
+    <function name="PollAsyncSGIX">
         <param name="markerp" type="GLuint *"/> <!-- Spec bug. Should be const. -->
         <return type="GLint"/>
     </function>
 
-    <function name="GenAsyncMarkersSGIX" offset="?">
+    <function name="GenAsyncMarkersSGIX">
         <param name="range" type="GLsizei"/>
         <return type="GLuint"/>
     </function>
 
-    <function name="DeleteAsyncMarkersSGIX" offset="?">
+    <function name="DeleteAsyncMarkersSGIX">
         <param name="marker" type="GLuint"/>
         <param name="range" type="GLsizei"/>
     </function>
 
-    <function name="IsAsyncMarkerSGIX" offset="?">
+    <function name="IsAsyncMarkerSGIX">
         <param name="marker" type="GLuint"/>
         <return type="GLboolean"/>
     </function>
 </category>
 
 <category name="GL_INTEL_parallel_arrays" number="136">
-    <function name="VertexPointervINTEL" offset="?">
+    <function name="VertexPointervINTEL">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="pointer" type="const GLvoid **"/>
     </function>
 
-    <function name="NormalPointervINTEL" offset="?">
+    <function name="NormalPointervINTEL">
         <param name="type" type="GLenum"/>
         <param name="pointer" type="const GLvoid **"/>
     </function>
 
-    <function name="ColorPointervINTEL" offset="?">
+    <function name="ColorPointervINTEL">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="pointer" type="const GLvoid **"/>
     </function>
 
-    <function name="TexCoordPointervINTEL" offset="?">
+    <function name="TexCoordPointervINTEL">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="pointer" type="const GLvoid **"/>
@@ -8956,25 +9548,25 @@ glx:
 </category>
 
 <category name="GL_EXT_pixel_transform" number="138">
-    <function name="PixelTransformParameteriEXT" offset="?">
+    <function name="PixelTransformParameteriEXT">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
     </function>
 
-    <function name="PixelTransformParameterfEXT" offset="?">
+    <function name="PixelTransformParameterfEXT">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
     </function>
 
-    <function name="PixelTransformParameterivEXT" offset="?">
+    <function name="PixelTransformParameterivEXT">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
     </function>
 
-    <function name="PixelTransformParameterfvEXT" offset="?">
+    <function name="PixelTransformParameterfvEXT">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
@@ -9000,95 +9592,95 @@ glx:
 </category>
 
 <category name="GL_EXT_secondary_color" number="145">
-    <function name="SecondaryColor3bEXT" offset="561" vectorequiv="SecondaryColor3bvEXT">
+    <function name="SecondaryColor3bEXT" offset="assign" vectorequiv="SecondaryColor3bvEXT">
         <param name="red" type="GLbyte"/>
         <param name="green" type="GLbyte"/>
         <param name="blue" type="GLbyte"/>
     </function>
 
-    <function name="SecondaryColor3bvEXT" offset="562">
+    <function name="SecondaryColor3bvEXT" offset="assign">
         <param name="v" type="const GLbyte *" count="3"/>
         <glx rop="4126"/>
     </function>
 
-    <function name="SecondaryColor3dEXT" offset="563" vectorequiv="SecondaryColor3dvEXT">
+    <function name="SecondaryColor3dEXT" offset="assign" vectorequiv="SecondaryColor3dvEXT">
         <param name="red" type="GLdouble"/>
         <param name="green" type="GLdouble"/>
         <param name="blue" type="GLdouble"/>
     </function>
 
-    <function name="SecondaryColor3dvEXT" offset="564">
+    <function name="SecondaryColor3dvEXT" offset="assign">
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="4130"/>
     </function>
 
-    <function name="SecondaryColor3fEXT" offset="565" vectorequiv="SecondaryColor3fvEXT">
+    <function name="SecondaryColor3fEXT" offset="assign" vectorequiv="SecondaryColor3fvEXT">
         <param name="red" type="GLfloat"/>
         <param name="green" type="GLfloat"/>
         <param name="blue" type="GLfloat"/>
     </function>
 
-    <function name="SecondaryColor3fvEXT" offset="566">
+    <function name="SecondaryColor3fvEXT" offset="assign">
         <param name="v" type="const GLfloat *" count="3"/>
         <glx rop="4129"/>
     </function>
 
-    <function name="SecondaryColor3iEXT" offset="567" vectorequiv="SecondaryColor3ivEXT">
+    <function name="SecondaryColor3iEXT" offset="assign" vectorequiv="SecondaryColor3ivEXT">
         <param name="red" type="GLint"/>
         <param name="green" type="GLint"/>
         <param name="blue" type="GLint"/>
     </function>
 
-    <function name="SecondaryColor3ivEXT" offset="568">
+    <function name="SecondaryColor3ivEXT" offset="assign">
         <param name="v" type="const GLint *" count="3"/>
         <glx rop="4128"/>
     </function>
 
-    <function name="SecondaryColor3sEXT" offset="569" vectorequiv="SecondaryColor3svEXT">
+    <function name="SecondaryColor3sEXT" offset="assign" vectorequiv="SecondaryColor3svEXT">
         <param name="red" type="GLshort"/>
         <param name="green" type="GLshort"/>
         <param name="blue" type="GLshort"/>
     </function>
 
-    <function name="SecondaryColor3svEXT" offset="570">
+    <function name="SecondaryColor3svEXT" offset="assign">
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="4127"/>
     </function>
 
-    <function name="SecondaryColor3ubEXT" offset="571" vectorequiv="SecondaryColor3ubvEXT">
+    <function name="SecondaryColor3ubEXT" offset="assign" vectorequiv="SecondaryColor3ubvEXT">
         <param name="red" type="GLubyte"/>
         <param name="green" type="GLubyte"/>
         <param name="blue" type="GLubyte"/>
     </function>
 
-    <function name="SecondaryColor3ubvEXT" offset="572">
+    <function name="SecondaryColor3ubvEXT" offset="assign">
         <param name="v" type="const GLubyte *" count="3"/>
         <glx rop="4131"/>
     </function>
 
-    <function name="SecondaryColor3uiEXT" offset="573" vectorequiv="SecondaryColor3uivEXT">
+    <function name="SecondaryColor3uiEXT" offset="assign" vectorequiv="SecondaryColor3uivEXT">
         <param name="red" type="GLuint"/>
         <param name="green" type="GLuint"/>
         <param name="blue" type="GLuint"/>
     </function>
 
-    <function name="SecondaryColor3uivEXT" offset="574">
+    <function name="SecondaryColor3uivEXT" offset="assign">
         <param name="v" type="const GLuint *" count="3"/>
         <glx rop="4133"/>
     </function>
 
-    <function name="SecondaryColor3usEXT" offset="575" vectorequiv="SecondaryColor3usvEXT">
+    <function name="SecondaryColor3usEXT" offset="assign" vectorequiv="SecondaryColor3usvEXT">
         <param name="red" type="GLushort"/>
         <param name="green" type="GLushort"/>
         <param name="blue" type="GLushort"/>
     </function>
 
-    <function name="SecondaryColor3usvEXT" offset="576">
+    <function name="SecondaryColor3usvEXT" offset="assign">
         <param name="v" type="const GLushort *" count="3"/>
         <glx rop="4132"/>
     </function>
 
-    <function name="SecondaryColorPointerEXT" offset="577">
+    <function name="SecondaryColorPointerEXT" offset="assign">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
@@ -9098,13 +9690,13 @@ glx:
 </category>
 
 <category name="GL_EXT_texture_perturb_normal" number="147">
-    <function name="TextureNormalEXT" offset="?">
+    <function name="TextureNormalEXT">
         <param name="mode" type="GLenum"/>
     </function>
 </category>
 
 <category name="GL_EXT_multi_draw_arrays" number="148">
-    <function name="MultiDrawArraysEXT" offset="644">
+    <function name="MultiDrawArraysEXT" offset="assign">
         <param name="mode" type="GLenum"/>
         <param name="first" type="GLint *"/> <!-- Spec bug. Should be const. -->
         <param name="count" type="GLsizei *"/> <!-- Spec bug. Should be const. -->
@@ -9112,7 +9704,7 @@ glx:
         <glx handcode="true"/>
     </function>
 
-    <function name="MultiDrawElementsEXT" offset="645">
+    <function name="MultiDrawElementsEXT" offset="assign">
         <param name="mode" type="GLenum"/>
         <param name="count" type="const GLsizei *"/>
         <param name="type" type="GLenum"/>
@@ -9123,25 +9715,25 @@ glx:
 </category>
 
 <category name="GL_EXT_fog_coord" number="149">
-    <function name="FogCoordfEXT" offset="545" vectorequiv="FogCoordfvEXT">
+    <function name="FogCoordfEXT" offset="assign" vectorequiv="FogCoordfvEXT">
         <param name="coord" type="GLfloat"/>
     </function>
 
-    <function name="FogCoordfvEXT" offset="546">
+    <function name="FogCoordfvEXT" offset="assign">
         <param name="coord" type="const GLfloat *" count="1"/>
         <glx rop="4124"/>
     </function>
 
-    <function name="FogCoorddEXT" offset="547" vectorequiv="FogCoorddvEXT">
+    <function name="FogCoorddEXT" offset="assign" vectorequiv="FogCoorddvEXT">
         <param name="coord" type="GLdouble"/>
     </function>
 
-    <function name="FogCoorddvEXT" offset="548">
+    <function name="FogCoorddvEXT" offset="assign">
         <param name="coord" type="const GLdouble *" count="1"/>
         <glx rop="4125"/>
     </function>
 
-    <function name="FogCoordPointerEXT" offset="549">
+    <function name="FogCoordPointerEXT" offset="assign">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
@@ -9156,113 +9748,113 @@ glx:
 <!-- Extension number 154 is not listed in the extension registry. -->
 
 <category name="GL_EXT_coordinate_frame" number="156">
-    <function name="Tangent3bEXT" offset="?">
+    <function name="Tangent3bEXT">
         <param name="tx" type="GLbyte"/>
         <param name="ty" type="GLbyte"/>
         <param name="tz" type="GLbyte"/>
     </function>
 
-    <function name="Tangent3bvEXT" offset="?">
+    <function name="Tangent3bvEXT">
         <param name="v" type="const GLbyte *"/>
     </function>
 
-    <function name="Tangent3dEXT" offset="?">
+    <function name="Tangent3dEXT">
         <param name="tx" type="GLdouble"/>
         <param name="ty" type="GLdouble"/>
         <param name="tz" type="GLdouble"/>
     </function>
 
-    <function name="Tangent3dvEXT" offset="?">
+    <function name="Tangent3dvEXT">
         <param name="v" type="const GLdouble *"/>
     </function>
 
-    <function name="Tangent3fEXT" offset="?">
+    <function name="Tangent3fEXT">
         <param name="tx" type="GLfloat"/>
         <param name="ty" type="GLfloat"/>
         <param name="tz" type="GLfloat"/>
     </function>
 
-    <function name="Tangent3fvEXT" offset="?">
+    <function name="Tangent3fvEXT">
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="Tangent3iEXT" offset="?">
+    <function name="Tangent3iEXT">
         <param name="tx" type="GLint"/>
         <param name="ty" type="GLint"/>
         <param name="tz" type="GLint"/>
     </function>
 
-    <function name="Tangent3ivEXT" offset="?">
+    <function name="Tangent3ivEXT">
         <param name="v" type="const GLint *"/>
     </function>
 
-    <function name="Tangent3sEXT" offset="?">
+    <function name="Tangent3sEXT">
         <param name="tx" type="GLshort"/>
         <param name="ty" type="GLshort"/>
         <param name="tz" type="GLshort"/>
     </function>
 
-    <function name="Tangent3svEXT" offset="?">
+    <function name="Tangent3svEXT">
         <param name="v" type="const GLshort *"/>
     </function>
 
-    <function name="Binormal3bEXT" offset="?">
+    <function name="Binormal3bEXT">
         <param name="bx" type="GLbyte"/>
         <param name="by" type="GLbyte"/>
         <param name="bz" type="GLbyte"/>
     </function>
 
-    <function name="Binormal3bvEXT" offset="?">
+    <function name="Binormal3bvEXT">
         <param name="v" type="const GLbyte *"/>
     </function>
 
-    <function name="Binormal3dEXT" offset="?">
+    <function name="Binormal3dEXT">
         <param name="bx" type="GLdouble"/>
         <param name="by" type="GLdouble"/>
         <param name="bz" type="GLdouble"/>
     </function>
 
-    <function name="Binormal3dvEXT" offset="?">
+    <function name="Binormal3dvEXT">
         <param name="v" type="const GLdouble *"/>
     </function>
 
-    <function name="Binormal3fEXT" offset="?">
+    <function name="Binormal3fEXT">
         <param name="bx" type="GLfloat"/>
         <param name="by" type="GLfloat"/>
         <param name="bz" type="GLfloat"/>
     </function>
 
-    <function name="Binormal3fvEXT" offset="?">
+    <function name="Binormal3fvEXT">
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="Binormal3iEXT" offset="?">
+    <function name="Binormal3iEXT">
         <param name="bx" type="GLint"/>
         <param name="by" type="GLint"/>
         <param name="bz" type="GLint"/>
     </function>
 
-    <function name="Binormal3ivEXT" offset="?">
+    <function name="Binormal3ivEXT">
         <param name="v" type="const GLint *"/>
     </function>
 
-    <function name="Binormal3sEXT" offset="?">
+    <function name="Binormal3sEXT">
         <param name="bx" type="GLshort"/>
         <param name="by" type="GLshort"/>
         <param name="bz" type="GLshort"/>
     </function>
 
-    <function name="Binormal3svEXT" offset="?">
+    <function name="Binormal3svEXT">
         <param name="v" type="const GLshort *"/>
     </function>
 
-    <function name="TangentPointerEXT" offset="?">
+    <function name="TangentPointerEXT">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
     </function>
 
-    <function name="BinormalPointerEXT" offset="?">
+    <function name="BinormalPointerEXT">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
@@ -9296,7 +9888,7 @@ glx:
 </category>
 
 <category name="GL_SGIX_pixel_texture" number="160">
-    <function name="PixelTexGenSGIX" offset="430">
+    <function name="PixelTexGenSGIX" offset="assign" static_dispatch="false">
         <param name="mode" type="GLenum"/>
         <glx rop="2059" ignore="true"/>
     </function>
@@ -9306,70 +9898,70 @@ glx:
 <!-- Extension number 162 is not listed in the extension registry. -->
 
 <category name="GL_SUNX_constant_data" number="163">
-    <function name="FinishTextureSUNX" offset="?">
+    <function name="FinishTextureSUNX">
     </function>
 </category>
 
 <category name="GL_SUN_global_alpha" number="164">
-    <function name="GlobalAlphaFactorbSUN" offset="?">
+    <function name="GlobalAlphaFactorbSUN">
         <param name="factor" type="GLbyte"/>
     </function>
 
-    <function name="GlobalAlphaFactorsSUN" offset="?">
+    <function name="GlobalAlphaFactorsSUN">
         <param name="factor" type="GLshort"/>
     </function>
 
-    <function name="GlobalAlphaFactoriSUN" offset="?">
+    <function name="GlobalAlphaFactoriSUN">
         <param name="factor" type="GLint"/>
     </function>
 
-    <function name="GlobalAlphaFactorfSUN" offset="?">
+    <function name="GlobalAlphaFactorfSUN">
         <param name="factor" type="GLfloat"/>
     </function>
 
-    <function name="GlobalAlphaFactordSUN" offset="?">
+    <function name="GlobalAlphaFactordSUN">
         <param name="factor" type="GLdouble"/>
     </function>
 
-    <function name="GlobalAlphaFactorubSUN" offset="?">
+    <function name="GlobalAlphaFactorubSUN">
         <param name="factor" type="GLubyte"/>
     </function>
 
-    <function name="GlobalAlphaFactorusSUN" offset="?">
+    <function name="GlobalAlphaFactorusSUN">
         <param name="factor" type="GLushort"/>
     </function>
 
-    <function name="GlobalAlphaFactoruiSUN" offset="?">
+    <function name="GlobalAlphaFactoruiSUN">
         <param name="factor" type="GLuint"/>
     </function>
 </category>
 
 <category name="GL_SUN_triangle_list" number="165">
-    <function name="ReplacementCodeuiSUN" offset="?">
+    <function name="ReplacementCodeuiSUN">
         <param name="code" type="GLuint"/>
     </function>
 
-    <function name="ReplacementCodeusSUN" offset="?">
+    <function name="ReplacementCodeusSUN">
         <param name="code" type="GLushort"/>
     </function>
 
-    <function name="ReplacementCodeubSUN" offset="?">
+    <function name="ReplacementCodeubSUN">
         <param name="code" type="GLubyte"/>
     </function>
 
-    <function name="ReplacementCodeuivSUN" offset="?">
+    <function name="ReplacementCodeuivSUN">
         <param name="code" type="const GLuint *"/>
     </function>
 
-    <function name="ReplacementCodeusvSUN" offset="?">
+    <function name="ReplacementCodeusvSUN">
         <param name="code" type="const GLushort *"/>
     </function>
 
-    <function name="ReplacementCodeubvSUN" offset="?">
+    <function name="ReplacementCodeubvSUN">
         <param name="code" type="const GLubyte *"/>
     </function>
 
-    <function name="ReplacementCodePointerSUN" offset="?">
+    <function name="ReplacementCodePointerSUN">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
@@ -9377,7 +9969,7 @@ glx:
 </category>
 
 <category name="GL_SUN_vertex" number="166">
-    <function name="Color4ubVertex2fSUN" offset="?">
+    <function name="Color4ubVertex2fSUN">
         <param name="r" type="GLubyte"/>
         <param name="g" type="GLubyte"/>
         <param name="b" type="GLubyte"/>
@@ -9386,12 +9978,12 @@ glx:
         <param name="y" type="GLfloat"/>
     </function>
 
-    <function name="Color4ubVertex2fvSUN" offset="?">
+    <function name="Color4ubVertex2fvSUN">
         <param name="c" type="const GLubyte *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="Color4ubVertex3fSUN" offset="?">
+    <function name="Color4ubVertex3fSUN">
         <param name="r" type="GLubyte"/>
         <param name="g" type="GLubyte"/>
         <param name="b" type="GLubyte"/>
@@ -9401,12 +9993,12 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="Color4ubVertex3fvSUN" offset="?">
+    <function name="Color4ubVertex3fvSUN">
         <param name="c" type="const GLubyte *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="Color3fVertex3fSUN" offset="?">
+    <function name="Color3fVertex3fSUN">
         <param name="r" type="GLfloat"/>
         <param name="g" type="GLfloat"/>
         <param name="b" type="GLfloat"/>
@@ -9415,12 +10007,12 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="Color3fVertex3fvSUN" offset="?">
+    <function name="Color3fVertex3fvSUN">
         <param name="c" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="Normal3fVertex3fSUN" offset="?">
+    <function name="Normal3fVertex3fSUN">
         <param name="nx" type="GLfloat"/>
         <param name="ny" type="GLfloat"/>
         <param name="nz" type="GLfloat"/>
@@ -9429,12 +10021,12 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="Normal3fVertex3fvSUN" offset="?">
+    <function name="Normal3fVertex3fvSUN">
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="Color4fNormal3fVertex3fSUN" offset="?">
+    <function name="Color4fNormal3fVertex3fSUN">
         <param name="r" type="GLfloat"/>
         <param name="g" type="GLfloat"/>
         <param name="b" type="GLfloat"/>
@@ -9447,13 +10039,13 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="Color4fNormal3fVertex3fvSUN" offset="?">
+    <function name="Color4fNormal3fVertex3fvSUN">
         <param name="c" type="const GLfloat *"/>
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="TexCoord2fVertex3fSUN" offset="?">
+    <function name="TexCoord2fVertex3fSUN">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="x" type="GLfloat"/>
@@ -9461,12 +10053,12 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord2fVertex3fvSUN" offset="?">
+    <function name="TexCoord2fVertex3fvSUN">
         <param name="tc" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="TexCoord4fVertex4fSUN" offset="?">
+    <function name="TexCoord4fVertex4fSUN">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="p" type="GLfloat"/>
@@ -9477,12 +10069,12 @@ glx:
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord4fVertex4fvSUN" offset="?">
+    <function name="TexCoord4fVertex4fvSUN">
         <param name="tc" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="TexCoord2fColor4ubVertex3fSUN" offset="?">
+    <function name="TexCoord2fColor4ubVertex3fSUN">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="r" type="GLubyte"/>
@@ -9494,13 +10086,13 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord2fColor4ubVertex3fvSUN" offset="?">
+    <function name="TexCoord2fColor4ubVertex3fvSUN">
         <param name="tc" type="const GLfloat *"/>
         <param name="c" type="const GLubyte *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="TexCoord2fColor3fVertex3fSUN" offset="?">
+    <function name="TexCoord2fColor3fVertex3fSUN">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="r" type="GLfloat"/>
@@ -9511,13 +10103,13 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord2fColor3fVertex3fvSUN" offset="?">
+    <function name="TexCoord2fColor3fVertex3fvSUN">
         <param name="tc" type="const GLfloat *"/>
         <param name="c" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="TexCoord2fNormal3fVertex3fSUN" offset="?">
+    <function name="TexCoord2fNormal3fVertex3fSUN">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="nx" type="GLfloat"/>
@@ -9528,13 +10120,13 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord2fNormal3fVertex3fvSUN" offset="?">
+    <function name="TexCoord2fNormal3fVertex3fvSUN">
         <param name="tc" type="const GLfloat *"/>
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="TexCoord2fColor4fNormal3fVertex3fSUN" offset="?">
+    <function name="TexCoord2fColor4fNormal3fVertex3fSUN">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="r" type="GLfloat"/>
@@ -9549,14 +10141,14 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord2fColor4fNormal3fVertex3fvSUN" offset="?">
+    <function name="TexCoord2fColor4fNormal3fVertex3fvSUN">
         <param name="tc" type="const GLfloat *"/>
         <param name="c" type="const GLfloat *"/>
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="TexCoord4fColor4fNormal3fVertex4fSUN" offset="?">
+    <function name="TexCoord4fColor4fNormal3fVertex4fSUN">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="p" type="GLfloat"/>
@@ -9574,26 +10166,26 @@ glx:
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord4fColor4fNormal3fVertex4fvSUN" offset="?">
+    <function name="TexCoord4fColor4fNormal3fVertex4fvSUN">
         <param name="tc" type="const GLfloat *"/>
         <param name="c" type="const GLfloat *"/>
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiColor4ubVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiColor4ubVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="r" type="GLubyte"/>
         <param name="g" type="GLubyte"/>
@@ -9604,13 +10196,13 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiColor4ubVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiColor4ubVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="c" type="const GLubyte *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiColor3fVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiColor3fVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="r" type="GLfloat"/>
         <param name="g" type="GLfloat"/>
@@ -9620,13 +10212,13 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiColor3fVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiColor3fVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="c" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiNormal3fVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiNormal3fVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="nx" type="GLfloat"/>
         <param name="ny" type="GLfloat"/>
@@ -9636,13 +10228,13 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiNormal3fVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiNormal3fVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiColor4fNormal3fVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiColor4fNormal3fVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="r" type="GLfloat"/>
         <param name="g" type="GLfloat"/>
@@ -9656,14 +10248,14 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiColor4fNormal3fVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiColor4fNormal3fVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="c" type="const GLfloat *"/>
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiTexCoord2fVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiTexCoord2fVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
@@ -9672,13 +10264,13 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiTexCoord2fVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiTexCoord2fVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="tc" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
@@ -9690,14 +10282,14 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="tc" type="const GLfloat *"/>
         <param name="n" type="const GLfloat *"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN" offset="?">
+    <function name="ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN">
         <param name="rc" type="GLuint"/>
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
@@ -9713,7 +10305,7 @@ glx:
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN" offset="?">
+    <function name="ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN">
         <param name="rc" type="const GLuint *"/>
         <param name="tc" type="const GLfloat *"/>
         <param name="c" type="const GLfloat *"/>
@@ -9730,7 +10322,7 @@ glx:
 <!-- Extension number 172 is a WGL extension. -->
 
 <category name="GL_EXT_blend_func_separate" number="173">
-    <function name="BlendFuncSeparateEXT" offset="537">
+    <function name="BlendFuncSeparateEXT" offset="assign">
         <param name="sfactorRGB" type="GLenum"/>
         <param name="dfactorRGB" type="GLenum"/>
         <param name="sfactorAlpha" type="GLenum"/>
@@ -9780,21 +10372,23 @@ glx:
         <size name="GetTexParameterfv" mode="get"/>
         <size name="GetTexParameteriv" mode="get"/>
     </enum>
-    <enum name="MAX_TEXTURE_MAX_ANISOTROPY_EXT"           value="0x84FF"/>
+    <enum name="MAX_TEXTURE_MAX_ANISOTROPY_EXT" count="1" value="0x84FF">
+        <size name="Get" mode="get"/>
+    </enum>
 </category>
 
 <category name="GL_EXT_vertex_weighting" number="188">
-    <function name="VertexWeightfEXT" offset="494" vectorequiv="VertexWeightfvEXT">
+    <function name="VertexWeightfEXT" vectorequiv="VertexWeightfvEXT">
         <param name="weight" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexWeightfvEXT" offset="495">
+    <function name="VertexWeightfvEXT">
         <param name="weight" type="const GLfloat *" count="1"/>
         <glx rop="4135" ignore="true"/>
     </function>
 
-    <function name="VertexWeightPointerEXT" offset="496">
+    <function name="VertexWeightPointerEXT">
         <param name="size" type="GLsizei"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
@@ -9813,11 +10407,11 @@ glx:
 </category>
 
 <category name="GL_NV_vertex_array_range" number="190">
-    <function name="FlushVertexArrayRangeNV" offset="497">
+    <function name="FlushVertexArrayRangeNV" offset="assign">
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexArrayRangeNV" offset="498">
+    <function name="VertexArrayRangeNV" offset="assign">
         <param name="length" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
         <glx ignore="true"/>
@@ -9825,31 +10419,31 @@ glx:
 </category>
 
 <category name="GL_NV_register_combiners" number="191">
-    <function name="CombinerParameterfvNV" offset="499">
+    <function name="CombinerParameterfvNV" offset="assign">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
         <glx rop="4137" ignore="true"/>
     </function>
 
-    <function name="CombinerParameterfNV" offset="500">
+    <function name="CombinerParameterfNV" offset="assign">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx rop="4136" ignore="true"/>
     </function>
 
-    <function name="CombinerParameterivNV" offset="501">
+    <function name="CombinerParameterivNV" offset="assign">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
         <glx rop="4139" ignore="true"/>
     </function>
 
-    <function name="CombinerParameteriNV" offset="502">
+    <function name="CombinerParameteriNV" offset="assign">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx rop="4138" ignore="true"/>
     </function>
 
-    <function name="CombinerInputNV" offset="503">
+    <function name="CombinerInputNV" offset="assign">
         <param name="stage" type="GLenum"/>
         <param name="portion" type="GLenum"/>
         <param name="variable" type="GLenum"/>
@@ -9859,7 +10453,7 @@ glx:
         <glx rop="4140" ignore="true"/>
     </function>
 
-    <function name="CombinerOutputNV" offset="504">
+    <function name="CombinerOutputNV" offset="assign">
         <param name="stage" type="GLenum"/>
         <param name="portion" type="GLenum"/>
         <param name="abOutput" type="GLenum"/>
@@ -9873,7 +10467,7 @@ glx:
         <glx rop="4141" ignore="true"/>
     </function>
 
-    <function name="FinalCombinerInputNV" offset="505">
+    <function name="FinalCombinerInputNV" offset="assign">
         <param name="variable" type="GLenum"/>
         <param name="input" type="GLenum"/>
         <param name="mapping" type="GLenum"/>
@@ -9881,7 +10475,7 @@ glx:
         <glx rop="4142" ignore="true"/>
     </function>
 
-    <function name="GetCombinerInputParameterfvNV" offset="506">
+    <function name="GetCombinerInputParameterfvNV" offset="assign">
         <param name="stage" type="GLenum"/>
         <param name="portion" type="GLenum"/>
         <param name="variable" type="GLenum"/>
@@ -9890,7 +10484,7 @@ glx:
         <glx vendorpriv="1270" ignore="true"/>
     </function>
 
-    <function name="GetCombinerInputParameterivNV" offset="507">
+    <function name="GetCombinerInputParameterivNV" offset="assign">
         <param name="stage" type="GLenum"/>
         <param name="portion" type="GLenum"/>
         <param name="variable" type="GLenum"/>
@@ -9899,7 +10493,7 @@ glx:
         <glx vendorpriv="1271" ignore="true"/>
     </function>
 
-    <function name="GetCombinerOutputParameterfvNV" offset="508">
+    <function name="GetCombinerOutputParameterfvNV" offset="assign">
         <param name="stage" type="GLenum"/>
         <param name="portion" type="GLenum"/>
         <param name="pname" type="GLenum"/>
@@ -9907,7 +10501,7 @@ glx:
         <glx vendorpriv="1272" ignore="true"/>
     </function>
 
-    <function name="GetCombinerOutputParameterivNV" offset="509">
+    <function name="GetCombinerOutputParameterivNV" offset="assign">
         <param name="stage" type="GLenum"/>
         <param name="portion" type="GLenum"/>
         <param name="pname" type="GLenum"/>
@@ -9915,14 +10509,14 @@ glx:
         <glx vendorpriv="1273" ignore="true"/>
     </function>
 
-    <function name="GetFinalCombinerInputParameterfvNV" offset="510">
+    <function name="GetFinalCombinerInputParameterfvNV" offset="assign">
         <param name="variable" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true"/>
         <glx vendorpriv="1274" ignore="true"/>
     </function>
 
-    <function name="GetFinalCombinerInputParameterivNV" offset="511">
+    <function name="GetFinalCombinerInputParameterivNV" offset="assign">
         <param name="variable" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true"/>
@@ -9973,104 +10567,104 @@ glx:
 </category>
 
 <category name="GL_MESA_resize_buffers" number="196">
-    <function name="ResizeBuffersMESA" offset="512">
+    <function name="ResizeBuffersMESA" offset="assign">
         <glx ignore="true"/>
     </function>
 </category>
 
 <category name="GL_MESA_window_pos" number="197">
-    <function name="WindowPos2dMESA" offset="513">
+    <function name="WindowPos2dMESA" offset="assign">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2dvMESA" offset="514">
+    <function name="WindowPos2dvMESA" offset="assign">
         <param name="v" type="const GLdouble *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2fMESA" offset="515">
+    <function name="WindowPos2fMESA" offset="assign">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2fvMESA" offset="516">
+    <function name="WindowPos2fvMESA" offset="assign">
         <param name="v" type="const GLfloat *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2iMESA" offset="517">
+    <function name="WindowPos2iMESA" offset="assign">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2ivMESA" offset="518">
+    <function name="WindowPos2ivMESA" offset="assign">
         <param name="v" type="const GLint *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2sMESA" offset="519">
+    <function name="WindowPos2sMESA" offset="assign">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2svMESA" offset="520">
+    <function name="WindowPos2svMESA" offset="assign">
         <param name="v" type="const GLshort *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3dMESA" offset="521">
+    <function name="WindowPos3dMESA" offset="assign">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3dvMESA" offset="522">
+    <function name="WindowPos3dvMESA" offset="assign">
         <param name="v" type="const GLdouble *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3fMESA" offset="523" vectorequiv="WindowPos3fvMESA">
+    <function name="WindowPos3fMESA" offset="assign" vectorequiv="WindowPos3fvMESA">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="WindowPos3fvMESA" offset="524">
+    <function name="WindowPos3fvMESA" offset="assign">
         <param name="v" type="const GLfloat *" count="3"/>
         <glx rop="230"/>
     </function>
 
-    <function name="WindowPos3iMESA" offset="525">
+    <function name="WindowPos3iMESA" offset="assign">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="z" type="GLint"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3ivMESA" offset="526">
+    <function name="WindowPos3ivMESA" offset="assign">
         <param name="v" type="const GLint *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3sMESA" offset="527">
+    <function name="WindowPos3sMESA" offset="assign">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3svMESA" offset="528">
+    <function name="WindowPos3svMESA" offset="assign">
         <param name="v" type="const GLshort *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos4dMESA" offset="529">
+    <function name="WindowPos4dMESA" offset="assign">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
@@ -10078,12 +10672,12 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4dvMESA" offset="530">
+    <function name="WindowPos4dvMESA" offset="assign">
         <param name="v" type="const GLdouble *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4fMESA" offset="531">
+    <function name="WindowPos4fMESA" offset="assign">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
@@ -10091,12 +10685,12 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4fvMESA" offset="532">
+    <function name="WindowPos4fvMESA" offset="assign">
         <param name="v" type="const GLfloat *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4iMESA" offset="533">
+    <function name="WindowPos4iMESA" offset="assign">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="z" type="GLint"/>
@@ -10104,12 +10698,12 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4ivMESA" offset="534">
+    <function name="WindowPos4ivMESA" offset="assign">
         <param name="v" type="const GLint *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4sMESA" offset="535">
+    <function name="WindowPos4sMESA" offset="assign">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
@@ -10117,7 +10711,7 @@ glx:
         <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4svMESA" offset="536">
+    <function name="WindowPos4svMESA" offset="assign">
         <param name="v" type="const GLshort *"/>
         <glx ignore="true"/>
     </function>
@@ -10131,7 +10725,7 @@ glx:
 </category>
 
 <category name="GL_IBM_multimode_draw_arrays" number="200">
-    <function name="MultiModeDrawArraysIBM" offset="708">
+    <function name="MultiModeDrawArraysIBM" offset="assign" static_dispatch="false">
         <param name="mode" type="const GLenum *"/>
         <param name="first" type="const GLint *"/>
         <param name="count" type="const GLsizei *"/>
@@ -10140,7 +10734,7 @@ glx:
         <glx handcode="true" ignore="true"/>
     </function>
 
-    <function name="MultiModeDrawElementsIBM" offset="709">
+    <function name="MultiModeDrawElementsIBM" offset="assign" static_dispatch="false">
         <param name="mode" type="const GLenum *"/>
         <param name="count" type="const GLsizei *"/>
         <param name="type" type="GLenum"/>
@@ -10152,7 +10746,7 @@ glx:
 </category>
 
 <category name="GL_IBM_vertex_array_lists" number="201">
-    <function name="ColorPointerListIBM" offset="?">
+    <function name="ColorPointerListIBM">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLint"/>
@@ -10160,7 +10754,7 @@ glx:
         <param name="ptrstride" type="GLint"/>
     </function>
 
-    <function name="SecondaryColorPointerListIBM" offset="?">
+    <function name="SecondaryColorPointerListIBM">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLint"/>
@@ -10168,34 +10762,34 @@ glx:
         <param name="ptrstride" type="GLint"/>
     </function>
 
-    <function name="EdgeFlagPointerListIBM" offset="?">
+    <function name="EdgeFlagPointerListIBM">
         <param name="stride" type="GLint"/>
         <param name="pointer" type="const GLboolean **"/>
         <param name="ptrstride" type="GLint"/>
     </function>
 
-    <function name="FogCoordPointerListIBM" offset="?">
+    <function name="FogCoordPointerListIBM">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLint"/>
         <param name="pointer" type="const GLvoid **"/>
         <param name="ptrstride" type="GLint"/>
     </function>
 
-    <function name="IndexPointerListIBM" offset="?">
+    <function name="IndexPointerListIBM">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLint"/>
         <param name="pointer" type="const GLvoid **"/>
         <param name="ptrstride" type="GLint"/>
     </function>
 
-    <function name="NormalPointerListIBM" offset="?">
+    <function name="NormalPointerListIBM">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLint"/>
         <param name="pointer" type="const GLvoid **"/>
         <param name="ptrstride" type="GLint"/>
     </function>
 
-    <function name="TexCoordPointerListIBM" offset="?">
+    <function name="TexCoordPointerListIBM">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLint"/>
@@ -10203,7 +10797,7 @@ glx:
         <param name="ptrstride" type="GLint"/>
     </function>
 
-    <function name="VertexPointerListIBM" offset="?">
+    <function name="VertexPointerListIBM">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLint"/>
@@ -10230,19 +10824,19 @@ glx:
 </category>
 
 <category name="GL_3DFX_tbuffer" number="208">
-    <function name="TbufferMask3DFX" offset="553">
+    <function name="TbufferMask3DFX">
         <param name="mask" type="GLuint"/>
         <glx ignore="true"/>
     </function>
 </category>
 
 <category name="GL_EXT_multisample" number="209">
-    <function name="SampleMaskEXT" alias="SampleMaskSGIS">
+    <function name="SampleMaskEXT" alias="SampleMaskSGIS" static_dispatch="false">
         <param name="value" type="GLclampf"/>
         <param name="invert" type="GLboolean"/>
     </function>
 
-    <function name="SamplePatternEXT" alias="SamplePatternSGIS">
+    <function name="SamplePatternEXT" alias="SamplePatternSGIS" static_dispatch="false">
         <param name="pattern" type="GLenum"/>
     </function>
 </category>
@@ -10253,7 +10847,7 @@ glx:
 <category name="GL_SGIS_texture_color_mask" number="214">
     <enum name="TEXTURE_COLOR_WRITEMASK_SGIS"             value="0x81EF"/>
 
-    <function name="TextureColorMaskSGIS" offset="?">
+    <function name="TextureColorMaskSGIS">
         <param name="red" type="GLboolean"/>
         <param name="green" type="GLboolean"/>
         <param name="blue" type="GLboolean"/>
@@ -10279,43 +10873,43 @@ glx:
 </category>
 
 <category name="GL_NV_fence" number="222">
-    <function name="DeleteFencesNV" offset="647">
+    <function name="DeleteFencesNV" offset="assign" static_dispatch="false">
         <param name="n" type="GLsizei"/>
         <param name="fences" type="const GLuint *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GenFencesNV" offset="648">
+    <function name="GenFencesNV" offset="assign" static_dispatch="false">
         <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>
 
-    <function name="IsFenceNV" offset="649">
+    <function name="IsFenceNV" offset="assign" static_dispatch="false">
         <param name="fence" type="GLuint"/>
         <return type="GLboolean"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="TestFenceNV" offset="650">
+    <function name="TestFenceNV" offset="assign" static_dispatch="false">
         <param name="fence" type="GLuint"/>
         <return type="GLboolean"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetFenceivNV" offset="651">
+    <function name="GetFenceivNV" offset="assign" static_dispatch="false">
         <param name="fence" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="FinishFenceNV" offset="652">
+    <function name="FinishFenceNV" offset="assign" static_dispatch="false">
         <param name="fence" type="GLuint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="SetFenceNV" offset="653">
+    <function name="SetFenceNV" offset="assign" static_dispatch="false">
         <param name="fence" type="GLuint"/>
         <param name="condition" type="GLenum"/>
         <glx ignore="true"/>
@@ -10327,7 +10921,7 @@ glx:
 </category>
 
 <category name="GL_NV_evaluators" number="225">
-    <function name="MapControlPointsNV" offset="?">
+    <function name="MapControlPointsNV">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="type" type="GLenum"/>
@@ -10339,19 +10933,19 @@ glx:
         <param name="points" type="const GLvoid *"/>
     </function>
 
-    <function name="MapParameterivNV" offset="?">
+    <function name="MapParameterivNV">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
     </function>
 
-    <function name="MapParameterfvNV" offset="?">
+    <function name="MapParameterfvNV">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 
-    <function name="GetMapControlPointsNV" offset="?">
+    <function name="GetMapControlPointsNV">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="type" type="GLenum"/>
@@ -10361,33 +10955,33 @@ glx:
         <param name="points" type="GLvoid *" output="true"/>
     </function>
 
-    <function name="GetMapParameterivNV" offset="?">
+    <function name="GetMapParameterivNV">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true"/>
     </function>
 
-    <function name="GetMapParameterfvNV" offset="?">
+    <function name="GetMapParameterfvNV">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true"/>
     </function>
 
-    <function name="GetMapAttribParameterivNV" offset="?">
+    <function name="GetMapAttribParameterivNV">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true"/>
     </function>
 
-    <function name="GetMapAttribParameterfvNV" offset="?">
+    <function name="GetMapAttribParameterfvNV">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true"/>
     </function>
 
-    <function name="EvalMapsNV" offset="?">
+    <function name="EvalMapsNV">
         <param name="target" type="GLenum"/>
         <param name="mode" type="GLenum"/>
     </function>
@@ -10399,13 +10993,13 @@ glx:
 </category>
 
 <category name="GL_NV_register_combiners2" number="227">
-    <function name="CombinerStageParameterfvNV" offset="?">
+    <function name="CombinerStageParameterfvNV">
         <param name="stage" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 
-    <function name="GetCombinerStageParameterfvNV" offset="?">
+    <function name="GetCombinerStageParameterfvNV">
         <param name="stage" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true"/>
@@ -10539,7 +11133,7 @@ glx:
     <enum name="MAP2_VERTEX_ATTRIB14_4_NV"                value="0x867E"/>
     <enum name="MAP2_VERTEX_ATTRIB15_4_NV"                value="0x867F"/>
 
-    <function name="AreProgramsResidentNV" offset="578">
+    <function name="AreProgramsResidentNV" offset="assign">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="ids" type="const GLuint *" count="n"/>
         <param name="residences" type="GLboolean *" output="true" count="n"/>
@@ -10547,30 +11141,30 @@ glx:
         <glx vendorpriv="1293"/>
     </function>
 
-    <function name="BindProgramNV" offset="579">
+    <function name="BindProgramNV" offset="assign">
         <param name="target" type="GLenum"/>
-        <param name="id" type="GLuint"/>
+        <param name="program" type="GLuint"/>
         <glx rop="4180"/>
     </function>
 
-    <function name="DeleteProgramsNV" offset="580">
+    <function name="DeleteProgramsNV" offset="assign">
         <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>
 
-    <function name="ExecuteProgramNV" offset="581">
+    <function name="ExecuteProgramNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="id" type="GLuint"/>
         <param name="params" type="const GLfloat *" count="4"/>
         <glx rop="4181"/>
     </function>
 
-    <function name="GenProgramsNV" offset="582">
+    <function name="GenProgramsNV" offset="assign">
         <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
@@ -10578,7 +11172,7 @@ glx:
          of these functions.
       -->
 
-    <function name="GetProgramParameterdvNV" offset="583">
+    <function name="GetProgramParameterdvNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
@@ -10586,7 +11180,7 @@ glx:
         <glx vendorpriv="1297"/>
     </function>
 
-    <function name="GetProgramParameterfvNV" offset="584">
+    <function name="GetProgramParameterfvNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
@@ -10594,21 +11188,21 @@ glx:
         <glx vendorpriv="1296"/>
     </function>
 
-    <function name="GetProgramivNV" offset="585">
+    <function name="GetProgramivNV" offset="assign">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx vendorpriv="1298"/>
     </function>
 
-    <function name="GetProgramStringNV" offset="586">
+    <function name="GetProgramStringNV" offset="assign">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="program" type="GLubyte *" output="true"/>
         <glx vendorpriv="1299" handcode="server" always_array="true"/>
     </function>
 
-    <function name="GetTrackMatrixivNV" offset="587">
+    <function name="GetTrackMatrixivNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="address" type="GLuint"/>
         <param name="pname" type="GLenum"/>
@@ -10616,41 +11210,41 @@ glx:
         <glx vendorpriv="1300"/>
     </function>
 
-    <function name="GetVertexAttribdvNV" offset="753">
+    <function name="GetVertexAttribdvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
         <glx vendorpriv="1301"/>
     </function>
 
-    <function name="GetVertexAttribfvNV" offset="754">
+    <function name="GetVertexAttribfvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx vendorpriv="1302"/>
     </function>
 
-    <function name="GetVertexAttribivNV" offset="755">
+    <function name="GetVertexAttribivNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx vendorpriv="1303"/>
     </function>
 
-    <function name="GetVertexAttribPointervNV" offset="591">
+    <function name="GetVertexAttribPointervNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="pointer" type="GLvoid **" output="true"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="IsProgramNV" offset="592">
-        <param name="id" type="GLuint"/>
+    <function name="IsProgramNV" offset="assign">
+        <param name="program" type="GLuint"/>
         <return type="GLboolean"/>
         <glx vendorpriv="1304"/>
     </function>
 
-    <function name="LoadProgramNV" offset="593">
+    <function name="LoadProgramNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei" counter="true"/>
@@ -10658,7 +11252,7 @@ glx:
         <glx rop="4183"/>
     </function>
 
-    <function name="ProgramParameter4dNV" offset="594" vectorequiv="ProgramParameter4dvNV">
+    <function name="ProgramParameter4dNV" offset="assign" vectorequiv="ProgramParameter4dvNV">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
@@ -10667,14 +11261,14 @@ glx:
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="ProgramParameter4dvNV" offset="595">
+    <function name="ProgramParameter4dvNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLdouble *" count="4"/>
         <glx rop="4185" doubles_in_order="true"/>
     </function>
 
-    <function name="ProgramParameter4fNV" offset="596" vectorequiv="ProgramParameter4fvNV">
+    <function name="ProgramParameter4fNV" offset="assign" vectorequiv="ProgramParameter4fvNV">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
@@ -10683,14 +11277,14 @@ glx:
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="ProgramParameter4fvNV" offset="597">
+    <function name="ProgramParameter4fvNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLfloat *" count="4"/>
         <glx rop="4184"/>
     </function>
 
-    <function name="ProgramParameters4dvNV" offset="598">
+    <function name="ProgramParameters4dvNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="num" type="GLuint" counter="true"/>
@@ -10698,7 +11292,7 @@ glx:
         <glx rop="4187"/>
     </function>
 
-    <function name="ProgramParameters4fvNV" offset="599">
+    <function name="ProgramParameters4fvNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="num" type="GLuint" counter="true"/>
@@ -10706,13 +11300,13 @@ glx:
         <glx rop="4186"/>
     </function>
 
-    <function name="RequestResidentProgramsNV" offset="600">
+    <function name="RequestResidentProgramsNV" offset="assign">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="ids" type="const GLuint *" count="n"/>
         <glx rop="4182"/>
     </function>
 
-    <function name="TrackMatrixNV" offset="601">
+    <function name="TrackMatrixNV" offset="assign">
         <param name="target" type="GLenum"/>
         <param name="address" type="GLuint"/>
         <param name="matrix" type="GLenum"/>
@@ -10720,7 +11314,7 @@ glx:
         <glx rop="4188"/>
     </function>
 
-    <function name="VertexAttribPointerNV" offset="602">
+    <function name="VertexAttribPointerNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
@@ -10729,43 +11323,43 @@ glx:
         <glx handcode="true"/>
     </function>
 
-    <function name="VertexAttrib1sNV" offset="760" vectorequiv="VertexAttrib1svNV">
+    <function name="VertexAttrib1sNV" offset="assign" vectorequiv="VertexAttrib1svNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib1svNV" offset="761">
+    <function name="VertexAttrib1svNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="1"/>
-        <glx rop="4189"/>
+        <glx rop="4265"/>
     </function>
 
-    <function name="VertexAttrib2sNV" offset="766" vectorequiv="VertexAttrib2svNV">
+    <function name="VertexAttrib2sNV" offset="assign" vectorequiv="VertexAttrib2svNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib2svNV" offset="767">
+    <function name="VertexAttrib2svNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="2"/>
-        <glx rop="4190"/>
+        <glx rop="4266"/>
     </function>
 
-    <function name="VertexAttrib3sNV" offset="772" vectorequiv="VertexAttrib3svNV">
+    <function name="VertexAttrib3sNV" offset="assign" vectorequiv="VertexAttrib3svNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib3svNV" offset="773">
+    <function name="VertexAttrib3svNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="3"/>
-        <glx rop="4191"/>
+        <glx rop="4267"/>
     </function>
 
-    <function name="VertexAttrib4sNV" offset="778" vectorequiv="VertexAttrib4svNV">
+    <function name="VertexAttrib4sNV" offset="assign" vectorequiv="VertexAttrib4svNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
@@ -10773,49 +11367,49 @@ glx:
         <param name="w" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib4svNV" offset="779">
+    <function name="VertexAttrib4svNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="4"/>
-        <glx rop="4192"/>
+        <glx rop="4268"/>
     </function>
 
-    <function name="VertexAttrib1fNV" offset="758" vectorequiv="VertexAttrib1fvNV">
+    <function name="VertexAttrib1fNV" offset="assign" vectorequiv="VertexAttrib1fvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib1fvNV" offset="759">
+    <function name="VertexAttrib1fvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="1"/>
-        <glx rop="4193"/>
+        <glx rop="4269"/>
     </function>
 
-    <function name="VertexAttrib2fNV" offset="764" vectorequiv="VertexAttrib2fvNV">
+    <function name="VertexAttrib2fNV" offset="assign" vectorequiv="VertexAttrib2fvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib2fvNV" offset="765">
+    <function name="VertexAttrib2fvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="2"/>
-        <glx rop="4194"/>
+        <glx rop="4270"/>
     </function>
 
-    <function name="VertexAttrib3fNV" offset="770" vectorequiv="VertexAttrib3fvNV">
+    <function name="VertexAttrib3fNV" offset="assign" vectorequiv="VertexAttrib3fvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib3fvNV" offset="771">
+    <function name="VertexAttrib3fvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="3"/>
-        <glx rop="4195"/>
+        <glx rop="4271"/>
     </function>
 
-    <function name="VertexAttrib4fNV" offset="776" vectorequiv="VertexAttrib4fvNV">
+    <function name="VertexAttrib4fNV" offset="assign" vectorequiv="VertexAttrib4fvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
@@ -10823,49 +11417,49 @@ glx:
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib4fvNV" offset="777">
+    <function name="VertexAttrib4fvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="4"/>
-        <glx rop="4196"/>
+        <glx rop="4272"/>
     </function>
 
-    <function name="VertexAttrib1dNV" offset="756" vectorequiv="VertexAttrib1dvNV">
+    <function name="VertexAttrib1dNV" offset="assign" vectorequiv="VertexAttrib1dvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib1dvNV" offset="757">
+    <function name="VertexAttrib1dvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="1"/>
-        <glx rop="4197" doubles_in_order="true"/>
+        <glx rop="4273" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib2dNV" offset="762" vectorequiv="VertexAttrib2dvNV">
+    <function name="VertexAttrib2dNV" offset="assign" vectorequiv="VertexAttrib2dvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib2dvNV" offset="763">
+    <function name="VertexAttrib2dvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="2"/>
-        <glx rop="4198" doubles_in_order="true"/>
+        <glx rop="4274" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib3dNV" offset="768" vectorequiv="VertexAttrib3dvNV">
+    <function name="VertexAttrib3dNV" offset="assign" vectorequiv="VertexAttrib3dvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib3dvNV" offset="769">
+    <function name="VertexAttrib3dvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="3"/>
-        <glx rop="4199" doubles_in_order="true"/>
+        <glx rop="4275" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4dNV" offset="774" vectorequiv="VertexAttrib4dvNV">
+    <function name="VertexAttrib4dNV" offset="assign" vectorequiv="VertexAttrib4dvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
@@ -10873,13 +11467,13 @@ glx:
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib4dvNV" offset="775">
+    <function name="VertexAttrib4dvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="4"/>
-        <glx rop="4200" doubles_in_order="true"/>
+        <glx rop="4276" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4ubNV" offset="780" vectorequiv="VertexAttrib4ubvNV">
+    <function name="VertexAttrib4ubNV" offset="assign" vectorequiv="VertexAttrib4ubvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLubyte"/>
         <param name="y" type="GLubyte"/>
@@ -10887,97 +11481,97 @@ glx:
         <param name="w" type="GLubyte"/>
     </function>
 
-    <function name="VertexAttrib4ubvNV" offset="781">
+    <function name="VertexAttrib4ubvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
-        <glx rop="4201"/>
+        <glx rop="4277"/>
     </function>
 
-    <function name="VertexAttribs1svNV" offset="631">
+    <function name="VertexAttribs1svNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLshort *" count="n"/>
         <glx rop="4202"/>
     </function>
 
-    <function name="VertexAttribs2svNV" offset="634">
+    <function name="VertexAttribs2svNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLshort *" count="n" count_scale="2"/>
         <glx rop="4203"/>
     </function>
 
-    <function name="VertexAttribs3svNV" offset="637">
+    <function name="VertexAttribs3svNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLshort *" count="n" count_scale="3"/>
         <glx rop="4204"/>
     </function>
 
-    <function name="VertexAttribs4svNV" offset="640">
+    <function name="VertexAttribs4svNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLshort *" count="n" count_scale="4"/>
         <glx rop="4205"/>
     </function>
 
-    <function name="VertexAttribs1fvNV" offset="630">
+    <function name="VertexAttribs1fvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLfloat *" count="n"/>
         <glx rop="4206"/>
     </function>
 
-    <function name="VertexAttribs2fvNV" offset="633">
+    <function name="VertexAttribs2fvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLfloat *" count="n" count_scale="2"/>
         <glx rop="4207"/>
     </function>
 
-    <function name="VertexAttribs3fvNV" offset="636">
+    <function name="VertexAttribs3fvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLfloat *" count="n" count_scale="3"/>
         <glx rop="4208"/>
     </function>
 
-    <function name="VertexAttribs4fvNV" offset="639">
+    <function name="VertexAttribs4fvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLfloat *" count="n" count_scale="4"/>
         <glx rop="4209"/>
     </function>
 
-    <function name="VertexAttribs1dvNV" offset="629">
+    <function name="VertexAttribs1dvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLdouble *" count="n"/>
         <glx rop="4210" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttribs2dvNV" offset="632">
+    <function name="VertexAttribs2dvNV" offset="assign">
         <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">
+    <function name="VertexAttribs3dvNV" offset="assign">
         <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">
+    <function name="VertexAttribs4dvNV" offset="assign">
         <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">
+    <function name="VertexAttribs4ubvNV" offset="assign">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLubyte *" count="n" count_scale="4"/>
@@ -11019,45 +11613,45 @@ glx:
 </category>
 
 <category name="GL_ATI_fragment_shader" number="245">
-    <function name="GenFragmentShadersATI" offset="782">
+    <function name="GenFragmentShadersATI" offset="assign">
       <return type="GLuint"/>
       <param name="range" type="GLuint"/>
       <glx ignore="true"/>
     </function>
     
-    <function name="BindFragmentShaderATI" offset="783">
+    <function name="BindFragmentShaderATI" offset="assign">
       <param name="id" type="GLuint"/>
       <glx ignore="true"/>
     </function>
 
-    <function name="DeleteFragmentShaderATI" offset="784">
+    <function name="DeleteFragmentShaderATI" offset="assign">
       <param name="id" type="GLuint"/>
       <glx ignore="true"/>
     </function>
 
-    <function name="BeginFragmentShaderATI" offset="785">
+    <function name="BeginFragmentShaderATI" offset="assign">
       <glx ignore="true"/>
     </function>
 
-    <function name="EndFragmentShaderATI" offset="786">
+    <function name="EndFragmentShaderATI" offset="assign">
       <glx ignore="true"/>
     </function>
     
-    <function name="PassTexCoordATI" offset="787">
+    <function name="PassTexCoordATI" offset="assign">
       <param name="dst" type="GLuint"/>
       <param name="coord" type="GLuint"/>
       <param name="swizzle" type="GLenum"/>
       <glx ignore="true"/>
     </function>
 
-    <function name="SampleMapATI" offset="788">
+    <function name="SampleMapATI" offset="assign">
       <param name="dst" type="GLuint"/>
       <param name="interp" type="GLuint"/>
       <param name="swizzle" type="GLenum"/>
       <glx ignore="true"/>
     </function>
 
-    <function name="ColorFragmentOp1ATI" offset="789">
+    <function name="ColorFragmentOp1ATI" offset="assign">
       <param name="op" type="GLenum"/>
       <param name="dst" type="GLuint"/>
       <param name="dstMask" type="GLuint"/>
@@ -11068,7 +11662,7 @@ glx:
       <glx ignore="true"/>
     </function>
 
-    <function name="ColorFragmentOp2ATI" offset="790">
+    <function name="ColorFragmentOp2ATI" offset="assign">
       <param name="op" type="GLenum"/>
       <param name="dst" type="GLuint"/>
       <param name="dstMask" type="GLuint"/>
@@ -11082,7 +11676,7 @@ glx:
       <glx ignore="true"/>
     </function>
 
-    <function name="ColorFragmentOp3ATI" offset="791">
+    <function name="ColorFragmentOp3ATI" offset="assign">
       <param name="op" type="GLenum"/>
       <param name="dst" type="GLuint"/>
       <param name="dstMask" type="GLuint"/>
@@ -11099,7 +11693,7 @@ glx:
       <glx ignore="true"/>
     </function>
 
-    <function name="AlphaFragmentOp1ATI" offset="792">
+    <function name="AlphaFragmentOp1ATI" offset="assign">
       <param name="op" type="GLenum"/>
       <param name="dst" type="GLuint"/>
       <param name="dstMod" type="GLuint"/>
@@ -11109,7 +11703,7 @@ glx:
       <glx ignore="true"/>
     </function>
 
-    <function name="AlphaFragmentOp2ATI" offset="793">
+    <function name="AlphaFragmentOp2ATI" offset="assign">
       <param name="op" type="GLenum"/>
       <param name="dst" type="GLuint"/>
       <param name="dstMod" type="GLuint"/>
@@ -11122,7 +11716,7 @@ glx:
       <glx ignore="true"/>
     </function>
 
-    <function name="AlphaFragmentOp3ATI" offset="794">
+    <function name="AlphaFragmentOp3ATI" offset="assign">
       <param name="op" type="GLenum"/>
       <param name="dst" type="GLuint"/>
       <param name="dstMod" type="GLuint"/>
@@ -11138,7 +11732,7 @@ glx:
       <glx ignore="true"/>
     </function>
 
-    <function name="SetFragmentShaderConstantATI" offset="795">
+    <function name="SetFragmentShaderConstantATI" offset="assign">
       <param name="dst" type="GLuint"/>
       <param name="value" type="const GLfloat *"/>
       <glx ignore="true"/>
@@ -11156,7 +11750,7 @@ glx:
     <enum name="QUAD_MESH_SUN"                            value="0x8614"/>
     <enum name="TRIANGLE_MESH_SUN"                        value="0x8615"/>
 
-    <function name="DrawMeshArraysSUN" offset="?">
+    <function name="DrawMeshArraysSUN">
         <param name="mode" type="GLenum"/>
         <param name="first" type="GLint"/>
         <param name="count" type="GLsizei"/>
@@ -11212,13 +11806,13 @@ glx:
         <size name="Get" mode="get"/>
     </enum>
 
-    <function name="PointParameteriNV" offset="642">
+    <function name="PointParameteriNV" offset="assign">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint"/>
+        <param name="param" type="GLint"/>
         <glx rop="4221"/>
     </function>
 
-    <function name="PointParameterivNV" offset="643">
+    <function name="PointParameterivNV" offset="assign">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
         <glx rop="4222"/>
@@ -11232,7 +11826,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>
@@ -11240,12 +11834,14 @@ glx:
         <size name="Get" mode="get"/>
     </enum>
 
-    <function name="ActiveStencilFaceEXT" offset="646">
+    <function name="ActiveStencilFaceEXT" offset="assign" static_dispatch="false">
         <param name="face" type="GLenum"/>
         <glx rop="4220"/>
     </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"/>
@@ -11317,7 +11913,6 @@ glx:
     <function name="DrawBuffersATI" alias="DrawBuffersARB">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="bufs" type="const GLenum *" count="n"/>
-        <!-- GLX protocol is not fully defined for this extension. -->
     </function>
 </category>
 
@@ -11330,7 +11925,7 @@ glx:
 </category>
 
 <category name="GL_NV_fragment_program" number="282">
-    <function name="ProgramNamedParameter4fNV" offset="682" vectorequiv="ProgramNamedParameter4fvNV">
+    <function name="ProgramNamedParameter4fNV" offset="assign" vectorequiv="ProgramNamedParameter4fvNV">
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei" counter="true"/>
         <param name="name" type="const GLubyte *" count="len"/>
@@ -11340,7 +11935,7 @@ glx:
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="ProgramNamedParameter4dNV" offset="683" vectorequiv="ProgramNamedParameter4dvNV">
+    <function name="ProgramNamedParameter4dNV" offset="assign" vectorequiv="ProgramNamedParameter4dvNV">
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei" counter="true"/>
         <param name="name" type="const GLubyte *" count="len"/>
@@ -11350,7 +11945,7 @@ glx:
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="ProgramNamedParameter4fvNV" offset="684">
+    <function name="ProgramNamedParameter4fvNV" offset="assign">
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei" counter="true"/>
         <param name="name" type="const GLubyte *" count="len"/>
@@ -11358,7 +11953,7 @@ glx:
         <glx rop="4218"/>
     </function>
 
-    <function name="ProgramNamedParameter4dvNV" offset="685">
+    <function name="ProgramNamedParameter4dvNV" offset="assign">
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei" counter="true"/>
         <param name="name" type="const GLubyte *" count="len"/>
@@ -11366,7 +11961,7 @@ glx:
         <glx rop="4219"/>
     </function>
 
-    <function name="GetProgramNamedParameterfvNV" offset="686">
+    <function name="GetProgramNamedParameterfvNV" offset="assign">
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei" counter="true"/>
         <param name="name" type="const GLubyte *" count="len"/>
@@ -11374,7 +11969,7 @@ glx:
         <glx vendorpriv="1310" always_array="true"/>
     </function>
 
-    <function name="GetProgramNamedParameterdvNV" offset="687">
+    <function name="GetProgramNamedParameterdvNV" offset="assign">
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei" counter="true"/>
         <param name="name" type="const GLubyte *" count="len"/>
@@ -11383,7 +11978,7 @@ glx:
     </function>
 </category>
 
-<category name="GL_NV_expand_normal" number="286">
+<category name="GL_NV_texture_expand_normal" number="286">
     <enum name="TEXTURE_UNSIGNED_REMAP_MODE_NV" count="1" value="0x888F">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
@@ -11418,7 +12013,7 @@ glx:
         <size name="Get" mode="get"/>
     </enum>
 
-    <function name="DepthBoundsEXT" offset="699">
+    <function name="DepthBoundsEXT" offset="assign" static_dispatch="false">
         <param name="zmin" type="GLclampd"/>
         <param name="zmax" type="GLclampd"/>
         <glx rop="4229" ignore="true"/>
@@ -11439,10 +12034,10 @@ glx:
         <size name="Get" mode="get"/>
     </enum>
 
-    <function name="BlendEquationSeparateEXT" offset="710">
+    <function name="BlendEquationSeparateEXT" offset="assign" static_dispatch="false">
         <param name="modeRGB" type="GLenum"/>
         <param name="modeA" type="GLenum"/>
-        <glx rop="4228" ignore="true"/>
+        <glx rop="4228"/>
     </function>
 </category>
 
@@ -11500,159 +12095,6 @@ 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>
-
-
 <!-- Extension number 307 is a GLX extension. -->
 <!-- Extension number 308 is a GLX extension. -->
 
@@ -11661,17 +12103,70 @@ glx:
     <enum name="COMPRESSED_RGBA_S3TC_DXT1_EXT"            value="0x83F1"/>
 </category>
 
+<xi:include href="EXT_framebuffer_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<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="assign" static_dispatch="false">
+        <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>
+
 <!-- Unnumbered extensions sorted by name. -->
 
 <category name="GL_ATI_blend_equation_separate">
-    <function name="BlendEquationSeparateATI" alias="BlendEquationSeparateEXT">
+    <function name="BlendEquationSeparateATI" alias="BlendEquationSeparateEXT" static_dispatch="false">
         <param name="modeRGB" type="GLenum"/>
         <param name="modeA" type="GLenum"/>
     </function>
 </category>
 
+<category name="GL_EXT_gpu_program_parameters">
+    <function name="ProgramEnvParameters4fvEXT" offset="assign" static_dispatch="false">
+        <param name="target" type="GLenum"/>
+        <param name="index" type="GLuint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="params" type="const GLfloat *"/>
+    </function>
+
+    <function name="ProgramLocalParameters4fvEXT" offset="assign" static_dispatch="false">
+        <param name="target" type="GLenum"/>
+        <param name="index" type="GLuint"/>
+        <param name="count" type="GLsizei"/>
+        <param name="params" type="const GLfloat *"/>
+    </function>
+</category>
+
+<category name="GL_EXT_timer_query">
+    <enum name="TIME_ELAPSED_EXT" value="0x88BF"/>
+    <type name="int64EXT"                  size="8"/>
+    <type name="uint64EXT" unsigned="true" size="8"/>
+    <function name="GetQueryObjecti64vEXT" offset="assign" static_dispatch="false">
+        <param name="id" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLint64EXT *"/>
+    </function>
+    <function name="GetQueryObjectui64vEXT" offset="assign" static_dispatch="false">
+        <param name="id" type="GLuint"/>
+        <param name="pname" type="GLenum"/>
+        <param name="params" type="GLuint64EXT *"/>
+    </function>
+</category>
+
 <category name="GL_INGR_blend_func_separate">
-    <function name="BlendFuncSeparateINGR" alias="BlendFuncSeparateEXT">
+    <function name="BlendFuncSeparateINGR" alias="BlendFuncSeparateEXT" static_dispatch="false">
         <param name="sfactorRGB" type="GLenum"/>
         <param name="dfactorRGB" type="GLenum"/>
         <param name="sfactorAlpha" type="GLenum"/>
@@ -11679,6 +12174,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">
+        <param name="obj" type="GLhandleARB"/>
+        <param name="logType" type="GLenum"/>
+        <param name="shaderType" type="GLenum"/>
+        <glx ignore="true"/>
+    </function>
+    <function name="GetDebugLogMESA">
+        <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">
+        <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"/>
@@ -11693,26 +12220,26 @@ glx:
         <size name="PointParameterfvEXT"/>
     </enum>
 
-    <function name="PointParameterfSGIS" alias="PointParameterfEXT">
+    <function name="PointParameterfSGIS" alias="PointParameterfEXT" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
     </function>
 
-    <function name="PointParameterfvSGIS" alias="PointParameterfvEXT">
+    <function name="PointParameterfvSGIS" alias="PointParameterfvEXT" static_dispatch="false">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 </category>
 
 <category name="GL_SGIX_igloo_interface">
-    <function name="IglooInterfaceSGIX" offset="?">
+    <function name="IglooInterfaceSGIX">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLvoid *"/>
     </function>
 </category>
 
 <category name="GL_SGIX_polynomial_ffd">
-    <function name="DeformationMap3dSGIX" offset="?">
+    <function name="DeformationMap3dSGIX">
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLdouble"/>
         <param name="u2" type="GLdouble"/>
@@ -11729,7 +12256,7 @@ glx:
         <param name="points" type="const GLdouble *"/>
     </function>
 
-    <function name="DeformationMap3fSGIX" offset="?">
+    <function name="DeformationMap3fSGIX">
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLfloat"/>
         <param name="u2" type="GLfloat"/>
@@ -11746,11 +12273,11 @@ glx:
         <param name="points" type="const GLfloat *"/>
     </function>
 
-    <function name="DeformSGIX" offset="?">
+    <function name="DeformSGIX">
         <param name="mask" type="GLenum"/>
     </function>
 
-    <function name="LoadIdentityDeformationMapSGIX" offset="?">
+    <function name="LoadIdentityDeformationMapSGIX">
         <param name="mask" type="GLenum"/>
     </function>
 </category>