Enable the generation of server-side __glGetBooleanv_size and related
[mesa.git] / src / mesa / glapi / gl_API.xml
index 1be72a1e1e5ad4d642160e9ddb93d670c9e2f931..88e11ceed39e2fb80da90051c29782e2a2437834 100644 (file)
@@ -1,10 +1,11 @@
 <?xml version="1.0"?>
 <!DOCTYPE OpenGLAPI [
 <!ELEMENT OpenGLAPI (category+)>
-<!ELEMENT category (type*, enum*, function*)>
+<!ELEMENT category (type*, enum*, function*)*>
 <!ELEMENT type EMPTY>
-<!ELEMENT enum EMPTY>
-<!ELEMENT function (param*, return?, glx?)>
+<!ELEMENT enum (size*)>
+<!ELEMENT size EMPTY>
+<!ELEMENT function (param*, return?, glx?)*>
 <!ELEMENT param EMPTY>
 <!ELEMENT return EMPTY>
 <!ELEMENT glx EMPTY>
                    size   CDATA #REQUIRED
                    glx_name CDATA #IMPLIED>
 <!ATTLIST enum     name   CDATA #REQUIRED
+                   count  CDATA #IMPLIED
                    value  CDATA #REQUIRED>
 <!ATTLIST function name   CDATA #REQUIRED
-                   offset CDATA #REQUIRED
+                   alias  CDATA #IMPLIED
+                   offset CDATA #IMPLIED
                    vectorequiv CDATA #IMPLIED>
+<!ATTLIST size     name   CDATA #REQUIRED
+                   mode   CDATA #IMPLIED>
 <!ATTLIST param    name   CDATA #REQUIRED
                    type   CDATA #REQUIRED
                    count  CDATA #IMPLIED
                    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 correct.  In most cases this
+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.)
@@ -196,139 +203,340 @@ glx:
     <enum name="COEFF"                                    value="0x0A00"/>
     <enum name="ORDER"                                    value="0x0A01"/>
     <enum name="DOMAIN"                                   value="0x0A02"/>
-    <enum name="CURRENT_COLOR"                            value="0x0B00"/>
-    <enum name="CURRENT_INDEX"                            value="0x0B01"/>
-    <enum name="CURRENT_NORMAL"                           value="0x0B02"/>
-    <enum name="CURRENT_TEXTURE_COORDS"                   value="0x0B03"/>
-    <enum name="CURRENT_RASTER_COLOR"                     value="0x0B04"/>
-    <enum name="CURRENT_RASTER_INDEX"                     value="0x0B05"/>
-    <enum name="CURRENT_RASTER_TEXTURE_COORDS"            value="0x0B06"/>
-    <enum name="CURRENT_RASTER_POSITION"                  value="0x0B07"/>
-    <enum name="CURRENT_RASTER_POSITION_VALID"            value="0x0B08"/>
-    <enum name="CURRENT_RASTER_DISTANCE"                  value="0x0B09"/>
-    <enum name="POINT_SMOOTH"                             value="0x0B10"/>
-    <enum name="POINT_SIZE"                               value="0x0B11"/>
-    <enum name="POINT_SIZE_RANGE"                         value="0x0B12"/>
-    <enum name="POINT_SIZE_GRANULARITY"                   value="0x0B13"/>
-    <enum name="LINE_SMOOTH"                              value="0x0B20"/>
-    <enum name="LINE_WIDTH"                               value="0x0B21"/>
-    <enum name="LINE_WIDTH_RANGE"                         value="0x0B22"/>
-    <enum name="LINE_WIDTH_GRANULARITY"                   value="0x0B23"/>
-    <enum name="LINE_STIPPLE"                             value="0x0B24"/>
-    <enum name="LINE_STIPPLE_PATTERN"                     value="0x0B25"/>
-    <enum name="LINE_STIPPLE_REPEAT"                      value="0x0B26"/>
-    <enum name="LIST_MODE"                                value="0x0B30"/>
-    <enum name="MAX_LIST_NESTING"                         value="0x0B31"/>
-    <enum name="LIST_BASE"                                value="0x0B32"/>
-    <enum name="LIST_INDEX"                               value="0x0B33"/>
-    <enum name="POLYGON_MODE"                             value="0x0B40"/>
-    <enum name="POLYGON_SMOOTH"                           value="0x0B41"/>
-    <enum name="POLYGON_STIPPLE"                          value="0x0B42"/>
-    <enum name="EDGE_FLAG"                                value="0x0B43"/>
-    <enum name="CULL_FACE"                                value="0x0B44"/>
-    <enum name="CULL_FACE_MODE"                           value="0x0B45"/>
-    <enum name="FRONT_FACE"                               value="0x0B46"/>
-    <enum name="LIGHTING"                                 value="0x0B50"/>
+    <enum name="CURRENT_COLOR"                 count="4"  value="0x0B00">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_INDEX"                 count="1"  value="0x0B01">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_NORMAL"                count="3"  value="0x0B02">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_TEXTURE_COORDS"        count="4"  value="0x0B03">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_RASTER_COLOR"          count="4"  value="0x0B04">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_RASTER_INDEX"          count="1"  value="0x0B05">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_RASTER_TEXTURE_COORDS" count="4"  value="0x0B06">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_RASTER_POSITION"       count="4"  value="0x0B07">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_RASTER_POSITION_VALID" count="1"  value="0x0B08">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_RASTER_DISTANCE"       count="1"  value="0x0B09">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POINT_SMOOTH"                  count="1"  value="0x0B10">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POINT_SIZE"                    count="1"  value="0x0B11">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POINT_SIZE_RANGE"              count="2"  value="0x0B12">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POINT_SIZE_GRANULARITY"        count="1"  value="0x0B13">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_SMOOTH"                   count="1"  value="0x0B20">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_WIDTH"                    count="1"  value="0x0B21">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_WIDTH_RANGE"              count="2"  value="0x0B22">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_WIDTH_GRANULARITY"        count="1"  value="0x0B23">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_STIPPLE"                  count="1"  value="0x0B24">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_STIPPLE_PATTERN"          count="1"  value="0x0B25">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_STIPPLE_REPEAT"           count="1"  value="0x0B26">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIST_MODE"                     count="1"  value="0x0B30">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_LIST_NESTING"              count="1"  value="0x0B31">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIST_BASE"                     count="1"  value="0x0B32">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIST_INDEX"                    count="1"  value="0x0B33">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POLYGON_MODE"                  count="2"  value="0x0B40">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POLYGON_SMOOTH"                count="1"  value="0x0B41">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POLYGON_STIPPLE"               count="1"  value="0x0B42">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="EDGE_FLAG"                     count="1"  value="0x0B43">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CULL_FACE"                     count="1"  value="0x0B44">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CULL_FACE_MODE"                count="1"  value="0x0B45">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FRONT_FACE"                    count="1"  value="0x0B46">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHTING"                      count="1"  value="0x0B50">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="LIGHT_MODEL_LOCAL_VIEWER"      count="1"  value="0x0B51">
         <size name="LightModelfv"/>
         <size name="LightModeliv"/>
+        <size name="Get" mode="get"/>
     </enum>
     <enum name="LIGHT_MODEL_TWO_SIDE"          count="1"  value="0x0B52">
         <size name="LightModelfv"/>
         <size name="LightModeliv"/>
+        <size name="Get" mode="get"/>
     </enum>
     <enum name="LIGHT_MODEL_AMBIENT"           count="4"  value="0x0B53">
         <size name="LightModelfv"/>
         <size name="LightModeliv"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SHADE_MODEL"                   count="1"  value="0x0B54">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_MATERIAL_FACE"           count="1"  value="0x0B55">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_MATERIAL_PARAMETER"      count="1"  value="0x0B56">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_MATERIAL"                count="1"  value="0x0B57">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG"                           count="1"  value="0x0B60">
+        <size name="Get" mode="get"/>
     </enum>
-    <enum name="SHADE_MODEL"                              value="0x0B54"/>
-    <enum name="COLOR_MATERIAL_FACE"                      value="0x0B55"/>
-    <enum name="COLOR_MATERIAL_PARAMETER"                 value="0x0B56"/>
-    <enum name="COLOR_MATERIAL"                           value="0x0B57"/>
-    <enum name="FOG"                                      value="0x0B60"/>
     <enum name="FOG_INDEX"                     count="1"  value="0x0B61">
         <size name="Fogfv"/>
         <size name="Fogiv"/>
+        <size name="Get" mode="get"/>
     </enum>
     <enum name="FOG_DENSITY"                   count="1"  value="0x0B62">
         <size name="Fogfv"/>
         <size name="Fogiv"/>
+        <size name="Get" mode="get"/>
     </enum>
     <enum name="FOG_START"                     count="1"  value="0x0B63">
         <size name="Fogfv"/>
         <size name="Fogiv"/>
+        <size name="Get" mode="get"/>
     </enum>
     <enum name="FOG_END"                       count="1"  value="0x0B64">
         <size name="Fogfv"/>
         <size name="Fogiv"/>
+        <size name="Get" mode="get"/>
     </enum>
     <enum name="FOG_MODE"                      count="1"  value="0x0B65">
         <size name="Fogfv"/>
         <size name="Fogiv"/>
+        <size name="Get" mode="get"/>
     </enum>
     <enum name="FOG_COLOR"                     count="4"  value="0x0B66">
         <size name="Fogfv"/>
         <size name="Fogiv"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_RANGE"                   count="2"  value="0x0B70">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_TEST"                    count="1"  value="0x0B71">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_WRITEMASK"               count="1"  value="0x0B72">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_CLEAR_VALUE"             count="1"  value="0x0B73">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_FUNC"                    count="1"  value="0x0B74">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ACCUM_CLEAR_VALUE"             count="4"  value="0x0B80">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_TEST"                  count="1"  value="0x0B90">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_CLEAR_VALUE"           count="1"  value="0x0B91">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_FUNC"                  count="1"  value="0x0B92">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_VALUE_MASK"            count="1"  value="0x0B93">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_FAIL"                  count="1"  value="0x0B94">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_PASS_DEPTH_FAIL"       count="1"  value="0x0B95">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_PASS_DEPTH_PASS"       count="1"  value="0x0B96">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_REF"                   count="1"  value="0x0B97">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_WRITEMASK"             count="1"  value="0x0B98">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MATRIX_MODE"                   count="1"  value="0x0BA0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="NORMALIZE"                     count="1"  value="0x0BA1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VIEWPORT"                      count="4"  value="0x0BA2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW_STACK_DEPTH"         count="1"  value="0x0BA3">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROJECTION_STACK_DEPTH"        count="1"  value="0x0BA4">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_STACK_DEPTH"           count="1"  value="0x0BA5">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW_MATRIX"              count="16" value="0x0BA6">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROJECTION_MATRIX"             count="16" value="0x0BA7">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_MATRIX"                count="16" value="0x0BA8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ATTRIB_STACK_DEPTH"            count="1"  value="0x0BB0">
+        <size name="Get" mode="get"/>
     </enum>
-    <enum name="DEPTH_RANGE"                              value="0x0B70"/>
-    <enum name="DEPTH_TEST"                               value="0x0B71"/>
-    <enum name="DEPTH_WRITEMASK"                          value="0x0B72"/>
-    <enum name="DEPTH_CLEAR_VALUE"                        value="0x0B73"/>
-    <enum name="DEPTH_FUNC"                               value="0x0B74"/>
-    <enum name="ACCUM_CLEAR_VALUE"                        value="0x0B80"/>
-    <enum name="STENCIL_TEST"                             value="0x0B90"/>
-    <enum name="STENCIL_CLEAR_VALUE"                      value="0x0B91"/>
-    <enum name="STENCIL_FUNC"                             value="0x0B92"/>
-    <enum name="STENCIL_VALUE_MASK"                       value="0x0B93"/>
-    <enum name="STENCIL_FAIL"                             value="0x0B94"/>
-    <enum name="STENCIL_PASS_DEPTH_FAIL"                  value="0x0B95"/>
-    <enum name="STENCIL_PASS_DEPTH_PASS"                  value="0x0B96"/>
-    <enum name="STENCIL_REF"                              value="0x0B97"/>
-    <enum name="STENCIL_WRITEMASK"                        value="0x0B98"/>
-    <enum name="MATRIX_MODE"                              value="0x0BA0"/>
-    <enum name="NORMALIZE"                                value="0x0BA1"/>
-    <enum name="VIEWPORT"                                 value="0x0BA2"/>
-    <enum name="MODELVIEW_STACK_DEPTH"                    value="0x0BA3"/>
-    <enum name="PROJECTION_STACK_DEPTH"                   value="0x0BA4"/>
-    <enum name="TEXTURE_STACK_DEPTH"                      value="0x0BA5"/>
-    <enum name="MODELVIEW_MATRIX"                         value="0x0BA6"/>
-    <enum name="PROJECTION_MATRIX"                        value="0x0BA7"/>
-    <enum name="TEXTURE_MATRIX"                           value="0x0BA8"/>
-    <enum name="ATTRIB_STACK_DEPTH"                       value="0x0BB0"/>
     <enum name="CLIENT_ATTRIB_STACK_DEPTH"                value="0x0BB1"/>
-    <enum name="ALPHA_TEST"                               value="0x0BC0"/>
-    <enum name="ALPHA_TEST_FUNC"                          value="0x0BC1"/>
-    <enum name="ALPHA_TEST_REF"                           value="0x0BC2"/>
-    <enum name="DITHER"                                   value="0x0BD0"/>
-    <enum name="BLEND_DST"                                value="0x0BE0"/>
-    <enum name="BLEND_SRC"                                value="0x0BE1"/>
-    <enum name="BLEND"                                    value="0x0BE2"/>
-    <enum name="LOGIC_OP_MODE"                            value="0x0BF0"/>
-    <enum name="LOGIC_OP"                                 value="0x0BF1"/>
-    <enum name="AUX_BUFFERS"                              value="0x0C00"/>
-    <enum name="DRAW_BUFFER"                              value="0x0C01"/>
-    <enum name="READ_BUFFER"                              value="0x0C02"/>
-    <enum name="SCISSOR_BOX"                              value="0x0C10"/>
-    <enum name="SCISSOR_TEST"                             value="0x0C11"/>
-    <enum name="INDEX_CLEAR_VALUE"                        value="0x0C20"/>
-    <enum name="INDEX_WRITEMASK"                          value="0x0C21"/>
-    <enum name="COLOR_CLEAR_VALUE"                        value="0x0C22"/>
-    <enum name="COLOR_WRITEMASK"                          value="0x0C23"/>
-    <enum name="INDEX_MODE"                               value="0x0C30"/>
-    <enum name="RGBA_MODE"                                value="0x0C31"/>
-    <enum name="DOUBLEBUFFER"                             value="0x0C32"/>
-    <enum name="STEREO"                                   value="0x0C33"/>
-    <enum name="RENDER_MODE"                              value="0x0C40"/>
-    <enum name="PERSPECTIVE_CORRECTION_HINT"              value="0x0C50"/>
-    <enum name="POINT_SMOOTH_HINT"                        value="0x0C51"/>
-    <enum name="LINE_SMOOTH_HINT"                         value="0x0C52"/>
-    <enum name="POLYGON_SMOOTH_HINT"                      value="0x0C53"/>
-    <enum name="FOG_HINT"                                 value="0x0C54"/>
-    <enum name="TEXTURE_GEN_S"                            value="0x0C60"/>
-    <enum name="TEXTURE_GEN_T"                            value="0x0C61"/>
-    <enum name="TEXTURE_GEN_R"                            value="0x0C62"/>
-    <enum name="TEXTURE_GEN_Q"                            value="0x0C63"/>
-    <enum name="PIXEL_MAP_I_TO_I"                         value="0x0C70"/>
+    <enum name="ALPHA_TEST"                    count="1"  value="0x0BC0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ALPHA_TEST_FUNC"               count="1"  value="0x0BC1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ALPHA_TEST_REF"                count="1"  value="0x0BC2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DITHER"                        count="1"  value="0x0BD0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLEND_DST"                     count="1"  value="0x0BE0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLEND_SRC"                     count="1"  value="0x0BE1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLEND"                         count="1"  value="0x0BE2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LOGIC_OP_MODE"                 count="1"  value="0x0BF0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LOGIC_OP"                      count="1"  value="0x0BF1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="AUX_BUFFERS"                   count="1"  value="0x0C00">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER"                   count="1"  value="0x0C01">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="READ_BUFFER"                   count="1"  value="0x0C02">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SCISSOR_BOX"                   count="4"  value="0x0C10">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SCISSOR_TEST"                  count="1"  value="0x0C11">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_CLEAR_VALUE"             count="1"  value="0x0C20">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_WRITEMASK"               count="1"  value="0x0C21">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_CLEAR_VALUE"             count="4"  value="0x0C22">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_WRITEMASK"               count="4"  value="0x0C23">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_MODE"                    count="1"  value="0x0C30">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="RGBA_MODE"                     count="1"  value="0x0C31">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DOUBLEBUFFER"                  count="1"  value="0x0C32">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STEREO"                        count="1"  value="0x0C33">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="RENDER_MODE"                   count="1"  value="0x0C40">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PERSPECTIVE_CORRECTION_HINT"   count="1"  value="0x0C50">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POINT_SMOOTH_HINT"             count="1"  value="0x0C51">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LINE_SMOOTH_HINT"              count="1"  value="0x0C52">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POLYGON_SMOOTH_HINT"           count="1"  value="0x0C53">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_HINT"                      count="1"  value="0x0C54">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_GEN_S"                 count="1"  value="0x0C60">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_GEN_T"                 count="1"  value="0x0C61">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_GEN_R"                 count="1"  value="0x0C62">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_GEN_Q"                 count="1"  value="0x0C63">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_I_TO_I"              count="1"  value="0x0C70">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="PIXEL_MAP_S_TO_S"                         value="0x0C71"/>
     <enum name="PIXEL_MAP_I_TO_R"                         value="0x0C72"/>
     <enum name="PIXEL_MAP_I_TO_G"                         value="0x0C73"/>
@@ -338,163 +546,334 @@ glx:
     <enum name="PIXEL_MAP_G_TO_G"                         value="0x0C77"/>
     <enum name="PIXEL_MAP_B_TO_B"                         value="0x0C78"/>
     <enum name="PIXEL_MAP_A_TO_A"                         value="0x0C79"/>
-    <enum name="PIXEL_MAP_I_TO_I_SIZE"                    value="0x0CB0"/>
-    <enum name="PIXEL_MAP_S_TO_S_SIZE"                    value="0x0CB1"/>
-    <enum name="PIXEL_MAP_I_TO_R_SIZE"                    value="0x0CB2"/>
-    <enum name="PIXEL_MAP_I_TO_G_SIZE"                    value="0x0CB3"/>
-    <enum name="PIXEL_MAP_I_TO_B_SIZE"                    value="0x0CB4"/>
-    <enum name="PIXEL_MAP_I_TO_A_SIZE"                    value="0x0CB5"/>
-    <enum name="PIXEL_MAP_R_TO_R_SIZE"                    value="0x0CB6"/>
-    <enum name="PIXEL_MAP_G_TO_G_SIZE"                    value="0x0CB7"/>
-    <enum name="PIXEL_MAP_B_TO_B_SIZE"                    value="0x0CB8"/>
-    <enum name="PIXEL_MAP_A_TO_A_SIZE"                    value="0x0CB9"/>
-    <enum name="UNPACK_SWAP_BYTES"                        value="0x0CF0"/>
-    <enum name="UNPACK_LSB_FIRST"                         value="0x0CF1"/>
-    <enum name="UNPACK_ROW_LENGTH"                        value="0x0CF2"/>
-    <enum name="UNPACK_SKIP_PIXELS"                       value="0x0CF4"/>
-    <enum name="UNPACK_SKIP_ROWS"                         value="0x0CF3"/>
-    <enum name="UNPACK_ALIGNMENT"                         value="0x0CF5"/>
-    <enum name="PACK_SWAP_BYTES"                          value="0x0D00"/>
-    <enum name="PACK_LSB_FIRST"                           value="0x0D01"/>
-    <enum name="PACK_ROW_LENGTH"                          value="0x0D02"/>
-    <enum name="PACK_SKIP_ROWS"                           value="0x0D03"/>
-    <enum name="PACK_SKIP_PIXELS"                         value="0x0D04"/>
-    <enum name="PACK_ALIGNMENT"                           value="0x0D05"/>
-    <enum name="MAP_COLOR"                                value="0x0D10"/>
-    <enum name="MAP_STENCIL"                              value="0x0D11"/>
-    <enum name="INDEX_SHIFT"                              value="0x0D12"/>
-    <enum name="INDEX_OFFSET"                             value="0x0D13"/>
-    <enum name="RED_SCALE"                                value="0x0D14"/>
-    <enum name="RED_BIAS"                                 value="0x0D15"/>
-    <enum name="ZOOM_X"                                   value="0x0D16"/>
-    <enum name="ZOOM_Y"                                   value="0x0D17"/>
-    <enum name="GREEN_SCALE"                              value="0x0D18"/>
-    <enum name="GREEN_BIAS"                               value="0x0D19"/>
-    <enum name="BLUE_SCALE"                               value="0x0D1A"/>
-    <enum name="BLUE_BIAS"                                value="0x0D1B"/>
+    <enum name="PIXEL_MAP_I_TO_I_SIZE"         count="1"  value="0x0CB0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_S_TO_S_SIZE"         count="1"  value="0x0CB1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_I_TO_R_SIZE"         count="1"  value="0x0CB2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_I_TO_G_SIZE"         count="1"  value="0x0CB3">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_I_TO_B_SIZE"         count="1"  value="0x0CB4">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_I_TO_A_SIZE"         count="1"  value="0x0CB5">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_R_TO_R_SIZE"         count="1"  value="0x0CB6">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_G_TO_G_SIZE"         count="1"  value="0x0CB7">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_B_TO_B_SIZE"         count="1"  value="0x0CB8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PIXEL_MAP_A_TO_A_SIZE"         count="1"  value="0x0CB9">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_SWAP_BYTES"             count="1"  value="0x0CF0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_LSB_FIRST"              count="1"  value="0x0CF1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_ROW_LENGTH"             count="1"  value="0x0CF2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_SKIP_PIXELS"            count="1"  value="0x0CF4">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_SKIP_ROWS"              count="1"  value="0x0CF3">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_ALIGNMENT"              count="1"  value="0x0CF5">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_SWAP_BYTES"               count="1"  value="0x0D00">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_LSB_FIRST"                count="1"  value="0x0D01">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_ROW_LENGTH"               count="1"  value="0x0D02">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_SKIP_ROWS"                count="1"  value="0x0D03">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_SKIP_PIXELS"              count="1"  value="0x0D04">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_ALIGNMENT"                count="1"  value="0x0D05">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAP_COLOR"                     count="1"  value="0x0D10">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAP_STENCIL"                   count="1"  value="0x0D11">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_SHIFT"                   count="1"  value="0x0D12">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_OFFSET"                  count="1"  value="0x0D13">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="RED_SCALE"                     count="1"  value="0x0D14">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="RED_BIAS"                      count="1"  value="0x0D15">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ZOOM_X"                        count="1"  value="0x0D16">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ZOOM_Y"                        count="1"  value="0x0D17">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="GREEN_SCALE"                   count="1"  value="0x0D18">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="GREEN_BIAS"                    count="1"  value="0x0D19">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLUE_SCALE"                    count="1"  value="0x0D1A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLUE_BIAS"                     count="1"  value="0x0D1B">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="ALPHA_SCALE"                   count="1"  value="0x0D1C">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ALPHA_BIAS"                    count="1"  value="0x0D1D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_SCALE"                   count="1"  value="0x0D1E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_BIAS"                    count="1"  value="0x0D1F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_EVAL_ORDER"                count="1"  value="0x0D30">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_LIGHTS"                    count="1"  value="0x0D31">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_CLIP_PLANES"               count="1"  value="0x0D32">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_SIZE"              count="1"  value="0x0D33">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_PIXEL_MAP_TABLE"           count="1"  value="0x0D34">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_ATTRIB_STACK_DEPTH"        count="1"  value="0x0D35">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_MODELVIEW_STACK_DEPTH"     count="1"  value="0x0D36">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_NAME_STACK_DEPTH"          count="1"  value="0x0D37">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_PROJECTION_STACK_DEPTH"    count="1"  value="0x0D38">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_STACK_DEPTH"       count="1"  value="0x0D39">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_VIEWPORT_DIMS"             count="2"  value="0x0D3A">
+        <size name="Get" mode="get"/>
     </enum>
-    <enum name="ALPHA_BIAS"                               value="0x0D1D"/>
-    <enum name="DEPTH_SCALE"                              value="0x0D1E"/>
-    <enum name="DEPTH_BIAS"                               value="0x0D1F"/>
-    <enum name="MAX_EVAL_ORDER"                           value="0x0D30"/>
-    <enum name="MAX_LIGHTS"                               value="0x0D31"/>
-    <enum name="MAX_CLIP_PLANES"                          value="0x0D32"/>
-    <enum name="MAX_TEXTURE_SIZE"                         value="0x0D33"/>
-    <enum name="MAX_PIXEL_MAP_TABLE"                      value="0x0D34"/>
-    <enum name="MAX_ATTRIB_STACK_DEPTH"                   value="0x0D35"/>
-    <enum name="MAX_MODELVIEW_STACK_DEPTH"                value="0x0D36"/>
-    <enum name="MAX_NAME_STACK_DEPTH"                     value="0x0D37"/>
-    <enum name="MAX_PROJECTION_STACK_DEPTH"               value="0x0D38"/>
-    <enum name="MAX_TEXTURE_STACK_DEPTH"                  value="0x0D39"/>
-    <enum name="MAX_VIEWPORT_DIMS"                        value="0x0D3A"/>
     <enum name="MAX_CLIENT_ATTRIB_STACK_DEPTH"            value="0x0D3B"/>
-    <enum name="SUBPIXEL_BITS"                            value="0x0D50"/>
-    <enum name="INDEX_BITS"                               value="0x0D51"/>
-    <enum name="RED_BITS"                                 value="0x0D52"/>
-    <enum name="GREEN_BITS"                               value="0x0D53"/>
-    <enum name="BLUE_BITS"                                value="0x0D54"/>
-    <enum name="ALPHA_BITS"                               value="0x0D55"/>
-    <enum name="DEPTH_BITS"                               value="0x0D56"/>
-    <enum name="STENCIL_BITS"                             value="0x0D57"/>
-    <enum name="ACCUM_RED_BITS"                           value="0x0D58"/>
-    <enum name="ACCUM_GREEN_BITS"                         value="0x0D59"/>
-    <enum name="ACCUM_BLUE_BITS"                          value="0x0D5A"/>
-    <enum name="ACCUM_ALPHA_BITS"                         value="0x0D5B"/>
-    <enum name="NAME_STACK_DEPTH"                         value="0x0D70"/>
-    <enum name="AUTO_NORMAL"                              value="0x0D80"/>
+    <enum name="SUBPIXEL_BITS"                 count="1"  value="0x0D50">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_BITS"                    count="1"  value="0x0D51">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="RED_BITS"                      count="1"  value="0x0D52">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="GREEN_BITS"                    count="1"  value="0x0D53">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLUE_BITS"                     count="1"  value="0x0D54">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ALPHA_BITS"                    count="1"  value="0x0D55">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_BITS"                    count="1"  value="0x0D56">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="STENCIL_BITS"                  count="1"  value="0x0D57">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ACCUM_RED_BITS"                count="1"  value="0x0D58">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ACCUM_GREEN_BITS"              count="1"  value="0x0D59">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ACCUM_BLUE_BITS"               count="1"  value="0x0D5A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ACCUM_ALPHA_BITS"              count="1"  value="0x0D5B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="NAME_STACK_DEPTH"              count="1"  value="0x0D70">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="AUTO_NORMAL"                   count="1"  value="0x0D80">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="MAP1_COLOR_4"                  count="4"  value="0x0D90">
         <size name="Map1d"/>
         <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP1_INDEX"                    count="1"  value="0x0D91">
         <size name="Map1d"/>
         <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP1_NORMAL"                   count="3"  value="0x0D92">
         <size name="Map1d"/>
         <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP1_TEXTURE_COORD_1"          count="1"  value="0x0D93">
         <size name="Map1d"/>
         <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP1_TEXTURE_COORD_2"          count="2"  value="0x0D94">
         <size name="Map1d"/>
         <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP1_TEXTURE_COORD_3"          count="3"  value="0x0D95">
         <size name="Map1d"/>
         <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP1_TEXTURE_COORD_4"          count="4"  value="0x0D96">
         <size name="Map1d"/>
         <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP1_VERTEX_3"                 count="3"  value="0x0D97">
         <size name="Map1d"/>
         <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP1_VERTEX_4"                 count="4"  value="0x0D98">
         <size name="Map1d"/>
         <size name="Map1f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP2_COLOR_4"                  count="4"  value="0x0DB0">
         <size name="Map2d"/>
         <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP2_INDEX"                    count="1"  value="0x0DB1">
         <size name="Map2d"/>
         <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP2_NORMAL"                   count="3"  value="0x0DB2">
         <size name="Map2d"/>
         <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP2_TEXTURE_COORD_1"          count="1"  value="0x0DB3">
         <size name="Map2d"/>
         <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP2_TEXTURE_COORD_2"          count="2"  value="0x0DB4">
         <size name="Map2d"/>
         <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP2_TEXTURE_COORD_3"          count="3"  value="0x0DB5">
         <size name="Map2d"/>
         <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP2_TEXTURE_COORD_4"          count="4"  value="0x0DB6">
         <size name="Map2d"/>
         <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP2_VERTEX_3"                 count="3"  value="0x0DB7">
         <size name="Map2d"/>
         <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
     </enum>
     <enum name="MAP2_VERTEX_4"                 count="4"  value="0x0DB8">
         <size name="Map2d"/>
         <size name="Map2f"/>
+        <size name="Get" count="1" mode="get"/>
+    </enum>
+    <enum name="MAP1_GRID_DOMAIN"              count="2"  value="0x0DD0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAP1_GRID_SEGMENTS"            count="1"  value="0x0DD1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAP2_GRID_DOMAIN"              count="4"  value="0x0DD2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAP2_GRID_SEGMENTS"            count="2"  value="0x0DD3">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_1D"                    count="1"  value="0x0DE0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_2D"                    count="1"  value="0x0DE1">
+        <size name="Get" mode="get"/>
     </enum>
-    <enum name="MAP1_GRID_DOMAIN"                         value="0x0DD0"/>
-    <enum name="MAP1_GRID_SEGMENTS"                       value="0x0DD1"/>
-    <enum name="MAP2_GRID_DOMAIN"                         value="0x0DD2"/>
-    <enum name="MAP2_GRID_SEGMENTS"                       value="0x0DD3"/>
-    <enum name="TEXTURE_1D"                               value="0x0DE0"/>
-    <enum name="TEXTURE_2D"                               value="0x0DE1"/>
     <enum name="FEEDBACK_BUFFER_POINTER"                  value="0x0DF0"/>
     <enum name="FEEDBACK_BUFFER_SIZE"                     value="0x0DF1"/>
     <enum name="FEEDBACK_BUFFER_TYPE"                     value="0x0DF2"/>
     <enum name="SELECTION_BUFFER_POINTER"                 value="0x0DF3"/>
     <enum name="SELECTION_BUFFER_SIZE"                    value="0x0DF4"/>
-    <enum name="TEXTURE_WIDTH"                            value="0x1000"/>
-    <enum name="TEXTURE_HEIGHT"                           value="0x1001"/>
-    <enum name="TEXTURE_BORDER"                           value="0x1005"/>
-    <enum name="TEXTURE_COMPONENTS"                       value="0x1003"/>
+    <enum name="TEXTURE_WIDTH"                 count="1"  value="0x1000">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_HEIGHT"                count="1"  value="0x1001">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BORDER"                count="1"  value="0x1005">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPONENTS"            count="1"  value="0x1003">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
     <enum name="TEXTURE_BORDER_COLOR"          count="4"  value="0x1004">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="DONT_CARE"                                value="0x1100"/>
     <enum name="FASTEST"                                  value="0x1101"/>
@@ -504,46 +883,72 @@ glx:
         <size name="Materialiv"/>
         <size name="Lightfv"/>
         <size name="Lightiv"/>
+        <size name="GetMaterialfv" mode="get"/>
+        <size name="GetMaterialiv" mode="get"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
     </enum>
     <enum name="DIFFUSE"                       count="4"  value="0x1201">
         <size name="Materialfv"/>
         <size name="Materialiv"/>
         <size name="Lightfv"/>
         <size name="Lightiv"/>
+        <size name="GetMaterialfv" mode="get"/>
+        <size name="GetMaterialiv" mode="get"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
     </enum>
     <enum name="SPECULAR"                      count="4"  value="0x1202">
         <size name="Materialfv"/>
         <size name="Materialiv"/>
         <size name="Lightfv"/>
         <size name="Lightiv"/>
+        <size name="GetMaterialfv" mode="get"/>
+        <size name="GetMaterialiv" mode="get"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
     </enum>
     <enum name="POSITION"                      count="4"  value="0x1203">
         <size name="Lightfv"/>
         <size name="Lightiv"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
     </enum>
     <enum name="SPOT_DIRECTION"                count="3"  value="0x1204">
         <size name="Lightfv"/>
         <size name="Lightiv"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
     </enum>
     <enum name="SPOT_EXPONENT"                 count="1"  value="0x1205">
         <size name="Lightfv"/>
         <size name="Lightiv"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
     </enum>
     <enum name="SPOT_CUTOFF"                   count="1"  value="0x1206">
         <size name="Lightfv"/>
         <size name="Lightiv"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
     </enum>
     <enum name="CONSTANT_ATTENUATION"          count="1"  value="0x1207">
         <size name="Lightfv"/>
         <size name="Lightiv"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
     </enum>
     <enum name="LINEAR_ATTENUATION"            count="1"  value="0x1208">
         <size name="Lightfv"/>
         <size name="Lightiv"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
     </enum>
     <enum name="QUADRATIC_ATTENUATION"         count="1"  value="0x1209">
         <size name="Lightfv"/>
         <size name="Lightiv"/>
+        <size name="GetLightfv" mode="get"/>
+        <size name="GetLightiv" mode="get"/>
     </enum>
     <enum name="COMPILE"                                  value="0x1300"/>
     <enum name="COMPILE_AND_EXECUTE"                      value="0x1301"/>
@@ -596,18 +1001,26 @@ glx:
     <enum name="EMISSION"                      count="4"  value="0x1600">
         <size name="Materialfv"/>
         <size name="Materialiv"/>
+        <size name="GetMaterialfv" mode="get"/>
+        <size name="GetMaterialiv" mode="get"/>
     </enum>
     <enum name="SHININESS"                     count="1"  value="0x1601">
         <size name="Materialfv"/>
         <size name="Materialiv"/>
+        <size name="GetMaterialfv" mode="get"/>
+        <size name="GetMaterialiv" mode="get"/>
     </enum>
     <enum name="AMBIENT_AND_DIFFUSE"           count="4"  value="0x1602">
         <size name="Materialfv"/>
         <size name="Materialiv"/>
+        <size name="GetMaterialfv" mode="get"/>
+        <size name="GetMaterialiv" mode="get"/>
     </enum>
     <enum name="COLOR_INDEXES"                 count="3"  value="0x1603">
         <size name="Materialfv"/>
         <size name="Materialiv"/>
+        <size name="GetMaterialfv" mode="get"/>
+        <size name="GetMaterialiv" mode="get"/>
     </enum>
     <enum name="MODELVIEW"                                value="0x1700"/>
     <enum name="PROJECTION"                               value="0x1701"/>
@@ -652,10 +1065,14 @@ glx:
     <enum name="TEXTURE_ENV_MODE"              count="1"  value="0x2200">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="TEXTURE_ENV_COLOR"             count="4"  value="0x2201">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="TEXTURE_ENV"                              value="0x2300"/>
     <enum name="EYE_LINEAR"                               value="0x2400"/>
@@ -665,16 +1082,25 @@ glx:
         <size name="TexGendv"/>
         <size name="TexGenfv"/>
         <size name="TexGeniv"/>
+        <size name="GetTexGendv" mode="get"/>
+        <size name="GetTexGenfv" mode="get"/>
+        <size name="GetTexGeniv" mode="get"/>
     </enum>
     <enum name="OBJECT_PLANE"                  count="4"  value="0x2501">
         <size name="TexGendv"/>
         <size name="TexGenfv"/>
         <size name="TexGeniv"/>
+        <size name="GetTexGendv" mode="get"/>
+        <size name="GetTexGenfv" mode="get"/>
+        <size name="GetTexGeniv" mode="get"/>
     </enum>
-    <enum name="EYE_PLANE"                    count="4"   value="0x2502">
+    <enum name="EYE_PLANE"                     count="4"  value="0x2502">
         <size name="TexGendv"/>
         <size name="TexGenfv"/>
         <size name="TexGeniv"/>
+        <size name="GetTexGendv" mode="get"/>
+        <size name="GetTexGenfv" mode="get"/>
+        <size name="GetTexGeniv" mode="get"/>
     </enum>
     <enum name="NEAREST"                                  value="0x2600"/>
     <enum name="LINEAR"                                   value="0x2601"/>
@@ -685,35 +1111,71 @@ glx:
     <enum name="TEXTURE_MAG_FILTER"            count="1"  value="0x2800">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_MIN_FILTER"            count="1"  value="0x2801">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_WRAP_S"                count="1"  value="0x2802">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_WRAP_T"                count="1"  value="0x2803">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="CLAMP"                                    value="0x2900"/>
     <enum name="REPEAT"                                   value="0x2901"/>
-    <enum name="CLIP_PLANE0"                              value="0x3000"/>
-    <enum name="CLIP_PLANE1"                              value="0x3001"/>
-    <enum name="CLIP_PLANE2"                              value="0x3002"/>
-    <enum name="CLIP_PLANE3"                              value="0x3003"/>
-    <enum name="CLIP_PLANE4"                              value="0x3004"/>
-    <enum name="CLIP_PLANE5"                              value="0x3005"/>
-    <enum name="LIGHT0"                                   value="0x4000"/>
-    <enum name="LIGHT1"                                   value="0x4001"/>
-    <enum name="LIGHT2"                                   value="0x4002"/>
-    <enum name="LIGHT3"                                   value="0x4003"/>
-    <enum name="LIGHT4"                                   value="0x4004"/>
-    <enum name="LIGHT5"                                   value="0x4005"/>
-    <enum name="LIGHT6"                                   value="0x4006"/>
-    <enum name="LIGHT7"                                   value="0x4007"/>
+    <enum name="CLIP_PLANE0"                   count="1"  value="0x3000">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIP_PLANE1"                   count="1"  value="0x3001">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIP_PLANE2"                   count="1"  value="0x3002">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIP_PLANE3"                   count="1"  value="0x3003">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIP_PLANE4"                   count="1"  value="0x3004">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIP_PLANE5"                   count="1"  value="0x3005">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT0"                        count="1"  value="0x4000">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT1"                        count="1"  value="0x4001">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT2"                        count="1"  value="0x4002">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT3"                        count="1"  value="0x4003">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT4"                        count="1"  value="0x4004">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT5"                        count="1"  value="0x4005">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT6"                        count="1"  value="0x4006">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="LIGHT7"                        count="1"  value="0x4007">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="CURRENT_BIT"                              value="0x00000001"/>
     <enum name="POINT_BIT"                                value="0x00000002"/>
     <enum name="LINE_BIT"                                 value="0x00000004"/>
@@ -760,7 +1222,7 @@ glx:
     <function name="NewList" offset="0">
         <param name="list" type="GLuint"/>
         <param name="mode" type="GLenum"/>
-        <glx sop="101"/>
+        <glx sop="101" note_unflushed="true"/>
     </function>
 
     <function name="EndList" offset="1">
@@ -773,7 +1235,7 @@ glx:
     </function>
 
     <function name="CallLists" offset="3">
-        <param name="n" type="GLsizei"/>
+        <param name="n" type="GLsizei" counter="true"/>
         <param name="type" type="GLenum"/>
         <param name="lists" type="const GLvoid *" variable_param="type" count="n"/>
         <glx rop="2" large="true"/>
@@ -782,7 +1244,7 @@ glx:
     <function name="DeleteLists" offset="4">
         <param name="list" type="GLuint"/>
         <param name="range" type="GLsizei"/>
-        <glx sop="103"/>
+        <glx sop="103" note_unflushed="true"/>
     </function>
 
     <function name="GenLists" offset="5">
@@ -1993,12 +2455,12 @@ glx:
 
     <function name="Disable" offset="214">
         <param name="cap" type="GLenum"/>
-        <glx rop="138" handcode="true"/>
+        <glx rop="138" handcode="client"/>
     </function>
 
     <function name="Enable" offset="215">
         <param name="cap" type="GLenum"/>
-        <glx rop="139" handcode="true"/>
+        <glx rop="139" handcode="client"/>
     </function>
 
     <function name="Finish" offset="216">
@@ -2222,13 +2684,13 @@ glx:
     <function name="PixelStoref" offset="249">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
-        <glx sop="109" handcode="true"/>
+        <glx sop="109" handcode="client" note_unflushed="true"/>
     </function>
 
     <function name="PixelStorei" offset="250">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
-        <glx sop="110" handcode="true"/>
+        <glx sop="110" handcode="client" note_unflushed="true"/>
     </function>
 
     <function name="PixelMapfv" offset="251">
@@ -2273,8 +2735,8 @@ glx:
         <param name="height" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="GLvoid *" output="true"/>
-        <glx sop="111" handcode="true"/>
+        <param name="pixels" type="GLvoid *" output="true"  img_width="width" img_height="height" img_format="format" img_type="type" img_target="0"/>
+        <glx sop="111"/>
     </function>
 
     <function name="DrawPixels" offset="257">
@@ -2288,109 +2750,109 @@ glx:
 
     <function name="GetBooleanv" offset="258">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLboolean *" output="true"/>
-        <glx sop="112" handcode="true"/>
+        <param name="params" type="GLboolean *" output="true" variable_param="pname"/>
+        <glx sop="112" handcode="client"/>
     </function>
 
     <function name="GetClipPlane" offset="259">
         <param name="plane" type="GLenum"/>
-        <param name="equation" type="GLdouble *" output="true"/>
+        <param name="equation" type="GLdouble *" output="true" count="4"/>
         <glx sop="113" always_array="true"/>
     </function>
 
     <function name="GetDoublev" offset="260">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLdouble *" output="true"/>
-        <glx sop="114" handcode="true"/>
+        <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
+        <glx sop="114" handcode="client"/>
     </function>
 
     <function name="GetError" offset="261">
         <return type="GLenum"/>
-        <glx sop="115" handcode="true"/>
+        <glx sop="115" handcode="client"/>
     </function>
 
     <function name="GetFloatv" offset="262">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-        <glx sop="116" handcode="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx sop="116" handcode="client"/>
     </function>
 
     <function name="GetIntegerv" offset="263">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-        <glx sop="117" handcode="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="117" handcode="client"/>
     </function>
 
     <function name="GetLightfv" offset="264">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="118"/>
     </function>
 
     <function name="GetLightiv" offset="265">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="119"/>
     </function>
 
     <function name="GetMapdv" offset="266">
         <param name="target" type="GLenum"/>
         <param name="query" type="GLenum"/>
-        <param name="v" type="GLdouble *" output="true"/>
+        <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"/>
+        <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"/>
+        <param name="v" type="GLint *" output="true" variable_param="target, query"/>
         <glx sop="122"/>
     </function>
 
     <function name="GetMaterialfv" offset="269">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="123"/>
     </function>
 
     <function name="GetMaterialiv" offset="270">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="124"/>
     </function>
 
     <function name="GetPixelMapfv" offset="271">
         <param name="map" type="GLenum"/>
-        <param name="values" type="GLfloat *" output="true"/>
+        <param name="values" type="GLfloat *" output="true" variable_param="map"/>
         <glx sop="125"/>
     </function>
 
     <function name="GetPixelMapuiv" offset="272">
         <param name="map" type="GLenum"/>
-        <param name="values" type="GLuint *" output="true"/>
+        <param name="values" type="GLuint *" output="true" variable_param="map"/>
         <glx sop="126"/>
     </function>
 
     <function name="GetPixelMapusv" offset="273">
         <param name="map" type="GLenum"/>
-        <param name="values" type="GLushort *" output="true"/>
+        <param name="values" type="GLushort *" output="true" variable_param="map"/>
         <glx sop="127"/>
     </function>
 
     <function name="GetPolygonStipple" offset="274">
-        <param name="mask" type="GLubyte *" output="true"/>
-        <glx sop="128" handcode="true"/>
+        <param name="mask" type="GLubyte *" output="true" img_width="32" img_height="32" img_format="GL_COLOR_INDEX" img_type="GL_BITMAP"/>
+        <glx sop="128"/>
     </function>
 
     <function name="GetString" offset="275">
@@ -2402,35 +2864,35 @@ glx:
     <function name="GetTexEnvfv" offset="276">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="130"/>
     </function>
 
     <function name="GetTexEnviv" offset="277">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="131"/>
     </function>
 
     <function name="GetTexGendv" offset="278">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLdouble *" output="true"/>
+        <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
         <glx sop="132"/>
     </function>
 
     <function name="GetTexGenfv" offset="279">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="133"/>
     </function>
 
     <function name="GetTexGeniv" offset="280">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="134"/>
     </function>
 
@@ -2439,21 +2901,21 @@ glx:
         <param name="level" type="GLint"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="pixels" type="GLvoid *" output="true"/>
-        <glx sop="135" handcode="true"/>
+        <param name="pixels" type="GLvoid *" output="true" img_width="width" img_height="height" img_depth="depth" img_format="format" img_type="type"/>
+        <glx sop="135" dimensions_in_reply="true"/>
     </function>
 
     <function name="GetTexParameterfv" offset="282">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="136"/>
     </function>
 
     <function name="GetTexParameteriv" offset="283">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="137"/>
     </function>
 
@@ -2461,7 +2923,7 @@ glx:
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="138"/>
     </function>
 
@@ -2469,14 +2931,14 @@ glx:
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="139"/>
     </function>
 
     <function name="IsEnabled" offset="286">
         <param name="cap" type="GLenum"/>
         <return type="GLboolean"/>
-        <glx sop="140" handcode="true"/>
+        <glx sop="140" handcode="client"/>
     </function>
 
     <function name="IsList" offset="287">
@@ -2606,7 +3068,9 @@ glx:
     <enum name="COLOR_LOGIC_OP"                           value="0x0BF2"/>
     <enum name="TEXTURE_INTERNAL_FORMAT"                  value="0x1003"/>
     <enum name="DOUBLE"                                   value="0x140A"/>
-    <enum name="POLYGON_OFFSET_UNITS"                     value="0x2A00"/>
+    <enum name="POLYGON_OFFSET_UNITS"          count="1"  value="0x2A00">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="POLYGON_OFFSET_POINT"                     value="0x2A01"/>
     <enum name="POLYGON_OFFSET_LINE"                      value="0x2A02"/>
     <enum name="R3_G3_B2"                                 value="0x2A10"/>
@@ -2625,7 +3089,9 @@ glx:
     <enum name="T2F_C4F_N3F_V3F"                          value="0x2A2C"/>
     <enum name="T4F_C4F_N3F_V4F"                          value="0x2A2D"/>
     <enum name="POLYGON_OFFSET_FILL"                      value="0x8037"/>
-    <enum name="POLYGON_OFFSET_FACTOR"                    value="0x8038"/>
+    <enum name="POLYGON_OFFSET_FACTOR"         count="1"  value="0x8038">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="POLYGON_OFFSET_BIAS"                      value="0x8039"/>
     <enum name="ALPHA4"                                   value="0x803B"/>
     <enum name="ALPHA8"                                   value="0x803C"/>
@@ -2659,50 +3125,108 @@ glx:
     <enum name="RGB10_A2"                                 value="0x8059"/>
     <enum name="RGBA12"                                   value="0x805A"/>
     <enum name="RGBA16"                                   value="0x805B"/>
-    <enum name="TEXTURE_RED_SIZE"                         value="0x805C"/>
-    <enum name="TEXTURE_GREEN_SIZE"                       value="0x805D"/>
-    <enum name="TEXTURE_BLUE_SIZE"                        value="0x805E"/>
-    <enum name="TEXTURE_ALPHA_SIZE"                       value="0x805F"/>
-    <enum name="TEXTURE_LUMINANCE_SIZE"                   value="0x8060"/>
-    <enum name="TEXTURE_INTENSITY_SIZE"                   value="0x8061"/>
+    <enum name="TEXTURE_RED_SIZE"              count="1"  value="0x805C">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_GREEN_SIZE"            count="1"  value="0x805D">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BLUE_SIZE"             count="1"  value="0x805E">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_ALPHA_SIZE"            count="1"  value="0x805F">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_LUMINANCE_SIZE"        count="1"  value="0x8060">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_INTENSITY_SIZE"        count="1"  value="0x8061">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
     <enum name="PROXY_TEXTURE_1D"                         value="0x8063"/>
     <enum name="PROXY_TEXTURE_2D"                         value="0x8064"/>
     <enum name="TEXTURE_PRIORITY"              count="1"  value="0x8066">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_RESIDENT"              count="1"  value="0x8067">
-        <size name="TexParameterfv"/>
-        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BINDING_1D"            count="1"  value="0x8068">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BINDING_2D"            count="1"  value="0x8069">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ARRAY"                  count="1"  value="0x8074">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="NORMAL_ARRAY"                  count="1"  value="0x8075">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_ARRAY"                   count="1"  value="0x8076">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_ARRAY"                   count="1"  value="0x8077">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COORD_ARRAY"           count="1"  value="0x8078">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="EDGE_FLAG_ARRAY"               count="1"  value="0x8079">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ARRAY_SIZE"             count="1"  value="0x807A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ARRAY_TYPE"             count="1"  value="0x807B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ARRAY_STRIDE"           count="1"  value="0x807C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="NORMAL_ARRAY_TYPE"             count="1"  value="0x807E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="NORMAL_ARRAY_STRIDE"           count="1"  value="0x807F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_ARRAY_SIZE"              count="1"  value="0x8081">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_ARRAY_TYPE"              count="1"  value="0x8082">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_ARRAY_STRIDE"            count="1"  value="0x8083">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_ARRAY_TYPE"              count="1"  value="0x8085">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="INDEX_ARRAY_STRIDE"            count="1"  value="0x8086">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COORD_ARRAY_SIZE"      count="1"  value="0x8088">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COORD_ARRAY_TYPE"      count="1"  value="0x8089">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COORD_ARRAY_STRIDE"    count="1"  value="0x808A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="EDGE_FLAG_ARRAY_STRIDE"        count="1"  value="0x808C">
+        <size name="Get" mode="get"/>
     </enum>
-    <enum name="TEXTURE_BINDING_1D"                       value="0x8068"/>
-    <enum name="TEXTURE_BINDING_2D"                       value="0x8069"/>
-    <enum name="VERTEX_ARRAY"                             value="0x8074"/>
-    <enum name="NORMAL_ARRAY"                             value="0x8075"/>
-    <enum name="COLOR_ARRAY"                              value="0x8076"/>
-    <enum name="INDEX_ARRAY"                              value="0x8077"/>
-    <enum name="TEXTURE_COORD_ARRAY"                      value="0x8078"/>
-    <enum name="EDGE_FLAG_ARRAY"                          value="0x8079"/>
-    <enum name="VERTEX_ARRAY_SIZE"                        value="0x807A"/>
-    <enum name="VERTEX_ARRAY_TYPE"                        value="0x807B"/>
-    <enum name="VERTEX_ARRAY_STRIDE"                      value="0x807C"/>
-    <enum name="VERTEX_ARRAY_COUNT"                       value="0x807D"/>
-    <enum name="NORMAL_ARRAY_TYPE"                        value="0x807E"/>
-    <enum name="NORMAL_ARRAY_STRIDE"                      value="0x807F"/>
-    <enum name="NORMAL_ARRAY_COUNT"                       value="0x8080"/>
-    <enum name="COLOR_ARRAY_SIZE"                         value="0x8081"/>
-    <enum name="COLOR_ARRAY_TYPE"                         value="0x8082"/>
-    <enum name="COLOR_ARRAY_STRIDE"                       value="0x8083"/>
-    <enum name="COLOR_ARRAY_COUNT"                        value="0x8084"/>
-    <enum name="INDEX_ARRAY_TYPE"                         value="0x8085"/>
-    <enum name="INDEX_ARRAY_STRIDE"                       value="0x8086"/>
-    <enum name="INDEX_ARRAY_COUNT"                        value="0x8087"/>
-    <enum name="TEXTURE_COORD_ARRAY_SIZE"                 value="0x8088"/>
-    <enum name="TEXTURE_COORD_ARRAY_TYPE"                 value="0x8089"/>
-    <enum name="TEXTURE_COORD_ARRAY_STRIDE"               value="0x808A"/>
-    <enum name="TEXTURE_COORD_ARRAY_COUNT"                value="0x808B"/>
-    <enum name="EDGE_FLAG_ARRAY_STRIDE"                   value="0x808C"/>
-    <enum name="EDGE_FLAG_ARRAY_COUNT"                    value="0x808D"/>
     <enum name="VERTEX_ARRAY_POINTER"                     value="0x808E"/>
     <enum name="NORMAL_ARRAY_POINTER"                     value="0x808F"/>
     <enum name="COLOR_ARRAY_POINTER"                      value="0x8090"/>
@@ -2736,7 +3260,7 @@ glx:
         <param name="mode" type="GLenum"/>
         <param name="first" type="GLint"/>
         <param name="count" type="GLsizei"/>
-        <glx handcode="true"/>
+        <glx rop="193" handcode="true"/>
     </function>
 
     <function name="DrawElements" offset="311">
@@ -2879,7 +3403,7 @@ glx:
     <function name="AreTexturesResident" offset="322">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="textures" type="const GLuint *" count="n"/>
-        <param name="residences" type="GLboolean *" output="true"/>
+        <param name="residences" type="GLboolean *" output="true" count="n"/>
         <return type="GLboolean"/>
         <glx sop="143" always_array="true"/>
     </function>
@@ -2897,8 +3421,8 @@ glx:
     </function>
 
     <function name="GenTextures" offset="328">
-        <param name="n" type="GLsizei"/>
-        <param name="textures" type="GLuint *" output="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="textures" type="GLuint *" output="true" count="n"/>
         <glx sop="145" always_array="true"/>
     </function>
 
@@ -2940,18 +3464,37 @@ glx:
     <enum name="UNSIGNED_SHORT_5_5_5_1"                   value="0x8034"/>
     <enum name="UNSIGNED_INT_8_8_8_8"                     value="0x8035"/>
     <enum name="UNSIGNED_INT_10_10_10_2"                  value="0x8036"/>
-    <enum name="RESCALE_NORMAL"                           value="0x803A"/>
-    <enum name="TEXTURE_BINDING_3D"                       value="0x806A"/>
-    <enum name="PACK_SKIP_IMAGES"                         value="0x806B"/>
-    <enum name="PACK_IMAGE_HEIGHT"                        value="0x806C"/>
-    <enum name="UNPACK_SKIP_IMAGES"                       value="0x806D"/>
-    <enum name="UNPACK_IMAGE_HEIGHT"                      value="0x806E"/>
-    <enum name="TEXTURE_3D"                               value="0x806F"/>
+    <enum name="RESCALE_NORMAL"                count="1"  value="0x803A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BINDING_3D"            count="1"  value="0x806A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_SKIP_IMAGES"              count="1"  value="0x806B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PACK_IMAGE_HEIGHT"             count="1"  value="0x806C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_SKIP_IMAGES"            count="1"  value="0x806D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="UNPACK_IMAGE_HEIGHT"           count="1"  value="0x806E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_3D"                    count="1"  value="0x806F">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="PROXY_TEXTURE_3D"                         value="0x8070"/>
-    <enum name="TEXTURE_DEPTH"                            value="0x8071"/>
+    <enum name="TEXTURE_DEPTH"                 count="1"  value="0x8071">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
     <enum name="TEXTURE_WRAP_R"                count="1"  value="0x8072">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="MAX_3D_TEXTURE_SIZE"                      value="0x8073"/>
     <enum name="UNSIGNED_BYTE_2_3_3_REV"                  value="0x8362"/>
@@ -2963,79 +3506,300 @@ glx:
     <enum name="UNSIGNED_INT_2_10_10_10_REV"              value="0x8368"/>
     <enum name="BGR"                                      value="0x80E0"/>
     <enum name="BGRA"                                     value="0x80E1"/>
-    <enum name="MAX_ELEMENTS_VERTICES"                    value="0x80E8"/>
-    <enum name="MAX_ELEMENTS_INDICES"                     value="0x80E9"/>
+    <enum name="MAX_ELEMENTS_VERTICES"         count="1"  value="0x80E8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_ELEMENTS_INDICES"          count="1"  value="0x80E9">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="CLAMP_TO_EDGE"                            value="0x812F"/>
     <enum name="TEXTURE_MIN_LOD"               count="1"  value="0x813A">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_MAX_LOD"               count="1"  value="0x813B">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_BASE_LEVEL"            count="1"  value="0x813C">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_MAX_LEVEL"             count="1"  value="0x813D">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="LIGHT_MODEL_COLOR_CONTROL"     count="1"  value="0x81F8">
         <size name="LightModelfv"/>
         <size name="LightModeliv"/>
+        <size name="Get" mode="get"/>
     </enum>
     <enum name="SINGLE_COLOR"                             value="0x81F9"/>
     <enum name="SEPARATE_SPECULAR_COLOR"                  value="0x81FA"/>
-    <enum name="SMOOTH_POINT_SIZE_RANGE"                  value="0x0B12"/>
-    <enum name="SMOOTH_POINT_SIZE_GRANULARITY"            value="0x0B13"/>
-    <enum name="SMOOTH_LINE_WIDTH_RANGE"                  value="0x0B22"/>
-    <enum name="SMOOTH_LINE_WIDTH_GRANULARITY"            value="0x0B23"/>
-    <enum name="ALIASED_POINT_SIZE_RANGE"                 value="0x846D"/>
-    <enum name="ALIASED_LINE_WIDTH_RANGE"                 value="0x846E"/>
-
-    <!-- These enums are actually part of the ARB_imaging subset. -->
-    
-    <enum name="COLOR_TABLE_SCALE"             count="4"  value="0x80D6">
-        <size name="ColorTableParameterfv"/>
-        <size name="ColorTableParameteriv"/>
+    <enum name="SMOOTH_POINT_SIZE_RANGE"       count="2"  value="0x0B12">
+        <size name="Get" mode="get"/>
     </enum>
-    <enum name="COLOR_TABLE_BIAS"              count="4"  value="0x80D7">
-        <size name="ColorTableParameterfv"/>
-        <size name="ColorTableParameteriv"/>
+    <enum name="SMOOTH_POINT_SIZE_GRANULARITY" count="1"  value="0x0B13">
+        <size name="Get" mode="get"/>
     </enum>
-    <enum name="COLOR_TABLE_FORMAT"            count="1"  value="0x80D8">
+    <enum name="SMOOTH_LINE_WIDTH_RANGE"       count="2"  value="0x0B22">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SMOOTH_LINE_WIDTH_GRANULARITY" count="1"  value="0x0B23">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ALIASED_POINT_SIZE_RANGE"      count="2"  value="0x846D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ALIASED_LINE_WIDTH_RANGE"      count="2"  value="0x846E">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <!-- These enums are actually part of the ARB_imaging subset. -->
+
+    <enum name="CONSTANT_COLOR"                           value="0x8001"/>
+    <enum name="ONE_MINUS_CONSTANT_COLOR"                 value="0x8002"/>
+    <enum name="CONSTANT_ALPHA"                           value="0x8003"/>
+    <enum name="ONE_MINUS_CONSTANT_ALPHA"                 value="0x8004"/>
+    <enum name="BLEND_COLOR"                   count="4"  value="0x8005">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FUNC_ADD"                                 value="0x8006"/>
+    <enum name="MIN"                                      value="0x8007"/>
+    <enum name="MAX"                                      value="0x8008"/>
+    <enum name="BLEND_EQUATION"                count="1"  value="0x8009">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FUNC_SUBTRACT"                            value="0x800A"/>
+    <enum name="FUNC_REVERSE_SUBTRACT"                    value="0x800B"/>
+    <enum name="CONVOLUTION_1D"                count="1"  value="0x8010">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_2D"                count="1"  value="0x8011">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SEPARABLE_2D"                  count="1"  value="0x8012">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <enum name="CONVOLUTION_BORDER_MODE"       count="1"  value="0x8013">
+        <size name="ConvolutionParameterfv"/>
+        <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_BORDER_COLOR"      count="4"  value="0x8154">
+        <size name="ConvolutionParameterfv"/>
+        <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_FILTER_SCALE"      count="4"  value="0x8014">
+        <size name="ConvolutionParameterfv"/>
+        <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_FILTER_BIAS"       count="4"  value="0x8015">
+        <size name="ConvolutionParameterfv"/>
+        <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="REDUCE"                                   value="0x8016"/>
+    <enum name="CONVOLUTION_FORMAT"            count="1"  value="0x8017">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_WIDTH"             count="1"  value="0x8018">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_HEIGHT"            count="1"  value="0x8019">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="MAX_CONVOLUTION_WIDTH"         count="1"  value="0x801A">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_CONVOLUTION_HEIGHT"        count="1"  value="0x801B">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_RED_SCALE"    count="1"  value="0x801C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_GREEN_SCALE"  count="1"  value="0x801D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_BLUE_SCALE"   count="1"  value="0x801E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_ALPHA_SCALE"  count="1"  value="0x801F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_RED_BIAS"     count="1"  value="0x8020">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_GREEN_BIAS"   count="1"  value="0x8021">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_BLUE_BIAS"    count="1"  value="0x8022">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_ALPHA_BIAS"   count="1"  value="0x8023">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <enum name="HISTOGRAM"                     count="1"  value="0x8024">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROXY_HISTOGRAM"                          value="0x8025"/>
+    <enum name="HISTOGRAM_WIDTH"               count="1"  value="0x8026">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_FORMAT"              count="1"  value="0x8027">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_RED_SIZE"            count="1"  value="0x8028">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_GREEN_SIZE"          count="1"  value="0x8029">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_BLUE_SIZE"           count="1"  value="0x802A">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_ALPHA_SIZE"          count="1"  value="0x802B">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_LUMINANCE_SIZE"      count="1"  value="0x802C">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_SINK"                count="1"  value="0x802D">
+        <size name="GetHistogramParameterfv" mode="get"/>
+        <size name="GetHistogramParameteriv" mode="get"/>
+    </enum>
+    <enum name="MINMAX"                        count="1"  value="0x802E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MINMAX_FORMAT"                 count="1"  value="0x802F">
+        <size name="GetMinmaxParameterfv" mode="get"/>
+        <size name="GetMinmaxParameteriv" mode="get"/>
+    </enum>
+    <enum name="MINMAX_SINK"                   count="1"  value="0x8030">
+        <size name="GetMinmaxParameterfv" mode="get"/>
+        <size name="GetMinmaxParameteriv" mode="get"/>
+    </enum>
+
+    <enum name="COLOR_MATRIX"                  count="16" value="0x80B1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COLOR_MATRIX_STACK_DEPTH"      count="1"  value="0x80B2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_COLOR_MATRIX_STACK_DEPTH"  count="1"  value="0x80B3">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_RED_SCALE"   count="1"  value="0x80B4">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_GREEN_SCALE" count="1"  value="0x80B5">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_BLUE_SCALE"  count="1"  value="0x80B6">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_ALPHA_SCALE" count="1"  value="0x80B7">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_RED_BIAS"    count="1"  value="0x80B8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_GREEN_BIAS"  count="1"  value="0x80B9">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_BLUE_BIAS"   count="1"  value="0x80BA">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_ALPHA_BIAS"  count="1"  value="0x80BB">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <enum name="COLOR_TABLE"                   count="1"  value="0x80D0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_COLOR_TABLE"  count="1"  value="0x80D1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_COLOR_MATRIX_COLOR_TABLE" count="1"  value="0x80D2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROXY_COLOR_TABLE"                              value="0x80D3"/>
+    <enum name="PROXY_POST_CONVOLUTION_COLOR_TABLE"             value="0x80D4"/>
+    <enum name="PROXY_POST_COLOR_MATRIX_COLOR_TABLE"            value="0x80D5"/>
+
+    <enum name="COLOR_TABLE_SCALE"             count="4"  value="0x80D6">
         <size name="ColorTableParameterfv"/>
         <size name="ColorTableParameteriv"/>
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
     </enum>
-    <enum name="COLOR_TABLE_WIDTH"             count="1"  value="0x80D9">
+    <enum name="COLOR_TABLE_BIAS"              count="4"  value="0x80D7">
         <size name="ColorTableParameterfv"/>
         <size name="ColorTableParameteriv"/>
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_FORMAT"            count="1"  value="0x80D8">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_WIDTH"             count="1"  value="0x80D9">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
     </enum>
     <enum name="COLOR_TABLE_RED_SIZE"          count="1"  value="0x80DA">
-        <size name="ColorTableParameterfv"/>
-        <size name="ColorTableParameteriv"/>
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
     </enum>
     <enum name="COLOR_TABLE_GREEN_SIZE"        count="1"  value="0x80DB">
-        <size name="ColorTableParameterfv"/>
-        <size name="ColorTableParameteriv"/>
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
     </enum>
     <enum name="COLOR_TABLE_BLUE_SIZE"         count="1"  value="0x80DC">
-        <size name="ColorTableParameterfv"/>
-        <size name="ColorTableParameteriv"/>
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
     </enum>
     <enum name="COLOR_TABLE_ALPHA_SIZE"        count="1"  value="0x80DD">
-        <size name="ColorTableParameterfv"/>
-        <size name="ColorTableParameteriv"/>
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
     </enum>
     <enum name="COLOR_TABLE_LUMINANCE_SIZE"    count="1"  value="0x80DE">
-        <size name="ColorTableParameterfv"/>
-        <size name="ColorTableParameteriv"/>
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
     </enum>
     <enum name="COLOR_TABLE_INTENSITY_SIZE"    count="1"  value="0x80DF">
-        <size name="ColorTableParameterfv"/>
-        <size name="ColorTableParameteriv"/>
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
     </enum>
 
 
@@ -3099,21 +3863,21 @@ glx:
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="table" type="GLvoid *" output="true"/>
-        <glx sop="147" handcode="true"/>
+        <param name="table" type="GLvoid *" output="true" img_width="width" img_format="format" img_type="type"/>
+        <glx sop="147" dimensions_in_reply="true"/>
     </function>
 
     <function name="GetColorTableParameterfv" offset="344">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="148"/>
     </function>
 
     <function name="GetColorTableParameteriv" offset="345">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="149"/>
     </function>
 
@@ -3208,21 +3972,21 @@ glx:
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="image" type="GLvoid *" output="true"/>
-        <glx sop="150" handcode="true"/>
+        <param name="image" type="GLvoid *" output="true" img_width="width" img_height="height" img_format="format" img_type="type"/>
+        <glx sop="150" dimensions_in_reply="true"/>
     </function>
 
     <function name="GetConvolutionParameterfv" offset="357">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="151"/>
     </function>
 
     <function name="GetConvolutionParameteriv" offset="358">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="152"/>
     </function>
 
@@ -3253,21 +4017,21 @@ glx:
         <param name="reset" type="GLboolean"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="values" type="GLvoid *" output="true"/>
-        <glx sop="154" handcode="true"/>
+        <param name="values" type="GLvoid *" output="true" img_width="width" img_format="format" img_type="type"/>
+        <glx sop="154" dimensions_in_reply="true" img_reset="reset"/>
     </function>
 
     <function name="GetHistogramParameterfv" offset="362">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="155"/>
     </function>
 
     <function name="GetHistogramParameteriv" offset="363">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="156"/>
     </function>
 
@@ -3276,21 +4040,21 @@ glx:
         <param name="reset" type="GLboolean"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="values" type="GLvoid *" output="true"/>
-        <glx sop="157" handcode="true"/>
+        <param name="values" type="GLvoid *" output="true" img_width="2" img_format="format" img_type="type"/>
+        <glx sop="157" img_reset="reset"/>
     </function>
 
     <function name="GetMinmaxParameterfv" offset="365">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="158"/>
     </function>
 
     <function name="GetMinmaxParameteriv" offset="366">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="159"/>
     </function>
 
@@ -3395,26 +4159,52 @@ glx:
     <enum name="TEXTURE29"                                value="0x84DD"/>
     <enum name="TEXTURE30"                                value="0x84DE"/>
     <enum name="TEXTURE31"                                value="0x84DF"/>
-    <enum name="ACTIVE_TEXTURE"                           value="0x84E0"/>
-    <enum name="CLIENT_ACTIVE_TEXTURE"                    value="0x84E1"/>
-    <enum name="MAX_TEXTURE_UNITS"                        value="0x84E2"/>
+    <enum name="ACTIVE_TEXTURE"                count="1"  value="0x84E0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIENT_ACTIVE_TEXTURE"         count="1"  value="0x84E1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_UNITS"             count="1"  value="0x84E2">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="TRANSPOSE_MODELVIEW_MATRIX"               value="0x84E3"/>
     <enum name="TRANSPOSE_PROJECTION_MATRIX"              value="0x84E4"/>
     <enum name="TRANSPOSE_TEXTURE_MATRIX"                 value="0x84E5"/>
     <enum name="TRANSPOSE_COLOR_MATRIX"                   value="0x84E6"/>
-    <enum name="MULTISAMPLE"                              value="0x809D"/>
-    <enum name="SAMPLE_ALPHA_TO_COVERAGE"                 value="0x809E"/>
-    <enum name="SAMPLE_ALPHA_TO_ONE"                      value="0x809F"/>
-    <enum name="SAMPLE_COVERAGE"                          value="0x80A0"/>
-    <enum name="SAMPLE_BUFFERS"                           value="0x80A8"/>
-    <enum name="SAMPLES"                                  value="0x80A9"/>
-    <enum name="SAMPLE_COVERAGE_VALUE"                    value="0x80AA"/>
-    <enum name="SAMPLE_COVERAGE_INVERT"                   value="0x80AB"/>
+    <enum name="MULTISAMPLE"                   count="1"  value="0x809D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_ALPHA_TO_COVERAGE"      count="1"  value="0x809E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_ALPHA_TO_ONE"           count="1"  value="0x809F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_COVERAGE"               count="1"  value="0x80A0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_BUFFERS"                count="1"  value="0x80A8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLES"                       count="1"  value="0x80A9">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_COVERAGE_VALUE"         count="1"  value="0x80AA">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_COVERAGE_INVERT"        count="1"  value="0x80AB">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="MULTISAMPLE_BIT"                          value="0x20000000"/>
     <enum name="NORMAL_MAP"                               value="0x8511"/>
     <enum name="REFLECTION_MAP"                           value="0x8512"/>
-    <enum name="TEXTURE_CUBE_MAP"                         value="0x8513"/>
-    <enum name="TEXTURE_BINDING_CUBE_MAP"                 value="0x8514"/>
+    <enum name="TEXTURE_CUBE_MAP"              count="1"  value="0x8513">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BINDING_CUBE_MAP"      count="1"  value="0x8514">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="TEXTURE_CUBE_MAP_POSITIVE_X"              value="0x8515"/>
     <enum name="TEXTURE_CUBE_MAP_NEGATIVE_X"              value="0x8516"/>
     <enum name="TEXTURE_CUBE_MAP_POSITIVE_Y"              value="0x8517"/>
@@ -3422,80 +4212,123 @@ glx:
     <enum name="TEXTURE_CUBE_MAP_POSITIVE_Z"              value="0x8519"/>
     <enum name="TEXTURE_CUBE_MAP_NEGATIVE_Z"              value="0x851A"/>
     <enum name="PROXY_TEXTURE_CUBE_MAP"                   value="0x851B"/>
-    <enum name="MAX_CUBE_MAP_TEXTURE_SIZE"                value="0x851C"/>
+    <enum name="MAX_CUBE_MAP_TEXTURE_SIZE"     count="1"  value="0x851C">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="COMPRESSED_ALPHA"                         value="0x84E9"/>
     <enum name="COMPRESSED_LUMINANCE"                     value="0x84EA"/>
     <enum name="COMPRESSED_LUMINANCE_ALPHA"               value="0x84EB"/>
     <enum name="COMPRESSED_INTENSITY"                     value="0x84EC"/>
     <enum name="COMPRESSED_RGB"                           value="0x84ED"/>
     <enum name="COMPRESSED_RGBA"                          value="0x84EE"/>
-    <enum name="TEXTURE_COMPRESSION_HINT"                 value="0x84EF"/>
-    <enum name="TEXTURE_COMPRESSED_IMAGE_SIZE"            value="0x86A0"/>
-    <enum name="TEXTURE_COMPRESSED"                       value="0x86A1"/>
-    <enum name="NUM_COMPRESSED_TEXTURE_FORMATS"           value="0x86A2"/>
-    <enum name="COMPRESSED_TEXTURE_FORMATS"               value="0x86A3"/>
+    <enum name="TEXTURE_COMPRESSION_HINT"      count="1"  value="0x84EF">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPRESSED_IMAGE_SIZE" count="1"  value="0x86A0">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPRESSED"            count="1"  value="0x86A1">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="NUM_COMPRESSED_TEXTURE_FORMATS" count="1" value="0x86A2">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COMPRESSED_TEXTURE_FORMATS"    count="?"  value="0x86A3">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="CLAMP_TO_BORDER"                          value="0x812D"/>
-    <enum name="CLAMP_TO_BORDER_SGIS"                     value="0x812D"/>
     <enum name="COMBINE"                                  value="0x8570"/>
     <enum name="COMBINE_RGB"                   count="1"  value="0x8571">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="COMBINE_ALPHA"                 count="1"  value="0x8572">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="SOURCE0_RGB"                   count="1"  value="0x8580">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="SOURCE1_RGB"                   count="1"  value="0x8581">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="SOURCE2_RGB"                   count="1"  value="0x8582">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="SOURCE0_ALPHA"                 count="1"  value="0x8588">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="SOURCE1_ALPHA"                 count="1"  value="0x8589">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="SOURCE2_ALPHA"                 count="1"  value="0x858A">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="OPERAND0_RGB"                  count="1"  value="0x8590">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="OPERAND1_RGB"                  count="1"  value="0x8591">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="OPERAND2_RGB"                  count="1"  value="0x8592">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="OPERAND0_ALPHA"                count="1"  value="0x8598">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="OPERAND1_ALPHA"                count="1"  value="0x8599">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="OPERAND2_ALPHA"                count="1"  value="0x859A">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="RGB_SCALE"                     count="1"  value="0x8573">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="ADD_SIGNED"                               value="0x8574"/>
     <enum name="INTERPOLATE"                              value="0x8575"/>
@@ -3796,10 +4629,18 @@ glx:
 </category>
 
 <category name="1.4">
-    <enum name="BLEND_DST_RGB"                            value="0x80C8"/>
-    <enum name="BLEND_SRC_RGB"                            value="0x80C9"/>
-    <enum name="BLEND_DST_ALPHA"                          value="0x80CA"/>
-    <enum name="BLEND_SRC_ALPHA"                          value="0x80CB"/>
+    <enum name="BLEND_DST_RGB"                 count="1"  value="0x80C8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLEND_SRC_RGB"                 count="1"  value="0x80C9">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLEND_DST_ALPHA"               count="1"  value="0x80CA">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLEND_SRC_ALPHA"               count="1"  value="0x80CB">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="POINT_SIZE_MIN"                count="1"  value="0x8126">
         <size name="PointParameterfvEXT"/>
     </enum>
@@ -3815,49 +4656,86 @@ glx:
     <enum name="GENERATE_MIPMAP"               count="1"  value="0x8191">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="GENERATE_MIPMAP_HINT"                     value="0x8192"/>
     <enum name="DEPTH_COMPONENT16"                        value="0x81A5"/>
     <enum name="DEPTH_COMPONENT24"                        value="0x81A6"/>
     <enum name="DEPTH_COMPONENT32"                        value="0x81A7"/>
     <enum name="MIRRORED_REPEAT"                          value="0x8370"/>
-    <enum name="FOG_COORDINATE_SOURCE"                    value="0x8450"/>
+    <enum name="FOG_COORDINATE_SOURCE"         count="1"  value="0x8450">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="FOG_COORDINATE"                           value="0x8451"/>
     <enum name="FRAGMENT_DEPTH"                           value="0x8452"/>
-    <enum name="CURRENT_FOG_COORDINATE"                   value="0x8453"/>
-    <enum name="FOG_COORDINATE_ARRAY_TYPE"                value="0x8454"/>
-    <enum name="FOG_COORDINATE_ARRAY_STRIDE"              value="0x8455"/>
+    <enum name="CURRENT_FOG_COORDINATE"        count="1"  value="0x8453">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_COORDINATE_ARRAY_TYPE"     count="1"  value="0x8454">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_COORDINATE_ARRAY_STRIDE"   count="1"  value="0x8455">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="FOG_COORDINATE_ARRAY_POINTER"             value="0x8456"/>
-    <enum name="FOG_COORDINATE_ARRAY"                     value="0x8457"/>
+    <enum name="FOG_COORDINATE_ARRAY"          count="1"  value="0x8457">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="COLOR_SUM"                                value="0x8458"/>
-    <enum name="CURRENT_SECONDARY_COLOR"                  value="0x8459"/>
-    <enum name="SECONDARY_COLOR_ARRAY_SIZE"               value="0x845A"/>
-    <enum name="SECONDARY_COLOR_ARRAY_TYPE"               value="0x845B"/>
-    <enum name="SECONDARY_COLOR_ARRAY_STRIDE"             value="0x845C"/>
+    <enum name="CURRENT_SECONDARY_COLOR"       count="4"  value="0x8459">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SECONDARY_COLOR_ARRAY_SIZE"    count="1"  value="0x845A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SECONDARY_COLOR_ARRAY_TYPE"    count="1"  value="0x845B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SECONDARY_COLOR_ARRAY_STRIDE"  count="1"  value="0x845C">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="SECONDARY_COLOR_ARRAY_POINTER"            value="0x845D"/>
-    <enum name="SECONDARY_COLOR_ARRAY"                    value="0x845E"/>
-    <enum name="MAX_TEXTURE_LOD_BIAS"                     value="0x84FD"/>
+    <enum name="SECONDARY_COLOR_ARRAY"         count="1"  value="0x845E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_LOD_BIAS"          count="1"  value="0x84FD">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="TEXTURE_FILTER_CONTROL"                   value="0x8500"/>
     <enum name="TEXTURE_LOD_BIAS"              count="1"  value="0x8501">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="INCR_WRAP"                                value="0x8507"/>
     <enum name="DECR_WRAP"                                value="0x8508"/>
-    <enum name="TEXTURE_DEPTH_SIZE"                       value="0x884A"/>
+    <enum name="TEXTURE_DEPTH_SIZE"            count="1"  value="0x884A">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
     <enum name="DEPTH_TEXTURE_MODE"            count="1"  value="0x884B">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_COMPARE_MODE"          count="1"  value="0x884C">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_COMPARE_FUNC"          count="1"  value="0x884D">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="COMPARE_R_TO_TEXTURE"                     value="0x884E"/>
 
@@ -4125,14 +5003,24 @@ glx:
     <enum name="DYNAMIC_DRAW"                             value="0x88E8"/>
     <enum name="DYNAMIC_READ"                             value="0x88E9"/>
     <enum name="DYNAMIC_COPY"                             value="0x88EA"/>
-    <enum name="SAMPLES_PASSED"                           value="0x8914"/>
-    <enum name="FOG_COORD_SOURCE"                         value="0x8450"/>
+    <enum name="SAMPLES_PASSED"                count="1"  value="0x8914"/>
+    <enum name="FOG_COORD_SOURCE"                         value="0x8450">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="FOG_COORD"                                value="0x8451"/>
-    <enum name="CURRENT_FOG_COORD"                        value="0x8453"/>
-    <enum name="FOG_COORD_ARRAY_TYPE"                     value="0x8454"/>
-    <enum name="FOG_COORD_ARRAY_STRIDE"                   value="0x8455"/>
+    <enum name="CURRENT_FOG_COORD"             count="1"  value="0x8453">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_COORD_ARRAY_TYPE"          count="1"  value="0x8454">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="FOG_COORD_ARRAY_STRIDE"        count="1"  value="0x8455">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="FOG_COORD_ARRAY_POINTER"                  value="0x8456"/>
-    <enum name="FOG_COORD_ARRAY"                          value="0x8457"/>
+    <enum name="FOG_COORD_ARRAY"               count="1"  value="0x8457">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="FOG_COORD_ARRAY_BUFFER_BINDING"           value="0x889D"/>
     <enum name="SRC0_RGB"                                 value="0x8580"/>
     <enum name="SRC1_RGB"                                 value="0x8581"/>
@@ -4141,8 +5029,8 @@ glx:
     <enum name="SRC1_ALPHA"                               value="0x8589"/>
     <enum name="SRC2_ALPHA"                               value="0x858A"/>
 
-    <type name="intptr" size="4"/>
-    <type name="sizeiptr" size="4"/>
+    <type name="intptr"   size="4"  glx_name="CARD32"/>
+    <type name="sizeiptr" size="4"  glx_name="CARD32"/>
 
     <function name="BindBuffer" alias="BindBufferARB">
         <param name="target" type="GLenum"/>
@@ -4169,14 +5057,14 @@ glx:
     </function>
 
     <function name="GenBuffers" alias="GenBuffersARB">
-        <param name="n" type="GLsizei"/>
-        <param name="buffer" type="GLuint *" output="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="buffer" type="GLuint *" output="true" count="n"/>
     </function>
 
     <function name="GetBufferParameteriv" alias="GetBufferParameterivARB">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
     </function>
 
     <function name="GetBufferPointerv" alias="GetBufferPointervARB">
@@ -4209,8 +5097,8 @@ glx:
     </function>
 
     <function name="GenQueries" alias="GenQueriesARB">
-        <param name="n" type="GLsizei"/>
-        <param name="ids" type="GLuint *" output="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="ids" type="GLuint *" output="true" count="n"/>
     </function>
 
     <function name="DeleteQueries" alias="DeleteQueriesARB">
@@ -4235,19 +5123,19 @@ glx:
     <function name="GetQueryiv" alias="GetQueryivARB">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <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"/>
+        <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"/>
+        <param name="params" type="GLuint *" output="true" variable_param="pname"/>
     </function>
 </category>
 
@@ -4256,21 +5144,26 @@ glx:
     <!-- XXX this section is very much incomplete!!! -->
     <!-- These function offsets may change too!!! -->
 
-    <function name="StencilFuncSeparate" offset="796">
+    <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"/>
     </function>
 
-    <function name="StencilOpSeparate" offset="797">
+    <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>
 
-    <function name="StencilMaskSeparate" offset="798">
+    <function name="StencilMaskSeparate" offset="815">
         <param name="face" type="GLenum"/>
         <param name="mask" type="GLuint"/>
     </function>
@@ -4312,9 +5205,15 @@ glx:
     <enum name="TEXTURE29_ARB"                            value="0x84DD"/>
     <enum name="TEXTURE30_ARB"                            value="0x84DE"/>
     <enum name="TEXTURE31_ARB"                            value="0x84DF"/>
-    <enum name="ACTIVE_TEXTURE_ARB"                       value="0x84E0"/>
-    <enum name="CLIENT_ACTIVE_TEXTURE_ARB"                value="0x84E1"/>
-    <enum name="MAX_TEXTURE_UNITS_ARB"                    value="0x84E2"/>
+    <enum name="ACTIVE_TEXTURE_ARB"            count="1"  value="0x84E0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CLIENT_ACTIVE_TEXTURE_ARB"     count="1"  value="0x84E1">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_UNITS_ARB"         count="1"  value="0x84E2">
+        <size name="Get" mode="get"/>
+    </enum>
 
     <function name="ActiveTextureARB" offset="374">
         <param name="texture" type="GLenum"/>
@@ -4559,14 +5458,30 @@ glx:
 <!-- ARB extension number 4 is a WGL extension. -->
 
 <category name="GL_ARB_multisample" number="5">
-    <enum name="MULTISAMPLE_ARB"                          value="0x809D"/>
-    <enum name="SAMPLE_ALPHA_TO_COVERAGE_ARB"             value="0x809E"/>
-    <enum name="SAMPLE_ALPHA_TO_ONE_ARB"                  value="0x809F"/>
-    <enum name="SAMPLE_COVERAGE_ARB"                      value="0x80A0"/>
-    <enum name="SAMPLE_BUFFERS_ARB"                       value="0x80A8"/>
-    <enum name="SAMPLES_ARB"                              value="0x80A9"/>
-    <enum name="SAMPLE_COVERAGE_VALUE_ARB"                value="0x80AA"/>
-    <enum name="SAMPLE_COVERAGE_INVERT_ARB"               value="0x80AB"/>
+    <enum name="MULTISAMPLE_ARB"               count="1"  value="0x809D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_ALPHA_TO_COVERAGE_ARB"  count="1"  value="0x809E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_ALPHA_TO_ONE_ARB"       count="1"  value="0x809F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_COVERAGE_ARB"           count="1"  value="0x80A0">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_BUFFERS_ARB"            count="1"  value="0x80A8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLES_ARB"                   count="1"  value="0x80A9">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_COVERAGE_VALUE_ARB"     count="1"  value="0x80AA">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SAMPLE_COVERAGE_INVERT_ARB"    count="1"  value="0x80AB">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="MULTISAMPLE_BIT_ARB"                      value="0x20000000"/>
 
     <function name="SampleCoverageARB" offset="412">
@@ -4583,8 +5498,12 @@ glx:
 <category name="GL_ARB_texture_cube_map" number="7">
     <enum name="NORMAL_MAP_ARB"                           value="0x8511"/>
     <enum name="REFLECTION_MAP_ARB"                       value="0x8512"/>
-    <enum name="TEXTURE_CUBE_MAP_ARB"                     value="0x8513"/>
-    <enum name="TEXTURE_BINDING_CUBE_MAP_ARB"             value="0x8514"/>
+    <enum name="TEXTURE_CUBE_MAP_ARB"          count="1"  value="0x8513">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BINDING_CUBE_MAP_ARB"  count="1"  value="0x8514">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="TEXTURE_CUBE_MAP_POSITIVE_X_ARB"          value="0x8515"/>
     <enum name="TEXTURE_CUBE_MAP_NEGATIVE_X_ARB"          value="0x8516"/>
     <enum name="TEXTURE_CUBE_MAP_POSITIVE_Y_ARB"          value="0x8517"/>
@@ -4592,7 +5511,9 @@ glx:
     <enum name="TEXTURE_CUBE_MAP_POSITIVE_Z_ARB"          value="0x8519"/>
     <enum name="TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB"          value="0x851A"/>
     <enum name="PROXY_TEXTURE_CUBE_MAP_ARB"               value="0x851B"/>
-    <enum name="MAX_CUBE_MAP_TEXTURE_SIZE_ARB"            value="0x851C"/>
+    <enum name="MAX_CUBE_MAP_TEXTURE_SIZE_ARB" count="1"  value="0x851C">
+        <size name="Get" mode="get"/>
+    </enum>
 </category>
 
 <!-- ARB extension number 8 is a WGL extension. -->
@@ -4607,10 +5528,20 @@ glx:
     <enum name="COMPRESSED_INTENSITY_ARB"                 value="0x84EC"/>
     <enum name="COMPRESSED_RGB_ARB"                       value="0x84ED"/>
     <enum name="COMPRESSED_RGBA_ARB"                      value="0x84EE"/>
-    <enum name="TEXTURE_COMPRESSION_HINT_ARB"             value="0x84EF"/>
-    <enum name="TEXTURE_COMPRESSED_IMAGE_SIZE_ARB"        value="0x86A0"/>
-    <enum name="TEXTURE_COMPRESSED_ARB"                   value="0x86A1"/>
-    <enum name="NUM_TEXTURE_COMPRESSED_FORMATS_ARB"       value="0x86A2"/>
+    <enum name="TEXTURE_COMPRESSION_HINT_ARB"  count="1"  value="0x84EF">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPRESSED_IMAGE_SIZE_ARB" count="1" value="0x86A0">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_COMPRESSED_ARB"        count="1"  value="0x86A1">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="NUM_TEXTURE_COMPRESSED_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">
@@ -4621,9 +5552,9 @@ glx:
         <param name="height" type="GLsizei"/>
         <param name="depth" type="GLsizei"/>
         <param name="border" type="GLint"/>
-        <param name="imageSize" type="GLsizei"/>
-        <param name="data" type="const GLvoid *"/>
-        <glx rop="216" handcode="true"/>
+        <param name="imageSize" type="GLsizei" counter="true"/>
+        <param name="data" type="const GLvoid *" count="imageSize"/>
+        <glx rop="216" handcode="client"/>
     </function>
 
     <function name="CompressedTexImage2DARB" offset="555">
@@ -4633,9 +5564,9 @@ glx:
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
         <param name="border" type="GLint"/>
-        <param name="imageSize" type="GLsizei"/>
-        <param name="data" type="const GLvoid *"/>
-        <glx rop="215" handcode="true"/>
+        <param name="imageSize" type="GLsizei" counter="true"/>
+        <param name="data" type="const GLvoid *" count="imageSize"/>
+        <glx rop="215" handcode="client"/>
     </function>
 
     <function name="CompressedTexImage1DARB" offset="556">
@@ -4644,9 +5575,9 @@ glx:
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="border" type="GLint"/>
-        <param name="imageSize" type="GLsizei"/>
-        <param name="data" type="const GLvoid *"/>
-        <glx rop="214" handcode="true"/>
+        <param name="imageSize" type="GLsizei" counter="true"/>
+        <param name="data" type="const GLvoid *" count="imageSize"/>
+        <glx rop="214" handcode="client"/>
     </function>
 
     <function name="CompressedTexSubImage3DARB" offset="557">
@@ -4659,9 +5590,9 @@ glx:
         <param name="height" type="GLsizei"/>
         <param name="depth" type="GLsizei"/>
         <param name="format" type="GLenum"/>
-        <param name="imageSize" type="GLsizei"/>
-        <param name="data" type="const GLvoid *"/>
-        <glx rop="219" handcode="true"/>
+        <param name="imageSize" type="GLsizei" counter="true"/>
+        <param name="data" type="const GLvoid *" count="imageSize"/>
+        <glx rop="219" handcode="client"/>
     </function>
 
     <function name="CompressedTexSubImage2DARB" offset="558">
@@ -4672,9 +5603,9 @@ glx:
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
         <param name="format" type="GLenum"/>
-        <param name="imageSize" type="GLsizei"/>
-        <param name="data" type="const GLvoid *"/>
-        <glx rop="218" handcode="true"/>
+        <param name="imageSize" type="GLsizei" counter="true"/>
+        <param name="data" type="const GLvoid *" count="imageSize"/>
+        <glx rop="218" handcode="client"/>
     </function>
 
     <function name="CompressedTexSubImage1DARB" offset="559">
@@ -4683,15 +5614,21 @@ glx:
         <param name="xoffset" type="GLint"/>
         <param name="width" type="GLsizei"/>
         <param name="format" type="GLenum"/>
-        <param name="imageSize" type="GLsizei"/>
-        <param name="data" type="const GLvoid *"/>
-        <glx rop="217" handcode="true"/>
+        <param name="imageSize" type="GLsizei" counter="true"/>
+        <param name="data" type="const GLvoid *" count="imageSize"/>
+        <glx rop="217" handcode="client"/>
     </function>
 
     <function name="GetCompressedTexImageARB" offset="560">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="img" type="GLvoid *" output="true"/>
+
+        <!-- This has to be hand coded because the image size is in the
+             "wrong" place.  Technically, this should be a
+             'always_array="true"' case.  The size field in the reply would
+             be at offset 12.  However, the size is actually at offset 16.
+             This is where the 'width' is in a GetTexImage reply. -->
         <glx sop="160" handcode="true"/>
     </function>
 </category>
@@ -4728,48 +5665,130 @@ glx:
 </category>
 
 <category name="GL_ARB_vertex_blend" number="15">
-    <enum name="MAX_VERTEX_UNITS_ARB"                     value="0x86A4"/>
-    <enum name="ACTIVE_VERTEX_UNITS_ARB"                  value="0x86A5"/>
-    <enum name="WEIGHT_SUM_UNITY_ARB"                     value="0x86A6"/>
-    <enum name="VERTEX_BLEND_ARB"                         value="0x86A7"/>
-    <enum name="CURRENT_WEIGHT_ARB"                       value="0x86A8"/>
-    <enum name="WEIGHT_ARRAY_TYPE_ARB"                    value="0x86A9"/>
-    <enum name="WEIGHT_ARRAY_STRIDE_ARB"                  value="0x86AA"/>
-    <enum name="WEIGHT_ARRAY_SIZE_ARB"                    value="0x86AB"/>
+    <enum name="MAX_VERTEX_UNITS_ARB"          count="1"  value="0x86A4">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ACTIVE_VERTEX_UNITS_ARB"       count="1"  value="0x86A5">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="WEIGHT_SUM_UNITY_ARB"          count="1"  value="0x86A6">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_BLEND_ARB"              count="1"  value="0x86A7">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_WEIGHT_ARB"            count="1"  value="0x86A8">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="WEIGHT_ARRAY_TYPE_ARB"         count="1"  value="0x86A9">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="WEIGHT_ARRAY_STRIDE_ARB"       count="1"  value="0x86AA">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="WEIGHT_ARRAY_SIZE_ARB"         count="1"  value="0x86AB">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="WEIGHT_ARRAY_POINTER_ARB"                 value="0x86AC"/>
-    <enum name="WEIGHT_ARRAY_ARB"                         value="0x86AD"/>
-    <enum name="MODELVIEW0_ARB"                           value="0x1700"/>
-    <enum name="MODELVIEW1_ARB"                           value="0x850A"/>
-    <enum name="MODELVIEW2_ARB"                           value="0x8722"/>
-    <enum name="MODELVIEW3_ARB"                           value="0x8723"/>
-    <enum name="MODELVIEW4_ARB"                           value="0x8724"/>
-    <enum name="MODELVIEW5_ARB"                           value="0x8725"/>
-    <enum name="MODELVIEW6_ARB"                           value="0x8726"/>
-    <enum name="MODELVIEW7_ARB"                           value="0x8727"/>
-    <enum name="MODELVIEW8_ARB"                           value="0x8728"/>
-    <enum name="MODELVIEW9_ARB"                           value="0x8729"/>
-    <enum name="MODELVIEW10_ARB"                          value="0x872A"/>
-    <enum name="MODELVIEW11_ARB"                          value="0x872B"/>
-    <enum name="MODELVIEW12_ARB"                          value="0x872C"/>
-    <enum name="MODELVIEW13_ARB"                          value="0x872D"/>
-    <enum name="MODELVIEW14_ARB"                          value="0x872E"/>
-    <enum name="MODELVIEW15_ARB"                          value="0x872F"/>
-    <enum name="MODELVIEW16_ARB"                          value="0x8730"/>
-    <enum name="MODELVIEW17_ARB"                          value="0x8731"/>
-    <enum name="MODELVIEW18_ARB"                          value="0x8732"/>
-    <enum name="MODELVIEW19_ARB"                          value="0x8733"/>
-    <enum name="MODELVIEW20_ARB"                          value="0x8734"/>
-    <enum name="MODELVIEW21_ARB"                          value="0x8735"/>
-    <enum name="MODELVIEW22_ARB"                          value="0x8736"/>
-    <enum name="MODELVIEW23_ARB"                          value="0x8737"/>
-    <enum name="MODELVIEW24_ARB"                          value="0x8738"/>
-    <enum name="MODELVIEW25_ARB"                          value="0x8739"/>
-    <enum name="MODELVIEW26_ARB"                          value="0x873A"/>
-    <enum name="MODELVIEW27_ARB"                          value="0x873B"/>
-    <enum name="MODELVIEW28_ARB"                          value="0x873C"/>
-    <enum name="MODELVIEW29_ARB"                          value="0x873D"/>
-    <enum name="MODELVIEW30_ARB"                          value="0x873E"/>
-    <enum name="MODELVIEW31_ARB"                          value="0x873F"/>
+    <enum name="WEIGHT_ARRAY_ARB"              count="1"  value="0x86AD">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW0_ARB"                count="16" value="0x1700">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW1_ARB"                count="16" value="0x850A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW2_ARB"                count="16" value="0x8722">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW3_ARB"                count="16" value="0x8723">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW4_ARB"                count="16" value="0x8724">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW5_ARB"                count="16" value="0x8725">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW6_ARB"                count="16" value="0x8726">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW7_ARB"                count="16" value="0x8727">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW8_ARB"                count="16" value="0x8728">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW9_ARB"                count="16" value="0x8729">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW10_ARB"               count="16" value="0x872A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW11_ARB"               count="16" value="0x872B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW12_ARB"               count="16" value="0x872C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW13_ARB"               count="16" value="0x872D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW14_ARB"               count="16" value="0x872E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW15_ARB"               count="16" value="0x872F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW16_ARB"               count="16" value="0x8730">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW17_ARB"               count="16" value="0x8731">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW18_ARB"               count="16" value="0x8732">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW19_ARB"               count="16" value="0x8733">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW20_ARB"               count="16" value="0x8734">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW21_ARB"               count="16" value="0x8735">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW22_ARB"               count="16" value="0x8736">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW23_ARB"               count="16" value="0x8737">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW24_ARB"               count="16" value="0x8738">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW25_ARB"               count="16" value="0x8739">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW26_ARB"               count="16" value="0x873A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW27_ARB"               count="16" value="0x873B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW28_ARB"               count="16" value="0x873C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW29_ARB"               count="16" value="0x873D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW30_ARB"               count="16" value="0x873E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MODELVIEW31_ARB"               count="16" value="0x873F">
+        <size name="Get" mode="get"/>
+    </enum>
 
     <function name="WeightbvARB" offset="?">
         <param name="size" type="GLint"/>
@@ -4825,34 +5844,56 @@ glx:
 </category>
 
 <category name="GL_ARB_matrix_palette" number="16">
-    <enum name="MATRIX_PALETTE_ARB"                       value="0x8840"/>
-    <enum name="MAX_MATRIX_PALETTE_STACK_DEPTH_ARB"       value="0x8841"/>
-    <enum name="MAX_PALETTE_MATRICES_ARB"                 value="0x8842"/>
-    <enum name="CURRENT_PALETTE_MATRIX_ARB"               value="0x8843"/>
-    <enum name="MATRIX_INDEX_ARRAY_ARB"                   value="0x8844"/>
-    <enum name="CURRENT_MATRIX_INDEX_ARB"                 value="0x8845"/>
-    <enum name="MATRIX_INDEX_ARRAY_SIZE_ARB"              value="0x8846"/>
-    <enum name="MATRIX_INDEX_ARRAY_TYPE_ARB"              value="0x8847"/>
-    <enum name="MATRIX_INDEX_ARRAY_STRIDE_ARB"            value="0x8848"/>
+    <enum name="MATRIX_PALETTE_ARB"            count="1"  value="0x8840">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_MATRIX_PALETTE_STACK_DEPTH_ARB" count="1" value="0x8841">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_PALETTE_MATRICES_ARB"      count="1"  value="0x8842">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_PALETTE_MATRIX_ARB"    count="1"  value="0x8843">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MATRIX_INDEX_ARRAY_ARB"        count="1"  value="0x8844">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_MATRIX_INDEX_ARB"      count="1"  value="0x8845">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MATRIX_INDEX_ARRAY_SIZE_ARB"   count="1"  value="0x8846">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MATRIX_INDEX_ARRAY_TYPE_ARB"   count="1"  value="0x8847">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MATRIX_INDEX_ARRAY_STRIDE_ARB" count="1"  value="0x8848">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="MATRIX_INDEX_ARRAY_POINTER_ARB"           value="0x8849"/>
 
     <function name="CurrentPaletteMatrixARB" offset="?">
         <param name="index" type="GLint"/>
+        <glx ignore="true" rop="4329"/>
     </function>
 
     <function name="MatrixIndexubvARB" offset="?">
-        <param name="size" type="GLint"/>
-        <param name="indices" type="const GLubyte *"/>
+        <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="?">
-        <param name="size" type="GLint"/>
-        <param name="indices" type="const GLushort *"/>
+        <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="?">
-        <param name="size" type="GLint"/>
-        <param name="indices" type="const GLuint *"/>
+        <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="?">
@@ -4908,10 +5949,15 @@ glx:
     <enum name="DEPTH_COMPONENT16_ARB"                    value="0x81A5"/>
     <enum name="DEPTH_COMPONENT24_ARB"                    value="0x81A6"/>
     <enum name="DEPTH_COMPONENT32_ARB"                    value="0x81A7"/>
-    <enum name="TEXTURE_DEPTH_SIZE_ARB"                   value="0x884A"/>
+    <enum name="TEXTURE_DEPTH_SIZE_ARB"        count="1"  value="0x884A">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
     <enum name="DEPTH_TEXTURE_MODE_ARB"        count="1"  value="0x884B">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
 </category>
 
@@ -4919,10 +5965,14 @@ glx:
     <enum name="TEXTURE_COMPARE_MODE_ARB"      count="1"  value="0x884C">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_COMPARE_FUNC_ARB"      count="1"  value="0x884D">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="COMPARE_R_TO_TEXTURE_ARB"                 value="0x884E"/>
 </category>
@@ -4931,6 +5981,8 @@ glx:
     <enum name="TEXTURE_COMPARE_FAIL_VALUE_ARB" count="1" value="0x80BF">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
 </category>
 
@@ -5013,62 +6065,159 @@ glx:
 </category>
 
 <category name="GL_ARB_vertex_program" number="26">
-    <enum name="COLOR_SUM_ARB"                            value="0x8458"/>
-    <enum name="VERTEX_PROGRAM_ARB"                       value="0x8620"/>
-    <enum name="VERTEX_ATTRIB_ARRAY_ENABLED_ARB"          value="0x8622"/>
-    <enum name="VERTEX_ATTRIB_ARRAY_SIZE_ARB"             value="0x8623"/>
-    <enum name="VERTEX_ATTRIB_ARRAY_STRIDE_ARB"           value="0x8624"/>
-    <enum name="VERTEX_ATTRIB_ARRAY_TYPE_ARB"             value="0x8625"/>
-    <enum name="CURRENT_VERTEX_ATTRIB_ARB"                value="0x8626"/>
-    <enum name="PROGRAM_LENGTH_ARB"                       value="0x8627"/>
+    <enum name="COLOR_SUM_ARB"                 count="1"  value="0x8458">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_PROGRAM_ARB"            count="1"  value="0x8620">
+        <size name="GetVertexAttribdvARB" mode="get"/>
+        <size name="GetVertexAttribfvARB" mode="get"/>
+        <size name="GetVertexAttribivARB" mode="get"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ATTRIB_ARRAY_ENABLED_ARB" count="1" value="0x8622">
+        <size name="GetVertexAttribdvARB" mode="get"/>
+        <size name="GetVertexAttribfvARB" mode="get"/>
+        <size name="GetVertexAttribivARB" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ATTRIB_ARRAY_SIZE_ARB"  count="1"  value="0x8623">
+        <size name="GetVertexAttribdvARB" mode="get"/>
+        <size name="GetVertexAttribfvARB" mode="get"/>
+        <size name="GetVertexAttribivARB" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ATTRIB_ARRAY_STRIDE_ARB" count="1" value="0x8624">
+        <size name="GetVertexAttribdvARB" mode="get"/>
+        <size name="GetVertexAttribfvARB" mode="get"/>
+        <size name="GetVertexAttribivARB" mode="get"/>
+    </enum>
+    <enum name="VERTEX_ATTRIB_ARRAY_TYPE_ARB"  count="1"  value="0x8625">
+        <size name="GetVertexAttribdvARB" mode="get"/>
+        <size name="GetVertexAttribfvARB" mode="get"/>
+        <size name="GetVertexAttribivARB" mode="get"/>
+    </enum>
+    <enum name="CURRENT_VERTEX_ATTRIB_ARB"     count="1"  value="0x8626">
+        <size name="GetVertexAttribdvARB" mode="get"/>
+        <size name="GetVertexAttribfvARB" mode="get"/>
+        <size name="GetVertexAttribivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_LENGTH_ARB"            count="1"  value="0x8627">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
     <enum name="PROGRAM_STRING_ARB"                       value="0x8628"/>
-    <enum name="MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB"       value="0x862E"/>
-    <enum name="MAX_PROGRAM_MATRICES_ARB"                 value="0x862F"/>
-    <enum name="CURRENT_MATRIX_STACK_DEPTH_ARB"           value="0x8640"/>
-    <enum name="CURRENT_MATRIX_ARB"                       value="0x8641"/>
-    <enum name="VERTEX_PROGRAM_POINT_SIZE_ARB"            value="0x8642"/>
-    <enum name="VERTEX_PROGRAM_TWO_SIDE_ARB"              value="0x8643"/>
+    <enum name="MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB" count="1" value="0x862E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_MATRICES_ARB"      count="1"  value="0x862F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_MATRIX_STACK_DEPTH_ARB" count="1" value="0x8640">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CURRENT_MATRIX_ARB"            count="16" value="0x8641">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_PROGRAM_POINT_SIZE_ARB" count="1"  value="0x8642">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="VERTEX_PROGRAM_TWO_SIDE_ARB"   count="1"  value="0x8643">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="VERTEX_ATTRIB_ARRAY_POINTER_ARB"          value="0x8645"/>
-    <enum name="PROGRAM_ERROR_POSITION_ARB"               value="0x864B"/>
-    <enum name="PROGRAM_BINDING_ARB"                      value="0x8677"/>
-    <enum name="MAX_VERTEX_ATTRIBS_ARB"                   value="0x8869"/>
+    <enum name="PROGRAM_ERROR_POSITION_ARB"    count="1"  value="0x864B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_BINDING_ARB"           count="1"  value="0x8677">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_VERTEX_ATTRIBS_ARB"        count="1"  value="0x8869">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB"       value="0x886A"/>
     <enum name="PROGRAM_ERROR_STRING_ARB"                 value="0x8874"/>
     <enum name="PROGRAM_FORMAT_ASCII_ARB"                 value="0x8875"/>
-    <enum name="PROGRAM_FORMAT_ARB"                       value="0x8876"/>
-    <enum name="PROGRAM_INSTRUCTIONS_ARB"                 value="0x88A0"/>
-    <enum name="MAX_PROGRAM_INSTRUCTIONS_ARB"             value="0x88A1"/>
-    <enum name="PROGRAM_NATIVE_INSTRUCTIONS_ARB"          value="0x88A2"/>
-    <enum name="MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB"      value="0x88A3"/>
-    <enum name="PROGRAM_TEMPORARIES_ARB"                  value="0x88A4"/>
-    <enum name="MAX_PROGRAM_TEMPORARIES_ARB"              value="0x88A5"/>
-    <enum name="PROGRAM_NATIVE_TEMPORARIES_ARB"           value="0x88A6"/>
-    <enum name="MAX_PROGRAM_NATIVE_TEMPORARIES_ARB"       value="0x88A7"/>
-    <enum name="PROGRAM_PARAMETERS_ARB"                   value="0x88A8"/>
-    <enum name="MAX_PROGRAM_PARAMETERS_ARB"               value="0x88A9"/>
-    <enum name="PROGRAM_NATIVE_PARAMETERS_ARB"            value="0x88AA"/>
-    <enum name="MAX_PROGRAM_NATIVE_PARAMETERS_ARB"        value="0x88AB"/>
-    <enum name="PROGRAM_ATTRIBS_ARB"                      value="0x88AC"/>
-    <enum name="MAX_PROGRAM_ATTRIBS_ARB"                  value="0x88AD"/>
-    <enum name="PROGRAM_NATIVE_ATTRIBS_ARB"               value="0x88AE"/>
-    <enum name="MAX_PROGRAM_NATIVE_ATTRIBS_ARB"           value="0x88AF"/>
-    <enum name="PROGRAM_ADDRESS_REGISTERS_ARB"            value="0x88B0"/>
-    <enum name="MAX_PROGRAM_ADDRESS_REGISTERS_ARB"        value="0x88B1"/>
-    <enum name="PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"     value="0x88B2"/>
-    <enum name="MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB" value="0x88B3"/>
-    <enum name="MAX_PROGRAM_LOCAL_PARAMETERS_ARB"         value="0x88B4"/>
-    <enum name="MAX_PROGRAM_ENV_PARAMETERS_ARB"           value="0x88B5"/>
-    <enum name="PROGRAM_UNDER_NATIVE_LIMITS_ARB"          value="0x88B6"/>
-    <enum name="TRANSPOSE_CURRENT_MATRIX_ARB"             value="0x88B7"/>
-    <enum name="MATRIX0_ARB"                              value="0x88C0"/>
-    <enum name="MATRIX1_ARB"                              value="0x88C1"/>
-    <enum name="MATRIX2_ARB"                              value="0x88C2"/>
-    <enum name="MATRIX3_ARB"                              value="0x88C3"/>
-    <enum name="MATRIX4_ARB"                              value="0x88C4"/>
-    <enum name="MATRIX5_ARB"                              value="0x88C5"/>
-    <enum name="MATRIX6_ARB"                              value="0x88C6"/>
-    <enum name="MATRIX7_ARB"                              value="0x88C7"/>
-    <enum name="MATRIX8_ARB"                              value="0x88C8"/>
+    <enum name="PROGRAM_FORMAT_ARB"            count="1"  value="0x8876">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_INSTRUCTIONS_ARB"      count="1"  value="0x88A0">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_INSTRUCTIONS_ARB"  count="1"  value="0x88A1">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_INSTRUCTIONS_ARB" count="1" value="0x88A2">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB" count="1" value="0x88A3">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_TEMPORARIES_ARB"       count="1"  value="0x88A4">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_TEMPORARIES_ARB"   count="1"  value="0x88A5">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_TEMPORARIES_ARB" count="1" value="0x88A6">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_TEMPORARIES_ARB" count="1" value="0x88A7">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_PARAMETERS_ARB"        count="1"  value="0x88A8">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_PARAMETERS_ARB"    count="1"  value="0x88A9">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_PARAMETERS_ARB" count="1"  value="0x88AA">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_PARAMETERS_ARB" count="1" value="0x88AB">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_ATTRIBS_ARB"           count="1"  value="0x88AC">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_ATTRIBS_ARB"       count="1"  value="0x88AD">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_ATTRIBS_ARB"    count="1"  value="0x88AE">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_ATTRIBS_ARB" count="1" value="0x88AF">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_ADDRESS_REGISTERS_ARB" count="1"  value="0x88B0">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_ADDRESS_REGISTERS_ARB" count="1" value="0x88B1">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB" count="1" value="0x88B2">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB" count="1" value="0x88B3">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_LOCAL_PARAMETERS_ARB" count="1" value="0x88B4">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_ENV_PARAMETERS_ARB" count="1" value="0x88B5">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_UNDER_NATIVE_LIMITS_ARB" count="1" value="0x88B6">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="TRANSPOSE_CURRENT_MATRIX_ARB"  count="16" value="0x88B7">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MATRIX0_ARB"                              value="0x88C0"/>
+    <enum name="MATRIX1_ARB"                              value="0x88C1"/>
+    <enum name="MATRIX2_ARB"                              value="0x88C2"/>
+    <enum name="MATRIX3_ARB"                              value="0x88C3"/>
+    <enum name="MATRIX4_ARB"                              value="0x88C4"/>
+    <enum name="MATRIX5_ARB"                              value="0x88C5"/>
+    <enum name="MATRIX6_ARB"                              value="0x88C6"/>
+    <enum name="MATRIX7_ARB"                              value="0x88C7"/>
+    <enum name="MATRIX8_ARB"                              value="0x88C8"/>
     <enum name="MATRIX9_ARB"                              value="0x88C9"/>
     <enum name="MATRIX10_ARB"                             value="0x88CA"/>
     <enum name="MATRIX11_ARB"                             value="0x88CB"/>
@@ -5096,97 +6245,91 @@ glx:
     <function name="GetVertexAttribdvARB" offset="588">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLdouble *" output="true"/>
-        <glx ignore="true"/>
+        <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
+        <glx handcode="client" vendorpriv="1301"/>
     </function>
 
     <function name="GetVertexAttribfvARB" offset="589">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-        <glx ignore="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx handcode="client" vendorpriv="1302"/>
     </function>
 
     <function name="GetVertexAttribivARB" offset="590">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-        <glx ignore="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx handcode="client" vendorpriv="1303"/>
     </function>
 
     <function name="VertexAttrib1dARB" offset="603" vectorequiv="VertexAttrib1dvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib1dvARB" offset="604">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="1"/>
-        <glx ignore="true"/>
+        <glx rop="4197"/>
     </function>
 
     <function name="VertexAttrib1fARB" offset="605" vectorequiv="VertexAttrib1fvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib1fvARB" offset="606">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="1"/>
-        <glx ignore="true"/>
+        <glx rop="4193"/>
     </function>
 
     <function name="VertexAttrib1sARB" offset="607" vectorequiv="VertexAttrib1svARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib1svARB" offset="608">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="1"/>
-        <glx ignore="true"/>
+        <glx rop="4189"/>
     </function>
 
     <function name="VertexAttrib2dARB" offset="609" vectorequiv="VertexAttrib2dvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib2dvARB" offset="610">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="2"/>
-        <glx ignore="true"/>
+        <glx rop="4198"/>
     </function>
 
     <function name="VertexAttrib2fARB" offset="611" vectorequiv="VertexAttrib2fvARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib2fvARB" offset="612">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="2"/>
-        <glx ignore="true"/>
+        <glx rop="4194"/>
     </function>
 
     <function name="VertexAttrib2sARB" offset="613" vectorequiv="VertexAttrib2svARB">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib2svARB" offset="614">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="2"/>
-        <glx ignore="true"/>
+        <glx rop="4190"/>
     </function>
 
     <function name="VertexAttrib3dARB" offset="615" vectorequiv="VertexAttrib3dvARB">
@@ -5194,13 +6337,12 @@ glx:
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib3dvARB" offset="616">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="3"/>
-        <glx ignore="true"/>
+        <glx rop="4199"/>
     </function>
 
     <function name="VertexAttrib3fARB" offset="617" vectorequiv="VertexAttrib3fvARB">
@@ -5208,13 +6350,12 @@ glx:
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib3fvARB" offset="618">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="3"/>
-        <glx ignore="true"/>
+        <glx rop="4195"/>
     </function>
 
     <function name="VertexAttrib3sARB" offset="619" vectorequiv="VertexAttrib3svARB">
@@ -5222,13 +6363,12 @@ glx:
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib3svARB" offset="620">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="3"/>
-        <glx ignore="true"/>
+        <glx rop="4191"/>
     </function>
 
     <function name="VertexAttrib4dARB" offset="621" vectorequiv="VertexAttrib4dvARB">
@@ -5237,13 +6377,12 @@ glx:
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib4dvARB" offset="622">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="4"/>
-        <glx ignore="true"/>
+        <glx rop="4200"/>
     </function>
 
     <function name="VertexAttrib4fARB" offset="623" vectorequiv="VertexAttrib4fvARB">
@@ -5252,13 +6391,12 @@ glx:
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib4fvARB" offset="624">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="4"/>
-        <glx ignore="true"/>
+        <glx rop="4196"/>
     </function>
 
     <function name="VertexAttrib4sARB" offset="625" vectorequiv="VertexAttrib4svARB">
@@ -5267,13 +6405,12 @@ glx:
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
         <param name="w" type="GLshort"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib4svARB" offset="626">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="4"/>
-        <glx ignore="true"/>
+        <glx rop="4192"/>
     </function>
 
     <function name="VertexAttrib4NubARB" offset="627" vectorequiv="VertexAttrib4NubvARB">
@@ -5282,73 +6419,72 @@ glx:
         <param name="y" type="GLubyte"/>
         <param name="z" type="GLubyte"/>
         <param name="w" type="GLubyte"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib4NubvARB" offset="628">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
-        <glx ignore="true"/>
+        <glx rop="4201"/>
     </function>
 
     <function name="VertexAttrib4bvARB" offset="654">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLbyte *" count="4"/>
-        <glx rop="4230" ignore="true"/>
+        <glx rop="4230"/>
     </function>
 
     <function name="VertexAttrib4ivARB" offset="655">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLint *" count="4"/>
-        <glx rop="4231" ignore="true"/>
+        <glx rop="4231"/>
     </function>
 
     <function name="VertexAttrib4ubvARB" offset="656">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
-        <glx rop="4232" ignore="true"/>
+        <glx rop="4232"/>
     </function>
 
     <function name="VertexAttrib4usvARB" offset="657">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLushort *" count="4"/>
-        <glx rop="4233" ignore="true"/>
+        <glx rop="4233"/>
     </function>
 
     <function name="VertexAttrib4uivARB" offset="658">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLuint *" count="4"/>
-        <glx rop="4234" ignore="true"/>
+        <glx rop="4234"/>
     </function>
 
     <function name="VertexAttrib4NbvARB" offset="659">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLbyte *" count="4"/>
-        <glx rop="4235" ignore="true"/>
+        <glx rop="4235"/>
     </function>
 
     <function name="VertexAttrib4NsvARB" offset="660">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="4"/>
-        <glx rop="4236" ignore="true"/>
+        <glx rop="4236"/>
     </function>
 
     <function name="VertexAttrib4NivARB" offset="661">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLint *" count="4"/>
-        <glx rop="4237" ignore="true"/>
+        <glx rop="4237"/>
     </function>
 
     <function name="VertexAttrib4NusvARB" offset="662">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLushort *" count="4"/>
-        <glx rop="4238" ignore="true"/>
+        <glx rop="4238"/>
     </function>
 
     <function name="VertexAttrib4NuivARB" offset="663">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLuint *" count="4"/>
-        <glx rop="4239" ignore="true"/>
+        <glx rop="4239"/>
     </function>
 
     <function name="VertexAttribPointerARB" offset="664">
@@ -5358,25 +6494,25 @@ glx:
         <param name="normalized" type="GLboolean"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-        <glx handcode="true" ignore="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="EnableVertexAttribArrayARB" offset="665">
         <param name="index" type="GLuint"/>
-        <glx handcode="true" ignore="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="DisableVertexAttribArrayARB" offset="666">
         <param name="index" type="GLuint"/>
-        <glx handcode="true" ignore="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="ProgramStringARB" offset="667">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
-        <param name="len" type="GLsizei"/>
-        <param name="string" type="const GLvoid *"/>
-        <glx rop="4217" handcode="true" ignore="true"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="string" type="const GLvoid *" count="len"/>
+        <glx rop="4217" large="true"/>
     </function>
 
     <function name="BindProgramARB" alias="BindProgramNV">
@@ -5390,8 +6526,8 @@ glx:
     </function>
 
     <function name="GenProgramsARB" alias="GenProgramsNV">
-        <param name="n" type="GLsizei"/>
-        <param name="programs" type="GLuint *" output="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="programs" type="GLuint *" output="true" count="n"/>
     </function>
 
     <function name="IsProgramARB" alias="IsProgramNV">
@@ -5399,7 +6535,6 @@ glx:
         <return type="GLboolean"/>
     </function>
 
-    <!-- FIXME: This should alias to ProgramParameter*NV -->
     <function name="ProgramEnvParameter4dARB" offset="668" vectorequiv="ProgramEnvParameter4dvARB">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
@@ -5407,18 +6542,15 @@ glx:
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
-        <glx ignore="true"/>
     </function>
 
-    <!-- FIXME: This should alias to ProgramParameter*NV -->
     <function name="ProgramEnvParameter4dvARB" offset="669">
         <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" ignore="true"/>
+        <glx rop="4185" doubles_in_order="true"/>
     </function>
 
-    <!-- FIXME: This should alias to ProgramParameter*NV -->
     <function name="ProgramEnvParameter4fARB" offset="670" vectorequiv="ProgramEnvParameter4fvARB">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
@@ -5426,15 +6558,13 @@ glx:
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
-        <glx ignore="true"/>
     </function>
 
-    <!-- FIXME: This should alias to ProgramParameter*NV -->
     <function name="ProgramEnvParameter4fvARB" offset="671">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLfloat *" count="4"/>
-        <glx rop="4184" ignore="true"/>
+        <glx rop="4184"/>
     </function>
 
     <function name="ProgramLocalParameter4dARB" offset="672" vectorequiv="ProgramLocalParameter4dvARB">
@@ -5444,14 +6574,13 @@ glx:
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="ProgramLocalParameter4dvARB" offset="673">
         <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" ignore="true"/>
+        <glx rop="4216" doubles_in_order="true"/>
     </function>
 
     <function name="ProgramLocalParameter4fARB" offset="674" vectorequiv="ProgramLocalParameter4fvARB">
@@ -5461,58 +6590,68 @@ glx:
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="ProgramLocalParameter4fvARB" offset="675">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLfloat *" count="4"/>
-        <glx rop="4215" ignore="true"/>
+        <glx rop="4215"/>
     </function>
 
-    <!-- FIXME: This should alias to GetProgramParameter*NV -->
+    <!-- The GetProgramEnvParameter[df]vARB are handcoded because there
+         is an extra CARD32 of padding after the "index" field.  Originally,
+         GetProgranEnvParameter[df]vARB and GetProgramParameter[df]vNV
+         shared the same GLX protocol.  The pad field was where the pname
+         parameter was in the NV functions.  When this error was discovered
+         and fixed, there was already at least one implementation of
+         GLX protocol for ARB_vertex_program, but there were no
+         implementations of NV_vertex_program.  The sollution was to renumber
+         the opcodes for NV_vertex_program and convert the unused field in
+         the ARB_vertex_program protocol to unused padding.
+      -->
+
     <function name="GetProgramEnvParameterdvARB" offset="676">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
-        <param name="params" type="GLdouble *" output="true"/>
-        <glx vendorpriv="1297" doubles_in_order="true" ignore="true"/>
+        <param name="params" type="GLdouble *" output="true" count="4"/>
+        <glx vendorpriv="1297" handcode="client" doubles_in_order="true"/>
     </function>
 
-    <!-- FIXME: This should alias to GetProgramParameter*NV -->
     <function name="GetProgramEnvParameterfvARB" offset="677">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
-        <param name="params" type="GLfloat *" output="true"/>
-        <glx vendorpriv="1296" ignore="true"/>
+        <param name="params" type="GLfloat *" output="true" count="4"/>
+        <glx vendorpriv="1296" handcode="client"/>
     </function>
 
     <function name="GetProgramLocalParameterdvARB" offset="678">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
-        <param name="params" type="GLdouble *" output="true"/>
-        <glx vendorpriv="1306" doubles_in_order="true" ignore="true"/>
+        <param name="params" type="GLdouble *" output="true" count="4"/>
+        <glx vendorpriv="1306" handcode="client" doubles_in_order="true"/>
     </function>
 
     <function name="GetProgramLocalParameterfvARB" offset="679">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
-        <param name="params" type="GLfloat *" output="true"/>
-        <glx vendorpriv="1305" ignore="true"/>
+        <param name="params" type="GLfloat *" output="true" count="4"/>
+        <glx vendorpriv="1305" handcode="client"/>
     </function>
 
+
     <function name="GetProgramivARB" offset="680">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-        <glx vendorpriv="1307" ignore="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx vendorpriv="1307"/>
     </function>
 
     <function name="GetProgramStringARB" offset="681">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="string" type="GLvoid *" output="true"/>
-        <glx vendorpriv="1308" handcode="true" ignore="true"/>
+        <glx vendorpriv="1308" handcode="server" always_array="true"/>
     </function>
 
     <function name="GetVertexAttribPointervARB" alias="GetVertexAttribPointervNV">
@@ -5523,21 +6662,51 @@ glx:
 </category>
 
 <category name="GL_ARB_fragment_program" number="27">
-    <enum name="FRAGMENT_PROGRAM_ARB"                     value="0x8804"/>
-    <enum name="PROGRAM_ALU_INSTRUCTIONS_ARB"             value="0x8805"/>
-    <enum name="PROGRAM_TEX_INSTRUCTIONS_ARB"             value="0x8806"/>
-    <enum name="PROGRAM_TEX_INDIRECTIONS_ARB"             value="0x8807"/>
-    <enum name="PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"      value="0x8808"/>
-    <enum name="PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"      value="0x8809"/>
-    <enum name="PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"      value="0x880A"/>
-    <enum name="MAX_PROGRAM_ALU_INSTRUCTIONS_ARB"         value="0x880B"/>
-    <enum name="MAX_PROGRAM_TEX_INSTRUCTIONS_ARB"         value="0x880C"/>
-    <enum name="MAX_PROGRAM_TEX_INDIRECTIONS_ARB"         value="0x880D"/>
-    <enum name="MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"  value="0x880E"/>
-    <enum name="MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"  value="0x880F"/>
-    <enum name="MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"  value="0x8810"/>
-    <enum name="MAX_TEXTURE_COORDS_ARB"                   value="0x8871"/>
-    <enum name="MAX_TEXTURE_IMAGE_UNITS_ARB"              value="0x8872"/>
+    <enum name="FRAGMENT_PROGRAM_ARB"          count="1"  value="0x8804">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_ALU_INSTRUCTIONS_ARB"  count="1"  value="0x8805">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_TEX_INSTRUCTIONS_ARB"  count="1"  value="0x8806">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_TEX_INDIRECTIONS_ARB"  count="1"  value="0x8807">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB" count="1" value="0x8808">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB" count="1" value="0x8809">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB" count="1" value="0x880A">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_ALU_INSTRUCTIONS_ARB" count="1" value="0x880B">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_TEX_INSTRUCTIONS_ARB" count="1" value="0x880C">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_TEX_INDIRECTIONS_ARB" count="1" value="0x880D">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB" count="1" value="0x880E">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB" count="1" value="0x880F">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB" count="1" value="0x8810">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_COORDS_ARB"        count="1"  value="0x8871">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_TEXTURE_IMAGE_UNITS_ARB"   count="1"  value="0x8872">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
 </category>
 
 <category name="GL_ARB_vertex_buffer_object" number="28">
@@ -5605,8 +6774,8 @@ glx:
     </function>
 
     <function name="GenBuffersARB" offset="692">
-        <param name="n" type="GLsizei"/>
-        <param name="buffer" type="GLuint *" output="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="buffer" type="GLuint *" output="true" count="n"/>
         <glx ignore="true"/>
     </function>
 
@@ -5653,60 +6822,70 @@ glx:
 </category>
 
 <category name="GL_ARB_occlusion_query" number="29">
-    <enum name="QUERY_COUNTER_BITS_ARB"                   value="0x8864"/>
-    <enum name="CURRENT_QUERY_ARB"                        value="0x8865"/>
-    <enum name="QUERY_RESULT_ARB"                         value="0x8866"/>
-    <enum name="QUERY_RESULT_AVAILABLE_ARB"               value="0x8867"/>
+    <enum name="QUERY_COUNTER_BITS_ARB"        count="1"  value="0x8864">
+        <size name="GetQueryivARB" mode="get"/>
+    </enum>
+    <enum name="CURRENT_QUERY_ARB"             count="1"  value="0x8865">
+        <size name="GetQueryivARB" mode="get"/>
+    </enum>
+    <enum name="QUERY_RESULT_ARB"              count="1"  value="0x8866">
+        <size name="GetQueryObjectivARB" mode="get"/>
+        <size name="GetQueryObjectuivARB" mode="get"/>
+    </enum>
+    <enum name="QUERY_RESULT_AVAILABLE_ARB"    count="1"  value="0x8867">
+        <size name="GetQueryObjectivARB" mode="get"/>
+        <size name="GetQueryObjectuivARB" mode="get"/>
+    </enum>
     <enum name="SAMPLES_PASSED_ARB"                       value="0x8914"/>
 
     <function name="GenQueriesARB" offset="700">
-        <param name="n" type="GLsizei"/>
-        <param name="ids" type="GLuint *" output="true"/>
-        <glx ignore="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="ids" type="GLuint *" output="true" count="n"/>
+        <glx sop="162"/>
     </function>
 
     <function name="DeleteQueriesARB" offset="701">
-        <param name="n" type="GLsizei"/>
-        <param name="ids" type="const GLuint *"/>
-        <glx ignore="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="ids" type="const GLuint *" count="n"/>
+        <glx sop="161"/>
     </function>
 
     <function name="IsQueryARB" offset="702">
         <param name="id" type="GLuint"/>
         <return type="GLboolean"/>
-        <glx ignore="true"/>
+        <glx sop="163"/>
     </function>
 
     <function name="BeginQueryARB" offset="703">
         <param name="target" type="GLenum"/>
         <param name="id" type="GLuint"/>
-        <glx ignore="true"/>
+        <glx rop="231"/>
     </function>
 
     <function name="EndQueryARB" offset="704">
         <param name="target" type="GLenum"/>
-        <glx ignore="true"/>
+        <glx rop="232"/>
     </function>
 
     <function name="GetQueryivARB" offset="705">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-        <glx ignore="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="164"/>
     </function>
 
     <function name="GetQueryObjectivARB" offset="706">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-        <glx ignore="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx sop="165"/>
     </function>
 
     <function name="GetQueryObjectuivARB" offset="707">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLuint *" output="true"/>
-        <glx ignore="true"/>
+        <param name="params" type="GLuint *" output="true" variable_param="pname"/>
+        <glx sop="166"/>
     </function>
 </category>
 
@@ -5738,8 +6917,8 @@ glx:
     <enum name="OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB"     value="0x8B87"/>
     <enum name="OBJECT_SHADER_SOURCE_LENGTH_ARB"          value="0x8B88"/>
 
-    <type name="charARB" size="1"/>
-    <type name="handleARB" size="4"/>
+    <type name="charARB"   size="1" glx_name="CARD8"/>
+    <type name="handleARB" size="4" glx_name="CARD32"/>
 
     <function name="DeleteObjectARB" offset="711">
         <param name="obj" type="GLhandleARB"/>
@@ -6063,10 +7242,14 @@ glx:
 </category>
 
 <category name="GL_ARB_point_sprite" number="35">
-    <enum name="POINT_SPRITE_ARB"                         value="0x8861"/>
+    <enum name="POINT_SPRITE_ARB"              count="1"  value="0x8861">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="COORD_REPLACE_ARB"             count="1"  value="0x8862">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
 </category>
 
@@ -6075,36 +7258,76 @@ glx:
 </category>
 
 <category name="GL_ARB_draw_buffers" number="37">
-    <enum name="MAX_DRAW_BUFFERS_ARB"                     value="0x8824"/>
-    <enum name="DRAW_BUFFER0_ARB"                         value="0x8825"/>
-    <enum name="DRAW_BUFFER1_ARB"                         value="0x8826"/>
-    <enum name="DRAW_BUFFER2_ARB"                         value="0x8827"/>
-    <enum name="DRAW_BUFFER3_ARB"                         value="0x8828"/>
-    <enum name="DRAW_BUFFER4_ARB"                         value="0x8829"/>
-    <enum name="DRAW_BUFFER5_ARB"                         value="0x882A"/>
-    <enum name="DRAW_BUFFER6_ARB"                         value="0x882B"/>
-    <enum name="DRAW_BUFFER7_ARB"                         value="0x882C"/>
-    <enum name="DRAW_BUFFER8_ARB"                         value="0x882D"/>
-    <enum name="DRAW_BUFFER9_ARB"                         value="0x882E"/>
-    <enum name="DRAW_BUFFER10_ARB"                        value="0x882F"/>
-    <enum name="DRAW_BUFFER11_ARB"                        value="0x8830"/>
-    <enum name="DRAW_BUFFER12_ARB"                        value="0x8831"/>
-    <enum name="DRAW_BUFFER13_ARB"                        value="0x8832"/>
-    <enum name="DRAW_BUFFER14_ARB"                        value="0x8833"/>
-    <enum name="DRAW_BUFFER15_ARB"                        value="0x8834"/>
+    <enum name="MAX_DRAW_BUFFERS_ARB"          count="1"  value="0x8824">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER0_ARB"              count="1"  value="0x8825">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER1_ARB"              count="1"  value="0x8826">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER2_ARB"              count="1"  value="0x8827">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER3_ARB"              count="1"  value="0x8828">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER4_ARB"              count="1"  value="0x8829">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER5_ARB"              count="1"  value="0x882A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER6_ARB"              count="1"  value="0x882B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER7_ARB"              count="1"  value="0x882C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER8_ARB"              count="1"  value="0x882D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER9_ARB"              count="1"  value="0x882E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER10_ARB"             count="1"  value="0x882F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER11_ARB"             count="1"  value="0x8830">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER12_ARB"             count="1"  value="0x8831">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER13_ARB"             count="1"  value="0x8832">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER14_ARB"             count="1"  value="0x8833">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER15_ARB"             count="1"  value="0x8834">
+        <size name="Get" mode="get"/>
+    </enum>
 
     <function name="DrawBuffersARB" offset="413">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="bufs" type="const GLenum *" count="n"/>
-        <glx ignore="true"/>
+        <glx rop="233" large="true"/>
     </function>
 </category>
 
 <category name="GL_ARB_texture_rectangle" number="38">
-    <enum name="TEXTURE_RECTANGLE_ARB"                    value="0x84F5"/>
-    <enum name="TEXTURE_BINDING_RECTANGLE_ARB"            value="0x84F6"/>
+    <enum name="TEXTURE_RECTANGLE_ARB"         count="1"  value="0x84F5">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BINDING_RECTANGLE_ARB" count="1"  value="0x84F6">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="PROXY_TEXTURE_RECTANGLE_ARB"              value="0x84F7"/>
-    <enum name="MAX_RECTANGLE_TEXTURE_SIZE_ARB"           value="0x84F8"/>
+    <enum name="MAX_RECTANGLE_TEXTURE_SIZE_ARB" count="1" value="0x84F8">
+        <size name="Get" mode="get"/>
+    </enum>
 </category>
 
 <!-- Non-ARB extensions sorted by extension number. -->
@@ -6114,7 +7337,9 @@ glx:
     <enum name="ONE_MINUS_CONSTANT_COLOR_EXT"             value="0x8002"/>
     <enum name="CONSTANT_ALPHA_EXT"                       value="0x8003"/>
     <enum name="ONE_MINUS_CONSTANT_ALPHA_EXT"             value="0x8004"/>
-    <enum name="BLEND_COLOR_EXT"                          value="0x8005"/>
+    <enum name="BLEND_COLOR_EXT"               count="4"  value="0x8005">
+        <size name="Get" mode="get"/>
+    </enum>
 
     <function name="BlendColorEXT" alias="BlendColor">
         <param name="red" type="GLclampf"/>
@@ -6166,12 +7391,30 @@ glx:
     <enum name="RGB10_A2_EXT"                             value="0x8059"/>
     <enum name="RGBA12_EXT"                               value="0x805A"/>
     <enum name="RGBA16_EXT"                               value="0x805B"/>
-    <enum name="TEXTURE_RED_SIZE_EXT"                     value="0x805C"/>
-    <enum name="TEXTURE_GREEN_SIZE_EXT"                   value="0x805D"/>
-    <enum name="TEXTURE_BLUE_SIZE_EXT"                    value="0x805E"/>
-    <enum name="TEXTURE_ALPHA_SIZE_EXT"                   value="0x805F"/>
-    <enum name="TEXTURE_LUMINANCE_SIZE_EXT"               value="0x8060"/>
-    <enum name="TEXTURE_INTENSITY_SIZE_EXT"               value="0x8061"/>
+    <enum name="TEXTURE_RED_SIZE_EXT"          count="1"  value="0x805C">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_GREEN_SIZE_EXT"        count="1"  value="0x805D">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BLUE_SIZE_EXT"         count="1"  value="0x805E">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_ALPHA_SIZE_EXT"        count="1"  value="0x805F">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_LUMINANCE_SIZE_EXT"    count="1"  value="0x8060">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_INTENSITY_SIZE_EXT"    count="1"  value="0x8061">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
     <enum name="REPLACE_EXT"                              value="0x8062"/>
     <enum name="PROXY_TEXTURE_1D_EXT"                     value="0x8063"/>
     <enum name="PROXY_TEXTURE_2D_EXT"                     value="0x8064"/>
@@ -6308,6 +7551,51 @@ glx:
 </category>
 
 <category name="GL_EXT_histogram" number="11">
+    <enum name="HISTOGRAM_EXT"                            value="0x8024"/>
+    <enum name="PROXY_HISTOGRAM_EXT"                      value="0x8025"/>
+    <enum name="HISTOGRAM_WIDTH_EXT"           count="1"  value="0x8026">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_FORMAT_EXT"          count="1"  value="0x8027">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_RED_SIZE_EXT"        count="1"  value="0x8028">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_GREEN_SIZE_EXT"      count="1"  value="0x8029">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_BLUE_SIZE_EXT"       count="1"  value="0x802A">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_ALPHA_SIZE_EXT"      count="1"  value="0x802B">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_LUMINANCE_SIZE_EXT"  count="1"  value="0x802C">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="HISTOGRAM_SINK_EXT"            count="1"  value="0x802D">
+        <size name="GetHistogramParameterfvEXT" mode="get"/>
+        <size name="GetHistogramParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="MINMAX_EXT"                               value="0x802E"/>
+    <enum name="MINMAX_FORMAT_EXT"             count="1"  value="0x802F">
+        <size name="GetMinmaxParameterfvEXT" mode="get"/>
+        <size name="GetMinmaxParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="MINMAX_SINK_EXT"               count="1"  value="0x8030">
+        <size name="GetMinmaxParameterfvEXT" mode="get"/>
+        <size name="GetMinmaxParameterivEXT" mode="get"/>
+    </enum>
+    <enum name="TABLE_TOO_LARGE_EXT"                      value="0x8031"/>
+
     <function name="GetHistogramEXT" offset="417">
         <param name="target" type="GLenum"/>
         <param name="reset" type="GLboolean"/>
@@ -6320,14 +7608,14 @@ glx:
     <function name="GetHistogramParameterfvEXT" offset="418">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx vendorpriv="6" ignore="true"/>
     </function>
 
     <function name="GetHistogramParameterivEXT" offset="419">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx vendorpriv="7" ignore="true"/>
     </function>
 
@@ -6343,14 +7631,14 @@ glx:
     <function name="GetMinmaxParameterfvEXT" offset="421">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx vendorpriv="9" ignore="true"/>
     </function>
 
     <function name="GetMinmaxParameterivEXT" offset="422">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx vendorpriv="10" ignore="true"/>
     </function>
 
@@ -6377,22 +7665,70 @@ glx:
 </category>
 
 <category name="GL_EXT_convolution" number="12">
-    <enum name="CONVOLUTION_BORDER_MODE_EXT"    count="1" value="0x8013">
+    <enum name="CONVOLUTION_BORDER_MODE_EXT"   count="1"  value="0x8013">
         <size name="ConvolutionParameterfv"/>
         <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
     </enum>
-    <!-- FIXME: Should this be in a section for HP_convolution_border_modes? -->
-    <enum name="CONVOLUTION_BORDER_COLOR_HP"    count="4" value="0x8154">
+    <enum name="CONVOLUTION_FILTER_SCALE_EXT"  count="4"  value="0x8014">
         <size name="ConvolutionParameterfv"/>
         <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
     </enum>
-    <enum name="CONVOLUTION_FILTER_SCALE_EXT"   count="4" value="0x8014">
+    <enum name="CONVOLUTION_FILTER_BIAS_EXT"   count="4"  value="0x8015">
         <size name="ConvolutionParameterfv"/>
         <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
     </enum>
-    <enum name="CONVOLUTION_FILTER_BIAS_EXT"    count="4" value="0x8015">
-        <size name="ConvolutionParameterfv"/>
-        <size name="ConvolutionParameteriv"/>
+    <enum name="REDUCE_EXT"                               value="0x8016"/>
+    <enum name="CONVOLUTION_FORMAT_EXT"        count="1"  value="0x8017">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_WIDTH_EXT"         count="1"  value="0x8018">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="CONVOLUTION_HEIGHT_EXT"        count="1"  value="0x8019">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+    <enum name="MAX_CONVOLUTION_WIDTH_EXT"     count="1"  value="0x801A">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_CONVOLUTION_HEIGHT_EXT"    count="1"  value="0x801B">
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_RED_SCALE_EXT" count="1" value="0x801C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_GREEN_SCALE_EXT" count="1" value="0x801D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_BLUE_SCALE_EXT" count="1" value="0x801E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_ALPHA_SCALE_EXT" count="1" value="0x801F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_RED_BIAS_EXT" count="1"  value="0x8020">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_GREEN_BIAS_EXT" count="1" value="0x8021">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_BLUE_BIAS_EXT" count="1" value="0x8022">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="POST_CONVOLUTION_ALPHA_BIAS_EXT" count="1" value="0x8023">
+        <size name="Get" mode="get"/>
     </enum>
 
     <function name="ConvolutionFilter1DEXT" alias="ConvolutionFilter1D">
@@ -6460,21 +7796,21 @@ glx:
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
         <param name="image" type="GLvoid *" output="true"/>
-        <glx sop="1" handcode="true" ignore="true"/>
+        <glx vendorpriv="1" handcode="true" ignore="true"/>
     </function>
 
     <function name="GetConvolutionParameterfvEXT" offset="424">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-        <glx sop="2" ignore="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx vendorpriv="2" ignore="true"/>
     </function>
 
     <function name="GetConvolutionParameterivEXT" offset="425">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-        <glx sop="3" ignore="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx vendorpriv="3" ignore="true"/>
     </function>
 
     <function name="GetSeparableFilterEXT" offset="426">
@@ -6484,7 +7820,7 @@ glx:
         <param name="row" type="GLvoid *" output="true"/>
         <param name="column" type="GLvoid *" output="true"/>
         <param name="span" type="GLvoid *" output="true"/>
-        <glx sop="4" handcode="true" ignore="true"/>
+        <glx vendorpriv="4" handcode="true" ignore="true"/>
     </function>
 
     <function name="SeparableFilter2DEXT" alias="SeparableFilter2D">
@@ -6499,6 +7835,20 @@ glx:
     </function>
 </category>
 
+<category name="GL_SGI_color_matrix" number="13">
+    <enum name="COLOR_MATRIX_SGI"                         value="0x80B1"/>
+    <enum name="COLOR_MATRIX_STACK_DEPTH_SGI"             value="0x80B2"/>
+    <enum name="MAX_COLOR_MATRIX_STACK_DEPTH_SGI"         value="0x80B3"/>
+    <enum name="POST_COLOR_MATRIX_RED_SCALE_SGI"          value="0x80B4"/>
+    <enum name="POST_COLOR_MATRIX_GREEN_SCALE_SGI"        value="0x80B5"/>
+    <enum name="POST_COLOR_MATRIX_BLUE_SCALE_SGI"         value="0x80B6"/>
+    <enum name="POST_COLOR_MATRIX_ALPHA_SCALE_SGI"        value="0x80B7"/>
+    <enum name="POST_COLOR_MATRIX_RED_BIAS_SGI"           value="0x80B8"/>
+    <enum name="POST_COLOR_MATRIX_GREEN_BIAS_SGI"         value="0x80B9"/>
+    <enum name="POST_COLOR_MATRIX_BLUE_BIAS_SGI"          value="0x80BA"/>
+    <enum name="POST_COLOR_MATRIX_ALPHA_BIAS_SGI"         value="0x80BB"/>
+</category>
+
 <category name="GL_SGI_color_table" number="14">
     <function name="ColorTableSGI" alias="ColorTable">
         <param name="target" type="GLenum"/>
@@ -6540,14 +7890,14 @@ glx:
     <function name="GetColorTableParameterfvSGI" offset="428">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx vendorpriv="4099" ignore="true"/>
     </function>
 
     <function name="GetColorTableParameterivSGI" offset="429">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx vendorpriv="4100" ignore="true"/>
     </function>
 </category>
@@ -6579,13 +7929,13 @@ glx:
 
     <function name="GetPixelTexGenParameterivSGIS" offset="435">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetPixelTexGenParameterfvSGIS" offset="436">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 </category>
@@ -6624,13 +7974,18 @@ glx:
     </function>
 </category>
 
+<category name="GL_SGI_texture_color_table" number="17">
+    <enum name="TEXTURE_COLOR_TABLE_SGI"                  value="0x80BC"/>
+    <enum name="PROXY_TEXTURE_COLOR_TABLE_SGI"            value="0x80BD"/>
+</category>
+
 <!-- Extension number 19 is not listed in the extension registry. -->
 
 <category name="GL_EXT_texture_object" number="20">
     <function name="AreTexturesResidentEXT" offset="439">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="textures" type="const GLuint *" count="n"/>
-        <param name="residences" type="GLboolean *" output="true"/>
+        <param name="residences" type="GLboolean *" output="true" count="n"/>
         <return type="GLboolean"/>
         <glx vendorpriv="11" always_array="true"/>
     </function>
@@ -6644,13 +7999,14 @@ glx:
          do not have the same protocol!
     -->
     <function name="DeleteTexturesEXT" alias="DeleteTextures">
-        <param name="n" type="GLsizei"/>
-        <param name="textures" type="const GLuint *"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="textures" type="const GLuint *" count="n"/>
+        <glx vendorpriv="12"/>
     </function>
 
     <function name="GenTexturesEXT" offset="440">
-        <param name="n" type="GLsizei"/>
-        <param name="textures" type="GLuint *" output="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="textures" type="GLuint *" output="true" count="n"/>
         <glx vendorpriv="13" always_array="true"/>
     </function>
 
@@ -6710,6 +8066,14 @@ glx:
     </function>
 </category>
 
+<!-- Extension number 26 is not listed in the extension registry. -->
+
+<category name="GL_EXT_rescale_normal" number="27">
+    <enum name="RESCALE_NORMAL_EXT"            count="1"  value="0x803A">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <!-- Extension number 28 is a GLX extension. -->
 <!-- Extension number 29 is not listed in the extension registry. -->
 
@@ -6780,10 +8144,12 @@ glx:
     </function>
 </category>
 
-<category name="GL_SGIS_generate_mipmap" number="33">
+<category name="GL_SGIS_generate_mipmap" number="32">
     <enum name="GENERATE_MIPMAP_SGIS"          count="1"  value="0x8191">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="GENERATE_MIPMAP_HINT_SGIS"                value="0x8192"/>
 </category>
@@ -6793,15 +8159,26 @@ glx:
     <enum name="TEXTURE_CLIPMAP_CENTER_SGIX"   count="2"  value="0x8171">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_CLIPMAP_FRAME_SGIX"    count="1"  value="0x8172">
+        <size name="TexParameterfv"/>
+        <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
-    <enum name="TEXTURE_CLIPMAP_FRAME_SGIX"               value="0x8172"/>
     <enum name="TEXTURE_CLIPMAP_OFFSET_SGIX"   count="2"  value="0x8173">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX" count="3" value="0x8174">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"          value="0x8175"/>
     <enum name="TEXTURE_CLIPMAP_DEPTH_SGIX"               value="0x8176"/>
@@ -6816,21 +8193,49 @@ glx:
     <enum name="TEXTURE_COMPARE_SGIX"          count="1"  value="0x819A">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_COMPARE_OPERATOR_SGIX" count="1"  value="0x819B">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_LEQUAL_R_SGIX"                    value="0x819C"/>
     <enum name="TEXTURE_GEQUAL_R_SGIX"                    value="0x819D"/>
 </category>
 
+<category name="GL_SGIS_texture_edge_clamp" number="35">
+    <enum name="CLAMP_TO_EDGE_SGIS"                       value="0x812F"/>
+</category>
+
+<category name="GL_SGIS_texture_border_clamp" number="36">
+    <enum name="CLAMP_TO_BORDER_SGIS"                     value="0x812D"/>
+</category>
+
 <category name="GL_EXT_blend_minmax" number="37">
+    <enum name="FUNC_ADD_EXT"                             value="0x8006"/>
+    <enum name="MIN_EXT"                                  value="0x8007"/>
+    <enum name="MAX_EXT"                                  value="0x8008"/>
+    <enum name="BLEND_EQUATION_EXT"            count="1"  value="0x8009">
+        <size name="Get" mode="get"/>
+    </enum>
+
     <function name="BlendEquationEXT" alias="BlendEquation">
         <param name="mode" type="GLenum"/>
     </function>
 </category>
 
+<category name="GL_EXT_blend_subtract" number="38">
+    <enum name="FUNC_SUBTRACT_EXT"                        value="0x800A"/>
+    <enum name="FUNC_REVERSE_SUBTRACT_EXT"                value="0x800B"/>
+
+    <!-- <function name="BlendEquationEXT" alias="BlendEquation">
+        <param name="mode" type="GLenum"/>
+    </function> -->
+</category>
+
 <!-- Extension number 40 is a GLX extension. -->
 <!-- Extension number 41 is a GLX extension. -->
 <!-- Extension number 42 is a GLX extension. -->
@@ -6932,10 +8337,14 @@ glx:
     <enum name="POST_TEXTURE_FILTER_BIAS_SGIX"  count="4" value="0x8179">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="POST_TEXTURE_FILTER_SCALE_SGIX" count="4" value="0x817A">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="POST_TEXTURE_FILTER_BIAS_RANGE_SGIX"      value="0x817B"/>
     <enum name="POST_TEXTURE_FILTER_SCALE_RANGE_SGIX"     value="0x817C"/>
@@ -7026,16 +8435,28 @@ glx:
     <function name="GetImageTransformParameterivHP" offset="?">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
     </function>
 
     <function name="GetImageTransformParameterfvHP" offset="?">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
     </function>
 </category>
 
+<category name="GL_HP_convolution_border_modes" number="67">
+    <enum name="IGNORE_BORDER_HP"                         value="0x8150"/>
+    <enum name="CONSTANT_BORDER_HP"                       value="0x8151"/>
+    <enum name="REPLICATE_BORDER_HP"                      value="0x8153"/>
+    <enum name="CONVOLUTION_BORDER_COLOR_HP"   count="4"  value="0x8154">
+        <size name="ConvolutionParameterfv"/>
+        <size name="ConvolutionParameteriv"/>
+        <size name="GetConvolutionParameterfv" mode="get"/>
+        <size name="GetConvolutionParameteriv" mode="get"/>
+    </enum>
+</category>
+
 <!-- Extension number 68 is not listed in the extension registry. -->
 <!-- Extension number 70 is not listed in the extension registry. -->
 <!-- Extension number 71 is not listed in the extension registry. -->
@@ -7072,6 +8493,43 @@ glx:
 </category>
 
 <category name="GL_EXT_paletted_texture" number="78">
+    <enum name="COLOR_TABLE_FORMAT_EXT"        count="1"  value="0x80D8">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_WIDTH_EXT"         count="1"  value="0x80D9">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_RED_SIZE_EXT"      count="1"  value="0x80DA">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_GREEN_SIZE_EXT"    count="1"  value="0x80DB">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_BLUE_SIZE_EXT"     count="1"  value="0x80DC">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_ALPHA_SIZE_EXT"    count="1"  value="0x80DD">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_LUMINANCE_SIZE_EXT" count="1" value="0x80DE">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="COLOR_TABLE_INTENSITY_SIZE_EXT" count="1" value="0x80DF">
+        <size name="GetColorTableParameterfv" mode="get"/>
+        <size name="GetColorTableParameteriv" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_INDEX_SIZE_EXT"        count="1"  value="0x80ED">
+        <size name="GetTexLevelParameterfv" mode="get"/>
+        <size name="GetTexLevelParameteriv" mode="get"/>
+    </enum>
+
     <function name="ColorTableEXT" alias="ColorTable">
         <param name="target" type="GLenum"/>
         <param name="internalFormat" type="GLenum"/>
@@ -7092,30 +8550,36 @@ glx:
     <function name="GetColorTableParameterivEXT" offset="551">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetColorTableParameterfvEXT" offset="552">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 </category>
 
+<category name="GL_EXT_clip_volume_hint" number="79">
+    <enum name="CLIP_VOLUME_CLIPPING_HINT_EXT" count="1"  value="0x80F0">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_SGIX_list_priority" number="80">
     <function name="GetListParameterfvSGIX" offset="470">
         <param name="list" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetListParameterivSGIX" offset="471">
         <param name="list" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
@@ -7152,17 +8616,23 @@ glx:
 <!-- Extension number 83 is a GLX extension. -->
 
 <category name="GL_SGIX_texture_lod_bias" number="84">
-    <enum name="TEXTURE_LOD_BIAS_S_SGIX"      count="1"  value="0x818E">
+    <enum name="TEXTURE_LOD_BIAS_S_SGIX"       count="1"  value="0x818E">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
-    <enum name="TEXTURE_LOD_BIAS_T_SGIX"      count="1"  value="0x818F">
+    <enum name="TEXTURE_LOD_BIAS_T_SGIX"       count="1"  value="0x818F">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
-    <enum name="TEXTURE_LOD_BIAS_R_SGIX"      count="1"  value="0x8190">
+    <enum name="TEXTURE_LOD_BIAS_R_SGIX"       count="1"  value="0x8190">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
 </category>
 
@@ -7177,6 +8647,8 @@ glx:
     <enum name="SHADOW_AMBIENT_SGIX"           count="1"  value="0x80BF">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
 </category>
 
@@ -7329,28 +8801,28 @@ glx:
     <function name="GetFragmentLightfvSGIX" offset="489">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetFragmentLightivSGIX" offset="490">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetFragmentMaterialfvSGIX" offset="491">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
     <function name="GetFragmentMaterialivSGIX" offset="492">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
@@ -7369,6 +8841,12 @@ glx:
 <!-- Extension number 108 is not listed in the extension registry. -->
 <!-- Extension number 109 is not listed in the extension registry. -->
 
+<category name="GL_IBM_rasterpos_clip" number="110">
+    <enum name="RASTER_POSITION_UNCLIPPED_IBM"  count="1" value="0x19262">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_EXT_draw_range_elements" number="112">
     <function name="DrawRangeElementsEXT" alias="DrawRangeElements">
         <param name="mode" type="GLenum"/>
@@ -7466,6 +8944,15 @@ glx:
     </function>
 </category>
 
+<category name="GL_HP_occlusion_test" number="137">
+    <enum name="OCCLUSION_TEST_HP"             count="1"  value="0x8165">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="OCCLUSION_TEST_RESULT_HP"      count="1"  value="0x8166">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_EXT_pixel_transform" number="138">
     <function name="PixelTransformParameteriEXT" offset="?">
         <param name="target" type="GLenum"/>
@@ -7493,9 +8980,23 @@ glx:
 </category>
 
 <!-- Extension number 140 is not listed in the extension registry. -->
+
+<category name="GL_EXT_shared_texture_palette" number="141">
+    <enum name="SHARED_TEXTURE_PALETTE_EXT"    count="1"  value="0x81FB"/>
+</category>
+
 <!-- Extension number 142 is a GLX extension. -->
 <!-- Extension number 143 is not listed in the extension registry. -->
 
+<category name="GL_EXT_separate_specular_color" number="144">
+    <enum name="LIGHT_MODEL_COLOR_CONTROL_EXT" count="1"  value="0x81F8">
+        <size name="LightModelfv"/>
+        <size name="LightModeliv"/>
+    </enum>
+    <enum name="SINGLE_COLOR_EXT"                         value="0x81F9"/>
+    <enum name="SEPARATE_SPECULAR_COLOR_EXT"              value="0x81FA"/>
+</category>
+
 <category name="GL_EXT_secondary_color" number="145">
     <function name="SecondaryColor3bEXT" offset="561" vectorequiv="SecondaryColor3bvEXT">
         <param name="red" type="GLbyte"/>
@@ -7549,7 +9050,7 @@ glx:
 
     <function name="SecondaryColor3svEXT" offset="570">
         <param name="v" type="const GLshort *" count="3"/>
-        <glx rop="4128"/>
+        <glx rop="4127"/>
     </function>
 
     <function name="SecondaryColor3ubEXT" offset="571" vectorequiv="SecondaryColor3ubvEXT">
@@ -7768,6 +9269,30 @@ glx:
 
 <!-- Extension number 157 is not listed in the extension registry. -->
 
+<category name="GL_EXT_texture_env_combine" number="158">
+    <enum name="COMBINE_EXT"                              value="0x8570"/>
+    <enum name="COMBINE_RGB_EXT"               count="1"  value="0x8571"/>
+    <enum name="COMBINE_ALPHA_EXT"             count="1"  value="0x8572"/>
+    <enum name="RGB_SCALE_EXT"                 count="1"  value="0x8573"/>
+    <enum name="ADD_SIGNED_EXT"                           value="0x8574"/>
+    <enum name="INTERPOLATE_EXT"                          value="0x8575"/>
+    <enum name="CONSTANT_EXT"                             value="0x8576"/>
+    <enum name="PRIMARY_COLOR_EXT"                        value="0x8577"/>
+    <enum name="PREVIOUS_EXT"                             value="0x8578"/>
+    <enum name="SOURCE0_RGB_EXT"               count="1"  value="0x8580"/>
+    <enum name="SOURCE1_RGB_EXT"               count="1"  value="0x8581"/>
+    <enum name="SOURCE2_RGB_EXT"               count="1"  value="0x8582"/>
+    <enum name="SOURCE0_ALPHA_EXT"             count="1"  value="0x8588"/>
+    <enum name="SOURCE1_ALPHA_EXT"             count="1"  value="0x8589"/>
+    <enum name="SOURCE2_ALPHA_EXT"             count="1"  value="0x858A"/>
+    <enum name="OPERAND0_RGB_EXT"              count="1"  value="0x8590"/>
+    <enum name="OPERAND1_RGB_EXT"              count="1"  value="0x8591"/>
+    <enum name="OPERAND2_RGB_EXT"              count="1"  value="0x8592"/>
+    <enum name="OPERAND0_ALPHA_EXT"            count="1"  value="0x8598"/>
+    <enum name="OPERAND1_ALPHA_EXT"            count="1"  value="0x8599"/>
+    <enum name="OPERAND2_ALPHA_EXT"            count="1"  value="0x859A"/>
+</category>
+
 <category name="GL_SGIX_pixel_texture" number="160">
     <function name="PixelTexGenSGIX" offset="430">
         <param name="mode" type="GLenum"/>
@@ -8212,7 +9737,18 @@ glx:
     </function>
 </category>
 
+<category name="GL_EXT_stencil_wrap" number="176">
+    <enum name="INCR_WRAP_EXT"                            value="0x8507"/>
+    <enum name="DECR_WRAP_EXT"                            value="0x8508"/>
+</category>
+
 <!-- Extension number 177 is a WGL extension. -->
+
+<category name="GL_NV_texgen_reflection" number="179">
+    <enum name="NORMAL_MAP_NV"                            value="0x8511"/>
+    <enum name="REFLECTION_MAP_NV"                        value="0x8512"/>
+</category>
+
 <!-- Extension number 180 is not listed in the extension registry. -->
 
 <category name="GL_SUN_convolution_border_modes" number="182">
@@ -8222,10 +9758,16 @@ glx:
 <!-- Extension number 183 is a GLX extension. -->
 <!-- Extension number 184 is not listed in the extension registry. -->
 
+<category name="GL_EXT_texture_env_add" number="185">
+    <!-- No new functions, types, enums. -->
+</category>
+
 <category name="GL_EXT_texture_lod_bias" number="186">
     <enum name="TEXTURE_LOD_BIAS_EXT"          count="1"  value="0x8501">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
 </category>
 
@@ -8233,6 +9775,8 @@ glx:
     <enum name="TEXTURE_MAX_ANISOTROPY_EXT"    count="1"  value="0x84FE">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="MAX_TEXTURE_MAX_ANISOTROPY_EXT"           value="0x84FF"/>
 </category>
@@ -8257,6 +9801,15 @@ glx:
     </function>
 </category>
 
+<category name="GL_NV_light_max_exponent" number="189">
+    <enum name="MAX_SHININESS_NV"              count="1"  value="0x8504">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_SPOT_EXPONENT_NV"          count="1"  value="0x8505">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_NV_vertex_array_range" number="190">
     <function name="FlushVertexArrayRangeNV" offset="497">
         <glx ignore="true"/>
@@ -8379,28 +9932,41 @@ glx:
     <enum name="FOG_DISTANCE_MODE_NV"          count="1"  value="0x855A">
         <size name="Fogfv"/>
         <size name="Fogiv"/>
+        <size name="Get" mode="get"/>
     </enum>
     <enum name="EYE_RADIAL_NV"                            value="0x855B"/>
     <enum name="EYE_PLANE_ABSOLUTE_NV"                    value="0x855C"/>
 </category>
 
+<category name="GL_NV_blend_square" number="194">
+    <!-- No new functions, types, enums. -->
+</category>
+
 <category name="GL_NV_texture_env_combine4" number="195">
     <enum name="COMBINE4"                                 value="0x8503"/>
     <enum name="SOURCE3_RGB_NV"                count="1"  value="0x8583">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="SOURCE3_ALPHA_NV"              count="1"  value="0x858B">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="OPERAND3_RGB_NV"               count="1"  value="0x8593">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
     <enum name="OPERAND3_ALPHA_NV"             count="1"  value="0x859B">
         <size name="TexEnvfv"/>
         <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
     </enum>
 </category>
 
@@ -8555,6 +10121,13 @@ glx:
     </function>
 </category>
 
+<category name="GL_EXT_texture_compression_s3tc" number="198">
+    <enum name="COMPRESSED_RGB_S3TC_DXT1_EXT"             value="0x83F0"/>
+    <enum name="COMPRESSED_RGBA_S3TC_DXT1_EXT"            value="0x83F1"/>
+    <enum name="COMPRESSED_RGBA_S3TC_DXT3_EXT"            value="0x83F2"/>
+    <enum name="COMPRESSED_RGBA_S3TC_DXT5_EXT"            value="0x83F3"/>
+</category>
+
 <category name="GL_IBM_multimode_draw_arrays" number="200">
     <function name="MultiModeDrawArraysIBM" offset="708">
         <param name="mode" type="const GLenum *"/>
@@ -8642,6 +10215,18 @@ glx:
 <!-- Extension number 204 is not listed in the extension registry. -->
 <!-- Extension number 205 is not listed in the extension registry. -->
 
+<category name="GL_3DFX_texture_compression_FXT1" number="206">
+    <enum name="COMPRESSED_RGB_FXT1_3DFX"                 value="0x86B0"/>
+    <enum name="COMPRESSED_RGBA_FXT1_3DFX"                value="0x86B1"/>
+</category>
+
+<category name="GL_3DFX_multisample" number="207">
+    <enum name="MULTISAMPLE_3DFX"                         value="0x86B2"/>
+    <enum name="SAMPLE_BUFFERS_3DFX"                      value="0x86B3"/>
+    <enum name="SAMPLES_3DFX"                             value="0x86B4"/>
+    <enum name="MULTISAMPLE_BIT_3DFX"                     value="0x20000000"/>
+</category>
+
 <category name="GL_3DFX_tbuffer" number="208">
     <function name="TbufferMask3DFX" offset="553">
         <param name="mask" type="GLuint"/>
@@ -8671,7 +10256,7 @@ glx:
         <param name="green" type="GLboolean"/>
         <param name="blue" type="GLboolean"/>
         <param name="alpha" type="GLboolean"/>
-        <glx rop="2082"/>
+        <glx rop="2082" ignore="true"/>
     </function>
 </category>
 
@@ -8699,8 +10284,8 @@ glx:
     </function>
 
     <function name="GenFencesNV" offset="648">
-        <param name="n" type="GLsizei"/>
-        <param name="fences" type="GLuint *" output="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="fences" type="GLuint *" output="true" counter="n"/>
         <glx ignore="true"/>
     </function>
 
@@ -8825,117 +10410,242 @@ glx:
     </function>
 </category>
 
+<category name="GL_NV_texture_compression_vtc" number="228">
+    <enum name="COMPRESSED_RGB_S3TC_DXT1_EXT"             value="0x83F0"/>
+    <enum name="COMPRESSED_RGBA_S3TC_DXT1_EXT"            value="0x83F1"/>
+    <enum name="COMPRESSED_RGBA_S3TC_DXT3_EXT"            value="0x83F2"/>
+    <enum name="COMPRESSED_RGBA_S3TC_DXT5_EXT"            value="0x83F3"/>
+</category>
+
 <category name="GL_NV_texture_rectangle" number="229">
-    <enum name="TEXTURE_RECTANGLE_NV"                     value="0x84F5"/>
-    <enum name="TEXTURE_BINDING_RECTANGLE_NV"             value="0x84F6"/>
+    <enum name="TEXTURE_RECTANGLE_NV"          count="1"  value="0x84F5">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="TEXTURE_BINDING_RECTANGLE_NV"  count="1"  value="0x84F6">
+        <size name="Get" mode="get"/>
+    </enum>
     <enum name="PROXY_TEXTURE_RECTANGLE_NV"               value="0x84F7"/>
-    <enum name="MAX_RECTANGLE_TEXTURE_SIZE_NV"            value="0x84F8"/>
+    <enum name="MAX_RECTANGLE_TEXTURE_SIZE_NV" count="1"  value="0x84F8">
+        <size name="Get" mode="get"/>
+    </enum>
 </category>
 
 <category name="GL_NV_vertex_program" number="233">
+    <enum name="VERTEX_PROGRAM_NV"                        value="0x8620"/>
+    <enum name="VERTEX_STATE_PROGRAM_NV"                  value="0x8621"/>
+    <enum name="ATTRIB_ARRAY_SIZE_NV"          count="1"  value="0x8623">
+        <size name="GetVertexAttribdvNV" mode="get"/>
+        <size name="GetVertexAttribfvNV" mode="get"/>
+        <size name="GetVertexAttribivNV" mode="get"/>
+    </enum>
+    <enum name="ATTRIB_ARRAY_STRIDE_NV"        count="1"  value="0x8624">
+        <size name="GetVertexAttribdvNV" mode="get"/>
+        <size name="GetVertexAttribfvNV" mode="get"/>
+        <size name="GetVertexAttribivNV" mode="get"/>
+    </enum>
+    <enum name="ATTRIB_ARRAY_TYPE_NV"          count="1"  value="0x8625">
+        <size name="GetVertexAttribdvNV" mode="get"/>
+        <size name="GetVertexAttribfvNV" mode="get"/>
+        <size name="GetVertexAttribivNV" mode="get"/>
+    </enum>
+    <enum name="CURRENT_ATTRIB_NV"             count="1"  value="0x8626">
+        <size name="GetVertexAttribdvNV" mode="get"/>
+        <size name="GetVertexAttribfvNV" mode="get"/>
+        <size name="GetVertexAttribivNV" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_LENGTH_NV"             count="1"  value="0x8627">
+        <size name="GetProgramivNV" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_STRING_NV"                        value="0x8628"/>
+    <enum name="MODELVIEW_PROJECTION_NV"                  value="0x8629"/>
+    <enum name="IDENTITY_NV"                              value="0x862A"/>
+    <enum name="INVERSE_NV"                               value="0x862B"/>
+    <enum name="TRANSPOSE_NV"                             value="0x862C"/>
+    <enum name="INVERSE_TRANSPOSE_NV"                     value="0x862D"/>
+    <enum name="MAX_TRACK_MATRIX_STACK_DEPTH_NV"          value="0x862E"/>
+    <enum name="MAX_TRACK_MATRICES_NV"                    value="0x862F"/>
+    <enum name="MATRIX0_NV"                               value="0x8630"/>
+    <enum name="MATRIX1_NV"                               value="0x8631"/>
+    <enum name="MATRIX2_NV"                               value="0x8632"/>
+    <enum name="MATRIX3_NV"                               value="0x8633"/>
+    <enum name="MATRIX4_NV"                               value="0x8634"/>
+    <enum name="MATRIX5_NV"                               value="0x8635"/>
+    <enum name="MATRIX6_NV"                               value="0x8636"/>
+    <enum name="MATRIX7_NV"                               value="0x8637"/>
+    <enum name="CURRENT_MATRIX_STACK_DEPTH_NV"            value="0x8640"/>
+    <enum name="CURRENT_MATRIX_NV"                        value="0x8641"/>
+    <enum name="VERTEX_PROGRAM_POINT_SIZE_NV"             value="0x8642"/>
+    <enum name="VERTEX_PROGRAM_TWO_SIDE_NV"               value="0x8643"/>
+    <enum name="PROGRAM_PARAMETER_NV"                     value="0x8644"/>
+    <enum name="ATTRIB_ARRAY_POINTER_NV"                  value="0x8645"/>
+    <enum name="PROGRAM_TARGET_NV"             count="1"  value="0x8646">
+        <size name="GetProgramivNV" mode="get"/>
+    </enum>
+    <enum name="PROGRAM_RESIDENT_NV"           count="1"  value="0x8647">
+        <size name="GetProgramivNV" mode="get"/>
+    </enum>
+    <enum name="TRACK_MATRIX_NV"                          value="0x8648"/>
+    <enum name="TRACK_MATRIX_TRANSFORM_NV"                value="0x8649"/>
+    <enum name="VERTEX_PROGRAM_BINDING_NV"                value="0x864A"/>
+    <enum name="PROGRAM_ERROR_POSITION_NV"                value="0x864B"/>
+    <enum name="VERTEX_ATTRIB_ARRAY0_NV"                  value="0x8650"/>
+    <enum name="VERTEX_ATTRIB_ARRAY1_NV"                  value="0x8651"/>
+    <enum name="VERTEX_ATTRIB_ARRAY2_NV"                  value="0x8652"/>
+    <enum name="VERTEX_ATTRIB_ARRAY3_NV"                  value="0x8653"/>
+    <enum name="VERTEX_ATTRIB_ARRAY4_NV"                  value="0x8654"/>
+    <enum name="VERTEX_ATTRIB_ARRAY5_NV"                  value="0x8655"/>
+    <enum name="VERTEX_ATTRIB_ARRAY6_NV"                  value="0x8656"/>
+    <enum name="VERTEX_ATTRIB_ARRAY7_NV"                  value="0x8657"/>
+    <enum name="VERTEX_ATTRIB_ARRAY8_NV"                  value="0x8658"/>
+    <enum name="VERTEX_ATTRIB_ARRAY9_NV"                  value="0x8659"/>
+    <enum name="VERTEX_ATTRIB_ARRAY10_NV"                 value="0x865A"/>
+    <enum name="VERTEX_ATTRIB_ARRAY11_NV"                 value="0x865B"/>
+    <enum name="VERTEX_ATTRIB_ARRAY12_NV"                 value="0x865C"/>
+    <enum name="VERTEX_ATTRIB_ARRAY13_NV"                 value="0x865D"/>
+    <enum name="VERTEX_ATTRIB_ARRAY14_NV"                 value="0x865E"/>
+    <enum name="VERTEX_ATTRIB_ARRAY15_NV"                 value="0x865F"/>
+    <enum name="MAP1_VERTEX_ATTRIB0_4_NV"                 value="0x8660"/>
+    <enum name="MAP1_VERTEX_ATTRIB1_4_NV"                 value="0x8661"/>
+    <enum name="MAP1_VERTEX_ATTRIB2_4_NV"                 value="0x8662"/>
+    <enum name="MAP1_VERTEX_ATTRIB3_4_NV"                 value="0x8663"/>
+    <enum name="MAP1_VERTEX_ATTRIB4_4_NV"                 value="0x8664"/>
+    <enum name="MAP1_VERTEX_ATTRIB5_4_NV"                 value="0x8665"/>
+    <enum name="MAP1_VERTEX_ATTRIB6_4_NV"                 value="0x8666"/>
+    <enum name="MAP1_VERTEX_ATTRIB7_4_NV"                 value="0x8667"/>
+    <enum name="MAP1_VERTEX_ATTRIB8_4_NV"                 value="0x8668"/>
+    <enum name="MAP1_VERTEX_ATTRIB9_4_NV"                 value="0x8669"/>
+    <enum name="MAP1_VERTEX_ATTRIB10_4_NV"                value="0x866A"/>
+    <enum name="MAP1_VERTEX_ATTRIB11_4_NV"                value="0x866B"/>
+    <enum name="MAP1_VERTEX_ATTRIB12_4_NV"                value="0x866C"/>
+    <enum name="MAP1_VERTEX_ATTRIB13_4_NV"                value="0x866D"/>
+    <enum name="MAP1_VERTEX_ATTRIB14_4_NV"                value="0x866E"/>
+    <enum name="MAP1_VERTEX_ATTRIB15_4_NV"                value="0x866F"/>
+    <enum name="MAP2_VERTEX_ATTRIB0_4_NV"                 value="0x8670"/>
+    <enum name="MAP2_VERTEX_ATTRIB1_4_NV"                 value="0x8671"/>
+    <enum name="MAP2_VERTEX_ATTRIB2_4_NV"                 value="0x8672"/>
+    <enum name="MAP2_VERTEX_ATTRIB3_4_NV"                 value="0x8673"/>
+    <enum name="MAP2_VERTEX_ATTRIB4_4_NV"                 value="0x8674"/>
+    <enum name="MAP2_VERTEX_ATTRIB5_4_NV"                 value="0x8675"/>
+    <enum name="MAP2_VERTEX_ATTRIB6_4_NV"                 value="0x8676"/>
+    <enum name="MAP2_VERTEX_ATTRIB7_4_NV"                 value="0x8677"/>
+    <enum name="MAP2_VERTEX_ATTRIB8_4_NV"                 value="0x8678"/>
+    <enum name="MAP2_VERTEX_ATTRIB9_4_NV"                 value="0x8679"/>
+    <enum name="MAP2_VERTEX_ATTRIB10_4_NV"                value="0x867A"/>
+    <enum name="MAP2_VERTEX_ATTRIB11_4_NV"                value="0x867B"/>
+    <enum name="MAP2_VERTEX_ATTRIB12_4_NV"                value="0x867C"/>
+    <enum name="MAP2_VERTEX_ATTRIB13_4_NV"                value="0x867D"/>
+    <enum name="MAP2_VERTEX_ATTRIB14_4_NV"                value="0x867E"/>
+    <enum name="MAP2_VERTEX_ATTRIB15_4_NV"                value="0x867F"/>
+
     <function name="AreProgramsResidentNV" offset="578">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="ids" type="const GLuint *" count="n"/>
-        <param name="residences" type="GLboolean *" output="true"/>
+        <param name="residences" type="GLboolean *" output="true" count="n"/>
         <return type="GLboolean"/>
-        <glx vendorpriv="1293" ignore="true"/>
+        <glx vendorpriv="1293"/>
     </function>
 
     <function name="BindProgramNV" offset="579">
         <param name="target" type="GLenum"/>
         <param name="id" type="GLuint"/>
-        <glx rop="4108" ignore="true"/>
+        <glx rop="4180"/>
     </function>
 
     <function name="DeleteProgramsNV" offset="580">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="ids" type="const GLuint *" count="n"/>
-        <glx vendorpriv="1294" ignore="true"/>
+        <glx vendorpriv="1294"/>
     </function>
 
     <function name="ExecuteProgramNV" offset="581">
         <param name="target" type="GLenum"/>
         <param name="id" type="GLuint"/>
-        <param name="params" type="const GLfloat *" variable_param="target"/>
-        <glx rop="4181" ignore="true"/>
+        <param name="params" type="const GLfloat *" count="4"/>
+        <glx rop="4181"/>
     </function>
 
     <function name="GenProgramsNV" offset="582">
-        <param name="n" type="GLsizei"/>
-        <param name="ids" type="GLuint *" output="true"/>
-        <glx vendorpriv="1295" ignore="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="ids" type="GLuint *" output="true" count="n"/>
+        <glx vendorpriv="1295"/>
     </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
+         4.  This is why the pname parameter was removed in the ARB version
+         of these functions.
+      -->
+
     <function name="GetProgramParameterdvNV" offset="583">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLdouble *" output="true"/>
-        <glx vendorpriv="1297" ignore="true"/>
+        <param name="params" type="GLdouble *" output="true" count="4"/>
+        <glx vendorpriv="1297"/>
     </function>
 
     <function name="GetProgramParameterfvNV" offset="584">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-        <glx vendorpriv="1296" ignore="true"/>
+        <param name="params" type="GLfloat *" output="true" count="4"/>
+        <glx vendorpriv="1296"/>
     </function>
 
     <function name="GetProgramivNV" offset="585">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-        <glx vendorpriv="1307" ignore="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx vendorpriv="1298"/>
     </function>
 
     <function name="GetProgramStringNV" offset="586">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="program" type="GLubyte *" output="true"/>
-        <glx vendorpriv="1308" handcode="true" ignore="true"/>
+        <glx vendorpriv="1299" handcode="server" always_array="true"/>
     </function>
 
     <function name="GetTrackMatrixivNV" offset="587">
         <param name="target" type="GLenum"/>
         <param name="address" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-        <glx vendorpriv="1300" ignore="true"/>
+        <param name="params" type="GLint *" output="true" count="1"/>
+        <glx vendorpriv="1300"/>
     </function>
 
     <function name="GetVertexAttribdvNV" offset="753">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLdouble *" output="true"/>
-        <glx vendorpriv="1301" ignore="true"/>
+        <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
+        <glx vendorpriv="1301"/>
     </function>
 
     <function name="GetVertexAttribfvNV" offset="754">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLfloat *" output="true"/>
-        <glx vendorpriv="1302" ignore="true"/>
+        <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
+        <glx vendorpriv="1302"/>
     </function>
 
     <function name="GetVertexAttribivNV" offset="755">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="GLint *" output="true"/>
-        <glx vendorpriv="1303" ignore="true"/>
+        <param name="params" type="GLint *" output="true" variable_param="pname"/>
+        <glx vendorpriv="1303"/>
     </function>
 
     <function name="GetVertexAttribPointervNV" offset="591">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="pointer" type="GLvoid **" output="true"/>
-        <glx handcode="true" ignore="true"/>
+        <glx handcode="true"/>
     </function>
 
     <function name="IsProgramNV" offset="592">
         <param name="id" type="GLuint"/>
         <return type="GLboolean"/>
-        <glx vendorpriv="1304" ignore="true"/>
+        <glx vendorpriv="1304"/>
     </function>
 
     <function name="LoadProgramNV" offset="593">
@@ -8943,7 +10653,7 @@ glx:
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei" counter="true"/>
         <param name="program" type="const GLubyte *" count="len"/>
-        <glx rop="4183" ignore="true"/>
+        <glx rop="4183"/>
     </function>
 
     <function name="ProgramParameter4dNV" offset="594" vectorequiv="ProgramParameter4dvNV">
@@ -8953,14 +10663,13 @@ glx:
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="ProgramParameter4dvNV" offset="595">
         <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" ignore="true"/>
+        <glx rop="4185" doubles_in_order="true"/>
     </function>
 
     <function name="ProgramParameter4fNV" offset="596" vectorequiv="ProgramParameter4fvNV">
@@ -8970,44 +10679,35 @@ glx:
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="ProgramParameter4fvNV" offset="597">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLfloat *" count="4"/>
-        <glx rop="4184" ignore="true"/>
+        <glx rop="4184"/>
     </function>
 
     <function name="ProgramParameters4dvNV" offset="598">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
-        <param name="num" type="GLuint"/>
-        <param name="params" type="const GLdouble *"/>
-
-        <!-- This is hand coded because the number of array elements
-             pointed to by 'params' is 4*num.
-        -->
-        <glx rop="4187" handcode="true" ignore="true"/>
+        <param name="num" type="GLuint" counter="true"/>
+        <param name="params" type="const GLdouble *" count="num" count_scale="4"/>
+        <glx rop="4187"/>
     </function>
 
     <function name="ProgramParameters4fvNV" offset="599">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="num" type="GLuint" counter="true"/>
-        <param name="params" type="const GLfloat *" count="num"/>
-
-        <!-- This is hand coded because the number of array elements
-             pointed to by 'params' is 4*num.
-        -->
-        <glx rop="4186" handcode="true" ignore="true"/>
+        <param name="params" type="const GLfloat *" count="num" count_scale="4"/>
+        <glx rop="4186"/>
     </function>
 
     <function name="RequestResidentProgramsNV" offset="600">
-        <param name="n" type="GLsizei"/>
-        <param name="ids" type="const GLuint *"/>
-        <glx rop="4182" handcode="true" ignore="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="ids" type="const GLuint *" count="n"/>
+        <glx rop="4182"/>
     </function>
 
     <function name="TrackMatrixNV" offset="601">
@@ -9015,7 +10715,7 @@ glx:
         <param name="address" type="GLuint"/>
         <param name="matrix" type="GLenum"/>
         <param name="transform" type="GLenum"/>
-        <glx rop="4188" ignore="true"/>
+        <glx rop="4188"/>
     </function>
 
     <function name="VertexAttribPointerNV" offset="602">
@@ -9024,169 +10724,157 @@ glx:
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-        <glx handcode="true" ignore="true"/>
+        <glx handcode="true"/>
     </function>
 
-    <function name="VertexAttrib1dNV" offset="756" vectorequiv="VertexAttrib1dvNV">
+    <function name="VertexAttrib1sNV" offset="760" vectorequiv="VertexAttrib1svNV">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLdouble"/>
-        <glx ignore="true"/>
+        <param name="x" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib1dvNV" offset="757">
+    <function name="VertexAttrib1svNV" offset="761">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *" count="1"/>
-        <glx rop="4197" doubles_in_order="true" ignore="true"/>
+        <param name="v" type="const GLshort *" count="1"/>
+        <glx rop="4189"/>
     </function>
 
-    <function name="VertexAttrib1fNV" offset="758" vectorequiv="VertexAttrib1fvNV">
+    <function name="VertexAttrib2sNV" offset="766" vectorequiv="VertexAttrib2svNV">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLfloat"/>
-        <glx ignore="true"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib1fvNV" offset="759">
+    <function name="VertexAttrib2svNV" offset="767">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLfloat *" count="1"/>
-        <glx rop="4193" ignore="true"/>
+        <param name="v" type="const GLshort *" count="2"/>
+        <glx rop="4190"/>
     </function>
 
-    <function name="VertexAttrib1sNV" offset="760" vectorequiv="VertexAttrib1svNV">
+    <function name="VertexAttrib3sNV" offset="772" vectorequiv="VertexAttrib3svNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
-        <glx ignore="true"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib1svNV" offset="761">
+    <function name="VertexAttrib3svNV" offset="773">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="1"/>
-        <glx rop="4189" ignore="true"/>
+        <param name="v" type="const GLshort *" count="3"/>
+        <glx rop="4191"/>
     </function>
 
-    <function name="VertexAttrib2dNV" offset="762" vectorequiv="VertexAttrib2dvNV">
+    <function name="VertexAttrib4sNV" offset="778" vectorequiv="VertexAttrib4svNV">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLdouble"/>
-        <param name="y" type="GLdouble"/>
-        <glx ignore="true"/>
+        <param name="x" type="GLshort"/>
+        <param name="y" type="GLshort"/>
+        <param name="z" type="GLshort"/>
+        <param name="w" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib2dvNV" offset="763">
+    <function name="VertexAttrib4svNV" offset="779">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *" count="2"/>
-        <glx rop="4198" doubles_in_order="true" ignore="true"/>
+        <param name="v" type="const GLshort *" count="4"/>
+        <glx rop="4192"/>
     </function>
 
-    <function name="VertexAttrib2fNV" offset="764" vectorequiv="VertexAttrib2fvNV">
+    <function name="VertexAttrib1fNV" offset="758" vectorequiv="VertexAttrib1fvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
-        <param name="y" type="GLfloat"/>
-        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib2fvNV" offset="765">
+    <function name="VertexAttrib1fvNV" offset="759">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLfloat *" count="2"/>
-        <glx rop="4194" ignore="true"/>
+        <param name="v" type="const GLfloat *" count="1"/>
+        <glx rop="4193"/>
     </function>
 
-    <function name="VertexAttrib2sNV" offset="766" vectorequiv="VertexAttrib2svNV">
+    <function name="VertexAttrib2fNV" offset="764" vectorequiv="VertexAttrib2fvNV">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLshort"/>
-        <param name="y" type="GLshort"/>
-        <glx ignore="true"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib2svNV" offset="767">
+    <function name="VertexAttrib2fvNV" offset="765">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="2"/>
-        <glx rop="4190" ignore="true"/>
+        <param name="v" type="const GLfloat *" count="2"/>
+        <glx rop="4194"/>
     </function>
 
-    <function name="VertexAttrib3dNV" offset="768" vectorequiv="VertexAttrib3dvNV">
+    <function name="VertexAttrib3fNV" offset="770" vectorequiv="VertexAttrib3fvNV">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLdouble"/>
-        <param name="y" type="GLdouble"/>
-        <param name="z" type="GLdouble"/>
-        <glx ignore="true"/>
+        <param name="x" type="GLfloat"/>
+        <param name="y" type="GLfloat"/>
+        <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib3dvNV" offset="769">
+    <function name="VertexAttrib3fvNV" offset="771">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *" count="3"/>
-        <glx rop="4199" doubles_in_order="true" ignore="true"/>
+        <param name="v" type="const GLfloat *" count="3"/>
+        <glx rop="4195"/>
     </function>
 
-    <function name="VertexAttrib3fNV" offset="770" vectorequiv="VertexAttrib3fvNV">
+    <function name="VertexAttrib4fNV" offset="776" vectorequiv="VertexAttrib4fvNV">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
-        <glx ignore="true"/>
+        <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib3fvNV" offset="771">
+    <function name="VertexAttrib4fvNV" offset="777">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLfloat *" count="3"/>
-        <glx rop="4195" ignore="true"/>
+        <param name="v" type="const GLfloat *" count="4"/>
+        <glx rop="4196"/>
     </function>
 
-    <function name="VertexAttrib3sNV" offset="772" vectorequiv="VertexAttrib3svNV">
+    <function name="VertexAttrib1dNV" offset="756" vectorequiv="VertexAttrib1dvNV">
         <param name="index" type="GLuint"/>
-        <param name="x" type="GLshort"/>
-        <param name="y" type="GLshort"/>
-        <param name="z" type="GLshort"/>
-        <glx ignore="true"/>
+        <param name="x" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib3svNV" offset="773">
+    <function name="VertexAttrib1dvNV" offset="757">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="3"/>
-        <glx rop="4191" ignore="true"/>
+        <param name="v" type="const GLdouble *" count="1"/>
+        <glx rop="4197" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4dNV" offset="774" vectorequiv="VertexAttrib4dvNV">
+    <function name="VertexAttrib2dNV" offset="762" vectorequiv="VertexAttrib2dvNV">
         <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"/>
-        <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib4dvNV" offset="775">
+    <function name="VertexAttrib2dvNV" offset="763">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *" count="4"/>
-        <glx rop="4200" doubles_in_order="true" ignore="true"/>
+        <param name="v" type="const GLdouble *" count="2"/>
+        <glx rop="4198" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4fNV" offset="776" vectorequiv="VertexAttrib4fvNV">
+    <function name="VertexAttrib3dNV" offset="768" vectorequiv="VertexAttrib3dvNV">
         <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"/>
-        <glx ignore="true"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib4fvNV" offset="777">
+    <function name="VertexAttrib3dvNV" offset="769">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLfloat *" count="4"/>
-        <glx rop="4196" ignore="true"/>
+        <param name="v" type="const GLdouble *" count="3"/>
+        <glx rop="4199" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4sNV" offset="778" vectorequiv="VertexAttrib4svNV">
+    <function name="VertexAttrib4dNV" offset="774" vectorequiv="VertexAttrib4dvNV">
         <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"/>
-        <glx ignore="true"/>
+        <param name="x" type="GLdouble"/>
+        <param name="y" type="GLdouble"/>
+        <param name="z" type="GLdouble"/>
+        <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib4svNV" offset="779">
+    <function name="VertexAttrib4dvNV" offset="775">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLshort *" count="4"/>
-        <glx rop="4192" ignore="true"/>
+        <param name="v" type="const GLdouble *" count="4"/>
+        <glx rop="4200" doubles_in_order="true"/>
     </function>
 
     <function name="VertexAttrib4ubNV" offset="780" vectorequiv="VertexAttrib4ubvNV">
@@ -9195,144 +10883,103 @@ glx:
         <param name="y" type="GLubyte"/>
         <param name="z" type="GLubyte"/>
         <param name="w" type="GLubyte"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="VertexAttrib4ubvNV" offset="781">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
-        <glx rop="4201" ignore="true"/>
+        <glx rop="4201"/>
     </function>
 
-    <function name="VertexAttribs1dvNV" offset="629">
+    <function name="VertexAttribs1svNV" offset="631">
         <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" ignore="true"/>
+        <param name="v" type="const GLshort *" count="n"/>
+        <glx rop="4202"/>
     </function>
 
-    <function name="VertexAttribs1fvNV" offset="630">
+    <function name="VertexAttribs2svNV" offset="634">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
-        <param name="v" type="const GLfloat *" count="n"/>
-        <glx rop="4206" ignore="true"/>
+        <param name="v" type="const GLshort *" count="n" count_scale="2"/>
+        <glx rop="4203"/>
     </function>
 
-    <function name="VertexAttribs1svNV" offset="631">
+    <function name="VertexAttribs3svNV" offset="637">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
-        <param name="v" type="const GLshort *" count="n"/>
-        <glx rop="4202" ignore="true"/>
+        <param name="v" type="const GLshort *" count="n" count_scale="3"/>
+        <glx rop="4204"/>
     </function>
 
-    <function name="VertexAttribs2dvNV" offset="632">
+    <function name="VertexAttribs4svNV" offset="640">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLdouble *"/>
-
-        <!-- This is hand coded because the number of array elements
-             pointed to by 'v' is 2*n.
-        -->
-        <glx rop="4211" handcode="true" ignore="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLshort *" count="n" count_scale="4"/>
+        <glx rop="4205"/>
     </function>
 
-    <function name="VertexAttribs2fvNV" offset="633">
+    <function name="VertexAttribs1fvNV" offset="630">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLfloat *"/>
-
-        <!-- This is hand coded because the number of array elements
-             pointed to by 'v' is 2*n.
-        -->
-        <glx rop="4207" handcode="true" ignore="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLfloat *" count="n"/>
+        <glx rop="4206"/>
     </function>
 
-    <function name="VertexAttribs2svNV" offset="634">
+    <function name="VertexAttribs2fvNV" offset="633">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLshort *"/>
-        <glx rop="4203" handcode="true" ignore="true"/>
-
-        <!-- This is hand coded because the number of array elements
-             pointed to by 'v' is 2*n.
-        -->
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLfloat *" count="n" count_scale="2"/>
+        <glx rop="4207"/>
     </function>
 
-    <function name="VertexAttribs3dvNV" offset="635">
+    <function name="VertexAttribs3fvNV" offset="636">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLdouble *"/>
-
-        <!-- This is hand coded because the number of array elements
-             pointed to by 'v' is 3*n.
-        -->
-        <glx rop="4212" handcode="true" ignore="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLfloat *" count="n" count_scale="3"/>
+        <glx rop="4208"/>
     </function>
 
-    <function name="VertexAttribs3fvNV" offset="636">
+    <function name="VertexAttribs4fvNV" offset="639">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLfloat *"/>
-
-        <!-- This is hand coded because the number of array elements
-             pointed to by 'v' is 3*n.
-        -->
-        <glx rop="4208" handcode="true" ignore="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLfloat *" count="n" count_scale="4"/>
+        <glx rop="4209"/>
     </function>
 
-    <function name="VertexAttribs3svNV" offset="637">
+    <function name="VertexAttribs1dvNV" offset="629">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLshort *"/>
-
-        <!-- This is hand coded because the number of array elements
-             pointed to by 'v' is 3*n.
-        -->
-        <glx rop="4204" handcode="true" ignore="true"/>
+        <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="VertexAttribs4dvNV" offset="638">
+    <function name="VertexAttribs2dvNV" offset="632">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLdouble *"/>
-
-        <!-- This is hand coded because the number of array elements
-             pointed to by 'v' is 4*n.
-        -->
-        <glx rop="4213" handcode="true" ignore="true"/>
+        <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"/>
     </function>
 
-    <function name="VertexAttribs4fvNV" offset="639">
+    <function name="VertexAttribs3dvNV" offset="635">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLfloat *"/>
-
-        <!-- This is hand coded because the number of array elements
-             pointed to by 'v' is 4*n.
-        -->
-        <glx rop="4209" handcode="true" ignore="true"/>
+        <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"/>
     </function>
 
-    <function name="VertexAttribs4svNV" offset="640">
+    <function name="VertexAttribs4dvNV" offset="638">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLshort *"/>
-
-        <!-- This is hand coded because the number of array elements
-             pointed to by 'v' is 4*n.
-        -->
-        <glx rop="4205" handcode="true" ignore="true"/>
+        <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"/>
     </function>
 
     <function name="VertexAttribs4ubvNV" offset="641">
         <param name="index" type="GLuint"/>
-        <param name="n" type="GLsizei"/>
-        <param name="v" type="const GLubyte *"/>
-
-        <!-- This is hand coded because the number of array elements
-             pointed to by 'v' is 4*n.
-        -->
-        <glx rop="4214" handcode="true" ignore="true"/>
+        <param name="n" type="GLsizei" counter="true"/>
+        <param name="v" type="const GLubyte *" count="n" count_scale="4"/>
+        <glx rop="4214"/>
     </function>
 </category>
 
@@ -9342,14 +10989,20 @@ glx:
     <enum name="TEXTURE_MAX_CLAMP_S_SGIX"      count="1"  value="0x8369">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_MAX_CLAMP_T_SGIX"      count="1"  value="0x836A">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
     <enum name="TEXTURE_MAX_CLAMP_R_SGIX"      count="1"  value="0x836B">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
 </category>
 
@@ -9358,6 +11011,11 @@ glx:
 <!-- Extension number 238 is a GLX extension. -->
 <!-- Extension number 242 is a WGL extension. -->
 
+<category name="GL_NV_copy_depth_to_color" number="243">
+    <enum name="DEPTH_STENCIL_TO_RGBA_NV"                 value="0x886E"/>
+    <enum name="DEPTH_STENCIL_TO_BGRA_NV"                 value="0x886F"/>
+</category>
+
 <category name="GL_ATI_fragment_shader" number="245">
     <function name="GenFragmentShadersATI" offset="782">
       <return type="GLuint"/>
@@ -9504,6 +11162,22 @@ glx:
     </function>
 </category>
 
+<category name="GL_SUN_slice_accum" number="258">
+    <enum name="SLICE_ACCUM_SUN"                          value="0x85CC"/>
+</category>
+
+<category name="GL_NV_multisample_filter_hint" number="259">
+    <enum name="MULTISAMPLE_FILTER_HINT_NV"    count="1"  value="0x8534">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
+<category name="GL_NV_depth_clamp" number="260">
+    <enum name="DEPTH_CLAMP_NV"                count="1"  value="0x864F">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
 <category name="GL_NV_point_sprite" number="262">
     <!-- These existing enums can be passed as a parameter to the function
          added for this extension. -->
@@ -9521,9 +11195,19 @@ glx:
         <size name="PointParameterivNV"/>
     </enum>
 
-    <enum name="POINT_SPRITE_R_MODE_NV"        count="1"  value="0x8863        ">
+    <enum name="POINT_SPRITE_NV"               count="1"  value="0x8861">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="COORD_REPLACE_NV"              count="1"  value="0x8862">
+        <size name="TexEnvfv"/>
+        <size name="TexEnviv"/>
+        <size name="GetTexEnvfv" mode="get"/>
+        <size name="GetTexEnviv" mode="get"/>
+    </enum>
+    <enum name="POINT_SPRITE_R_MODE_NV"        count="1"  value="0x8863">
         <size name="PointParameterfvEXT"/>
         <size name="PointParameterivNV"/>
+        <size name="Get" mode="get"/>
     </enum>
 
     <function name="PointParameteriNV" offset="642">
@@ -9542,14 +11226,92 @@ glx:
 <!-- Extension number 263 is a WGL extension. -->
 <!-- Extension number 264 is a WGL extension. -->
 
+<category name="GL_EXT_shadow_funcs" number="267">
+    <!-- No new functions, types, enums. -->
+</category>
+
 <category name="EXT_stencil_two_side" number="268">
+    <enum name="STENCIL_TEST_TWO_SIDE_EXT"     count="1"  value="0x8910">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="ACTIVE_STENCIL_FACE_EXT"       count="1"  value="0x8911">
+        <size name="Get" mode="get"/>
+    </enum>
+
     <function name="ActiveStencilFaceEXT" offset="646">
         <param name="face" type="GLenum"/>
         <glx rop="4220"/>
     </function>
 </category>
 
+<category name="GL_APPLE_ycbcr_422" number="275">
+    <enum name="YCBCR_422_APPLE"                          value="0x85B9"/>
+    <enum name="UNSIGNED_SHORT_8_8_APPLE"                 value="0x85BA"/>
+    <enum name="UNSIGNED_SHORT_8_8_REV_APPLE"             value="0x85BB"/>
+</category>
+
+<category name="GL_S3_s3tc" number="276">
+    <enum name="RGB_S3TC"                                 value="0x83A0"/>
+    <enum name="RGB4_S3TC"                                value="0x83A1"/>
+    <enum name="RGBA_S3TC"                                value="0x83A2"/>
+    <enum name="RGBA4_S3TC"                               value="0x83A3"/>
+    <enum name="RGBA_DXT5_S3TC"                           value="0x83A4"/>
+    <enum name="RGBA4_DXT5_S3TC"                          value="0x83A5"/>
+</category>
+
 <category name="GL_ATI_draw_buffers" number="277">
+    <enum name="MAX_DRAW_BUFFERS_ATI"          count="1"  value="0x8824">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER0_ATI"              count="1"  value="0x8825">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER1_ATI"              count="1"  value="0x8826">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER2_ATI"              count="1"  value="0x8827">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER3_ATI"              count="1"  value="0x8828">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER4_ATI"              count="1"  value="0x8829">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER5_ATI"              count="1"  value="0x882A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER6_ATI"              count="1"  value="0x882B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER7_ATI"              count="1"  value="0x882C">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER8_ATI"              count="1"  value="0x882D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER9_ATI"              count="1"  value="0x882E">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER10_ATI"             count="1"  value="0x882F">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER11_ATI"             count="1"  value="0x8830">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER12_ATI"             count="1"  value="0x8831">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER13_ATI"             count="1"  value="0x8832">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER14_ATI"             count="1"  value="0x8833">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DRAW_BUFFER15_ATI"             count="1"  value="0x8834">
+        <size name="Get" mode="get"/>
+    </enum>
+
     <function name="DrawBuffersATI" alias="DrawBuffersARB">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="bufs" type="const GLenum *" count="n"/>
@@ -9559,59 +11321,63 @@ glx:
 
 <!-- Extension number 278 is a WGL extension. -->
 
+<category name="GL_ATI_texture_env_combine3" number="279">
+    <enum name="MODULATE_ADD_ATI"                         value="0x8744"/>
+    <enum name="MODULATE_SIGNED_ADD_ATI"                  value="0x8745"/>
+    <enum name="MODULATE_SUBTRACT_ATI"                    value="0x8746"/>
+</category>
+
 <category name="GL_NV_fragment_program" number="282">
     <function name="ProgramNamedParameter4fNV" offset="682" vectorequiv="ProgramNamedParameter4fvNV">
         <param name="id" type="GLuint"/>
-        <param name="len" type="GLsizei"/>
-        <param name="name" type="const GLubyte *"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="name" type="const GLubyte *" count="len"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
-        <glx rop="4218" handcode="true" ignore="true"/>
     </function>
 
     <function name="ProgramNamedParameter4dNV" offset="683" vectorequiv="ProgramNamedParameter4dvNV">
         <param name="id" type="GLuint"/>
-        <param name="len" type="GLsizei"/>
-        <param name="name" type="const GLubyte *" variable_param="len"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="name" type="const GLubyte *" count="len"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
-        <glx ignore="true"/>
     </function>
 
     <function name="ProgramNamedParameter4fvNV" offset="684">
         <param name="id" type="GLuint"/>
-        <param name="len" type="GLsizei"/>
-        <param name="name" type="const GLubyte *"/>
-        <param name="v" type="const GLfloat *"/>
-        <glx rop="4218" handcode="true" ignore="true"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="name" type="const GLubyte *" count="len"/>
+        <param name="v" type="const GLfloat *" count="4"/>
+        <glx rop="4218"/>
     </function>
 
     <function name="ProgramNamedParameter4dvNV" offset="685">
         <param name="id" type="GLuint"/>
-        <param name="len" type="GLsizei"/>
-        <param name="name" type="const GLubyte *"/>
-        <param name="v" type="const GLdouble *"/>
-        <glx rop="4219" handcode="true" ignore="true"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="name" type="const GLubyte *" count="len"/>
+        <param name="v" type="const GLdouble *" count="4"/>
+        <glx rop="4219"/>
     </function>
 
     <function name="GetProgramNamedParameterfvNV" offset="686">
         <param name="id" type="GLuint"/>
-        <param name="len" type="GLsizei"/>
-        <param name="name" type="const GLubyte *"/>
-        <param name="params" type="GLfloat *" output="true"/>
-        <glx vendorpriv="1310" handcode="true" ignore="true"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="name" type="const GLubyte *" count="len"/>
+        <param name="params" type="GLfloat *" output="true" count="4"/>
+        <glx vendorpriv="1310" always_array="true"/>
     </function>
 
     <function name="GetProgramNamedParameterdvNV" offset="687">
         <param name="id" type="GLuint"/>
-        <param name="len" type="GLsizei"/>
-        <param name="name" type="const GLubyte *"/>
-        <param name="params" type="GLdouble *" output="true"/>
-        <glx vendorpriv="1311" handcode="true" ignore="true"/>
+        <param name="len" type="GLsizei" counter="true"/>
+        <param name="name" type="const GLubyte *" count="len"/>
+        <param name="params" type="GLdouble *" output="true" count="4"/>
+        <glx vendorpriv="1311" always_array="true"/>
     </function>
 </category>
 
@@ -9619,15 +11385,37 @@ glx:
     <enum name="TEXTURE_UNSIGNED_REMAP_MODE_NV" count="1" value="0x888F">
         <size name="TexParameterfv"/>
         <size name="TexParameteriv"/>
+        <size name="GetTexParameterfv" mode="get"/>
+        <size name="GetTexParameteriv" mode="get"/>
     </enum>
 </category>
 
+<category name="GL_OES_compressed_paletted_texture" number="294">
+    <enum name="PALETTE4_RGB8_OES"                        value="0x8B90"/>
+    <enum name="PALETTE4_RGBA8_OES"                       value="0x8B91"/>
+    <enum name="PALETTE4_R5_G6_B5_OES"                    value="0x8B92"/>
+    <enum name="PALETTE4_RGBA4_OES"                       value="0x8B93"/>
+    <enum name="PALETTE4_RGB5_A1_OES"                     value="0x8B94"/>
+    <enum name="PALETTE8_RGB8_OES"                        value="0x8B95"/>
+    <enum name="PALETTE8_RGBA8_OES"                       value="0x8B96"/>
+    <enum name="PALETTE8_R5_G6_B5_OES"                    value="0x8B97"/>
+    <enum name="PALETTE8_RGBA4_OES"                       value="0x8B98"/>
+    <enum name="PALETTE8_RGB5_A1_OES"                     value="0x8B99"/>
+</category>
+
 <category name="GL_OES_read_format" number="295">
     <enum name="IMPLEMENTATION_COLOR_READ_TYPE_OES"       value="0x8B9A"/>
     <enum name="IMPLEMENTATION_COLOR_READ_FORMAT_OES"     value="0x8B9B"/>
 </category>
 
 <category name="GL_EXT_depth_bounds_test" number="297">
+    <enum name="DEPTH_BOUNDS_TEST_EXT"         count="1"  value="0x8890">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="DEPTH_BOUNDS_EXT"              count="2"  value="0x8891">
+        <size name="Get" mode="get"/>
+    </enum>
+
     <function name="DepthBoundsEXT" offset="699">
         <param name="zmin" type="GLclampd"/>
         <param name="zmax" type="GLclampd"/>
@@ -9642,6 +11430,13 @@ glx:
 </category>
 
 <category name="GL_EXT_blend_equation_separate" number="299">
+    <enum name="BLEND_EQUATION_RGB_EXT"        count="1"  value="0x8009">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="BLEND_EQUATION_ALPHA_EXT"      count="1"  value="0x883D">
+        <size name="Get" mode="get"/>
+    </enum>
+
     <function name="BlendEquationSeparateEXT" offset="710">
         <param name="modeRGB" type="GLenum"/>
         <param name="modeA" type="GLenum"/>
@@ -9649,6 +11444,18 @@ glx:
     </function>
 </category>
 
+<category name="GL_MESA_pack_invert" number="300">
+    <enum name="PACK_INVERT_MESA"              count="1"  value="0x8758">
+        <size name="Get" mode="get"/>
+    </enum>
+</category>
+
+<category name="GL_MESA_ycbcr_texture" number="301">
+    <enum name="YCBCR_MESA"                               value="0x8757"/>
+    <enum name="UNSIGNED_SHORT_8_8_MESA"                  value="0x85BA"/>
+    <enum name="UNSIGNED_SHORT_8_8_REV_MESA"              value="0x85BB"/>
+</category>
+
 <category name="GL_EXT_pixel_buffer_object" number="302">
     <enum name="PIXEL_PACK_BUFFER_EXT"                    value="0x88EB"/>
     <enum name="PIXEL_UNPACK_BUFFER_EXT"                  value="0x88EC"/>
@@ -9656,6 +11463,202 @@ glx:
     <enum name="PIXEL_UNPACK_BUFFER_BINDING_EXT"          value="0x88EF"/>
 </category>
 
+<category name="GL_NV_fragment_program_option" number="303">
+    <!-- No new functions, types, enums. -->
+</category>
+
+<category name="GL_NV_fragment_program2" number="304">
+    <enum name="MAX_PROGRAM_EXEC_INSTRUCTIONS_NV" count="1" value="0x88F4">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_CALL_DEPTH_NV"      count="1"  value="0x88F5">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_IF_DEPTH_NV"        count="1"  value="0x88F6">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_LOOP_DEPTH_NV"      count="1"  value="0x88F7">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_LOOP_COUNT_NV"      count="1"  value="0x88F8">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+</category>
+
+<category name="GL_NV_vertex_program2_option" number="305">
+    <enum name="MAX_PROGRAM_EXEC_INSTRUCTIONS_NV" count="1" value="0x88F4">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+    <enum name="MAX_PROGRAM_CALL_DEPTH_NV"      count="1"  value="0x88F5">
+        <size name="GetProgramivARB" mode="get"/>
+    </enum>
+</category>
+
+<category name="GL_NV_vertex_program3" number="306">
+    <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. -->
+
+<category name="GL_EXT_texture_compression_dxt1" number="309">
+    <enum name="COMPRESSED_RGB_S3TC_DXT1_EXT"             value="0x83F0"/>
+    <enum name="COMPRESSED_RGBA_S3TC_DXT1_EXT"            value="0x83F1"/>
+</category>
+
 <!-- Unnumbered extensions sorted by name. -->
 
 <category name="GL_ATI_blend_equation_separate">