glthread: don't upload for glDraw inside a display list and always sync
[mesa.git] / src / mapi / glapi / gen / gl_API.xml
index 2d6bed206386c36aefa722267af5c50283c1d2d6..b3511665280d4cc80d42c12a271454722143b5f6 100644 (file)
     <type name="DEBUGPROCARB" size="4" pointer="true"/>
     <type name="DEBUGPROC" size="4" pointer="true"/>
 
-    <function name="NewList" offset="0" deprecated="3.1">
+    <function name="NewList" deprecated="3.1"
+              marshal_call_after="if (COMPAT) ctx->GLThread.inside_dlist = true;">
         <param name="list" type="GLuint"/>
         <param name="mode" type="GLenum"/>
         <glx sop="101"/>
     </function>
 
-    <function name="EndList" offset="1" deprecated="3.1">
+    <function name="EndList" deprecated="3.1"
+              marshal_call_after="if (COMPAT) ctx->GLThread.inside_dlist = false;">
         <glx sop="102"/>
     </function>
 
-    <function name="CallList" offset="2" deprecated="3.1">
+    <function name="CallList" deprecated="3.1">
         <param name="list" type="GLuint"/>
         <glx rop="1"/>
     </function>
 
-    <function name="CallLists" offset="3" deprecated="3.1">
+    <function name="CallLists" deprecated="3.1">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="type" type="GLenum"/>
-        <param name="lists" type="const GLvoid *" variable_param="type" count="n"/>
+        <param name="lists" type="const GLvoid *" variable_param="type" count="n"
+               marshal_count="(n * _mesa_calllists_enum_to_count(type))"/>
         <glx rop="2" large="true"/>
     </function>
 
-    <function name="DeleteLists" offset="4" deprecated="3.1">
+    <function name="DeleteLists" deprecated="3.1">
         <param name="list" type="GLuint"/>
         <param name="range" type="GLsizei"/>
         <glx sop="103"/>
     </function>
 
-    <function name="GenLists" offset="5" deprecated="3.1">
+    <function name="GenLists" deprecated="3.1">
         <param name="range" type="GLsizei"/>
         <return type="GLuint"/>
         <glx sop="104"/>
     </function>
 
-    <function name="ListBase" offset="6" deprecated="3.1">
+    <function name="ListBase" deprecated="3.1">
         <param name="base" type="GLuint"/>
         <glx rop="3"/>
     </function>
 
-    <function name="Begin" offset="7" deprecated="3.1" exec="dynamic">
+    <function name="Begin" deprecated="3.1" exec="dynamic">
         <param name="mode" type="GLenum"/>
         <glx rop="4"/>
     </function>
 
-    <function name="Bitmap" offset="8" deprecated="3.1">
+    <function name="Bitmap" deprecated="3.1">
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
         <param name="xorig" type="GLfloat"/>
         <glx rop="5" large="true"/>
     </function>
 
-    <function name="Color3b" offset="9" vectorequiv="Color3bv"
-              deprecated="3.1">
+    <function name="Color3b" vectorequiv="Color3bv" deprecated="3.1">
         <param name="red" type="GLbyte"/>
         <param name="green" type="GLbyte"/>
         <param name="blue" type="GLbyte"/>
     </function>
 
-    <function name="Color3bv" offset="10" deprecated="3.1">
+    <function name="Color3bv" deprecated="3.1">
         <param name="v" type="const GLbyte *" count="3"/>
         <glx rop="6"/>
     </function>
 
-    <function name="Color3d" offset="11" vectorequiv="Color3dv"
-              deprecated="3.1">
+    <function name="Color3d" vectorequiv="Color3dv" deprecated="3.1">
         <param name="red" type="GLdouble"/>
         <param name="green" type="GLdouble"/>
         <param name="blue" type="GLdouble"/>
     </function>
 
-    <function name="Color3dv" offset="12" deprecated="3.1">
+    <function name="Color3dv" deprecated="3.1">
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="7"/>
     </function>
 
-    <function name="Color3f" offset="13" vectorequiv="Color3fv"
-              deprecated="3.1" exec="dynamic">
+    <function name="Color3f" vectorequiv="Color3fv"
+             deprecated="3.1" exec="dynamic">
         <param name="red" type="GLfloat"/>
         <param name="green" type="GLfloat"/>
         <param name="blue" type="GLfloat"/>
     </function>
 
-    <function name="Color3fv" offset="14" deprecated="3.1" exec="dynamic">
+    <function name="Color3fv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLfloat *" count="3"/>
         <glx rop="8"/>
     </function>
 
-    <function name="Color3i" offset="15" vectorequiv="Color3iv"
-              deprecated="3.1">
+    <function name="Color3i" vectorequiv="Color3iv" deprecated="3.1">
         <param name="red" type="GLint"/>
         <param name="green" type="GLint"/>
         <param name="blue" type="GLint"/>
     </function>
 
-    <function name="Color3iv" offset="16" deprecated="3.1">
+    <function name="Color3iv" deprecated="3.1">
         <param name="v" type="const GLint *" count="3"/>
         <glx rop="9"/>
     </function>
 
-    <function name="Color3s" offset="17" vectorequiv="Color3sv"
-              deprecated="3.1">
+    <function name="Color3s" vectorequiv="Color3sv" deprecated="3.1">
         <param name="red" type="GLshort"/>
         <param name="green" type="GLshort"/>
         <param name="blue" type="GLshort"/>
     </function>
 
-    <function name="Color3sv" offset="18" deprecated="3.1">
+    <function name="Color3sv" deprecated="3.1">
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="10"/>
     </function>
 
-    <function name="Color3ub" offset="19" vectorequiv="Color3ubv"
-              deprecated="3.1">
+    <function name="Color3ub" vectorequiv="Color3ubv" deprecated="3.1">
         <param name="red" type="GLubyte"/>
         <param name="green" type="GLubyte"/>
         <param name="blue" type="GLubyte"/>
     </function>
 
-    <function name="Color3ubv" offset="20" deprecated="3.1">
+    <function name="Color3ubv" deprecated="3.1">
         <param name="v" type="const GLubyte *" count="3"/>
         <glx rop="11"/>
     </function>
 
-    <function name="Color3ui" offset="21" vectorequiv="Color3uiv"
-              deprecated="3.1">
+    <function name="Color3ui" vectorequiv="Color3uiv" deprecated="3.1">
         <param name="red" type="GLuint"/>
         <param name="green" type="GLuint"/>
         <param name="blue" type="GLuint"/>
     </function>
 
-    <function name="Color3uiv" offset="22" deprecated="3.1">
+    <function name="Color3uiv" deprecated="3.1">
         <param name="v" type="const GLuint *" count="3"/>
         <glx rop="12"/>
     </function>
 
-    <function name="Color3us" offset="23" vectorequiv="Color3usv"
-              deprecated="3.1">
+    <function name="Color3us" vectorequiv="Color3usv" deprecated="3.1">
         <param name="red" type="GLushort"/>
         <param name="green" type="GLushort"/>
         <param name="blue" type="GLushort"/>
     </function>
 
-    <function name="Color3usv" offset="24" deprecated="3.1">
+    <function name="Color3usv" deprecated="3.1">
         <param name="v" type="const GLushort *" count="3"/>
         <glx rop="13"/>
     </function>
 
-    <function name="Color4b" offset="25" vectorequiv="Color4bv"
-              deprecated="3.1">
+    <function name="Color4b" vectorequiv="Color4bv" deprecated="3.1">
         <param name="red" type="GLbyte"/>
         <param name="green" type="GLbyte"/>
         <param name="blue" type="GLbyte"/>
         <param name="alpha" type="GLbyte"/>
     </function>
 
-    <function name="Color4bv" offset="26" deprecated="3.1">
+    <function name="Color4bv" deprecated="3.1">
         <param name="v" type="const GLbyte *" count="4"/>
         <glx rop="14"/>
     </function>
 
-    <function name="Color4d" offset="27" vectorequiv="Color4dv"
-              deprecated="3.1">
+    <function name="Color4d" vectorequiv="Color4dv" deprecated="3.1">
         <param name="red" type="GLdouble"/>
         <param name="green" type="GLdouble"/>
         <param name="blue" type="GLdouble"/>
         <param name="alpha" type="GLdouble"/>
     </function>
 
-    <function name="Color4dv" offset="28" deprecated="3.1">
+    <function name="Color4dv" deprecated="3.1">
         <param name="v" type="const GLdouble *" count="4"/>
         <glx rop="15"/>
     </function>
 
-    <function name="Color4f" offset="29" vectorequiv="Color4fv" es1="1.0"
+    <function name="Color4f" vectorequiv="Color4fv" es1="1.0"
               deprecated="3.1" exec="dynamic">
         <param name="red" type="GLfloat"/>
         <param name="green" type="GLfloat"/>
         <param name="alpha" type="GLfloat"/>
     </function>
 
-    <function name="Color4fv" offset="30" deprecated="3.1" exec="dynamic">
+    <function name="Color4fv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLfloat *" count="4"/>
         <glx rop="16"/>
     </function>
 
-    <function name="Color4i" offset="31" vectorequiv="Color4iv"
-              deprecated="3.1">
+    <function name="Color4i" vectorequiv="Color4iv" deprecated="3.1">
         <param name="red" type="GLint"/>
         <param name="green" type="GLint"/>
         <param name="blue" type="GLint"/>
         <param name="alpha" type="GLint"/>
     </function>
 
-    <function name="Color4iv" offset="32" deprecated="3.1">
+    <function name="Color4iv" deprecated="3.1">
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="17"/>
     </function>
 
-    <function name="Color4s" offset="33" vectorequiv="Color4sv"
-              deprecated="3.1">
+    <function name="Color4s" vectorequiv="Color4sv" deprecated="3.1">
         <param name="red" type="GLshort"/>
         <param name="green" type="GLshort"/>
         <param name="blue" type="GLshort"/>
         <param name="alpha" type="GLshort"/>
     </function>
 
-    <function name="Color4sv" offset="34" deprecated="3.1">
+    <function name="Color4sv" deprecated="3.1">
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="18"/>
     </function>
 
-    <function name="Color4ub" offset="35" vectorequiv="Color4ubv" es1="1.1"
+    <function name="Color4ub" vectorequiv="Color4ubv" es1="1.1"
               deprecated="3.1">
         <param name="red" type="GLubyte"/>
         <param name="green" type="GLubyte"/>
         <param name="alpha" type="GLubyte"/>
     </function>
 
-    <function name="Color4ubv" offset="36" deprecated="3.1">
+    <function name="Color4ubv" deprecated="3.1">
         <param name="v" type="const GLubyte *" count="4"/>
         <glx rop="19"/>
     </function>
 
-    <function name="Color4ui" offset="37" vectorequiv="Color4uiv"
-              deprecated="3.1">
+    <function name="Color4ui" vectorequiv="Color4uiv" deprecated="3.1">
         <param name="red" type="GLuint"/>
         <param name="green" type="GLuint"/>
         <param name="blue" type="GLuint"/>
         <param name="alpha" type="GLuint"/>
     </function>
 
-    <function name="Color4uiv" offset="38" deprecated="3.1">
+    <function name="Color4uiv" deprecated="3.1">
         <param name="v" type="const GLuint *" count="4"/>
         <glx rop="20"/>
     </function>
 
-    <function name="Color4us" offset="39" vectorequiv="Color4usv"
-              deprecated="3.1">
+    <function name="Color4us" vectorequiv="Color4usv" deprecated="3.1">
         <param name="red" type="GLushort"/>
         <param name="green" type="GLushort"/>
         <param name="blue" type="GLushort"/>
         <param name="alpha" type="GLushort"/>
     </function>
 
-    <function name="Color4usv" offset="40" deprecated="3.1">
+    <function name="Color4usv" deprecated="3.1">
         <param name="v" type="const GLushort *" count="4"/>
         <glx rop="21"/>
     </function>
 
-    <function name="EdgeFlag" offset="41" vectorequiv="EdgeFlagv"
+    <function name="EdgeFlag" vectorequiv="EdgeFlagv"
               deprecated="3.1" exec="dynamic">
         <param name="flag" type="GLboolean"/>
     </function>
 
-    <function name="EdgeFlagv" offset="42" deprecated="3.1">
+    <function name="EdgeFlagv" deprecated="3.1">
         <param name="flag" type="const GLboolean *" count="1"/>
         <glx rop="22"/>
     </function>
 
-    <function name="End" offset="43" deprecated="3.1" exec="dynamic">
+    <function name="End" deprecated="3.1" exec="dynamic">
         <glx rop="23"/>
     </function>
 
-    <function name="Indexd" offset="44" vectorequiv="Indexdv" deprecated="3.1">
+    <function name="Indexd" vectorequiv="Indexdv" deprecated="3.1">
         <param name="c" type="GLdouble"/>
     </function>
 
-    <function name="Indexdv" offset="45" deprecated="3.1">
+    <function name="Indexdv" deprecated="3.1">
         <param name="c" type="const GLdouble *" count="1"/>
         <glx rop="24"/>
     </function>
 
-    <function name="Indexf" offset="46" vectorequiv="Indexfv" deprecated="3.1"
+    <function name="Indexf" vectorequiv="Indexfv" deprecated="3.1"
               exec="dynamic">
         <param name="c" type="GLfloat"/>
     </function>
 
-    <function name="Indexfv" offset="47" deprecated="3.1" exec="dynamic">
+    <function name="Indexfv" deprecated="3.1" exec="dynamic">
         <param name="c" type="const GLfloat *" count="1"/>
         <glx rop="25"/>
     </function>
 
-    <function name="Indexi" offset="48" vectorequiv="Indexiv" deprecated="3.1">
+    <function name="Indexi" vectorequiv="Indexiv" deprecated="3.1">
         <param name="c" type="GLint"/>
     </function>
 
-    <function name="Indexiv" offset="49" deprecated="3.1">
+    <function name="Indexiv" deprecated="3.1">
         <param name="c" type="const GLint *" count="1"/>
         <glx rop="26"/>
     </function>
 
-    <function name="Indexs" offset="50" vectorequiv="Indexsv" deprecated="3.1">
+    <function name="Indexs" vectorequiv="Indexsv" deprecated="3.1">
         <param name="c" type="GLshort"/>
     </function>
 
-    <function name="Indexsv" offset="51" deprecated="3.1">
+    <function name="Indexsv" deprecated="3.1">
         <param name="c" type="const GLshort *" count="1"/>
         <glx rop="27"/>
     </function>
 
-    <function name="Normal3b" offset="52" vectorequiv="Normal3bv"
-              deprecated="3.1">
+    <function name="Normal3b" vectorequiv="Normal3bv" deprecated="3.1">
         <param name="nx" type="GLbyte"/>
         <param name="ny" type="GLbyte"/>
         <param name="nz" type="GLbyte"/>
     </function>
 
-    <function name="Normal3bv" offset="53" deprecated="3.1">
+    <function name="Normal3bv" deprecated="3.1">
         <param name="v" type="const GLbyte *" count="3"/>
         <glx rop="28"/>
     </function>
 
-    <function name="Normal3d" offset="54" vectorequiv="Normal3dv"
-              deprecated="3.1">
+    <function name="Normal3d" vectorequiv="Normal3dv" deprecated="3.1">
         <param name="nx" type="GLdouble"/>
         <param name="ny" type="GLdouble"/>
         <param name="nz" type="GLdouble"/>
     </function>
 
-    <function name="Normal3dv" offset="55" deprecated="3.1">
+    <function name="Normal3dv" deprecated="3.1">
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="29"/>
     </function>
 
-    <function name="Normal3f" offset="56" vectorequiv="Normal3fv" es1="1.0"
+    <function name="Normal3f" vectorequiv="Normal3fv" es1="1.0"
               deprecated="3.1" exec="dynamic">
         <param name="nx" type="GLfloat"/>
         <param name="ny" type="GLfloat"/>
         <param name="nz" type="GLfloat"/>
     </function>
 
-    <function name="Normal3fv" offset="57" deprecated="3.1" exec="dynamic">
+    <function name="Normal3fv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLfloat *" count="3"/>
         <glx rop="30"/>
     </function>
 
-    <function name="Normal3i" offset="58" vectorequiv="Normal3iv"
-              deprecated="3.1">
+    <function name="Normal3i" vectorequiv="Normal3iv" deprecated="3.1">
         <param name="nx" type="GLint"/>
         <param name="ny" type="GLint"/>
         <param name="nz" type="GLint"/>
     </function>
 
-    <function name="Normal3iv" offset="59" deprecated="3.1">
+    <function name="Normal3iv" deprecated="3.1">
         <param name="v" type="const GLint *" count="3"/>
         <glx rop="31"/>
     </function>
 
-    <function name="Normal3s" offset="60" vectorequiv="Normal3sv"
-              deprecated="3.1">
+    <function name="Normal3s" vectorequiv="Normal3sv" deprecated="3.1">
         <param name="nx" type="GLshort"/>
         <param name="ny" type="GLshort"/>
         <param name="nz" type="GLshort"/>
     </function>
 
-    <function name="Normal3sv" offset="61" deprecated="3.1">
+    <function name="Normal3sv" deprecated="3.1">
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="32"/>
     </function>
 
-    <function name="RasterPos2d" offset="62" vectorequiv="RasterPos2dv"
-              deprecated="3.1">
+    <function name="RasterPos2d" vectorequiv="RasterPos2dv" deprecated="3.1">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
     </function>
 
-    <function name="RasterPos2dv" offset="63" deprecated="3.1">
+    <function name="RasterPos2dv" deprecated="3.1">
         <param name="v" type="const GLdouble *" count="2"/>
         <glx rop="33"/>
     </function>
 
-    <function name="RasterPos2f" offset="64" vectorequiv="RasterPos2fv"
-              deprecated="3.1">
+    <function name="RasterPos2f" vectorequiv="RasterPos2fv" deprecated="3.1">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
     </function>
 
-    <function name="RasterPos2fv" offset="65" deprecated="3.1">
+    <function name="RasterPos2fv" deprecated="3.1">
         <param name="v" type="const GLfloat *" count="2"/>
         <glx rop="34"/>
     </function>
 
-    <function name="RasterPos2i" offset="66" vectorequiv="RasterPos2iv"
-              deprecated="3.1">
+    <function name="RasterPos2i" vectorequiv="RasterPos2iv" deprecated="3.1">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
     </function>
 
-    <function name="RasterPos2iv" offset="67" deprecated="3.1">
+    <function name="RasterPos2iv" deprecated="3.1">
         <param name="v" type="const GLint *" count="2"/>
         <glx rop="35"/>
     </function>
 
-    <function name="RasterPos2s" offset="68" vectorequiv="RasterPos2sv"
-              deprecated="3.1">
+    <function name="RasterPos2s" vectorequiv="RasterPos2sv" deprecated="3.1">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
     </function>
 
-    <function name="RasterPos2sv" offset="69" deprecated="3.1">
+    <function name="RasterPos2sv" deprecated="3.1">
         <param name="v" type="const GLshort *" count="2"/>
         <glx rop="36"/>
     </function>
 
-    <function name="RasterPos3d" offset="70" vectorequiv="RasterPos3dv"
-              deprecated="3.1">
+    <function name="RasterPos3d" vectorequiv="RasterPos3dv" deprecated="3.1">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
     </function>
 
-    <function name="RasterPos3dv" offset="71" deprecated="3.1">
+    <function name="RasterPos3dv" deprecated="3.1">
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="37"/>
     </function>
 
-    <function name="RasterPos3f" offset="72" vectorequiv="RasterPos3fv"
-              deprecated="3.1">
+    <function name="RasterPos3f" vectorequiv="RasterPos3fv" deprecated="3.1">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="RasterPos3fv" offset="73" deprecated="3.1">
+    <function name="RasterPos3fv" deprecated="3.1">
         <param name="v" type="const GLfloat *" count="3"/>
         <glx rop="38"/>
     </function>
 
-    <function name="RasterPos3i" offset="74" vectorequiv="RasterPos3iv"
-              deprecated="3.1">
+    <function name="RasterPos3i" vectorequiv="RasterPos3iv" deprecated="3.1">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="z" type="GLint"/>
     </function>
 
-    <function name="RasterPos3iv" offset="75" deprecated="3.1">
+    <function name="RasterPos3iv" deprecated="3.1">
         <param name="v" type="const GLint *" count="3"/>
         <glx rop="39"/>
     </function>
 
-    <function name="RasterPos3s" offset="76" vectorequiv="RasterPos3sv"
-              deprecated="3.1">
+    <function name="RasterPos3s" vectorequiv="RasterPos3sv" deprecated="3.1">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
     </function>
 
-    <function name="RasterPos3sv" offset="77" deprecated="3.1">
+    <function name="RasterPos3sv" deprecated="3.1">
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="40"/>
     </function>
 
-    <function name="RasterPos4d" offset="78" vectorequiv="RasterPos4dv"
-              deprecated="3.1">
+    <function name="RasterPos4d" vectorequiv="RasterPos4dv" deprecated="3.1">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="RasterPos4dv" offset="79" deprecated="3.1">
+    <function name="RasterPos4dv" deprecated="3.1">
         <param name="v" type="const GLdouble *" count="4"/>
         <glx rop="41"/>
     </function>
 
-    <function name="RasterPos4f" offset="80" vectorequiv="RasterPos4fv"
-              deprecated="3.1">
+    <function name="RasterPos4f" vectorequiv="RasterPos4fv" deprecated="3.1">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="RasterPos4fv" offset="81" deprecated="3.1">
+    <function name="RasterPos4fv" deprecated="3.1">
         <param name="v" type="const GLfloat *" count="4"/>
         <glx rop="42"/>
     </function>
 
-    <function name="RasterPos4i" offset="82" vectorequiv="RasterPos4iv"
-              deprecated="3.1">
+    <function name="RasterPos4i" vectorequiv="RasterPos4iv" deprecated="3.1">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="z" type="GLint"/>
         <param name="w" type="GLint"/>
     </function>
 
-    <function name="RasterPos4iv" offset="83" deprecated="3.1">
+    <function name="RasterPos4iv" deprecated="3.1">
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="43"/>
     </function>
 
-    <function name="RasterPos4s" offset="84" vectorequiv="RasterPos4sv"
-              deprecated="3.1">
+    <function name="RasterPos4s" vectorequiv="RasterPos4sv" deprecated="3.1">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
         <param name="w" type="GLshort"/>
     </function>
 
-    <function name="RasterPos4sv" offset="85" deprecated="3.1">
+    <function name="RasterPos4sv" deprecated="3.1">
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="44"/>
     </function>
 
-    <function name="Rectd" offset="86" vectorequiv="Rectdv" deprecated="3.1">
+    <function name="Rectd" vectorequiv="Rectdv" deprecated="3.1">
         <param name="x1" type="GLdouble"/>
         <param name="y1" type="GLdouble"/>
         <param name="x2" type="GLdouble"/>
         <param name="y2" type="GLdouble"/>
     </function>
 
-    <function name="Rectdv" offset="87" deprecated="3.1">
+    <function name="Rectdv" deprecated="3.1">
         <param name="v1" type="const GLdouble *" count="2"/>
         <param name="v2" type="const GLdouble *" count="2"/>
         <glx rop="45"/>
     </function>
 
-    <function name="Rectf" offset="88" vectorequiv="Rectfv" deprecated="3.1"
-              exec="dynamic">
+    <function name="Rectf" vectorequiv="Rectfv" deprecated="3.1" exec="dynamic">
         <param name="x1" type="GLfloat"/>
         <param name="y1" type="GLfloat"/>
         <param name="x2" type="GLfloat"/>
         <param name="y2" type="GLfloat"/>
     </function>
 
-    <function name="Rectfv" offset="89" deprecated="3.1">
+    <function name="Rectfv" deprecated="3.1">
         <param name="v1" type="const GLfloat *" count="2"/>
         <param name="v2" type="const GLfloat *" count="2"/>
         <glx rop="46"/>
     </function>
 
-    <function name="Recti" offset="90" vectorequiv="Rectiv" deprecated="3.1">
+    <function name="Recti" vectorequiv="Rectiv" deprecated="3.1">
         <param name="x1" type="GLint"/>
         <param name="y1" type="GLint"/>
         <param name="x2" type="GLint"/>
         <param name="y2" type="GLint"/>
     </function>
 
-    <function name="Rectiv" offset="91" deprecated="3.1">
+    <function name="Rectiv" deprecated="3.1">
         <param name="v1" type="const GLint *" count="2"/>
         <param name="v2" type="const GLint *" count="2"/>
         <glx rop="47"/>
     </function>
 
-    <function name="Rects" offset="92" vectorequiv="Rectsv" deprecated="3.1">
+    <function name="Rects" vectorequiv="Rectsv" deprecated="3.1">
         <param name="x1" type="GLshort"/>
         <param name="y1" type="GLshort"/>
         <param name="x2" type="GLshort"/>
         <param name="y2" type="GLshort"/>
     </function>
 
-    <function name="Rectsv" offset="93" deprecated="3.1">
+    <function name="Rectsv" deprecated="3.1">
         <param name="v1" type="const GLshort *" count="2"/>
         <param name="v2" type="const GLshort *" count="2"/>
         <glx rop="48"/>
     </function>
 
-    <function name="TexCoord1d" offset="94" vectorequiv="TexCoord1dv"
-              deprecated="3.1">
+    <function name="TexCoord1d" vectorequiv="TexCoord1dv" deprecated="3.1">
         <param name="s" type="GLdouble"/>
     </function>
 
-    <function name="TexCoord1dv" offset="95" deprecated="3.1">
+    <function name="TexCoord1dv" deprecated="3.1">
         <param name="v" type="const GLdouble *" count="1"/>
         <glx rop="49"/>
     </function>
 
-    <function name="TexCoord1f" offset="96" vectorequiv="TexCoord1fv"
+    <function name="TexCoord1f" vectorequiv="TexCoord1fv"
               deprecated="3.1" exec="dynamic">
         <param name="s" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord1fv" offset="97" deprecated="3.1"
-              exec="dynamic">
+    <function name="TexCoord1fv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLfloat *" count="1"/>
         <glx rop="50"/>
     </function>
 
-    <function name="TexCoord1i" offset="98" vectorequiv="TexCoord1iv"
-              deprecated="3.1">
+    <function name="TexCoord1i" vectorequiv="TexCoord1iv" deprecated="3.1">
         <param name="s" type="GLint"/>
     </function>
 
-    <function name="TexCoord1iv" offset="99" deprecated="3.1">
+    <function name="TexCoord1iv" deprecated="3.1">
         <param name="v" type="const GLint *" count="1"/>
         <glx rop="51"/>
     </function>
 
-    <function name="TexCoord1s" offset="100" vectorequiv="TexCoord1sv"
-              deprecated="3.1">
+    <function name="TexCoord1s" vectorequiv="TexCoord1sv" deprecated="3.1">
         <param name="s" type="GLshort"/>
     </function>
 
-    <function name="TexCoord1sv" offset="101" deprecated="3.1">
+    <function name="TexCoord1sv" deprecated="3.1">
         <param name="v" type="const GLshort *" count="1"/>
         <glx rop="52"/>
     </function>
 
-    <function name="TexCoord2d" offset="102" vectorequiv="TexCoord2dv"
-              deprecated="3.1">
+    <function name="TexCoord2d" vectorequiv="TexCoord2dv" deprecated="3.1">
         <param name="s" type="GLdouble"/>
         <param name="t" type="GLdouble"/>
     </function>
 
-    <function name="TexCoord2dv" offset="103" deprecated="3.1">
+    <function name="TexCoord2dv" deprecated="3.1">
         <param name="v" type="const GLdouble *" count="2"/>
         <glx rop="53"/>
     </function>
 
-    <function name="TexCoord2f" offset="104" vectorequiv="TexCoord2fv"
+    <function name="TexCoord2f" vectorequiv="TexCoord2fv"
               deprecated="3.1" exec="dynamic">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord2fv" offset="105" deprecated="3.1"
-              exec="dynamic">
+    <function name="TexCoord2fv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLfloat *" count="2"/>
         <glx rop="54"/>
     </function>
 
-    <function name="TexCoord2i" offset="106" vectorequiv="TexCoord2iv"
-              deprecated="3.1">
+    <function name="TexCoord2i" vectorequiv="TexCoord2iv" deprecated="3.1">
         <param name="s" type="GLint"/>
         <param name="t" type="GLint"/>
     </function>
 
-    <function name="TexCoord2iv" offset="107" deprecated="3.1">
+    <function name="TexCoord2iv" deprecated="3.1">
         <param name="v" type="const GLint *" count="2"/>
         <glx rop="55"/>
     </function>
 
-    <function name="TexCoord2s" offset="108" vectorequiv="TexCoord2sv"
-              deprecated="3.1">
+    <function name="TexCoord2s" vectorequiv="TexCoord2sv" deprecated="3.1">
         <param name="s" type="GLshort"/>
         <param name="t" type="GLshort"/>
     </function>
 
-    <function name="TexCoord2sv" offset="109" deprecated="3.1">
+    <function name="TexCoord2sv" deprecated="3.1">
         <param name="v" type="const GLshort *" count="2"/>
         <glx rop="56"/>
     </function>
 
-    <function name="TexCoord3d" offset="110" vectorequiv="TexCoord3dv"
-              deprecated="3.1">
+    <function name="TexCoord3d" vectorequiv="TexCoord3dv" deprecated="3.1">
         <param name="s" type="GLdouble"/>
         <param name="t" type="GLdouble"/>
         <param name="r" type="GLdouble"/>
     </function>
 
-    <function name="TexCoord3dv" offset="111" deprecated="3.1">
+    <function name="TexCoord3dv" deprecated="3.1">
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="57"/>
     </function>
 
-    <function name="TexCoord3f" offset="112" vectorequiv="TexCoord3fv"
+    <function name="TexCoord3f" vectorequiv="TexCoord3fv"
               deprecated="3.1" exec="dynamic">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="r" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord3fv" offset="113" deprecated="3.1"
-              exec="dynamic">
+    <function name="TexCoord3fv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLfloat *" count="3"/>
         <glx rop="58"/>
     </function>
 
-    <function name="TexCoord3i" offset="114" vectorequiv="TexCoord3iv"
-              deprecated="3.1">
+    <function name="TexCoord3i" vectorequiv="TexCoord3iv" deprecated="3.1">
         <param name="s" type="GLint"/>
         <param name="t" type="GLint"/>
         <param name="r" type="GLint"/>
     </function>
 
-    <function name="TexCoord3iv" offset="115" deprecated="3.1">
+    <function name="TexCoord3iv" deprecated="3.1">
         <param name="v" type="const GLint *" count="3"/>
         <glx rop="59"/>
     </function>
 
-    <function name="TexCoord3s" offset="116" vectorequiv="TexCoord3sv"
-              deprecated="3.1">
+    <function name="TexCoord3s" vectorequiv="TexCoord3sv" deprecated="3.1">
         <param name="s" type="GLshort"/>
         <param name="t" type="GLshort"/>
         <param name="r" type="GLshort"/>
     </function>
 
-    <function name="TexCoord3sv" offset="117" deprecated="3.1">
+    <function name="TexCoord3sv" deprecated="3.1">
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="60"/>
     </function>
 
-    <function name="TexCoord4d" offset="118" vectorequiv="TexCoord4dv"
-              deprecated="3.1">
+    <function name="TexCoord4d" vectorequiv="TexCoord4dv" deprecated="3.1">
         <param name="s" type="GLdouble"/>
         <param name="t" type="GLdouble"/>
         <param name="r" type="GLdouble"/>
         <param name="q" type="GLdouble"/>
     </function>
 
-    <function name="TexCoord4dv" offset="119" deprecated="3.1">
+    <function name="TexCoord4dv" deprecated="3.1">
         <param name="v" type="const GLdouble *" count="4"/>
         <glx rop="61"/>
     </function>
 
-    <function name="TexCoord4f" offset="120" vectorequiv="TexCoord4fv"
+    <function name="TexCoord4f" vectorequiv="TexCoord4fv"
               deprecated="3.1" exec="dynamic">
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
         <param name="q" type="GLfloat"/>
     </function>
 
-    <function name="TexCoord4fv" offset="121" deprecated="3.1"
-              exec="dynamic">
+    <function name="TexCoord4fv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLfloat *" count="4"/>
         <glx rop="62"/>
     </function>
 
-    <function name="TexCoord4i" offset="122" vectorequiv="TexCoord4iv"
-              deprecated="3.1">
+    <function name="TexCoord4i" vectorequiv="TexCoord4iv" deprecated="3.1">
         <param name="s" type="GLint"/>
         <param name="t" type="GLint"/>
         <param name="r" type="GLint"/>
         <param name="q" type="GLint"/>
     </function>
 
-    <function name="TexCoord4iv" offset="123" deprecated="3.1">
+    <function name="TexCoord4iv" deprecated="3.1">
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="63"/>
     </function>
 
-    <function name="TexCoord4s" offset="124" vectorequiv="TexCoord4sv"
-              deprecated="3.1">
+    <function name="TexCoord4s" vectorequiv="TexCoord4sv" deprecated="3.1">
         <param name="s" type="GLshort"/>
         <param name="t" type="GLshort"/>
         <param name="r" type="GLshort"/>
         <param name="q" type="GLshort"/>
     </function>
 
-    <function name="TexCoord4sv" offset="125" deprecated="3.1">
+    <function name="TexCoord4sv" deprecated="3.1">
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="64"/>
     </function>
 
-    <function name="Vertex2d" offset="126" vectorequiv="Vertex2dv"
-              deprecated="3.1">
+    <function name="Vertex2d" vectorequiv="Vertex2dv" deprecated="3.1">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
     </function>
 
-    <function name="Vertex2dv" offset="127" deprecated="3.1">
+    <function name="Vertex2dv" deprecated="3.1">
         <param name="v" type="const GLdouble *" count="2"/>
         <glx rop="65"/>
     </function>
 
-    <function name="Vertex2f" offset="128" vectorequiv="Vertex2fv"
+    <function name="Vertex2f" vectorequiv="Vertex2fv"
               deprecated="3.1" exec="dynamic">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
     </function>
 
-    <function name="Vertex2fv" offset="129" deprecated="3.1"
-              exec="dynamic">
+    <function name="Vertex2fv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLfloat *" count="2"/>
         <glx rop="66"/>
     </function>
 
-    <function name="Vertex2i" offset="130" vectorequiv="Vertex2iv"
-              deprecated="3.1">
+    <function name="Vertex2i" vectorequiv="Vertex2iv" deprecated="3.1">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
     </function>
 
-    <function name="Vertex2iv" offset="131" deprecated="3.1">
+    <function name="Vertex2iv" deprecated="3.1">
         <param name="v" type="const GLint *" count="2"/>
         <glx rop="67"/>
     </function>
 
-    <function name="Vertex2s" offset="132" vectorequiv="Vertex2sv"
-              deprecated="3.1">
+    <function name="Vertex2s" vectorequiv="Vertex2sv" deprecated="3.1">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
     </function>
 
-    <function name="Vertex2sv" offset="133" deprecated="3.1">
+    <function name="Vertex2sv" deprecated="3.1">
         <param name="v" type="const GLshort *" count="2"/>
         <glx rop="68"/>
     </function>
 
-    <function name="Vertex3d" offset="134" vectorequiv="Vertex3dv"
-              deprecated="3.1">
+    <function name="Vertex3d" vectorequiv="Vertex3dv" deprecated="3.1">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
     </function>
 
-    <function name="Vertex3dv" offset="135" deprecated="3.1">
+    <function name="Vertex3dv" deprecated="3.1">
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="69"/>
     </function>
 
-    <function name="Vertex3f" offset="136" vectorequiv="Vertex3fv"
+    <function name="Vertex3f" vectorequiv="Vertex3fv"
               deprecated="3.1" exec="dynamic">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="Vertex3fv" offset="137" deprecated="3.1"
-              exec="dynamic">
+    <function name="Vertex3fv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLfloat *" count="3"/>
         <glx rop="70"/>
     </function>
 
-    <function name="Vertex3i" offset="138" vectorequiv="Vertex3iv"
-              deprecated="3.1">
+    <function name="Vertex3i" vectorequiv="Vertex3iv" deprecated="3.1">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="z" type="GLint"/>
     </function>
 
-    <function name="Vertex3iv" offset="139" deprecated="3.1">
+    <function name="Vertex3iv" deprecated="3.1">
         <param name="v" type="const GLint *" count="3"/>
         <glx rop="71"/>
     </function>
 
-    <function name="Vertex3s" offset="140" vectorequiv="Vertex3sv"
-              deprecated="3.1">
+    <function name="Vertex3s" vectorequiv="Vertex3sv" deprecated="3.1">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
     </function>
 
-    <function name="Vertex3sv" offset="141" deprecated="3.1">
+    <function name="Vertex3sv" deprecated="3.1">
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="72"/>
     </function>
 
-    <function name="Vertex4d" offset="142" vectorequiv="Vertex4dv"
-              deprecated="3.1">
+    <function name="Vertex4d" vectorequiv="Vertex4dv" deprecated="3.1">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="Vertex4dv" offset="143" deprecated="3.1">
+    <function name="Vertex4dv" deprecated="3.1">
         <param name="v" type="const GLdouble *" count="4"/>
         <glx rop="73"/>
     </function>
 
-    <function name="Vertex4f" offset="144" vectorequiv="Vertex4fv"
+    <function name="Vertex4f" vectorequiv="Vertex4fv"
               deprecated="3.1" exec="dynamic">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="Vertex4fv" offset="145" deprecated="3.1"
-              exec="dynamic">
+    <function name="Vertex4fv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLfloat *" count="4"/>
         <glx rop="74"/>
     </function>
 
-    <function name="Vertex4i" offset="146" vectorequiv="Vertex4iv"
-              deprecated="3.1">
+    <function name="Vertex4i" vectorequiv="Vertex4iv" deprecated="3.1">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="z" type="GLint"/>
         <param name="w" type="GLint"/>
     </function>
 
-    <function name="Vertex4iv" offset="147" deprecated="3.1">
+    <function name="Vertex4iv" deprecated="3.1">
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="75"/>
     </function>
 
-    <function name="Vertex4s" offset="148" vectorequiv="Vertex4sv"
-              deprecated="3.1">
+    <function name="Vertex4s" vectorequiv="Vertex4sv" deprecated="3.1">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
         <param name="w" type="GLshort"/>
     </function>
 
-    <function name="Vertex4sv" offset="149" deprecated="3.1">
+    <function name="Vertex4sv" deprecated="3.1">
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="76"/>
     </function>
 
-    <function name="ClipPlane" offset="150" deprecated="3.1">
+    <function name="ClipPlane" deprecated="3.1">
         <param name="plane" type="GLenum"/>
         <param name="equation" type="const GLdouble *" count="4"/>
         <glx rop="77"/>
     </function>
 
-    <function name="ColorMaterial" offset="151" deprecated="3.1">
+    <function name="ColorMaterial" deprecated="3.1">
         <param name="face" type="GLenum"/>
         <param name="mode" type="GLenum"/>
         <glx rop="78"/>
     </function>
 
-    <function name="CullFace" offset="152" es1="1.0" es2="2.0">
+    <function name="CullFace" es1="1.0" es2="2.0" no_error="true">
         <param name="mode" type="GLenum"/>
         <glx rop="79"/>
     </function>
 
-    <function name="Fogf" offset="153" es1="1.0" deprecated="3.1">
+    <function name="Fogf" es1="1.0" deprecated="3.1">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx rop="80"/>
     </function>
 
-    <function name="Fogfv" offset="154" es1="1.0" deprecated="3.1">
+    <function name="Fogfv" es1="1.0" deprecated="3.1">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLfloat *" variable_param="pname"/>
+        <param name="params" type="const GLfloat *" variable_param="pname"
+               marshal_count="_mesa_fog_enum_to_count(pname)"/>
         <glx rop="81"/>
     </function>
 
-    <function name="Fogi" offset="155" deprecated="3.1">
+    <function name="Fogi" deprecated="3.1">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx rop="82"/>
     </function>
 
-    <function name="Fogiv" offset="156" deprecated="3.1">
+    <function name="Fogiv" deprecated="3.1">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLint *" variable_param="pname"/>
+        <param name="params" type="const GLint *" variable_param="pname"
+               marshal_count="_mesa_fog_enum_to_count(pname)"/>
         <glx rop="83"/>
     </function>
 
-    <function name="FrontFace" offset="157" es1="1.0" es2="2.0">
+    <function name="FrontFace" es1="1.0" es2="2.0" no_error="true">
         <param name="mode" type="GLenum"/>
         <glx rop="84"/>
     </function>
 
-    <function name="Hint" offset="158" es1="1.0" es2="2.0">
+    <function name="Hint" es1="1.0" es2="2.0">
         <param name="target" type="GLenum"/>
         <param name="mode" type="GLenum"/>
         <glx rop="85"/>
     </function>
 
-    <function name="Lightf" offset="159" es1="1.0" deprecated="3.1">
+    <function name="Lightf" es1="1.0" deprecated="3.1">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx rop="86"/>
     </function>
 
-    <function name="Lightfv" offset="160" es1="1.0" deprecated="3.1">
+    <function name="Lightfv" es1="1.0" deprecated="3.1">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLfloat *" variable_param="pname"/>
+        <param name="params" type="const GLfloat *" variable_param="pname"
+               marshal_count="_mesa_light_enum_to_count(pname)"/>
         <glx rop="87"/>
     </function>
 
-    <function name="Lighti" offset="161" deprecated="3.1">
+    <function name="Lighti" deprecated="3.1">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx rop="88"/>
     </function>
 
-    <function name="Lightiv" offset="162" deprecated="3.1">
+    <function name="Lightiv" deprecated="3.1">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLint *" variable_param="pname"/>
+        <param name="params" type="const GLint *" variable_param="pname"
+               marshal_count="_mesa_light_enum_to_count(pname)"/>
         <glx rop="89"/>
     </function>
 
-    <function name="LightModelf" offset="163" es1="1.0" deprecated="3.1">
+    <function name="LightModelf" es1="1.0" deprecated="3.1">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx rop="90"/>
     </function>
 
-    <function name="LightModelfv" offset="164" es1="1.0" deprecated="3.1">
+    <function name="LightModelfv" es1="1.0" deprecated="3.1">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLfloat *" variable_param="pname"/>
+        <param name="params" type="const GLfloat *" variable_param="pname"
+               marshal_count="_mesa_light_model_enum_to_count(pname)"/>
         <glx rop="91"/>
     </function>
 
-    <function name="LightModeli" offset="165" deprecated="3.1">
+    <function name="LightModeli" deprecated="3.1">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx rop="92"/>
     </function>
 
-    <function name="LightModeliv" offset="166" deprecated="3.1">
+    <function name="LightModeliv" deprecated="3.1">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLint *" variable_param="pname"/>
+        <param name="params" type="const GLint *" variable_param="pname"
+               marshal_count="_mesa_light_model_enum_to_count(pname)"/>
         <glx rop="93"/>
     </function>
 
-    <function name="LineStipple" offset="167" deprecated="3.1">
+    <function name="LineStipple" deprecated="3.1">
         <param name="factor" type="GLint"/>
         <param name="pattern" type="GLushort"/>
         <glx rop="94"/>
     </function>
 
-    <function name="LineWidth" offset="168" es1="1.0" es2="2.0">
+    <function name="LineWidth" es1="1.0" es2="2.0" no_error="true">
         <param name="width" type="GLfloat"/>
         <glx rop="95"/>
     </function>
 
-    <function name="Materialf" offset="169" es1="1.0" deprecated="3.1">
+    <function name="Materialf" es1="1.0" deprecated="3.1">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx rop="96"/>
     </function>
 
-    <function name="Materialfv" offset="170" es1="1.0" deprecated="3.1"
-              exec="dynamic">
+    <function name="Materialfv" es1="1.0" deprecated="3.1" exec="dynamic">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLfloat *" variable_param="pname"/>
+        <param name="params" type="const GLfloat *" variable_param="pname"
+               marshal_count="_mesa_material_enum_to_count(pname)"/>
         <glx rop="97"/>
     </function>
 
-    <function name="Materiali" offset="171" deprecated="3.1">
+    <function name="Materiali" deprecated="3.1">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx rop="98"/>
     </function>
 
-    <function name="Materialiv" offset="172" deprecated="3.1">
+    <function name="Materialiv" deprecated="3.1">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLint *" variable_param="pname"/>
+        <param name="params" type="const GLint *" variable_param="pname"
+               marshal_count="_mesa_material_enum_to_count(pname)"/>
         <glx rop="99"/>
     </function>
 
-    <function name="PointSize" offset="173" es1="1.0">
+    <function name="PointSize" es1="1.0" no_error="true">
         <param name="size" type="GLfloat"/>
         <glx rop="100"/>
     </function>
 
-    <function name="PolygonMode" offset="174">
+    <function name="PolygonMode" no_error="true">
         <param name="face" type="GLenum"/>
         <param name="mode" type="GLenum"/>
         <glx rop="101"/>
     </function>
 
-    <function name="PolygonStipple" offset="175" deprecated="3.1">
+    <function name="PolygonStipple" deprecated="3.1">
         <param name="mask" type="const GLubyte *" img_width="32" img_height="32" img_format="GL_COLOR_INDEX" img_type="GL_BITMAP" img_target="0" img_pad_dimensions="false"/>
         <glx rop="102"/>
     </function>
 
-    <function name="Scissor" offset="176" es1="1.0" es2="2.0">
+    <function name="Scissor" es1="1.0" es2="2.0" no_error="true">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="width" type="GLsizei"/>
         <glx rop="103"/>
     </function>
 
-    <function name="ShadeModel" offset="177" es1="1.0" deprecated="3.1">
+    <function name="ShadeModel" es1="1.0" deprecated="3.1">
         <param name="mode" type="GLenum"/>
         <glx rop="104"/>
     </function>
 
-    <function name="TexParameterf" offset="178" es1="1.0" es2="2.0">
+    <function name="TexParameterf" es1="1.0" es2="2.0">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx rop="105"/>
     </function>
 
-    <function name="TexParameterfv" offset="179" es1="1.1" es2="2.0">
+    <function name="TexParameterfv" es1="1.1" es2="2.0">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLfloat *" variable_param="pname"/>
+        <param name="params" type="const GLfloat *" variable_param="pname"
+               marshal_count="_mesa_tex_param_enum_to_count(pname)"/>
         <glx rop="106"/>
     </function>
 
-    <function name="TexParameteri" offset="180" es1="1.1" es2="2.0">
+    <function name="TexParameteri" es1="1.1" es2="2.0">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx rop="107"/>
     </function>
 
-    <function name="TexParameteriv" offset="181" es1="1.1" es2="2.0">
+    <function name="TexParameteriv" es1="1.1" es2="2.0">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLint *" variable_param="pname"/>
+        <param name="params" type="const GLint *" variable_param="pname"
+               marshal_count="_mesa_tex_param_enum_to_count(pname)"/>
         <glx rop="108"/>
     </function>
 
-    <function name="TexImage1D" offset="182">
+    <function name="TexImage1D" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLint"/>
         <glx rop="109" large="true"/>
     </function>
 
-    <function name="TexImage2D" offset="183" es1="1.0" es2="2.0">
+    <function name="TexImage2D" es1="1.0" es2="2.0" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLint"/>
         <glx rop="110" large="true"/>
     </function>
 
-    <function name="TexEnvf" offset="184" es1="1.0" deprecated="3.1">
+    <function name="TexEnvf" es1="1.0" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx rop="111"/>
     </function>
 
-    <function name="TexEnvfv" offset="185" es1="1.0" deprecated="3.1">
+    <function name="TexEnvfv" es1="1.0" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLfloat *" variable_param="pname"/>
+        <param name="params" type="const GLfloat *" variable_param="pname"
+               marshal_count="_mesa_texenv_enum_to_count(pname)"/>
         <glx rop="112"/>
     </function>
 
-    <function name="TexEnvi" offset="186" es1="1.1" deprecated="3.1">
+    <function name="TexEnvi" es1="1.1" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx rop="113"/>
     </function>
 
-    <function name="TexEnviv" offset="187" es1="1.1" deprecated="3.1">
+    <function name="TexEnviv" es1="1.1" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLint *" variable_param="pname"/>
+        <param name="params" type="const GLint *" variable_param="pname"
+               marshal_count="_mesa_texenv_enum_to_count(pname)"/>
         <glx rop="114"/>
     </function>
 
-    <function name="TexGend" offset="188" deprecated="3.1">
+    <function name="TexGend" deprecated="3.1">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLdouble"/>
         <glx rop="115"/>
     </function>
 
-    <function name="TexGendv" offset="189" deprecated="3.1">
+    <function name="TexGendv" deprecated="3.1">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLdouble *" variable_param="pname"/>
+        <param name="params" type="const GLdouble *" variable_param="pname"
+               marshal_count="_mesa_texgen_enum_to_count(pname)"/>
         <glx rop="116"/>
     </function>
 
-    <function name="TexGenf" offset="190" deprecated="3.1">
+    <function name="TexGenf" deprecated="3.1">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx rop="117"/>
     </function>
 
-    <function name="TexGenfv" offset="191" deprecated="3.1">
+    <function name="TexGenfv" deprecated="3.1">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLfloat *" variable_param="pname"/>
+        <param name="params" type="const GLfloat *" variable_param="pname"
+               marshal_count="_mesa_texgen_enum_to_count(pname)"/>
         <glx rop="118"/>
     </function>
 
-    <function name="TexGeni" offset="192" deprecated="3.1">
+    <function name="TexGeni" deprecated="3.1">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx rop="119"/>
     </function>
 
-    <function name="TexGeniv" offset="193" deprecated="3.1">
+    <function name="TexGeniv" deprecated="3.1">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLint *" variable_param="pname"/>
+        <param name="params" type="const GLint *" variable_param="pname"
+               marshal_count="_mesa_texgen_enum_to_count(pname)"/>
         <glx rop="120"/>
     </function>
 
-    <function name="FeedbackBuffer" offset="194" deprecated="3.1">
+    <function name="FeedbackBuffer" deprecated="3.1">
         <param name="size" type="GLsizei"/>
         <param name="type" type="GLenum"/>
         <param name="buffer" type="GLfloat *" output="true"/>
         <glx sop="105" handcode="true"/>
     </function>
 
-    <function name="SelectBuffer" offset="195" deprecated="3.1">
+    <function name="SelectBuffer" deprecated="3.1">
         <param name="size" type="GLsizei"/>
         <param name="buffer" type="GLuint *" output="true"/>
         <glx sop="106" handcode="true"/>
     </function>
 
-    <function name="RenderMode" offset="196" deprecated="3.1">
+    <function name="RenderMode" deprecated="3.1">
         <param name="mode" type="GLenum"/>
         <return type="GLint"/>
         <glx sop="107" handcode="true"/>
     </function>
 
-    <function name="InitNames" offset="197" deprecated="3.1">
+    <function name="InitNames" deprecated="3.1">
         <glx rop="121"/>
     </function>
 
-    <function name="LoadName" offset="198" deprecated="3.1">
+    <function name="LoadName" deprecated="3.1">
         <param name="name" type="GLuint"/>
         <glx rop="122"/>
     </function>
 
-    <function name="PassThrough" offset="199" deprecated="3.1">
+    <function name="PassThrough" deprecated="3.1">
         <param name="token" type="GLfloat"/>
         <glx rop="123"/>
     </function>
 
-    <function name="PopName" offset="200" deprecated="3.1">
+    <function name="PopName" deprecated="3.1">
         <glx rop="124"/>
     </function>
 
-    <function name="PushName" offset="201" deprecated="3.1">
+    <function name="PushName" deprecated="3.1">
         <param name="name" type="GLuint"/>
         <glx rop="125"/>
     </function>
 
-    <function name="DrawBuffer" offset="202">
+    <function name="DrawBuffer" no_error="true">
         <param name="mode" type="GLenum"/>
         <glx rop="126"/>
     </function>
 
-    <function name="Clear" offset="203" es1="1.0" es2="2.0">
+    <function name="Clear" es1="1.0" es2="2.0" no_error="true">
         <param name="mask" type="GLbitfield"/>
         <glx rop="127"/>
     </function>
 
-    <function name="ClearAccum" offset="204" deprecated="3.1">
+    <function name="ClearAccum" deprecated="3.1">
         <param name="red" type="GLfloat"/>
         <param name="green" type="GLfloat"/>
         <param name="blue" type="GLfloat"/>
         <glx rop="128"/>
     </function>
 
-    <function name="ClearIndex" offset="205" deprecated="3.1">
+    <function name="ClearIndex" deprecated="3.1">
         <param name="c" type="GLfloat"/>
         <glx rop="129"/>
     </function>
 
-    <function name="ClearColor" offset="206" es1="1.0" es2="2.0">
+    <function name="ClearColor" es1="1.0" es2="2.0">
         <param name="red" type="GLclampf"/>
         <param name="green" type="GLclampf"/>
         <param name="blue" type="GLclampf"/>
         <glx rop="130"/>
     </function>
 
-    <function name="ClearStencil" offset="207" es1="1.0" es2="2.0">
+    <function name="ClearStencil" es1="1.0" es2="2.0">
         <param name="s" type="GLint"/>
         <glx rop="131"/>
     </function>
 
-    <function name="ClearDepth" offset="208">
+    <function name="ClearDepth">
         <param name="depth" type="GLclampd"/>
         <glx rop="132"/>
     </function>
 
-    <function name="StencilMask" offset="209" es1="1.0" es2="2.0">
+    <function name="StencilMask" es1="1.0" es2="2.0">
         <param name="mask" type="GLuint"/>
         <glx rop="133"/>
     </function>
 
-    <function name="ColorMask" offset="210" es1="1.0" es2="2.0">
+    <function name="ColorMask" es1="1.0" es2="2.0">
         <param name="red" type="GLboolean"/>
         <param name="green" type="GLboolean"/>
         <param name="blue" type="GLboolean"/>
         <glx rop="134"/>
     </function>
 
-    <function name="DepthMask" offset="211" es1="1.0" es2="2.0">
+    <function name="DepthMask" es1="1.0" es2="2.0">
         <param name="flag" type="GLboolean"/>
         <glx rop="135"/>
     </function>
 
-    <function name="IndexMask" offset="212" deprecated="3.1">
+    <function name="IndexMask" deprecated="3.1">
         <param name="mask" type="GLuint"/>
         <glx rop="136"/>
     </function>
 
-    <function name="Accum" offset="213" deprecated="3.1">
+    <function name="Accum" deprecated="3.1">
         <param name="op" type="GLenum"/>
         <param name="value" type="GLfloat"/>
         <glx rop="137"/>
     </function>
 
-    <function name="Disable" offset="214" es1="1.0" es2="2.0">
+    <function name="Disable" es1="1.0" es2="2.0"
+              marshal_call_after="if (cap == GL_PRIMITIVE_RESTART || cap == GL_PRIMITIVE_RESTART_FIXED_INDEX) _mesa_glthread_set_prim_restart(ctx, cap, false);">
         <param name="cap" type="GLenum"/>
         <glx rop="138" handcode="client"/>
     </function>
 
-    <function name="Enable" offset="215" es1="1.0" es2="2.0">
+    <function name="Enable" es1="1.0" es2="2.0"
+              marshal_call_after='if (cap == GL_PRIMITIVE_RESTART || cap == GL_PRIMITIVE_RESTART_FIXED_INDEX) { _mesa_glthread_set_prim_restart(ctx, cap, true); } else if (cap == GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB) { _mesa_glthread_disable(ctx, "Enable(DEBUG_OUTPUT_SYNCHRONOUS)"); }'>
         <param name="cap" type="GLenum"/>
         <glx rop="139" handcode="client"/>
     </function>
 
-    <function name="Finish" offset="216" es1="1.0" es2="2.0">
+    <function name="Finish" es1="1.0" es2="2.0" marshal="sync">
         <glx sop="108" handcode="true"/>
     </function>
 
-    <function name="Flush" offset="217" es1="1.0" es2="2.0">
+    <function name="Flush" es1="1.0" es2="2.0"
+              marshal_call_after="_mesa_glthread_flush_batch(ctx);">
         <glx sop="142" handcode="true"/>
     </function>
 
-    <function name="PopAttrib" offset="218" deprecated="3.1">
+    <function name="PopAttrib" deprecated="3.1">
         <glx rop="141"/>
     </function>
 
-    <function name="PushAttrib" offset="219" deprecated="3.1">
+    <function name="PushAttrib" deprecated="3.1">
         <param name="mask" type="GLbitfield"/>
         <glx rop="142"/>
     </function>
 
-    <function name="Map1d" offset="220" deprecated="3.1">
+    <function name="Map1d" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLdouble"/>
         <param name="u2" type="GLdouble"/>
         <glx rop="143" handcode="true"/>
     </function>
 
-    <function name="Map1f" offset="221" deprecated="3.1">
+    <function name="Map1f" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLfloat"/>
         <param name="u2" type="GLfloat"/>
         <glx rop="144" handcode="true"/>
     </function>
 
-    <function name="Map2d" offset="222" deprecated="3.1">
+    <function name="Map2d" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLdouble"/>
         <param name="u2" type="GLdouble"/>
         <glx rop="145" handcode="true"/>
     </function>
 
-    <function name="Map2f" offset="223" deprecated="3.1">
+    <function name="Map2f" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="u1" type="GLfloat"/>
         <param name="u2" type="GLfloat"/>
         <glx rop="146" handcode="true"/>
     </function>
 
-    <function name="MapGrid1d" offset="224" deprecated="3.1">
+    <function name="MapGrid1d" deprecated="3.1">
         <param name="un" type="GLint"/>
         <param name="u1" type="GLdouble"/>
         <param name="u2" type="GLdouble"/>
         <glx rop="147"/>
     </function>
 
-    <function name="MapGrid1f" offset="225" deprecated="3.1">
+    <function name="MapGrid1f" deprecated="3.1">
         <param name="un" type="GLint"/>
         <param name="u1" type="GLfloat"/>
         <param name="u2" type="GLfloat"/>
         <glx rop="148"/>
     </function>
 
-    <function name="MapGrid2d" offset="226" deprecated="3.1">
+    <function name="MapGrid2d" deprecated="3.1">
         <param name="un" type="GLint"/>
         <param name="u1" type="GLdouble"/>
         <param name="u2" type="GLdouble"/>
         <glx rop="149"/>
     </function>
 
-    <function name="MapGrid2f" offset="227" deprecated="3.1">
+    <function name="MapGrid2f" deprecated="3.1">
         <param name="un" type="GLint"/>
         <param name="u1" type="GLfloat"/>
         <param name="u2" type="GLfloat"/>
         <glx rop="150"/>
     </function>
 
-    <function name="EvalCoord1d" offset="228" vectorequiv="EvalCoord1dv"
-              deprecated="3.1">
+    <function name="EvalCoord1d" vectorequiv="EvalCoord1dv" deprecated="3.1">
         <param name="u" type="GLdouble"/>
     </function>
 
-    <function name="EvalCoord1dv" offset="229" deprecated="3.1">
+    <function name="EvalCoord1dv" deprecated="3.1">
         <param name="u" type="const GLdouble *" count="1"/>
         <glx rop="151"/>
     </function>
 
-    <function name="EvalCoord1f" offset="230" vectorequiv="EvalCoord1fv"
+    <function name="EvalCoord1f" vectorequiv="EvalCoord1fv"
               deprecated="3.1" exec="dynamic">
         <param name="u" type="GLfloat"/>
     </function>
 
-    <function name="EvalCoord1fv" offset="231" deprecated="3.1">
+    <function name="EvalCoord1fv" deprecated="3.1" exec="dynamic">
         <param name="u" type="const GLfloat *" count="1"/>
         <glx rop="152"/>
     </function>
 
-    <function name="EvalCoord2d" offset="232" vectorequiv="EvalCoord2dv"
-              deprecated="3.1">
+    <function name="EvalCoord2d" vectorequiv="EvalCoord2dv" deprecated="3.1">
         <param name="u" type="GLdouble"/>
         <param name="v" type="GLdouble"/>
     </function>
 
-    <function name="EvalCoord2dv" offset="233" deprecated="3.1">
+    <function name="EvalCoord2dv" deprecated="3.1">
         <param name="u" type="const GLdouble *" count="2"/>
         <glx rop="153"/>
     </function>
 
-    <function name="EvalCoord2f" offset="234" vectorequiv="EvalCoord2fv"
+    <function name="EvalCoord2f" vectorequiv="EvalCoord2fv"
               deprecated="3.1" exec="dynamic">
         <param name="u" type="GLfloat"/>
         <param name="v" type="GLfloat"/>
     </function>
 
-    <function name="EvalCoord2fv" offset="235" deprecated="3.1">
+    <function name="EvalCoord2fv" deprecated="3.1" exec="dynamic">
         <param name="u" type="const GLfloat *" count="2"/>
         <glx rop="154"/>
     </function>
 
-    <function name="EvalMesh1" offset="236" deprecated="3.1"
-              exec="dynamic">
+    <function name="EvalMesh1" deprecated="3.1">
         <param name="mode" type="GLenum"/>
         <param name="i1" type="GLint"/>
         <param name="i2" type="GLint"/>
         <glx rop="155"/>
     </function>
 
-    <function name="EvalPoint1" offset="237" deprecated="3.1"
-              exec="dynamic">
+    <function name="EvalPoint1" deprecated="3.1" exec="dynamic">
         <param name="i" type="GLint"/>
         <glx rop="156"/>
     </function>
 
-    <function name="EvalMesh2" offset="238" deprecated="3.1"
-              exec="dynamic">
+    <function name="EvalMesh2" deprecated="3.1">
         <param name="mode" type="GLenum"/>
         <param name="i1" type="GLint"/>
         <param name="i2" type="GLint"/>
         <glx rop="157"/>
     </function>
 
-    <function name="EvalPoint2" offset="239" deprecated="3.1"
-              exec="dynamic">
+    <function name="EvalPoint2" deprecated="3.1" exec="dynamic">
         <param name="i" type="GLint"/>
         <param name="j" type="GLint"/>
         <glx rop="158"/>
     </function>
 
-    <function name="AlphaFunc" offset="240" es1="1.0" deprecated="3.1">
+    <function name="AlphaFunc" es1="1.0" deprecated="3.1">
         <param name="func" type="GLenum"/>
         <param name="ref" type="GLclampf"/>
         <glx rop="159"/>
     </function>
 
-    <function name="BlendFunc" offset="241" es1="1.0" es2="2.0">
+    <function name="BlendFunc" es1="1.0" es2="2.0" no_error="true">
         <param name="sfactor" type="GLenum"/>
         <param name="dfactor" type="GLenum"/>
         <glx rop="160"/>
     </function>
 
-    <function name="LogicOp" offset="242" es1="1.0">
+    <function name="LogicOp" es1="1.0" no_error="true">
         <param name="opcode" type="GLenum"/>
         <glx rop="161"/>
     </function>
 
-    <function name="StencilFunc" offset="243" es1="1.0" es2="2.0">
+    <function name="StencilFunc" es1="1.0" es2="2.0" no_error="true">
         <param name="func" type="GLenum"/>
         <param name="ref" type="GLint"/>
         <param name="mask" type="GLuint"/>
         <glx rop="162"/>
     </function>
 
-    <function name="StencilOp" offset="244" es1="1.0" es2="2.0">
+    <function name="StencilOp" es1="1.0" es2="2.0" no_error="true">
         <param name="fail" type="GLenum"/>
         <param name="zfail" type="GLenum"/>
         <param name="zpass" type="GLenum"/>
         <glx rop="163"/>
     </function>
 
-    <function name="DepthFunc" offset="245" es1="1.0" es2="2.0">
+    <function name="DepthFunc" es1="1.0" es2="2.0" no_error="true">
         <param name="func" type="GLenum"/>
         <glx rop="164"/>
     </function>
 
-    <function name="PixelZoom" offset="246" deprecated="3.1">
+    <function name="PixelZoom" deprecated="3.1">
         <param name="xfactor" type="GLfloat"/>
         <param name="yfactor" type="GLfloat"/>
         <glx rop="165"/>
     </function>
 
-    <function name="PixelTransferf" offset="247" deprecated="3.1">
+    <function name="PixelTransferf" deprecated="3.1">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx rop="166"/>
     </function>
 
-    <function name="PixelTransferi" offset="248" deprecated="3.1">
+    <function name="PixelTransferi" deprecated="3.1">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx rop="167"/>
     </function>
 
-    <function name="PixelStoref" offset="249">
+    <function name="PixelStoref" no_error="true">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx sop="109" handcode="client"/>
     </function>
 
-    <function name="PixelStorei" offset="250" es1="1.0" es2="2.0">
+    <function name="PixelStorei" es1="1.0" es2="2.0" no_error="true">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx sop="110" handcode="client"/>
     </function>
 
-    <function name="PixelMapfv" offset="251" deprecated="3.1">
+    <function name="PixelMapfv" deprecated="3.1" marshal="sync">
         <param name="map" type="GLenum"/>
         <param name="mapsize" type="GLsizei" counter="true"/>
         <param name="values" type="const GLfloat *" count="mapsize"/>
         <glx rop="168" large="true"/>
     </function>
 
-    <function name="PixelMapuiv" offset="252" deprecated="3.1">
+    <function name="PixelMapuiv" deprecated="3.1" marshal="sync">
         <param name="map" type="GLenum"/>
         <param name="mapsize" type="GLsizei" counter="true"/>
         <param name="values" type="const GLuint *" count="mapsize"/>
         <glx rop="169" large="true"/>
     </function>
 
-    <function name="PixelMapusv" offset="253" deprecated="3.1">
+    <function name="PixelMapusv" deprecated="3.1" marshal="sync">
         <param name="map" type="GLenum"/>
         <param name="mapsize" type="GLsizei" counter="true"/>
         <param name="values" type="const GLushort *" count="mapsize"/>
         <glx rop="170" large="true"/>
     </function>
 
-    <function name="ReadBuffer" offset="254" es2="3.0">
+    <function name="ReadBuffer" es2="3.0" no_error="true">
         <param name="mode" type="GLenum"/>
         <glx rop="171"/>
     </function>
 
-    <function name="CopyPixels" offset="255" deprecated="3.1">
+    <function name="CopyPixels" deprecated="3.1">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="width" type="GLsizei"/>
         <glx rop="172"/>
     </function>
 
-    <function name="ReadPixels" offset="256" es1="1.0" es2="2.0">
+    <function name="ReadPixels" es1="1.0" es2="2.0" no_error="true">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="width" type="GLsizei"/>
         <glx sop="111"/>
     </function>
 
-    <function name="DrawPixels" offset="257" deprecated="3.1">
+    <function name="DrawPixels" deprecated="3.1">
         <param name="width" type="GLsizei"/>
         <param name="height" type="GLsizei"/>
         <param name="format" type="GLenum"/>
         <glx rop="173" large="true"/>
     </function>
 
-    <function name="GetBooleanv" offset="258" es1="1.1" es2="2.0">
+    <function name="GetBooleanv" es1="1.1" es2="2.0">
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLboolean *" output="true" variable_param="pname"/>
         <glx sop="112" handcode="client"/>
     </function>
 
-    <function name="GetClipPlane" offset="259" deprecated="3.1">
+    <function name="GetClipPlane" deprecated="3.1">
         <param name="plane" type="GLenum"/>
         <param name="equation" type="GLdouble *" output="true" count="4"/>
         <glx sop="113" always_array="true"/>
     </function>
 
-    <function name="GetDoublev" offset="260">
+    <function name="GetDoublev">
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
         <glx sop="114" handcode="client"/>
     </function>
 
-    <function name="GetError" offset="261" es1="1.0" es2="2.0">
+    <function name="GetError" es1="1.0" es2="2.0">
         <return type="GLenum"/>
         <glx sop="115" handcode="client"/>
     </function>
 
-    <function name="GetFloatv" offset="262" es1="1.1" es2="2.0">
+    <function name="GetFloatv" es1="1.1" es2="2.0">
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="116" handcode="client"/>
     </function>
 
-    <function name="GetIntegerv" offset="263" es1="1.0" es2="2.0">
+    <function name="GetIntegerv" es1="1.0" es2="2.0">
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="117" handcode="client"/>
     </function>
 
-    <function name="GetLightfv" offset="264" es1="1.1" deprecated="3.1">
+    <function name="GetLightfv" es1="1.1" deprecated="3.1">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="118"/>
     </function>
 
-    <function name="GetLightiv" offset="265" deprecated="3.1">
+    <function name="GetLightiv" deprecated="3.1">
         <param name="light" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="119"/>
     </function>
 
-    <function name="GetMapdv" offset="266" deprecated="3.1">
+    <function name="GetMapdv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="query" type="GLenum"/>
         <param name="v" type="GLdouble *" output="true" variable_param="target query"/>
         <glx sop="120"/>
     </function>
 
-    <function name="GetMapfv" offset="267" deprecated="3.1">
+    <function name="GetMapfv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="query" type="GLenum"/>
         <param name="v" type="GLfloat *" output="true" variable_param="target query"/>
         <glx sop="121"/>
     </function>
 
-    <function name="GetMapiv" offset="268" deprecated="3.1">
+    <function name="GetMapiv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="query" type="GLenum"/>
         <param name="v" type="GLint *" output="true" variable_param="target query"/>
         <glx sop="122"/>
     </function>
 
-    <function name="GetMaterialfv" offset="269" es1="1.1" deprecated="3.1">
+    <function name="GetMaterialfv" es1="1.1" deprecated="3.1">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="123"/>
     </function>
 
-    <function name="GetMaterialiv" offset="270" deprecated="3.1">
+    <function name="GetMaterialiv" deprecated="3.1">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="124"/>
     </function>
 
-    <function name="GetPixelMapfv" offset="271" deprecated="3.1">
+    <function name="GetPixelMapfv" deprecated="3.1">
         <param name="map" type="GLenum"/>
         <param name="values" type="GLfloat *" output="true" variable_param="map"/>
         <glx sop="125"/>
     </function>
 
-    <function name="GetPixelMapuiv" offset="272" deprecated="3.1">
+    <function name="GetPixelMapuiv" deprecated="3.1">
         <param name="map" type="GLenum"/>
         <param name="values" type="GLuint *" output="true" variable_param="map"/>
         <glx sop="126"/>
     </function>
 
-    <function name="GetPixelMapusv" offset="273" deprecated="3.1">
+    <function name="GetPixelMapusv" deprecated="3.1">
         <param name="map" type="GLenum"/>
         <param name="values" type="GLushort *" output="true" variable_param="map"/>
         <glx sop="127"/>
     </function>
 
-    <function name="GetPolygonStipple" offset="274" deprecated="3.1">
+    <function name="GetPolygonStipple" deprecated="3.1">
         <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" es1="1.0" es2="2.0">
+    <function name="GetString" es1="1.0" es2="2.0">
         <param name="name" type="GLenum"/>
         <return type="const GLubyte *"/>
         <glx sop="129" handcode="true"/>
     </function>
 
-    <function name="GetTexEnvfv" offset="276" es1="1.1" deprecated="3.1">
+    <function name="GetTexEnvfv" es1="1.1" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="130"/>
     </function>
 
-    <function name="GetTexEnviv" offset="277" es1="1.1" deprecated="3.1">
+    <function name="GetTexEnviv" es1="1.1" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="131"/>
     </function>
 
-    <function name="GetTexGendv" offset="278" deprecated="3.1">
+    <function name="GetTexGendv" deprecated="3.1">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
         <glx sop="132"/>
     </function>
 
-    <function name="GetTexGenfv" offset="279" deprecated="3.1">
+    <function name="GetTexGenfv" deprecated="3.1">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="133"/>
     </function>
 
-    <function name="GetTexGeniv" offset="280" deprecated="3.1">
+    <function name="GetTexGeniv" deprecated="3.1">
         <param name="coord" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="134"/>
     </function>
 
-    <function name="GetTexImage" offset="281">
+    <function name="GetTexImage">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="format" type="GLenum"/>
         <glx sop="135" dimensions_in_reply="true"/>
     </function>
 
-    <function name="GetTexParameterfv" offset="282" es1="1.1" es2="2.0">
+    <function name="GetTexParameterfv" es1="1.1" es2="2.0">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="136"/>
     </function>
 
-    <function name="GetTexParameteriv" offset="283" es1="1.1" es2="2.0">
+    <function name="GetTexParameteriv" es1="1.1" es2="2.0">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="137"/>
     </function>
 
-    <function name="GetTexLevelParameterfv" offset="284">
+    <function name="GetTexLevelParameterfv" es2="3.1">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="pname" type="GLenum"/>
         <glx sop="138"/>
     </function>
 
-    <function name="GetTexLevelParameteriv" offset="285">
+    <function name="GetTexLevelParameteriv" es2="3.1">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="pname" type="GLenum"/>
         <glx sop="139"/>
     </function>
 
-    <function name="IsEnabled" offset="286" es1="1.1" es2="2.0">
+    <function name="IsEnabled" es1="1.1" es2="2.0">
         <param name="cap" type="GLenum"/>
         <return type="GLboolean"/>
         <glx sop="140" handcode="client"/>
     </function>
 
-    <function name="IsList" offset="287" deprecated="3.1">
+    <function name="IsList" deprecated="3.1">
         <param name="list" type="GLuint"/>
         <return type="GLboolean"/>
         <glx sop="141"/>
     </function>
 
-    <function name="DepthRange" offset="288">
+    <function name="DepthRange">
         <param name="zNear" type="GLclampd"/>
         <param name="zFar" type="GLclampd"/>
         <glx rop="174"/>
     </function>
 
-    <function name="Frustum" offset="289" deprecated="3.1">
+    <function name="Frustum" deprecated="3.1">
         <param name="left" type="GLdouble"/>
         <param name="right" type="GLdouble"/>
         <param name="bottom" type="GLdouble"/>
         <glx rop="175"/>
     </function>
 
-    <function name="LoadIdentity" offset="290" es1="1.0" deprecated="3.1">
+    <function name="LoadIdentity" es1="1.0" deprecated="3.1">
         <glx rop="176"/>
     </function>
 
-    <function name="LoadMatrixf" offset="291" es1="1.0" deprecated="3.1">
+    <function name="LoadMatrixf" es1="1.0" deprecated="3.1">
         <param name="m" type="const GLfloat *" count="16"/>
         <glx rop="177"/>
     </function>
 
-    <function name="LoadMatrixd" offset="292" deprecated="3.1">
+    <function name="LoadMatrixd" deprecated="3.1">
         <param name="m" type="const GLdouble *" count="16"/>
         <glx rop="178"/>
     </function>
 
-    <function name="MatrixMode" offset="293" es1="1.0" deprecated="3.1">
+    <function name="MatrixMode" es1="1.0" deprecated="3.1">
         <param name="mode" type="GLenum"/>
         <glx rop="179"/>
     </function>
 
-    <function name="MultMatrixf" offset="294" es1="1.0" deprecated="3.1">
+    <function name="MultMatrixf" es1="1.0" deprecated="3.1">
         <param name="m" type="const GLfloat *" count="16"/>
         <glx rop="180"/>
     </function>
 
-    <function name="MultMatrixd" offset="295" deprecated="3.1">
+    <function name="MultMatrixd" deprecated="3.1">
         <param name="m" type="const GLdouble *" count="16"/>
         <glx rop="181"/>
     </function>
 
-    <function name="Ortho" offset="296" deprecated="3.1">
+    <function name="Ortho" deprecated="3.1">
         <param name="left" type="GLdouble"/>
         <param name="right" type="GLdouble"/>
         <param name="bottom" type="GLdouble"/>
         <glx rop="182"/>
     </function>
 
-    <function name="PopMatrix" offset="297" es1="1.0" deprecated="3.1">
+    <function name="PopMatrix" es1="1.0" deprecated="3.1">
         <glx rop="183"/>
     </function>
 
-    <function name="PushMatrix" offset="298" es1="1.0" deprecated="3.1">
+    <function name="PushMatrix" es1="1.0" deprecated="3.1">
         <glx rop="184"/>
     </function>
 
-    <function name="Rotated" offset="299" deprecated="3.1">
+    <function name="Rotated" deprecated="3.1">
         <param name="angle" type="GLdouble"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <glx rop="185"/>
     </function>
 
-    <function name="Rotatef" offset="300" es1="1.0" deprecated="3.1">
+    <function name="Rotatef" es1="1.0" deprecated="3.1">
         <param name="angle" type="GLfloat"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <glx rop="186"/>
     </function>
 
-    <function name="Scaled" offset="301" deprecated="3.1">
+    <function name="Scaled" deprecated="3.1">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <glx rop="187"/>
     </function>
 
-    <function name="Scalef" offset="302" es1="1.0" deprecated="3.1">
+    <function name="Scalef" es1="1.0" deprecated="3.1">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
         <glx rop="188"/>
     </function>
 
-    <function name="Translated" offset="303" deprecated="3.1">
+    <function name="Translated" deprecated="3.1">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <glx rop="189"/>
     </function>
 
-    <function name="Translatef" offset="304" es1="1.0" deprecated="3.1">
+    <function name="Translatef" es1="1.0" deprecated="3.1">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
         <glx rop="190"/>
     </function>
 
-    <function name="Viewport" offset="305" es1="1.0" es2="2.0">
+    <function name="Viewport" es1="1.0" es2="2.0" no_error="true">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="width" type="GLsizei"/>
     <enum name="EDGE_FLAG_ARRAY_POINTER"                  value="0x8093"/>
     <enum name="CLIENT_PIXEL_STORE_BIT"                   value="0x00000001"/>
     <enum name="CLIENT_VERTEX_ARRAY_BIT"                  value="0x00000002"/>
-    <enum name="ALL_CLIENT_ATTRIB_BITS"                   value="0xFFFFFFFF"/>
     <enum name="CLIENT_ALL_ATTRIB_BITS"                   value="0xFFFFFFFF"/>
 
-    <function name="ArrayElement" offset="306" deprecated="3.1"
-              exec="dynamic">
+    <function name="ArrayElement" deprecated="3.1" exec="dynamic" marshal="draw">
         <param name="i" type="GLint"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="ColorPointer" offset="308" es1="1.0" deprecated="3.1">
+    <function name="ColorPointer" es1="1.0" deprecated="3.1" marshal="async"
+              no_error="true"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_COLOR0, size, type, stride, pointer);">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="DisableClientState" offset="309" es1="1.0"
-              deprecated="3.1">
+    <function name="DisableClientState" es1="1.0" deprecated="3.1"
+              marshal_call_after="if (COMPAT) _mesa_glthread_ClientState(ctx, NULL, _mesa_array_to_attrib(ctx, array), false);">
         <param name="array" type="GLenum"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="DrawArrays" offset="310" es1="1.0" es2="2.0"
-              exec="dynamic">
+    <function name="DrawArrays" es1="1.0" es2="2.0" exec="dynamic" marshal="custom">
         <param name="mode" type="GLenum"/>
         <param name="first" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <glx rop="193" handcode="true"/>
     </function>
 
-    <function name="DrawElements" offset="311" es1="1.0" es2="2.0"
-              exec="dynamic">
+    <function name="DrawElements" es1="1.0" es2="2.0" exec="dynamic" marshal="custom">
         <param name="mode" type="GLenum"/>
         <param name="count" type="GLsizei"/>
         <param name="type" type="GLenum"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="EdgeFlagPointer" offset="312" deprecated="3.1">
+    <function name="EdgeFlagPointer" deprecated="3.1" marshal="async"
+              no_error="true"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_EDGEFLAG, 1, GL_UNSIGNED_BYTE, stride, pointer);">
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="EnableClientState" offset="313" es1="1.0" deprecated="3.1">
+    <function name="EnableClientState" es1="1.0" deprecated="3.1"
+              marshal_call_after="if (COMPAT) _mesa_glthread_ClientState(ctx, NULL, _mesa_array_to_attrib(ctx, array), true);">
         <param name="array" type="GLenum"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="GetPointerv" offset="329" es1="1.1">
+    <function name="GetPointerv" es1="1.1" es2="3.2">
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLvoid **" output="true"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="IndexPointer" offset="314" deprecated="3.1">
+    <function name="IndexPointer" deprecated="3.1" marshal="async"
+              no_error="true"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_COLOR_INDEX, 1, type, stride, pointer);">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="InterleavedArrays" offset="317" deprecated="3.1">
+    <function name="InterleavedArrays" deprecated="3.1">
         <param name="format" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="NormalPointer" offset="318" es1="1.0" deprecated="3.1">
+    <function name="NormalPointer" es1="1.0" deprecated="3.1" marshal="async"
+              no_error="true"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_NORMAL, 3, type, stride, pointer);">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="TexCoordPointer" offset="320" es1="1.0" deprecated="3.1">
+    <function name="TexCoordPointer" es1="1.0" deprecated="3.1" marshal="async"
+              no_error="true"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_TEX(ctx->GLThread.ClientActiveTexture), size, type, stride, pointer);">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="VertexPointer" offset="321" es1="1.0" deprecated="3.1">
+    <function name="VertexPointer" es1="1.0" deprecated="3.1" marshal="async"
+              no_error="true"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_POS, size, type, stride, pointer);">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="PolygonOffset" offset="319" es1="1.0" es2="2.0">
+    <function name="PolygonOffset" es1="1.0" es2="2.0">
         <param name="factor" type="GLfloat"/>
         <param name="units" type="GLfloat"/>
         <glx rop="192"/>
     </function>
 
-    <function name="CopyTexImage1D" offset="323">
+    <function name="CopyTexImage1D" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
         <glx rop="4119"/>
     </function>
 
-    <function name="CopyTexImage2D" offset="324" es1="1.0" es2="2.0">
+    <function name="CopyTexImage2D" es1="1.0" es2="2.0" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
         <glx rop="4120"/>
     </function>
 
-    <function name="CopyTexSubImage1D" offset="325">
+    <function name="CopyTexSubImage1D" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <glx rop="4121"/>
     </function>
 
-    <function name="CopyTexSubImage2D" offset="326" es1="1.0" es2="2.0">
+    <function name="CopyTexSubImage2D" es1="1.0" es2="2.0" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <glx rop="4122"/>
     </function>
 
-    <function name="TexSubImage1D" offset="332">
+    <function name="TexSubImage1D" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <glx rop="4099" large="true"/>
     </function>
 
-    <function name="TexSubImage2D" offset="333" es1="1.0" es2="2.0">
+    <function name="TexSubImage2D" es1="1.0" es2="2.0" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <glx rop="4100" large="true"/>
     </function>
 
-    <function name="AreTexturesResident" offset="322" deprecated="3.1">
+    <function name="AreTexturesResident" deprecated="3.1">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="textures" type="const GLuint *" count="n"/>
         <param name="residences" type="GLboolean *" output="true" count="n"/>
         <glx sop="143" handcode="client" always_array="true"/>
     </function>
 
-    <function name="BindTexture" offset="307" es1="1.0" es2="2.0">
+    <function name="BindTexture" es1="1.0" es2="2.0" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="texture" type="GLuint"/>
         <glx rop="4117"/>
     </function>
 
-    <function name="DeleteTextures" offset="327" es1="1.0" es2="2.0">
+    <function name="DeleteTextures" es1="1.0" es2="2.0" no_error="true">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="textures" type="const GLuint *" count="n"/>
         <glx sop="144"/>
     </function>
 
-    <function name="GenTextures" offset="328" es1="1.0" es2="2.0">
+    <function name="GenTextures" es1="1.0" es2="2.0" no_error="true">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="textures" type="GLuint *" output="true" count="n"/>
         <glx sop="145" always_array="true"/>
     </function>
 
-    <function name="IsTexture" offset="330" es1="1.1" es2="2.0">
+    <function name="IsTexture" es1="1.1" es2="2.0">
         <param name="texture" type="GLuint"/>
         <return type="GLboolean"/>
         <glx sop="146"/>
     </function>
 
-    <function name="PrioritizeTextures" offset="331" deprecated="3.1">
+    <function name="PrioritizeTextures" deprecated="3.1">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="textures" type="const GLuint *" count="n"/>
         <param name="priorities" type="const GLclampf *" count="n"/>
         <glx rop="4118"/>
     </function>
 
-    <function name="Indexub" offset="315" vectorequiv="Indexubv"
-              deprecated="3.1">
+    <function name="Indexub" vectorequiv="Indexubv" deprecated="3.1">
         <param name="c" type="GLubyte"/>
     </function>
 
-    <function name="Indexubv" offset="316" deprecated="3.1">
+    <function name="Indexubv" deprecated="3.1">
         <param name="c" type="const GLubyte *" count="1"/>
         <glx rop="194"/>
     </function>
 
-    <function name="PopClientAttrib" offset="334" deprecated="3.1">
+    <function name="PopClientAttrib" deprecated="3.1"
+              marshal_call_after="if (COMPAT) _mesa_glthread_PopClientAttrib(ctx);">
         <glx handcode="true"/>
     </function>
 
-    <function name="PushClientAttrib" offset="335" deprecated="3.1">
+    <function name="PushClientAttrib" deprecated="3.1"
+              marshal_call_after="if (COMPAT) _mesa_glthread_PushClientAttrib(ctx, mask, false);">
         <param name="mask" type="GLbitfield"/>
         <glx handcode="true"/>
     </function>
     </enum>
 
 
-    <function name="BlendColor" offset="336" es2="2.0">
+    <function name="BlendColor" es2="2.0">
         <param name="red" type="GLclampf"/>
         <param name="green" type="GLclampf"/>
         <param name="blue" type="GLclampf"/>
         <glx rop="4096"/>
     </function>
 
-    <function name="BlendEquation" offset="337" es2="2.0">
+    <function name="BlendEquation" es2="2.0">
         <param name="mode" type="GLenum"/>
         <glx rop="4097"/>
     </function>
 
-    <function name="DrawRangeElements" offset="338" es2="3.0"
-              exec="dynamic">
+    <function name="DrawRangeElements" es2="3.0" exec="dynamic" marshal="custom">
         <param name="mode" type="GLenum"/>
         <param name="start" type="GLuint"/>
         <param name="end" type="GLuint"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="ColorTable" offset="339" deprecated="3.1">
+    <function name="ColorTable" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <glx rop="2053" large="true"/>
     </function>
 
-    <function name="ColorTableParameterfv" offset="340" deprecated="3.1">
+    <function name="ColorTableParameterfv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
         <glx rop="2054"/>
     </function>
 
-    <function name="ColorTableParameteriv" offset="341" deprecated="3.1">
+    <function name="ColorTableParameteriv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
         <glx rop="2055"/>
     </function>
 
-    <function name="CopyColorTable" offset="342" deprecated="3.1">
+    <function name="CopyColorTable" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="x" type="GLint"/>
         <glx rop="2056"/>
     </function>
 
-    <function name="GetColorTable" offset="343" deprecated="3.1">
+    <function name="GetColorTable" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
         <glx sop="147" dimensions_in_reply="true"/>
     </function>
 
-    <function name="GetColorTableParameterfv" offset="344" deprecated="3.1">
+    <function name="GetColorTableParameterfv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="148"/>
     </function>
 
-    <function name="GetColorTableParameteriv" offset="345" deprecated="3.1">
+    <function name="GetColorTableParameteriv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="149"/>
     </function>
 
-    <function name="ColorSubTable" offset="346" deprecated="3.1">
+    <function name="ColorSubTable" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="start" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
         <glx rop="195" large="true"/>
     </function>
 
-    <function name="CopyColorSubTable" offset="347" deprecated="3.1">
+    <function name="CopyColorSubTable" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="start" type="GLsizei"/>
         <param name="x" type="GLint"/>
         <glx rop="196"/>
     </function>
 
-    <function name="ConvolutionFilter1D" offset="348" deprecated="3.1">
+    <function name="ConvolutionFilter1D" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <glx rop="4101" large="true"/>
     </function>
 
-    <function name="ConvolutionFilter2D" offset="349" deprecated="3.1">
+    <function name="ConvolutionFilter2D" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <glx rop="4102" large="true"/>
     </function>
 
-    <function name="ConvolutionParameterf" offset="350" deprecated="3.1">
+    <function name="ConvolutionParameterf" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat"/>
         <glx rop="4103"/>
     </function>
 
-    <function name="ConvolutionParameterfv" offset="351" deprecated="3.1">
+    <function name="ConvolutionParameterfv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *" variable_param="pname"/>
         <glx rop="4104"/>
     </function>
 
-    <function name="ConvolutionParameteri" offset="352" deprecated="3.1">
+    <function name="ConvolutionParameteri" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint"/>
         <glx rop="4105"/>
     </function>
 
-    <function name="ConvolutionParameteriv" offset="353" deprecated="3.1">
+    <function name="ConvolutionParameteriv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"/>
         <glx rop="4106"/>
     </function>
 
-    <function name="CopyConvolutionFilter1D" offset="354" deprecated="3.1">
+    <function name="CopyConvolutionFilter1D" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="x" type="GLint"/>
         <glx rop="4107"/>
     </function>
 
-    <function name="CopyConvolutionFilter2D" offset="355" deprecated="3.1">
+    <function name="CopyConvolutionFilter2D" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="x" type="GLint"/>
         <glx rop="4108"/>
     </function>
 
-    <function name="GetConvolutionFilter" offset="356" deprecated="3.1">
+    <function name="GetConvolutionFilter" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
         <glx sop="150" dimensions_in_reply="true"/>
     </function>
 
-    <function name="GetConvolutionParameterfv" offset="357" deprecated="3.1">
+    <function name="GetConvolutionParameterfv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="151"/>
     </function>
 
-    <function name="GetConvolutionParameteriv" offset="358" deprecated="3.1">
+    <function name="GetConvolutionParameteriv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="152"/>
     </function>
 
-    <function name="GetSeparableFilter" offset="359" deprecated="3.1">
+    <function name="GetSeparableFilter" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
         <glx sop="153" handcode="true"/>
     </function>
 
-    <function name="SeparableFilter2D" offset="360" deprecated="3.1">
+    <function name="SeparableFilter2D" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <glx rop="4109" handcode="true"/>
     </function>
 
-    <function name="GetHistogram" offset="361" deprecated="3.1">
+    <function name="GetHistogram" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="reset" type="GLboolean"/>
         <param name="format" type="GLenum"/>
         <glx sop="154" dimensions_in_reply="true" img_reset="reset"/>
     </function>
 
-    <function name="GetHistogramParameterfv" offset="362" deprecated="3.1">
+    <function name="GetHistogramParameterfv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="155"/>
     </function>
 
-    <function name="GetHistogramParameteriv" offset="363" deprecated="3.1">
+    <function name="GetHistogramParameteriv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="156"/>
     </function>
 
-    <function name="GetMinmax" offset="364" deprecated="3.1">
+    <function name="GetMinmax" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="reset" type="GLboolean"/>
         <param name="format" type="GLenum"/>
         <glx sop="157" img_reset="reset"/>
     </function>
 
-    <function name="GetMinmaxParameterfv" offset="365" deprecated="3.1">
+    <function name="GetMinmaxParameterfv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx sop="158"/>
     </function>
 
-    <function name="GetMinmaxParameteriv" offset="366" deprecated="3.1">
+    <function name="GetMinmaxParameteriv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="159"/>
     </function>
 
-    <function name="Histogram" offset="367" deprecated="3.1">
+    <function name="Histogram" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="internalformat" type="GLenum"/>
         <glx rop="4110"/>
     </function>
 
-    <function name="Minmax" offset="368" deprecated="3.1">
+    <function name="Minmax" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="sink" type="GLboolean"/>
         <glx rop="4111"/>
     </function>
 
-    <function name="ResetHistogram" offset="369" deprecated="3.1">
+    <function name="ResetHistogram" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <glx rop="4112"/>
     </function>
 
-    <function name="ResetMinmax" offset="370" deprecated="3.1">
+    <function name="ResetMinmax" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <glx rop="4113"/>
     </function>
 
-    <function name="TexImage3D" offset="371" es2="3.0">
+    <function name="TexImage3D" es2="3.0" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLint"/>
         <glx rop="4114" large="true"/>
     </function>
 
-    <function name="TexSubImage3D" offset="372" es2="3.0">
+    <function name="TexSubImage3D" es2="3.0" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <glx rop="4115" large="true"/>
     </function>
 
-    <function name="CopyTexSubImage3D" offset="373" es2="3.0">
+    <function name="CopyTexSubImage3D" es2="3.0" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
     <enum name="DOT3_RGB"                                 value="0x86AE"/>
     <enum name="DOT3_RGBA"                                value="0x86AF"/>
 
-    <function name="ActiveTexture" es1="1.0"
-              es2="2.0" offset="374">
+    <function name="ActiveTexture" es1="1.0" es2="2.0" no_error="true">
         <param name="texture" type="GLenum"/>
         <glx rop="197"/>
     </function>
 
-    <function name="ClientActiveTexture"
-              es1="1.0" deprecated="3.1" offset="375">
+    <function name="ClientActiveTexture" es1="1.0" deprecated="3.1"
+              marshal_call_after="ctx->GLThread.ClientActiveTexture = texture - GL_TEXTURE0;">
         <param name="texture" type="GLenum"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="MultiTexCoord1d"
-              deprecated="3.1" offset="376">
+    <function name="MultiTexCoord1d" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLdouble"/>
     </function>
 
-    <function name="MultiTexCoord1dv"
-              deprecated="3.1" offset="377">
+    <function name="MultiTexCoord1dv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLdouble *" count="1"/>
         <glx rop="198"/>
     </function>
 
-    <function name="MultiTexCoord1f" alias="MultiTexCoord1fARB"
-              deprecated="3.1">
+    <function name="MultiTexCoord1f" alias="MultiTexCoord1fARB" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLfloat"/>
     </function>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="MultiTexCoord1i"
-              deprecated="3.1" offset="380">
+    <function name="MultiTexCoord1i" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLint"/>
     </function>
 
-    <function name="MultiTexCoord1iv"
-              deprecated="3.1" offset="381">
+    <function name="MultiTexCoord1iv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLint *" count="1"/>
         <glx rop="200"/>
     </function>
 
-    <function name="MultiTexCoord1s"
-              deprecated="3.1" offset="382">
+    <function name="MultiTexCoord1s" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLshort"/>
     </function>
 
-    <function name="MultiTexCoord1sv"
-              deprecated="3.1" offset="383">
+    <function name="MultiTexCoord1sv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLshort *" count="1"/>
         <glx rop="201"/>
     </function>
 
-    <function name="MultiTexCoord2d"
-              deprecated="3.1" offset="384">
+    <function name="MultiTexCoord2d" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLdouble"/>
         <param name="t" type="GLdouble"/>
     </function>
 
-    <function name="MultiTexCoord2dv"
-              deprecated="3.1" offset="385">
+    <function name="MultiTexCoord2dv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLdouble *" count="2"/>
         <glx rop="202"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="MultiTexCoord2i"
-              deprecated="3.1" offset="388">
+    <function name="MultiTexCoord2i" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLint"/>
         <param name="t" type="GLint"/>
     </function>
 
-    <function name="MultiTexCoord2iv"
-              deprecated="3.1" offset="389">
+    <function name="MultiTexCoord2iv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLint *" count="2"/>
         <glx rop="204"/>
     </function>
 
-    <function name="MultiTexCoord2s"
-              deprecated="3.1" offset="390">
+    <function name="MultiTexCoord2s" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLshort"/>
         <param name="t" type="GLshort"/>
     </function>
 
-    <function name="MultiTexCoord2sv"
-              deprecated="3.1" offset="391">
+    <function name="MultiTexCoord2sv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLshort *" count="2"/>
         <glx rop="205"/>
     </function>
 
-    <function name="MultiTexCoord3d"
-              deprecated="3.1" offset="392">
+    <function name="MultiTexCoord3d" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLdouble"/>
         <param name="t" type="GLdouble"/>
         <param name="r" type="GLdouble"/>
     </function>
 
-    <function name="MultiTexCoord3dv"
-              deprecated="3.1" offset="393">
+    <function name="MultiTexCoord3dv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="206"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="MultiTexCoord3i"
-              deprecated="3.1" offset="396">
+    <function name="MultiTexCoord3i" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLint"/>
         <param name="t" type="GLint"/>
         <param name="r" type="GLint"/>
     </function>
 
-    <function name="MultiTexCoord3iv"
-              deprecated="3.1" offset="397">
+    <function name="MultiTexCoord3iv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLint *" count="3"/>
         <glx rop="208"/>
     </function>
 
-    <function name="MultiTexCoord3s"
-              deprecated="3.1" offset="398">
+    <function name="MultiTexCoord3s" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLshort"/>
         <param name="t" type="GLshort"/>
         <param name="r" type="GLshort"/>
     </function>
 
-    <function name="MultiTexCoord3sv"
-              deprecated="3.1" offset="399">
+    <function name="MultiTexCoord3sv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="209"/>
     </function>
 
-    <function name="MultiTexCoord4d"
-              deprecated="3.1" offset="400">
+    <function name="MultiTexCoord4d" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLdouble"/>
         <param name="t" type="GLdouble"/>
         <param name="q" type="GLdouble"/>
     </function>
 
-    <function name="MultiTexCoord4dv"
-              deprecated="3.1" offset="401">
+    <function name="MultiTexCoord4dv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLdouble *" count="4"/>
         <glx rop="210"/>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="MultiTexCoord4i"
-              deprecated="3.1" offset="404">
+    <function name="MultiTexCoord4i" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLint"/>
         <param name="t" type="GLint"/>
         <param name="q" type="GLint"/>
     </function>
 
-    <function name="MultiTexCoord4iv"
-              deprecated="3.1" offset="405">
+    <function name="MultiTexCoord4iv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="212"/>
     </function>
 
-    <function name="MultiTexCoord4s"
-              deprecated="3.1" offset="406">
+    <function name="MultiTexCoord4s" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLshort"/>
         <param name="t" type="GLshort"/>
         <param name="q" type="GLshort"/>
     </function>
 
-    <function name="MultiTexCoord4sv"
-              deprecated="3.1" offset="407">
+    <function name="MultiTexCoord4sv" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="213"/>
     </function>
 
-    <function name="LoadTransposeMatrixf"
-              deprecated="3.1" offset="assign">
-        <param name="m" type="const GLfloat *"/>
+    <function name="LoadTransposeMatrixf" deprecated="3.1">
+        <param name="m" type="const GLfloat *" count="16"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="LoadTransposeMatrixd"
-              deprecated="3.1" offset="assign">
-        <param name="m" type="const GLdouble *"/>
+    <function name="LoadTransposeMatrixd" deprecated="3.1">
+        <param name="m" type="const GLdouble *" count="16"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="MultTransposeMatrixf"
-              deprecated="3.1" offset="assign">
-        <param name="m" type="const GLfloat *"/>
+    <function name="MultTransposeMatrixf" deprecated="3.1">
+        <param name="m" type="const GLfloat *" count="16"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="MultTransposeMatrixd"
-              deprecated="3.1" offset="assign">
-        <param name="m" type="const GLdouble *"/>
+    <function name="MultTransposeMatrixd" deprecated="3.1">
+        <param name="m" type="const GLdouble *" count="16"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="SampleCoverage" es1="1.0"
-              es2="2.0" offset="assign">
+    <function name="SampleCoverage" es1="1.0" es2="2.0">
         <param name="value" type="GLclampf"/>
         <param name="invert" type="GLboolean"/>
         <glx rop="229"/>
     </function>
 
-    <function name="CompressedTexImage3D" es2="3.0" offset="assign">
+    <function name="CompressedTexImage3D" es2="3.0" marshal="sync"
+              no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
         <glx rop="216" handcode="client"/>
     </function>
 
-    <function name="CompressedTexImage2D"
-              es1="1.0" es2="2.0" offset="assign">
+    <function name="CompressedTexImage2D" es1="1.0" es2="2.0" marshal="sync"
+               no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
         <glx rop="215" handcode="client"/>
     </function>
 
-    <function name="CompressedTexImage1D" offset="assign">
+    <function name="CompressedTexImage1D" marshal="sync" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
         <glx rop="214" handcode="client"/>
     </function>
 
-    <function name="CompressedTexSubImage3D" es2="3.0" offset="assign">
+    <function name="CompressedTexSubImage3D" es2="3.0" marshal="sync"
+              no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <glx rop="219" handcode="client"/>
     </function>
 
-    <function name="CompressedTexSubImage2D"
-              es1="1.0" es2="2.0" offset="assign">
+    <function name="CompressedTexSubImage2D" es1="1.0" es2="2.0" marshal="sync"
+              no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <glx rop="218" handcode="client"/>
     </function>
 
-    <function name="CompressedTexSubImage1D" offset="assign">
+    <function name="CompressedTexSubImage1D" marshal="sync" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <glx rop="217" handcode="client"/>
     </function>
 
-    <function name="GetCompressedTexImage" offset="assign">
+    <function name="GetCompressedTexImage">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="img" type="GLvoid *" output="true"/>
     </enum>
     <enum name="COMPARE_R_TO_TEXTURE"                     value="0x884E"/>
 
-    <function name="BlendFuncSeparate" es2="2.0" offset="assign">
+    <function name="BlendFuncSeparate" es2="2.0" no_error="true">
         <param name="sfactorRGB" type="GLenum"/>
         <param name="dfactorRGB" type="GLenum"/>
         <param name="sfactorAlpha" type="GLenum"/>
         <param name="coord" type="const GLfloat *"/>
     </function>
 
-    <function name="FogCoordd" deprecated="3.1" offset="assign">
+    <function name="FogCoordd" deprecated="3.1">
         <param name="coord" type="GLdouble"/>
     </function>
 
-    <function name="FogCoorddv" deprecated="3.1" offset="assign">
+    <function name="FogCoorddv" deprecated="3.1">
         <param name="coord" type="const GLdouble *" count="1"/>
         <glx rop="4125"/>
     </function>
 
-    <function name="FogCoordPointer"
-              deprecated="3.1" offset="assign">
+    <function name="FogCoordPointer" deprecated="3.1" marshal="async"
+              no_error="true"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_FOG, 1, type, stride, pointer);">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="MultiDrawArrays" offset="assign">
+    <function name="MultiDrawArrays" marshal="custom">
         <param name="mode" type="GLenum"/>
-        <param name="first" type="const GLint *"/>
-        <param name="count" type="const GLsizei *"/>
+        <param name="first" type="const GLint *" count="primcount"/>
+        <param name="count" type="const GLsizei *" count="primcount"/>
         <param name="primcount" type="GLsizei"/>
         <glx handcode="true"/>
     </function>
         <param name="primcount" type="GLsizei"/>
     </function>
 
-    <function name="PointParameterf" es1="1.1" offset="assign">
+    <function name="PointParameterf" es1="1.1">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
         <glx rop="2065"/>
     </function>
 
-    <function name="PointParameterfv" es1="1.1" offset="assign">
+    <function name="PointParameterfv" es1="1.1">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLfloat *" variable_param="pname"/>
+        <param name="params" type="const GLfloat *" variable_param="pname"
+               marshal_count="_mesa_point_param_enum_to_count(pname)"/>
         <glx rop="2066"/>
     </function>
 
-    <function name="PointParameteri" offset="assign">
+    <function name="PointParameteri">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx rop="4221"/>
     </function>
 
-    <function name="PointParameteriv" offset="assign">
+    <function name="PointParameteriv">
         <param name="pname" type="GLenum"/>
-        <param name="params" type="const GLint *" variable_param="pname"/>
+        <param name="params" type="const GLint *" variable_param="pname"
+               marshal_count="_mesa_point_param_enum_to_count(pname)"/>
         <glx rop="4222"/>
     </function>
 
-    <function name="SecondaryColor3b"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColor3b" deprecated="3.1">
         <param name="red" type="GLbyte"/>
         <param name="green" type="GLbyte"/>
         <param name="blue" type="GLbyte"/>
     </function>
 
-    <function name="SecondaryColor3bv"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColor3bv" deprecated="3.1">
         <param name="v" type="const GLbyte *" count="3"/>
         <glx rop="4126"/>
     </function>
 
-    <function name="SecondaryColor3d"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColor3d" deprecated="3.1">
         <param name="red" type="GLdouble"/>
         <param name="green" type="GLdouble"/>
         <param name="blue" type="GLdouble"/>
     </function>
 
-    <function name="SecondaryColor3dv"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColor3dv" deprecated="3.1">
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="4130"/>
     </function>
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="SecondaryColor3i"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColor3i" deprecated="3.1">
         <param name="red" type="GLint"/>
         <param name="green" type="GLint"/>
         <param name="blue" type="GLint"/>
     </function>
 
-    <function name="SecondaryColor3iv"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColor3iv" deprecated="3.1">
         <param name="v" type="const GLint *" count="3"/>
         <glx rop="4128"/>
     </function>
 
-    <function name="SecondaryColor3s"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColor3s" deprecated="3.1">
         <param name="red" type="GLshort"/>
         <param name="green" type="GLshort"/>
         <param name="blue" type="GLshort"/>
     </function>
 
-    <function name="SecondaryColor3sv"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColor3sv" deprecated="3.1">
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="4127"/>
     </function>
 
-    <function name="SecondaryColor3ub"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColor3ub" deprecated="3.1">
         <param name="red" type="GLubyte"/>
         <param name="green" type="GLubyte"/>
         <param name="blue" type="GLubyte"/>
     </function>
 
-    <function name="SecondaryColor3ubv"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColor3ubv" deprecated="3.1">
         <param name="v" type="const GLubyte *" count="3"/>
         <glx rop="4131"/>
     </function>
 
-    <function name="SecondaryColor3ui"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColor3ui" deprecated="3.1">
         <param name="red" type="GLuint"/>
         <param name="green" type="GLuint"/>
         <param name="blue" type="GLuint"/>
     </function>
 
-    <function name="SecondaryColor3uiv"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColor3uiv" deprecated="3.1">
         <param name="v" type="const GLuint *" count="3"/>
         <glx rop="4133"/>
     </function>
 
-    <function name="SecondaryColor3us"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColor3us" deprecated="3.1">
         <param name="red" type="GLushort"/>
         <param name="green" type="GLushort"/>
         <param name="blue" type="GLushort"/>
     </function>
 
-    <function name="SecondaryColor3usv"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColor3usv" deprecated="3.1">
         <param name="v" type="const GLushort *" count="3"/>
         <glx rop="4132"/>
     </function>
 
-    <function name="SecondaryColorPointer"
-              deprecated="3.1" offset="assign">
+    <function name="SecondaryColorPointer" deprecated="3.1" marshal="async"
+              no_error="true"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_COLOR1, size, type, stride, pointer);">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2d" deprecated="3.1" offset="assign">
+    <function name="WindowPos2d" deprecated="3.1">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2dv" deprecated="3.1" offset="assign">
-        <param name="v" type="const GLdouble *"/>
+    <function name="WindowPos2dv" deprecated="3.1">
+        <param name="v" type="const GLdouble *" count="2"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2f" deprecated="3.1" offset="assign">
+    <function name="WindowPos2f" deprecated="3.1">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2fv" deprecated="3.1" offset="assign">
-        <param name="v" type="const GLfloat *"/>
+    <function name="WindowPos2fv" deprecated="3.1">
+        <param name="v" type="const GLfloat *" count="2"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2i" deprecated="3.1" offset="assign">
+    <function name="WindowPos2i" deprecated="3.1">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2iv" deprecated="3.1" offset="assign">
-        <param name="v" type="const GLint *"/>
+    <function name="WindowPos2iv" deprecated="3.1">
+        <param name="v" type="const GLint *" count="2"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2s" deprecated="3.1" offset="assign">
+    <function name="WindowPos2s" deprecated="3.1">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos2sv" deprecated="3.1" offset="assign">
-        <param name="v" type="const GLshort *"/>
+    <function name="WindowPos2sv" deprecated="3.1">
+        <param name="v" type="const GLshort *" count="2"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3d" deprecated="3.1" offset="assign">
+    <function name="WindowPos3d" deprecated="3.1">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3dv" deprecated="3.1" offset="assign">
-        <param name="v" type="const GLdouble *"/>
+    <function name="WindowPos3dv" deprecated="3.1">
+        <param name="v" type="const GLdouble *" count="3"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3f" deprecated="3.1" offset="assign">
+    <function name="WindowPos3f" deprecated="3.1">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="WindowPos3fv" deprecated="3.1" offset="assign">
+    <function name="WindowPos3fv" deprecated="3.1">
         <param name="v" type="const GLfloat *" count="3"/>
         <glx rop="230"/>
     </function>
 
-    <function name="WindowPos3i" deprecated="3.1" offset="assign">
+    <function name="WindowPos3i" deprecated="3.1">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="z" type="GLint"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3iv" deprecated="3.1" offset="assign">
-        <param name="v" type="const GLint *"/>
+    <function name="WindowPos3iv" deprecated="3.1">
+        <param name="v" type="const GLint *" count="3"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3s" deprecated="3.1" offset="assign">
+    <function name="WindowPos3s" deprecated="3.1">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="WindowPos3sv" deprecated="3.1" offset="assign">
-        <param name="v" type="const GLshort *"/>
+    <function name="WindowPos3sv" deprecated="3.1">
+        <param name="v" type="const GLshort *" count="3"/>
         <glx handcode="true"/>
     </function>
 </category>
     <type name="intptr"   size="4"                  glx_name="CARD32"/>
     <type name="sizeiptr" size="4"  unsigned="true" glx_name="CARD32"/>
 
-    <function name="BindBuffer" es1="1.1" es2="2.0" offset="assign">
+    <function name="BindBuffer" es1="1.1" es2="2.0" no_error="true"
+              marshal_call_after="if (COMPAT) _mesa_glthread_BindBuffer(ctx, target, buffer);">
         <param name="target" type="GLenum"/>
         <param name="buffer" type="GLuint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="BufferData" es1="1.1" es2="2.0" offset="assign">
+    <function name="BufferData" es1="1.1" es2="2.0" marshal="custom" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="size" type="GLsizeiptr" counter="true"/>
         <param name="data" type="const GLvoid *" count="size" img_null_flag="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="BufferSubData" es1="1.1"
-              es2="2.0" offset="assign">
+    <function name="BufferSubData" es1="1.1" es2="2.0" marshal="custom"
+              no_error="true">
         <param name="target" type="GLenum"/>
         <param name="offset" type="GLintptr"/>
         <param name="size" type="GLsizeiptr" counter="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="DeleteBuffers" es1="1.1"
-              es2="2.0" offset="assign">
+    <function name="DeleteBuffers" es1="1.1" es2="2.0" no_error="true"
+              marshal_call_after="if (COMPAT) _mesa_glthread_DeleteBuffers(ctx, n, buffer);">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="buffer" type="const GLuint *" count="n"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GenBuffers" es1="1.1" es2="2.0" offset="assign">
+    <function name="GenBuffers" es1="1.1" es2="2.0" no_error="true">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="buffer" type="GLuint *" output="true" count="n"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetBufferParameteriv"
-              es1="1.1" es2="2.0" offset="assign">
+    <function name="GetBufferParameteriv" es1="1.1" es2="2.0">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetBufferPointerv" es2="3.0" offset="assign">
+    <function name="GetBufferPointerv" es2="3.0">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLvoid **" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetBufferSubData" offset="assign">
+    <function name="GetBufferSubData">
         <param name="target" type="GLenum"/>
         <param name="offset" type="GLintptr"/>
         <param name="size" type="GLsizeiptr" counter="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="IsBuffer" es1="1.1" es2="2.0" offset="assign">
+    <function name="IsBuffer" es1="1.1" es2="2.0">
         <param name="buffer" type="GLuint"/>
         <return type="GLboolean"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="MapBuffer" offset="assign">
+    <function name="MapBuffer" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="access" type="GLenum"/>
         <return type="GLvoid *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="UnmapBuffer" es2="3.0" offset="assign">
+    <function name="UnmapBuffer" es2="3.0" no_error="true">
         <param name="target" type="GLenum"/>
         <return type="GLboolean"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GenQueries" es2="3.0" offset="assign">
+    <function name="GenQueries" es2="3.0">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="ids" type="GLuint *" output="true" count="n"/>
         <glx sop="162" always_array="true"/>
     </function>
 
-    <function name="DeleteQueries" es2="3.0" offset="assign">
+    <function name="DeleteQueries" es2="3.0">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="ids" type="const GLuint *" count="n"/>
         <glx sop="161"/>
     </function>
 
-    <function name="IsQuery" es2="3.0" offset="assign">
+    <function name="IsQuery" es2="3.0">
         <param name="id" type="GLuint"/>
         <return type="GLboolean"/>
         <glx sop="163"/>
     </function>
 
-    <function name="BeginQuery" es2="3.0" offset="assign">
+    <function name="BeginQuery" es2="3.0">
         <param name="target" type="GLenum"/>
         <param name="id" type="GLuint"/>
         <glx rop="231"/>
     </function>
 
-    <function name="EndQuery" es2="3.0" offset="assign">
+    <function name="EndQuery" es2="3.0">
         <param name="target" type="GLenum"/>
         <glx rop="232"/>
     </function>
 
-    <function name="GetQueryiv" es2="3.0" offset="assign">
+    <function name="GetQueryiv" es2="3.0">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="164"/>
     </function>
 
-    <function name="GetQueryObjectiv" offset="assign">
+    <function name="GetQueryObjectiv">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx sop="165"/>
     </function>
 
-    <function name="GetQueryObjectuiv" es2="3.0" offset="assign">
+    <function name="GetQueryObjectuiv" es2="3.0">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLuint *" output="true" variable_param="pname"/>
     <enum name="STENCIL_BACK_VALUE_MASK"          value="0x8CA4"/>
     <enum name="STENCIL_BACK_WRITEMASK"           value="0x8CA5"/>
 
-    <function name="BlendEquationSeparate"
-              es2="2.0" offset="assign">
+    <function name="BlendEquationSeparate" es2="2.0" no_error="true">
         <param name="modeRGB" type="GLenum"/>
         <param name="modeA" type="GLenum"/>
         <glx rop="4228"/>
     </function>
 
-    <function name="DrawBuffers" es2="3.0" offset="assign">
+    <function name="DrawBuffers" es2="3.0" no_error="true">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="bufs" type="const GLenum *" count="n"/>
         <glx rop="233" large="true"/>
     </function>
 
-    <function name="StencilFuncSeparate" offset="assign" es2="2.0">
+    <function name="StencilFuncSeparate" es2="2.0" no_error="true">
         <param name="face" type="GLenum"/>
         <param name="func" type="GLenum"/>
         <param name="ref" type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="StencilOpSeparate" offset="assign" es2="2.0">
+    <function name="StencilOpSeparate" es2="2.0" no_error="true">
         <param name="face" type="GLenum"/>
         <param name="sfail" type="GLenum"/>
         <param name="zfail" type="GLenum"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="StencilMaskSeparate" offset="assign" es2="2.0">
+    <function name="StencilMaskSeparate" es2="2.0" no_error="true">
         <param name="face" type="GLenum"/>
         <param name="mask" type="GLuint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="AttachShader" offset="assign" es2="2.0">
+    <function name="AttachShader" es2="2.0" no_error="true">
         <param name="program" type="GLuint"/>
         <param name="shader" type="GLuint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="BindAttribLocation"
-              es2="2.0" offset="assign">
+    <function name="BindAttribLocation" es2="2.0" no_error="true">
         <param name="program" type="GLuint"/>
         <param name="index" type="GLuint"/>
-        <param name="name" type="const GLchar *"/>
+        <param name="name" type="const GLchar *" count="(strlen(name) + 1)"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="CompileShader" es2="2.0" offset="assign">
+    <function name="CompileShader" es2="2.0">
         <param name="shader" type="GLuint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="CreateProgram" offset="assign" es2="2.0">
+    <function name="CreateProgram" es2="2.0">
         <return type="GLuint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="CreateShader" offset="assign" es2="2.0">
+    <function name="CreateShader" es2="2.0" no_error="true">
         <param name="type" type="GLenum"/>
         <return type="GLuint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="DeleteProgram" offset="assign" es2="2.0">
+    <function name="DeleteProgram" es2="2.0">
         <param name="program" type="GLuint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="DeleteShader" offset="assign" es2="2.0">
+    <function name="DeleteShader" es2="2.0">
         <param name="program" type="GLuint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="DetachShader" offset="assign" es2="2.0">
+    <function name="DetachShader" es2="2.0" no_error="true">
         <param name="program" type="GLuint"/>
         <param name="shader" type="GLuint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="DisableVertexAttribArray" es2="2.0" offset="assign">
+    <function name="DisableVertexAttribArray" es2="2.0" no_error="true"
+              marshal_call_after="if (COMPAT) _mesa_glthread_ClientState(ctx, NULL, VERT_ATTRIB_GENERIC(index), false);">
         <param name="index" type="GLuint"/>
         <glx ignore="true"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="EnableVertexAttribArray"
-              es2="2.0" offset="assign">
+    <function name="EnableVertexAttribArray" es2="2.0" no_error="true"
+              marshal_call_after="if (COMPAT) _mesa_glthread_ClientState(ctx, NULL, VERT_ATTRIB_GENERIC(index), true);">
         <param name="index" type="GLuint"/>
         <glx ignore="true"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="GetActiveAttrib" es2="2.0" offset="assign">
+    <function name="GetActiveAttrib" es2="2.0">
         <param name="program" type="GLuint"/>
         <param name="index" type="GLuint"/>
         <param name="bufSize" type="GLsizei "/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetActiveUniform" es2="2.0" offset="assign">
+    <function name="GetActiveUniform" es2="2.0">
         <param name="program" type="GLuint"/>
         <param name="index" type="GLuint"/>
         <param name="bufSize" type="GLsizei"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetAttachedShaders" offset="assign" es2="2.0">
+    <function name="GetAttachedShaders" es2="2.0">
         <param name="program" type="GLuint"/>
         <param name="maxCount" type="GLsizei"/>
         <param name="count" type="GLsizei *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetAttribLocation" es2="2.0" offset="assign">
+    <function name="GetAttribLocation" es2="2.0">
         <param name="program" type="GLuint"/>
         <param name="name" type="const GLchar *"/>
         <return type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetProgramiv" offset="assign" es2="2.0">
+    <function name="GetProgramiv" es2="2.0">
         <param name="program" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetProgramInfoLog" offset="assign" es2="2.0">
+    <function name="GetProgramInfoLog" es2="2.0">
         <param name="program" type="GLuint"/>
         <param name="bufSize" type="GLsizei"/>
         <param name="length" type="GLsizei *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetShaderiv" offset="assign" es2="2.0">
+    <function name="GetShaderiv" es2="2.0">
         <param name="shader" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetShaderInfoLog" offset="assign" es2="2.0">
+    <function name="GetShaderInfoLog" es2="2.0">
         <param name="shader" type="GLuint"/>
         <param name="bufSize" type="GLsizei"/>
         <param name="length" type="GLsizei *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetShaderSource" es2="2.0" offset="assign">
+    <function name="GetShaderSource" es2="2.0">
         <param name="shader" type="GLuint"/>
         <param name="bufSize" type="GLsizei"/>
         <param name="length" type="GLsizei *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetUniformLocation"
-              es2="2.0" offset="assign">
+    <function name="GetUniformLocation" es2="2.0" no_error="true">
         <param name="program" type="GLuint"/>
         <param name="name" type="const GLchar *"/>
         <return type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetUniformfv" es2="2.0" offset="assign">
+    <function name="GetUniformfv" es2="2.0">
         <param name="program" type="GLuint"/>
         <param name="location" type="GLint"/>
         <param name="params" type="GLfloat *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetUniformiv" es2="2.0" offset="assign">
+    <function name="GetUniformiv" es2="2.0">
         <param name="program" type="GLuint"/>
         <param name="location" type="GLint"/>
         <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetVertexAttribdv" offset="assign">
+    <function name="GetVertexAttribdv">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
         <glx handcode="client" vendorpriv="1301"/>
     </function>
 
-    <function name="GetVertexAttribfv" es2="2.0" offset="assign">
+    <function name="GetVertexAttribfv" es2="2.0">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx handcode="client" vendorpriv="1302"/>
     </function>
 
-    <function name="GetVertexAttribiv" es2="2.0" offset="assign">
+    <function name="GetVertexAttribiv" es2="2.0">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx handcode="client" vendorpriv="1303"/>
     </function>
 
-    <function name="GetVertexAttribPointerv"
-              es2="2.0" offset="assign">
+    <function name="GetVertexAttribPointerv" es2="2.0">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="pointer" type="GLvoid **" output="true"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="IsProgram" offset="assign" es2="2.0">
+    <function name="IsProgram" es2="2.0">
         <param name="program" type="GLuint"/>
         <return type="GLboolean"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="IsShader" offset="assign" es2="2.0">
+    <function name="IsShader" es2="2.0">
         <param name="shader" type="GLuint"/>
         <return type="GLboolean"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="LinkProgram" es2="2.0" offset="assign">
+    <function name="LinkProgram" es2="2.0" no_error="true">
         <param name="program" type="GLuint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="ShaderSource" es2="2.0" offset="assign">
+    <function name="ShaderSource" es2="2.0" marshal="custom" no_error="true">
         <param name="shader" type="GLuint"/>
         <param name="count" type="GLsizei"/>
         <param name="string" type="const GLchar * const *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="UseProgram" es2="2.0" offset="assign">
+    <function name="UseProgram" es2="2.0" no_error="true">
         <param name="program" type="GLuint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform1f" es2="2.0" offset="assign">
+    <function name="Uniform1f" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
-    <function name="Uniform2f" es2="2.0" offset="assign">
+    <function name="Uniform2f" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLfloat"/>
         <param name="v1" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
-    <function name="Uniform3f" es2="2.0" offset="assign">
+    <function name="Uniform3f" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLfloat"/>
         <param name="v1" type="GLfloat"/>
         <param name="v2" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
-    <function name="Uniform4f" es2="2.0" offset="assign">
+    <function name="Uniform4f" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLfloat"/>
         <param name="v1" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform1i" es2="2.0" offset="assign">
+    <function name="Uniform1i" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLint"/>
         <glx ignore="true"/>
     </function>
-    <function name="Uniform2i" es2="2.0" offset="assign">
+    <function name="Uniform2i" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLint"/>
         <param name="v1" type="GLint"/>
         <glx ignore="true"/>
     </function>
-    <function name="Uniform3i" es2="2.0" offset="assign">
+    <function name="Uniform3i" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLint"/>
         <param name="v1" type="GLint"/>
         <param name="v2" type="GLint"/>
         <glx ignore="true"/>
     </function>
-    <function name="Uniform4i" es2="2.0" offset="assign">
+    <function name="Uniform4i" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="v0" type="GLint"/>
         <param name="v1" type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform1fv" es2="2.0" offset="assign">
+    <function name="Uniform1fv" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="value" type="const GLfloat *" count="count"/>
         <glx ignore="true"/>
     </function>
-    <function name="Uniform2fv" es2="2.0" offset="assign">
+    <function name="Uniform2fv" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="value" type="const GLfloat *" count="count" count_scale="2"/>
         <glx ignore="true"/>
     </function>
-    <function name="Uniform3fv" es2="2.0" offset="assign">
+    <function name="Uniform3fv" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="value" type="const GLfloat *" count="count" count_scale="3"/>
         <glx ignore="true"/>
     </function>
-    <function name="Uniform4fv" es2="2.0" offset="assign">
+    <function name="Uniform4fv" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="value" type="const GLfloat *" count="count" count_scale="4"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="Uniform1iv" es2="2.0" offset="assign">
+    <function name="Uniform1iv" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="value" type="const GLint *" count="count"/>
         <glx ignore="true"/>
     </function>
-    <function name="Uniform2iv" es2="2.0" offset="assign">
+    <function name="Uniform2iv" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="value" type="const GLint *" count="count" count_scale="2"/>
         <glx ignore="true"/>
     </function>
-    <function name="Uniform3iv" es2="2.0" offset="assign">
+    <function name="Uniform3iv" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="value" type="const GLint *" count="count" count_scale="3"/>
         <glx ignore="true"/>
     </function>
-    <function name="Uniform4iv" es2="2.0" offset="assign">
+    <function name="Uniform4iv" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="value" type="const GLint *" count="count" count_scale="4"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="UniformMatrix2fv" es2="2.0" offset="assign">
+    <function name="UniformMatrix2fv" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="transpose" type="GLboolean"/>
         <param name="value" type="const GLfloat *" count="count" count_scale="4"/>
         <glx ignore="true"/>
     </function>
-    <function name="UniformMatrix3fv" es2="2.0" offset="assign">
+    <function name="UniformMatrix3fv" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="transpose" type="GLboolean"/>
         <param name="value" type="const GLfloat *" count="count" count_scale="9"/>
         <glx ignore="true"/>
     </function>
-    <function name="UniformMatrix4fv" es2="2.0" offset="assign">
+    <function name="UniformMatrix4fv" es2="2.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="transpose" type="GLboolean"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="ValidateProgram" es2="2.0" offset="assign">
+    <function name="ValidateProgram" es2="2.0">
         <param name="program" type="GLuint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib1d" offset="assign">
+    <function name="VertexAttrib1d">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
     </function>
-    <function name="VertexAttrib1dv" offset="assign">
+    <function name="VertexAttrib1dv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="1"/>
         <glx rop="4197" doubles_in_order="true"/>
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *"/>
     </function>
-    <function name="VertexAttrib1s" offset="assign">
+    <function name="VertexAttrib1s">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
     </function>
-    <function name="VertexAttrib1sv" offset="assign">
+    <function name="VertexAttrib1sv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="1"/>
         <glx rop="4189"/>
     </function>
 
-    <function name="VertexAttrib2d" offset="assign">
+    <function name="VertexAttrib2d">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
     </function>
-    <function name="VertexAttrib2dv" offset="assign">
+    <function name="VertexAttrib2dv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="2"/>
         <glx rop="4198" doubles_in_order="true"/>
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *"/>
     </function>
-    <function name="VertexAttrib2s" offset="assign">
+    <function name="VertexAttrib2s">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
     </function>
-    <function name="VertexAttrib2sv" offset="assign">
+    <function name="VertexAttrib2sv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="2"/>
         <glx rop="4190"/>
     </function>
 
-    <function name="VertexAttrib3d" offset="assign">
+    <function name="VertexAttrib3d">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
     </function>
-    <function name="VertexAttrib3dv" offset="assign">
+    <function name="VertexAttrib3dv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="4199" doubles_in_order="true"/>
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *"/>
     </function>
-    <function name="VertexAttrib3s" offset="assign">
+    <function name="VertexAttrib3s">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
     </function>
-    <function name="VertexAttrib3sv" offset="assign">
+    <function name="VertexAttrib3sv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="4191"/>
     </function>
 
-    <function name="VertexAttrib4Nbv" offset="assign">
+    <function name="VertexAttrib4Nbv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLbyte *" count="4"/>
         <glx rop="4235"/>
     </function>
-    <function name="VertexAttrib4Niv" offset="assign">
+    <function name="VertexAttrib4Niv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="4237"/>
     </function>
-    <function name="VertexAttrib4Nsv" offset="assign">
+    <function name="VertexAttrib4Nsv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="4236"/>
     </function>
-    <function name="VertexAttrib4Nub" offset="assign">
+    <function name="VertexAttrib4Nub">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLubyte"/>
         <param name="y" type="GLubyte"/>
         <param name="z" type="GLubyte"/>
         <param name="w" type="GLubyte"/>
     </function>
-    <function name="VertexAttrib4Nubv" offset="assign">
+    <function name="VertexAttrib4Nubv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
         <glx rop="4201"/>
     </function>
-    <function name="VertexAttrib4Nuiv" offset="assign">
+    <function name="VertexAttrib4Nuiv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLuint *" count="4"/>
         <glx rop="4239"/>
     </function>
-    <function name="VertexAttrib4Nusv" offset="assign">
+    <function name="VertexAttrib4Nusv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLushort *" count="4"/>
         <glx rop="4238"/>
     </function>
-    <function name="VertexAttrib4bv" offset="assign">
+    <function name="VertexAttrib4bv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLbyte *" count="4"/>
         <glx rop="4230"/>
     </function>
-    <function name="VertexAttrib4d" offset="assign">
+    <function name="VertexAttrib4d">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
     </function>
-    <function name="VertexAttrib4dv" offset="assign">
+    <function name="VertexAttrib4dv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="4"/>
         <glx rop="4200" doubles_in_order="true"/>
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *"/>
     </function>
-    <function name="VertexAttrib4iv" offset="assign">
+    <function name="VertexAttrib4iv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="4231"/>
     </function>
-    <function name="VertexAttrib4s" offset="assign">
+    <function name="VertexAttrib4s">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
         <param name="w" type="GLshort"/>
     </function>
-    <function name="VertexAttrib4sv" offset="assign">
+    <function name="VertexAttrib4sv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="4192"/>
     </function>
-    <function name="VertexAttrib4ubv" offset="assign">
+    <function name="VertexAttrib4ubv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
         <glx rop="4232"/>
     </function>
-    <function name="VertexAttrib4uiv" offset="assign">
+    <function name="VertexAttrib4uiv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLuint *" count="4"/>
         <glx rop="4234"/>
     </function>
-    <function name="VertexAttrib4usv" offset="assign">
+    <function name="VertexAttrib4usv">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLushort *" count="4"/>
         <glx rop="4233"/>
     </function>
 
-    <function name="VertexAttribPointer"
-              es2="2.0" offset="assign">
+    <function name="VertexAttribPointer" es2="2.0" marshal="async"
+              no_error="true"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_GENERIC(index), size, type, stride, pointer);">
         <param name="index" type="GLuint"/>
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
     <enum name="COMPRESSED_SLUMINANCE"          value="0x8C4A"/>
     <enum name="COMPRESSED_SLUMINANCE_ALPHA"    value="0x8C4B"/>
 
-    <function name="UniformMatrix2x3fv" offset="assign" es2="3.0">
+    <function name="UniformMatrix2x3fv" es2="3.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="transpose" type="GLboolean"/>
         <param name="value" type="const GLfloat *" count="count" count_scale="6"/>
         <glx ignore="true"/>
     </function>
-    <function name="UniformMatrix3x2fv" offset="assign" es2="3.0">
+    <function name="UniformMatrix3x2fv" es2="3.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="transpose" type="GLboolean"/>
         <param name="value" type="const GLfloat *" count="count" count_scale="6"/>
         <glx ignore="true"/>
     </function>
-    <function name="UniformMatrix2x4fv" offset="assign" es2="3.0">
+    <function name="UniformMatrix2x4fv" es2="3.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="transpose" type="GLboolean"/>
-        <param name="value" type="const GLfloat *" count="count" count_scale="6"/>
+        <param name="value" type="const GLfloat *" count="count" count_scale="8"/>
         <glx ignore="true"/>
     </function>
-    <function name="UniformMatrix4x2fv" offset="assign" es2="3.0">
+    <function name="UniformMatrix4x2fv" es2="3.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="transpose" type="GLboolean"/>
         <param name="value" type="const GLfloat *" count="count" count_scale="8"/>
         <glx ignore="true"/>
     </function>
-    <function name="UniformMatrix3x4fv" offset="assign" es2="3.0">
+    <function name="UniformMatrix3x4fv" es2="3.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="transpose" type="GLboolean"/>
         <param name="value" type="const GLfloat *" count="count" count_scale="12"/>
         <glx ignore="true"/>
     </function>
-    <function name="UniformMatrix4x3fv" offset="assign" es2="3.0">
+    <function name="UniformMatrix4x3fv" es2="3.0">
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="transpose" type="GLboolean"/>
         <param name="v" type="const GLdouble *"/>
     </function>
 
-    <function name="MultiTexCoord1fARB" offset="378"
+    <function name="MultiTexCoord1fARB"
               vectorequiv="MultiTexCoord1fvARB" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLfloat"/>
     </function>
 
-    <function name="MultiTexCoord1fvARB" offset="379" exec="dynamic">
+    <function name="MultiTexCoord1fvARB" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLfloat *" count="1"/>
         <glx rop="199"/>
         <param name="v" type="const GLdouble *"/>
     </function>
 
-    <function name="MultiTexCoord2fARB" offset="386"
+    <function name="MultiTexCoord2fARB"
               vectorequiv="MultiTexCoord2fvARB" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLfloat"/>
         <param name="t" type="GLfloat"/>
     </function>
 
-    <function name="MultiTexCoord2fvARB" offset="387" exec="dynamic">
+    <function name="MultiTexCoord2fvARB" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLfloat *" count="2"/>
         <glx rop="203"/>
         <param name="v" type="const GLdouble *"/>
     </function>
 
-    <function name="MultiTexCoord3fARB" offset="394"
+    <function name="MultiTexCoord3fARB"
               vectorequiv="MultiTexCoord3fvARB" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLfloat"/>
         <param name="r" type="GLfloat"/>
     </function>
 
-    <function name="MultiTexCoord3fvARB" offset="395" exec="dynamic">
+    <function name="MultiTexCoord3fvARB" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLfloat *" count="3"/>
         <glx rop="207"/>
         <param name="v" type="const GLdouble *"/>
     </function>
 
-    <function name="MultiTexCoord4fARB" offset="402"
+    <function name="MultiTexCoord4fARB"
               vectorequiv="MultiTexCoord4fvARB" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLfloat"/>
         <param name="q" type="GLfloat"/>
     </function>
 
-    <function name="MultiTexCoord4fvARB" offset="403" exec="dynamic">
+    <function name="MultiTexCoord4fvARB" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLfloat *" count="4"/>
         <glx rop="211"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-        <glx handcode="true"/>
+        <glx ignore="true" handcode="true"/>
     </function>
 
     <function name="VertexBlendARB" exec="skip">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
-        <glx handcode="true"/>
+        <glx ignore="true" handcode="true"/>
     </function>
 </category>
 
         <param name="v" type="const GLdouble *"/>
     </function>
 
-    <function name="VertexAttrib1fARB" offset="assign"
-              vectorequiv="VertexAttrib1fvARB" exec="dynamic">
+    <function name="VertexAttrib1fARB"
+             vectorequiv="VertexAttrib1fvARB" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib1fvARB" offset="assign" exec="dynamic">
+    <function name="VertexAttrib1fvARB" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="1"/>
         <glx rop="4193"/>
         <param name="v" type="const GLdouble *"/>
     </function>
 
-    <function name="VertexAttrib2fARB" offset="assign"
+    <function name="VertexAttrib2fARB"
               vectorequiv="VertexAttrib2fvARB" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib2fvARB" offset="assign" exec="dynamic">
+    <function name="VertexAttrib2fvARB" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="2"/>
         <glx rop="4194"/>
         <param name="v" type="const GLdouble *"/>
     </function>
 
-    <function name="VertexAttrib3fARB" offset="assign"
+    <function name="VertexAttrib3fARB"
               vectorequiv="VertexAttrib3fvARB" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib3fvARB" offset="assign" exec="dynamic">
+    <function name="VertexAttrib3fvARB" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="3"/>
         <glx rop="4195"/>
         <param name="v" type="const GLdouble *"/>
     </function>
 
-    <function name="VertexAttrib4fARB" offset="assign"
+    <function name="VertexAttrib4fARB"
               vectorequiv="VertexAttrib4fvARB" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib4fvARB" offset="assign" exec="dynamic">
+    <function name="VertexAttrib4fvARB" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="4"/>
         <glx rop="4196"/>
         <param name="index" type="GLuint"/>
     </function>
 
-    <function name="ProgramStringARB" offset="assign" deprecated="3.1">
+    <function name="ProgramStringARB" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="len" type="GLsizei" counter="true"/>
         <glx rop="4217" large="true"/>
     </function>
 
-    <function name="BindProgramARB" offset="assign">
+    <function name="BindProgramARB">
         <param name="target" type="GLenum"/>
         <param name="program" type="GLuint"/>
         <glx rop="4180"/>
     </function>
 
-    <function name="DeleteProgramsARB" offset="assign">
+    <function name="DeleteProgramsARB">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="programs" type="const GLuint *" count="n"/>
         <glx vendorpriv="1294"/>
     </function>
 
-    <function name="GenProgramsARB" offset="assign">
+    <function name="GenProgramsARB">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="programs" type="GLuint *" output="true" count="n"/>
         <glx vendorpriv="1295" always_array="true"/>
     </function>
 
-    <function name="IsProgramARB" offset="assign">
+    <function name="IsProgramARB">
         <param name="program" type="GLuint"/>
         <return type="GLboolean"/>
         <glx vendorpriv="1304"/>
     </function>
 
-    <function name="ProgramEnvParameter4dARB" offset="assign"
+    <function name="ProgramEnvParameter4dARB"
               vectorequiv="ProgramEnvParameter4dvARB" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="ProgramEnvParameter4dvARB" offset="assign"
+    <function name="ProgramEnvParameter4dvARB"
               deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <glx rop="4185" doubles_in_order="true"/>
     </function>
 
-    <function name="ProgramEnvParameter4fARB" offset="assign"
+    <function name="ProgramEnvParameter4fARB"
               vectorequiv="ProgramEnvParameter4fvARB" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="ProgramEnvParameter4fvARB" offset="assign"
+    <function name="ProgramEnvParameter4fvARB"
               deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <glx rop="4184"/>
     </function>
 
-    <function name="ProgramLocalParameter4dARB" offset="assign"
+    <function name="ProgramLocalParameter4dARB"
               vectorequiv="ProgramLocalParameter4dvARB" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="ProgramLocalParameter4dvARB" offset="assign"
+    <function name="ProgramLocalParameter4dvARB"
               deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <glx rop="4216" doubles_in_order="true"/>
     </function>
 
-    <function name="ProgramLocalParameter4fARB" offset="assign"
+    <function name="ProgramLocalParameter4fARB"
               vectorequiv="ProgramLocalParameter4fvARB" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="ProgramLocalParameter4fvARB" offset="assign"
-              deprecated="3.1">
+    <function name="ProgramLocalParameter4fvARB" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="const GLfloat *" count="4"/>
          the ARB_vertex_program protocol to unused padding.
       -->
 
-    <function name="GetProgramEnvParameterdvARB" offset="assign"
-              deprecated="3.1">
+    <function name="GetProgramEnvParameterdvARB" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="GLdouble *" output="true" count="4"/>
         <glx vendorpriv="1297" handcode="client" doubles_in_order="true"/>
     </function>
 
-    <function name="GetProgramEnvParameterfvARB" offset="assign"
-              deprecated="3.1">
+    <function name="GetProgramEnvParameterfvARB" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="GLfloat *" output="true" count="4"/>
         <glx vendorpriv="1296" handcode="client"/>
     </function>
 
-    <function name="GetProgramLocalParameterdvARB" offset="assign"
-              deprecated="3.1">
+    <function name="GetProgramLocalParameterdvARB" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="GLdouble *" output="true" count="4"/>
         <glx vendorpriv="1306" handcode="client" doubles_in_order="true"/>
     </function>
 
-    <function name="GetProgramLocalParameterfvARB" offset="assign"
-              deprecated="3.1">
+    <function name="GetProgramLocalParameterfvARB" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="params" type="GLfloat *" output="true" count="4"/>
     </function>
 
 
-    <function name="GetProgramivARB" offset="assign" deprecated="3.1">
+    <function name="GetProgramivARB" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx vendorpriv="1307"/>
     </function>
 
-    <function name="GetProgramStringARB" offset="assign" deprecated="3.1">
+    <function name="GetProgramStringARB" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="string" type="GLvoid *" output="true"/>
     <type name="charARB"   size="1" glx_name="CARD8"/>
     <type name="handleARB" size="4" glx_name="CARD32"/>
 
-    <function name="DeleteObjectARB" offset="assign">
+    <function name="DeleteObjectARB">
         <param name="obj" type="GLhandleARB"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetHandleARB" offset="assign">
+    <function name="GetHandleARB">
         <param name="pname" type="GLenum"/>
         <return type="GLhandleARB"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="DetachObjectARB" offset="assign">
+    <function name="DetachObjectARB" no_error="true">
         <param name="containerObj" type="GLhandleARB"/>
         <param name="attachedObj" type="GLhandleARB"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="CreateShaderObjectARB" offset="assign">
+    <function name="CreateShaderObjectARB" no_error="true">
         <param name="shaderType" type="GLenum"/>
         <return type="GLhandleARB"/>
         <glx ignore="true"/>
         <param name="shader" type="GLhandleARB"/>
     </function>
 
-    <function name="CreateProgramObjectARB" offset="assign">
+    <function name="CreateProgramObjectARB">
         <return type="GLhandleARB"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="AttachObjectARB" offset="assign">
+    <function name="AttachObjectARB" no_error="true">
         <param name="containerObj" type="GLhandleARB"/>
         <param name="obj" type="GLhandleARB"/>
         <glx ignore="true"/>
         <param name="value" type="const GLfloat *"/>
     </function>
 
-    <function name="GetObjectParameterfvARB" offset="assign">
+    <function name="GetObjectParameterfvARB">
         <param name="obj" type="GLhandleARB"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetObjectParameterivARB" offset="assign">
+    <function name="GetObjectParameterivARB">
         <param name="obj" type="GLhandleARB"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetInfoLogARB" offset="assign">
+    <function name="GetInfoLogARB">
         <param name="obj" type="GLhandleARB"/>
         <param name="maxLength" type="GLsizei"/>
         <param name="length" type="GLsizei *" output="true"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="GetAttachedObjectsARB" offset="assign">
+    <function name="GetAttachedObjectsARB">
         <param name="containerObj" type="GLhandleARB"/>
         <param name="maxLength" type="GLsizei"/>
         <param name="length" type="GLsizei *" output="true"/>
 
 <!-- 46. GL_ARB_framebuffer_sRGB -->
 
-<xi:include href="ARB_geometry_shader4.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+<!-- 47. GL_ARB_geometry_shader4. There are no intentions to implement this extension -->
 
 <!-- 48. GL_ARB_half_float_vertex -->
 
 <!-- ARB extension number 74 is a WGL extension. -->
 <!-- ARB extension number 75 is a GLX extension. -->
 
-<!-- 76. GL_ARB_shading_language_include -->
+<xi:include href="ARB_shading_language_include.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
 <!-- 77. GL_ARB_texture_compression_bptc -->
 
 <xi:include href="ARB_blend_func_extended.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
     <enum name="TIMESTAMP" value="0x8E28"/>
     <type name="int64"                  size="8"/>
     <type name="uint64" unsigned="true" size="8"/>
-    <function name="GetQueryObjecti64v" static_dispatch="false" offset="assign">
+    <function name="GetQueryObjecti64v">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint64 *"/>
     </function>
-    <function name="GetQueryObjectui64v" static_dispatch="false" offset="assign">
+    <function name="GetQueryObjectui64v">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLuint64 *"/>
     </function>
-    <function name="QueryCounter" offset="assign" static_dispatch="false">
+    <function name="QueryCounter">
         <param name="id" type="GLuint"/>
         <param name="target" type="GLenum"/>
     </function>
 
 <xi:include href="ARB_vertex_type_2_10_10_10_rev.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
-<!-- ARB extensions #86...#93 -->
+<!-- ARB extensions #86...#89 -->
+
+<xi:include href="ARB_shader_subroutine.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<xi:include href="ARB_tessellation_shader.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<!-- ARB extensions #92...#93 -->
 
 <xi:include href="ARB_draw_indirect.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <xi:include href="ARB_gpu_shader5.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
+<xi:include href="ARB_gpu_shader_fp64.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
 <category name="GL_ARB_transform_feedback3" number="94">
   <enum name="MAX_TRANSFORM_FEEDBACK_BUFFERS" value="0x8E70"/>
   <enum name="MAX_VERTEX_STREAMS"             value="0x8E71"/>
 
-  <function name="DrawTransformFeedbackStream" offset="assign"
-            exec="dynamic">
+  <function name="DrawTransformFeedbackStream" marshal="draw">
     <param name="mode" type="GLenum"/>
     <param name="id" type="GLuint"/>
     <param name="stream" type="GLuint"/>
   </function>
 
-  <function name="BeginQueryIndexed" offset="assign">
+  <function name="BeginQueryIndexed">
     <param name="target" type="GLenum"/>
     <param name="index" type="GLuint"/>
     <param name="id" type="GLuint"/>
   </function>
 
-  <function name="EndQueryIndexed" offset="assign">
+  <function name="EndQueryIndexed">
     <param name="target" type="GLenum"/>
     <param name="index" type="GLuint"/>
   </function>
 
-  <function name="GetQueryIndexediv" offset="assign">
+  <function name="GetQueryIndexediv">
     <param name="target" type="GLenum"/>
     <param name="index" type="GLuint"/>
     <param name="pname" type="GLenum"/>
 
 <xi:include href="ARB_separate_shader_objects.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
-<!-- ARB extensions #98...#108 -->
+<category name="GL_ARB_shader_precision" number="98">
+      <!-- No new functions, types, enums. -->
+</category>
+
+<xi:include href="ARB_vertex_attrib_64bit.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<!-- ARB extensions #100...#108 -->
 
 <xi:include href="ARB_ES2_compatibility.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <xi:include href="ARB_base_instance.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <category name="GL_ARB_transform_feedback_instanced" number="109">
-  <function name="DrawTransformFeedbackInstanced" offset="assign"
-            exec="dynamic">
+  <function name="DrawTransformFeedbackInstanced" marshal="draw">
     <param name="mode" type="GLenum"/>
     <param name="id" type="GLuint"/>
     <param name="primcount" type="GLsizei"/>
   </function>
 
-  <function name="DrawTransformFeedbackStreamInstanced" offset="assign"
-            exec="dynamic">
+  <function name="DrawTransformFeedbackStreamInstanced" marshal="draw">
     <param name="mode" type="GLenum"/>
     <param name="id" type="GLuint"/>
     <param name="stream" type="GLuint"/>
 
 <xi:include href="ARB_texture_storage.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
-<!-- ARB extension #118 -->
+<xi:include href="KHR_texture_compression_astc.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <xi:include href="KHR_debug.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
     <!-- No new functions, types, enums. -->
 </category>
 
-<!-- ARB extensions #130..#131 -->
+<xi:include href="ARB_framebuffer_no_attachments.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<xi:include href="ARB_internalformat_query2.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <category name="GL_ARB_explicit_uniform_location" number="128">
     <enum name="MAX_UNIFORM_LOCATIONS" count="1" value="0x826E" >
 <!-- ARB extension #133 is ARB_multi_draw_indirect, defined in the same
      file as ARB_draw_indirect -->
 
-<!-- ARB extensions #134...#138 -->
+<xi:include href="ARB_program_interface_query.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<!-- ARB extensions #135...#136 -->
+
+<xi:include href="ARB_shader_storage_buffer_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<!-- ARB extensions #138 -->
 
 <xi:include href="ARB_texture_buffer_range.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
     <enum name="BUFFER_STORAGE_FLAGS" value="0x8220" />
     <enum name="CLIENT_MAPPED_BUFFER_BARRIER_BIT" value="0x4000" />
 
-    <function name="BufferStorage" offset="assign">
+    <function name="BufferStorage" no_error="true">
         <param name="target" type="GLenum"/>
         <param name="size" type="GLsizeiptr"/>
         <param name="data" type="const GLvoid *"/>
         <param name="flags" type="GLbitfield"/>
     </function>
+
+   <function name="NamedBufferStorageEXT">
+      <param name="buffer" type="GLuint" />
+      <param name="size" type="GLsizeiptr" />
+      <param name="data" type="const GLvoid *" />
+      <param name="flags" type="GLbitfield" />
+   </function>
 </category>
 
 <xi:include href="ARB_clear_texture.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <xi:include href="ARB_multi_bind.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
-<!-- ARB extensions 148 - 159 -->
+<category name="GL_ARB_query_buffer_object" number="148">
+    <enum name="QUERY_RESULT_NO_WAIT"               value="0x9194"/>
+    <enum name="QUERY_BUFFER"                       value="0x9192"/>
+    <enum name="QUERY_BUFFER_BINDING"               value="0x9193"/>
+    <enum name="QUERY_BUFFER_BARRIER_BIT"           value="0x00008000"/>
+</category>
+
+<!-- ARB extensions 149 - 151 -->
+
+<xi:include href="ARB_bindless_texture.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<xi:include href="ARB_compute_variable_group_size.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<xi:include href="ARB_indirect_parameters.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<!-- ARB extensions 155 - 159 -->
 
 <xi:include href="ARB_clip_control.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
     <enum name="QUERY_BY_REGION_NO_WAIT_INVERTED"         value="0x8E1A"/>
 </category>
 
-<!-- ARB extensions 162 - 163 -->
+<category name="ARB_cull_distance" number="162">
+    <enum name="MAX_CULL_DISTANCES"                      value="0x82F9"/>
+    <enum name="MAX_COMBINED_CLIP_AND_CULL_DISTANCES"    value="0x82FA"/>
+</category>
+
+<!-- ARB extensions 163 -->
+
+<xi:include href="OES_texture_compression_astc.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <xi:include href="ARB_direct_state_access.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
-<!-- ARB extensions 165 - 166 -->
+<xi:include href="ARB_get_texture_sub_image.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<!-- ARB extension 166 -->
 
 <xi:include href="ARB_texture_barrier.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <xi:include href="KHR_context_flush_control.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
+<!-- ARB extension 170 -->
+<xi:include href="KHR_robustness.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<!-- ARB extension 171 -->
+<xi:include href="ARB_pipeline_statistics_query.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<!-- ARB extension 172 -->
+<xi:include href="ARB_sparse_buffer.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<category name="es3.2">
+    <!-- This should be in es_EXT, but this file is included first and
+         the alias doesn't work otherwise. -->
+    <function name="PrimitiveBoundingBox" es2="3.2" desktop="false">
+        <param name="minX" type="GLfloat"/>
+        <param name="minY" type="GLfloat"/>
+        <param name="minZ" type="GLfloat"/>
+        <param name="minW" type="GLfloat"/>
+        <param name="maxX" type="GLfloat"/>
+        <param name="maxY" type="GLfloat"/>
+        <param name="maxZ" type="GLfloat"/>
+        <param name="maxW" type="GLfloat"/>
+    </function>
+
+    <function name="BlendBarrier" es2="3.2"/>
+</category>
+
+<category name="KHR_blend_equation_advanced" number="174">
+    <enum name="BLEND_ADVANCED_COHERENT_KHR"              value="0x9285"/>
+
+    <enum name="MULTIPLY_KHR"                             value="0x9294"/>
+    <enum name="SCREEN_KHR"                               value="0x9295"/>
+    <enum name="OVERLAY_KHR"                              value="0x9296"/>
+    <enum name="DARKEN_KHR"                               value="0x9297"/>
+    <enum name="LIGHTEN_KHR"                              value="0x9298"/>
+    <enum name="COLORDODGE_KHR"                           value="0x9299"/>
+    <enum name="COLORBURN_KHR"                            value="0x929A"/>
+    <enum name="HARDLIGHT_KHR"                            value="0x929B"/>
+    <enum name="SOFTLIGHT_KHR"                            value="0x929C"/>
+    <enum name="DIFFERENCE_KHR"                           value="0x929E"/>
+    <enum name="EXCLUSION_KHR"                            value="0x92A0"/>
+
+    <enum name="HSL_HUE_KHR"                              value="0x92AD"/>
+    <enum name="HSL_SATURATION_KHR"                       value="0x92AE"/>
+    <enum name="HSL_COLOR_KHR"                            value="0x92AF"/>
+    <enum name="HSL_LUMINOSITY_KHR"                       value="0x92B0"/>
+
+    <function name="BlendBarrierKHR" alias="BlendBarrier" es2="2.0"/>
+</category>
+
+<category name="ARB_ES3_2_compatibility" number="177">
+
+    <enum name="PRIMITIVE_BOUNDING_BOX_ARB" count="8"       value="0x92BE">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MULTISAMPLE_LINE_WIDTH_RANGE_ARB" count="2" value="0x9381">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB"     value="0x9382">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <function name="PrimitiveBoundingBoxARB" alias="PrimitiveBoundingBox">
+        <param name="minX" type="GLfloat"/>
+        <param name="minY" type="GLfloat"/>
+        <param name="minZ" type="GLfloat"/>
+        <param name="minW" type="GLfloat"/>
+        <param name="maxX" type="GLfloat"/>
+        <param name="maxY" type="GLfloat"/>
+        <param name="maxZ" type="GLfloat"/>
+        <param name="maxW" type="GLfloat"/>
+    </function>
+
+</category>
+
+<xi:include href="ARB_gpu_shader_int64.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<category name="ARB_parallel_shader_compile" number="179">
+    <enum name="MAX_SHADER_COMPILER_THREADS_ARB"   value="0x91B0"/>
+    <enum name="COMPLETION_STATUS_ARB"             value="0x91B1"/>
+
+    <function name="MaxShaderCompilerThreadsKHR" es2="2.0">
+        <param name="count" type="GLuint"/>
+    </function>
+
+    <function name="MaxShaderCompilerThreadsARB" alias="MaxShaderCompilerThreadsKHR">
+        <param name="count" type="GLuint"/>
+    </function>
+</category>
+
+<!-- ARB extension 180 - 189 -->
+
+<xi:include href="ARB_gl_spirv.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<!-- ARB extensions 191 - 193 -->
+
+<xi:include href="ARB_spirv_extensions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
 <!-- Non-ARB extensions sorted by extension number. -->
 
 <category name="GL_EXT_blend_color" number="2">
     </function>
 </category>
 
-<category name="GL_EXT_polygon_offset" number="3">
-    <enum name="POLYGON_OFFSET_BIAS_EXT"                  value="0x8039"/>
-
-    <function name="PolygonOffsetEXT" offset="assign" deprecated="3.1">
-        <param name="factor" type="GLfloat"/>
-        <param name="bias" type="GLfloat"/>
-        <glx rop="4098" ignore="true"/>
-    </function>
-</category>
-
 <category name="GL_EXT_texture" number="4">
     <enum name="ALPHA4_EXT"                               value="0x803B"/>
     <enum name="ALPHA8_EXT"                               value="0x803C"/>
     </enum>
     <enum name="TABLE_TOO_LARGE_EXT"                      value="0x8031"/>
 
-    <function name="GetHistogramEXT" alias="GetHistogram" static_dispatch="false">
+    <function name="GetHistogramEXT" alias="GetHistogram">
         <param name="target" type="GLenum"/>
         <param name="reset" type="GLboolean"/>
         <param name="format" type="GLenum"/>
         <glx vendorpriv="5" dimensions_in_reply="true" img_reset="reset"/>
     </function>
 
-    <function name="GetHistogramParameterfvEXT" alias="GetHistogramParameterfv" static_dispatch="false">
+    <function name="GetHistogramParameterfvEXT" alias="GetHistogramParameterfv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx vendorpriv="6"/>
     </function>
 
-    <function name="GetHistogramParameterivEXT" alias="GetHistogramParameteriv" static_dispatch="false">
+    <function name="GetHistogramParameterivEXT" alias="GetHistogramParameteriv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx vendorpriv="7"/>
     </function>
 
-    <function name="GetMinmaxEXT" alias="GetMinmax" static_dispatch="false">
+    <function name="GetMinmaxEXT" alias="GetMinmax">
         <param name="target" type="GLenum"/>
         <param name="reset" type="GLboolean"/>
         <param name="format" type="GLenum"/>
         <glx vendorpriv="8" img_reset="reset"/>
     </function>
 
-    <function name="GetMinmaxParameterfvEXT" alias="GetMinmaxParameterfv" static_dispatch="false">
+    <function name="GetMinmaxParameterfvEXT" alias="GetMinmaxParameterfv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx vendorpriv="9"/>
     </function>
 
-    <function name="GetMinmaxParameterivEXT" alias="GetMinmaxParameteriv" static_dispatch="false">
+    <function name="GetMinmaxParameterivEXT" alias="GetMinmaxParameteriv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx vendorpriv="10"/>
     </function>
 
-    <function name="HistogramEXT" alias="Histogram" static_dispatch="false">
+    <function name="HistogramEXT" alias="Histogram">
         <param name="target" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="internalformat" type="GLenum"/>
         <param name="sink" type="GLboolean"/>
     </function>
 
-    <function name="MinmaxEXT" alias="Minmax" static_dispatch="false">
+    <function name="MinmaxEXT" alias="Minmax">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="sink" type="GLboolean"/>
     </function>
 
-    <function name="ResetHistogramEXT" alias="ResetHistogram" static_dispatch="false">
+    <function name="ResetHistogramEXT" alias="ResetHistogram">
         <param name="target" type="GLenum"/>
     </function>
 
-    <function name="ResetMinmaxEXT" alias="ResetMinmax" static_dispatch="false">
+    <function name="ResetMinmaxEXT" alias="ResetMinmax">
         <param name="target" type="GLenum"/>
     </function>
 </category>
         <size name="Get" mode="get"/>
     </enum>
 
-    <function name="ConvolutionFilter1DEXT" alias="ConvolutionFilter1D" static_dispatch="false">
+    <function name="ConvolutionFilter1DEXT" alias="ConvolutionFilter1D">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="image" type="const GLvoid *"/>
     </function>
 
-    <function name="ConvolutionFilter2DEXT" alias="ConvolutionFilter2D" static_dispatch="false">
+    <function name="ConvolutionFilter2DEXT" alias="ConvolutionFilter2D">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="image" type="const GLvoid *"/>
     </function>
 
-    <function name="ConvolutionParameterfEXT" alias="ConvolutionParameterf" static_dispatch="false">
+    <function name="ConvolutionParameterfEXT" alias="ConvolutionParameterf">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat"/>
     </function>
 
-    <function name="ConvolutionParameterfvEXT" alias="ConvolutionParameterfv" static_dispatch="false">
+    <function name="ConvolutionParameterfvEXT" alias="ConvolutionParameterfv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 
-    <function name="ConvolutionParameteriEXT" alias="ConvolutionParameteri" static_dispatch="false">
+    <function name="ConvolutionParameteriEXT" alias="ConvolutionParameteri">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint"/>
     </function>
 
-    <function name="ConvolutionParameterivEXT" alias="ConvolutionParameteriv" static_dispatch="false">
+    <function name="ConvolutionParameterivEXT" alias="ConvolutionParameteriv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
     </function>
 
-    <function name="CopyConvolutionFilter1DEXT" alias="CopyConvolutionFilter1D" static_dispatch="false">
+    <function name="CopyConvolutionFilter1DEXT" alias="CopyConvolutionFilter1D">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="x" type="GLint"/>
         <param name="width" type="GLsizei"/>
     </function>
 
-    <function name="CopyConvolutionFilter2DEXT" alias="CopyConvolutionFilter2D" static_dispatch="false">
+    <function name="CopyConvolutionFilter2DEXT" alias="CopyConvolutionFilter2D">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="x" type="GLint"/>
         <param name="height" type="GLsizei"/>
     </function>
 
-    <function name="GetConvolutionFilterEXT" alias="GetConvolutionFilter" static_dispatch="false">
+    <function name="GetConvolutionFilterEXT" alias="GetConvolutionFilter">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
         <glx vendorpriv="1" dimensions_in_reply="true"/>
     </function>
 
-    <function name="GetConvolutionParameterfvEXT" alias="GetConvolutionParameterfv" static_dispatch="false">
+    <function name="GetConvolutionParameterfvEXT" alias="GetConvolutionParameterfv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx vendorpriv="2"/>
     </function>
 
-    <function name="GetConvolutionParameterivEXT" alias="GetConvolutionParameteriv" static_dispatch="false">
+    <function name="GetConvolutionParameterivEXT" alias="GetConvolutionParameteriv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx vendorpriv="3"/>
     </function>
 
-    <function name="GetSeparableFilterEXT" alias="GetSeparableFilter" static_dispatch="false">
+    <function name="GetSeparableFilterEXT" alias="GetSeparableFilter">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
         <glx vendorpriv="4" handcode="true"/>
     </function>
 
-    <function name="SeparableFilter2DEXT" alias="SeparableFilter2D" static_dispatch="false">
+    <function name="SeparableFilter2DEXT" alias="SeparableFilter2D">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <size name="GetColorTableParameterivSGI" mode="get"/>
     </enum>
 
-    <function name="ColorTableSGI" alias="ColorTable" static_dispatch="false">
+    <function name="ColorTableSGI" alias="ColorTable">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="width" type="GLsizei"/>
         <param name="table" type="const GLvoid *"/>
     </function>
 
-    <function name="ColorTableParameterfvSGI" alias="ColorTableParameterfv" static_dispatch="false">
+    <function name="ColorTableParameterfvSGI" alias="ColorTableParameterfv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 
-    <function name="ColorTableParameterivSGI" alias="ColorTableParameteriv" static_dispatch="false">
+    <function name="ColorTableParameterivSGI" alias="ColorTableParameteriv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *"/>
     </function>
 
-    <function name="CopyColorTableSGI" alias="CopyColorTable" static_dispatch="false">
+    <function name="CopyColorTableSGI" alias="CopyColorTable">
         <param name="target" type="GLenum"/>
         <param name="internalformat" type="GLenum"/>
         <param name="x" type="GLint"/>
         <param name="width" type="GLsizei"/>
     </function>
 
-    <function name="GetColorTableSGI" alias="GetColorTable" static_dispatch="false">
+    <function name="GetColorTableSGI" alias="GetColorTable">
         <param name="target" type="GLenum"/>
         <param name="format" type="GLenum"/>
         <param name="type" type="GLenum"/>
         <glx vendorpriv="4098" dimensions_in_reply="true"/>
     </function>
 
-    <function name="GetColorTableParameterfvSGI" alias="GetColorTableParameterfv" static_dispatch="false">
+    <function name="GetColorTableParameterfvSGI" alias="GetColorTableParameterfv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx vendorpriv="4099"/>
     </function>
 
-    <function name="GetColorTableParameterivSGI" alias="GetColorTableParameteriv" static_dispatch="false">
+    <function name="GetColorTableParameterivSGI" alias="GetColorTableParameteriv">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
 </category>
 
 <category name="GL_SGIS_multisample" number="25">
-    <function name="SampleMaskSGIS" offset="assign" static_dispatch="false"
-              exec="skip">
+    <function name="SampleMaskSGIS" exec="skip">
         <param name="value" type="GLclampf"/>
         <param name="invert" type="GLboolean"/>
         <glx rop="2048"/>
     </function>
 
-    <function name="SamplePatternSGIS" offset="assign" static_dispatch="false"
-              exec="skip">
+    <function name="SamplePatternSGIS" exec="skip">
         <param name="pattern" type="GLenum"/>
         <glx rop="2049"/>
     </function>
         <param name="i" type="GLint"/>
     </function>
 
-    <function name="ColorPointerEXT" offset="assign" deprecated="3.1">
+    <function name="ColorPointerEXT" deprecated="3.1" marshal="async"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_COLOR0, size, type, stride, pointer);">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
     </function>
 
-    <function name="EdgeFlagPointerEXT" offset="assign" deprecated="3.1">
+    <function name="EdgeFlagPointerEXT" deprecated="3.1" marshal="async"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_EDGEFLAG, 1, GL_UNSIGNED_BYTE, stride, pointer);">
         <param name="stride" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
         <param name="pointer" type="const GLboolean *"/>
         <param name="params" type="GLvoid **" output="true"/>
     </function>
 
-    <function name="IndexPointerEXT" offset="assign" deprecated="3.1">
+    <function name="IndexPointerEXT" deprecated="3.1" marshal="async"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_COLOR_INDEX, 1, type, stride, pointer);">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="NormalPointerEXT" offset="assign" deprecated="3.1">
+    <function name="NormalPointerEXT" deprecated="3.1" marshal="async"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_NORMAL, 3, type, stride, pointer);">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="TexCoordPointerEXT" offset="assign" deprecated="3.1">
+    <function name="TexCoordPointerEXT" deprecated="3.1" marshal="async"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_TEX(ctx->GLThread.ClientActiveTexture), size, type, stride, pointer);">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="VertexPointerEXT" offset="assign" deprecated="3.1">
+    <function name="VertexPointerEXT" deprecated="3.1" marshal="async"
+              marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_POS, size, type, stride, pointer);">
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
 <!-- Extension number 73 is not listed in the extension registry. -->
 
 <category name="GL_EXT_color_subtable" number="74">
-    <function name="ColorSubTableEXT" alias="ColorSubTable" static_dispatch="false">
+    <function name="ColorSubTableEXT" alias="ColorSubTable">
         <param name="target" type="GLenum"/>
         <param name="start" type="GLsizei"/>
         <param name="count" type="GLsizei"/>
         <param name="data" type="const GLvoid *"/>
     </function>
 
-    <function name="CopyColorSubTableEXT" alias="CopyColorSubTable" static_dispatch="false">
+    <function name="CopyColorSubTableEXT" alias="CopyColorSubTable">
         <param name="target" type="GLenum"/>
         <param name="start" type="GLsizei"/>
         <param name="x" type="GLint"/>
     <enum name="ARRAY_ELEMENT_LOCK_FIRST_EXT"             value="0x81A8"/>
     <enum name="ARRAY_ELEMENT_LOCK_COUNT_EXT"             value="0x81A9"/>
 
-    <function name="LockArraysEXT" offset="assign" deprecated="3.1">
+    <function name="LockArraysEXT" deprecated="3.1">
         <param name="first" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <glx handcode="true" ignore="true"/>
     </function>
 
-    <function name="UnlockArraysEXT" offset="assign" deprecated="3.1">
+    <function name="UnlockArraysEXT" deprecated="3.1">
         <glx handcode="true" ignore="true"/>
     </function>
 </category>
 
 <category name="GL_EXT_cull_vertex" number="98">
     <enum name="CULL_VERTEX_EXT"                          value="0x81AA"/>
-    <enum name="CULL_VERTEX_OBJECT_POSITION_EXT" count="4" value="0x81AB">
+    <enum name="CULL_VERTEX_EYE_POSITION_EXT"  count="4"  value="0x81AB">
         <size name="CullParameterfv"/>
         <size name="CullParameterdv"/>
     </enum>
-    <enum name="CULL_VERTEX_EYE_POSITION_EXT"  count="4"  value="0x81AC">
+    <enum name="CULL_VERTEX_OBJECT_POSITION_EXT" count="4" value="0x81AC">
         <size name="CullParameterfv"/>
         <size name="CullParameterdv"/>
     </enum>
         <param name="v" type="const GLdouble *"/>
     </function>
 
-    <function name="SecondaryColor3fEXT" offset="assign" vectorequiv="SecondaryColor3fvEXT">
+    <function name="SecondaryColor3fEXT" vectorequiv="SecondaryColor3fvEXT">
         <param name="red" type="GLfloat"/>
         <param name="green" type="GLfloat"/>
         <param name="blue" type="GLfloat"/>
     </function>
 
-    <function name="SecondaryColor3fvEXT" offset="assign">
+    <function name="SecondaryColor3fvEXT">
         <param name="v" type="const GLfloat *" count="3"/>
         <glx rop="4129"/>
     </function>
 </category>
 
 <category name="GL_EXT_multi_draw_arrays" number="148">
-    <function name="MultiDrawArraysEXT" es1="1.0" es2="2.0" alias="MultiDrawArrays">
+    <function name="MultiDrawArraysEXT" es1="1.0" es2="2.0" exec="dynamic" alias="MultiDrawArrays">
         <param name="mode" type="GLenum"/>
         <param name="first" type="const GLint *"/>
         <param name="count" type="const GLsizei *"/>
         <param name="primcount" type="GLsizei"/>
     </function>
 
-    <function name="MultiDrawElementsEXT" offset="assign" es1="1.0" es2="2.0"
-              exec="dynamic">
+    <function name="MultiDrawElementsEXT" es1="1.0" es2="2.0" exec="dynamic" marshal="custom">
         <param name="mode" type="GLenum"/>
-        <param name="count" type="const GLsizei *"/>
+        <param name="count" type="const GLsizei *" count="primcount"/>
         <param name="type" type="GLenum"/>
-        <param name="indices" type="const GLvoid * const *"/>
+        <param name="indices" type="const GLvoid * const *" count="(sizeof(GLvoid *) * primcount)"/>
         <param name="primcount" type="GLsizei"/>
         <glx handcode="true"/>
     </function>
 </category>
 
 <category name="GL_EXT_fog_coord" number="149">
-    <function name="FogCoordfEXT" offset="assign" vectorequiv="FogCoordfvEXT"
-              exec="dynamic">
+    <function name="FogCoordfEXT" vectorequiv="FogCoordfvEXT" exec="dynamic">
         <param name="coord" type="GLfloat"/>
     </function>
 
-    <function name="FogCoordfvEXT" offset="assign" exec="dynamic">
+    <function name="FogCoordfvEXT" exec="dynamic">
         <param name="coord" type="const GLfloat *" count="1"/>
         <glx rop="4124"/>
     </function>
 
 <!-- Extension number 180 is not listed in the extension registry. -->
 
+<category name="GL_ARB_sample_locations" number="181">
+    <enum name="SAMPLE_LOCATION_SUBPIXEL_BITS_ARB"             value="0x933D">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <enum name="SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB"          value="0x933E">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <enum name="SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB"         value="0x933F">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <enum name="PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB"   value="0x9340">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <enum name="SAMPLE_LOCATION_ARB"                           value="0x8E50">
+        <size name="GetMultisamplefv" mode="get"/>
+    </enum>
+
+    <enum name="PROGRAMMABLE_SAMPLE_LOCATION_ARB"              value="0x9341">
+        <size name="GetMultisamplefv" mode="get"/>
+    </enum>
+
+    <enum name="FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB" value="0x9342">
+        <size name="FramebufferParameteri"/>
+        <size name="GetFramebufferParameteriv"/>
+    </enum>
+
+    <enum name="FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB"    value="0x9343">
+        <size name="FramebufferParameteri"/>
+        <size name="GetFramebufferParameteriv"/>
+    </enum>
+
+    <function name="FramebufferSampleLocationsfvARB" no_error="true">
+        <param name="target" type="GLenum"/>
+        <param name="start"  type="GLuint"/>
+        <param name="count"  type="GLsizei"/>
+        <param name="v"      type="const GLfloat *" count="(2 * count)"/>
+    </function>
+
+    <function name="NamedFramebufferSampleLocationsfvARB" no_error="true">
+        <param name="framebuffer" type="GLuint"/>
+        <param name="start"       type="GLuint"/>
+        <param name="count"       type="GLsizei"/>
+        <param name="v"           type="const GLfloat *" count="(2 * count)"/>
+    </function>
+
+    <function name="EvaluateDepthValuesARB"/>
+</category>
+
+<category name="GL_NV_sample_locations" number="472">
+    <enum name="SAMPLE_LOCATION_SUBPIXEL_BITS_NV"             value="0x933D" alias="SAMPLE_LOCATION_SUBPIXEL_BITS_ARB">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <enum name="SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV"          value="0x933E" alias="SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <enum name="SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV"         value="0x933F" alias="SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <enum name="PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV"   value="0x9340" alias="PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <enum name="SAMPLE_LOCATION_NV"                           value="0x8E50" alias="SAMPLE_LOCATION_ARB">
+        <size name="GetMultisamplefv" mode="get"/>
+    </enum>
+
+    <enum name="PROGRAMMABLE_SAMPLE_LOCATION_NV"              value="0x9341" alias="PROGRAMMABLE_SAMPLE_LOCATION_ARB">
+        <size name="GetMultisamplefv" mode="get"/>
+    </enum>
+
+    <enum name="FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV" value="0x9342" alias="FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB">
+        <size name="FramebufferParameteri"/>
+        <size name="GetFramebufferParameteriv"/>
+    </enum>
+
+    <enum name="FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV"    value="0x9343" alias="FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB">
+        <size name="FramebufferParameteri"/>
+        <size name="GetFramebufferParameteriv"/>
+    </enum>
+
+    <function name="FramebufferSampleLocationsfvNV" no_error="true" es2="3.1" alias="FramebufferSampleLocationsfvARB">
+        <param name="target" type="GLenum"/>
+        <param name="start"  type="GLuint"/>
+        <param name="count"  type="GLsizei"/>
+        <param name="v"      type="const GLfloat *"/>
+    </function>
+
+    <function name="NamedFramebufferSampleLocationsfvNV" no_error="true" es2="3.1" alias="NamedFramebufferSampleLocationsfvARB">
+        <param name="framebuffer" type="GLuint"/>
+        <param name="start"       type="GLuint"/>
+        <param name="count"       type="GLsizei"/>
+        <param name="v"           type="const GLfloat *"/>
+    </function>
+
+    <function name="ResolveDepthValuesNV" es2="3.1" alias="EvaluateDepthValuesARB"/>
+</category>
+
 <category name="GL_SUN_convolution_border_modes" number="182">
     <enum name="WRAP_BORDER_SUN"                          value="0x81D4"/>
 </category>
 </category>
 
 <category name="GL_MESA_resize_buffers" number="196">
-    <function name="ResizeBuffersMESA" offset="assign" exec="skip">
+    <function name="ResizeBuffersMESA" exec="skip">
         <glx ignore="true"/>
     </function>
 </category>
         <param name="v" type="const GLshort *"/>
     </function>
 
-    <function name="WindowPos4dMESA" offset="assign" deprecated="3.1">
+    <function name="WindowPos4dMESA" deprecated="3.1">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4dvMESA" offset="assign" deprecated="3.1">
-        <param name="v" type="const GLdouble *"/>
+    <function name="WindowPos4dvMESA" deprecated="3.1">
+        <param name="v" type="const GLdouble *" count="4"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4fMESA" offset="assign" deprecated="3.1">
+    <function name="WindowPos4fMESA" deprecated="3.1">
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4fvMESA" offset="assign" deprecated="3.1">
-        <param name="v" type="const GLfloat *"/>
+    <function name="WindowPos4fvMESA" deprecated="3.1">
+        <param name="v" type="const GLfloat *" count="4"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4iMESA" offset="assign" deprecated="3.1">
+    <function name="WindowPos4iMESA" deprecated="3.1">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="z" type="GLint"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4ivMESA" offset="assign" deprecated="3.1">
-        <param name="v" type="const GLint *"/>
+    <function name="WindowPos4ivMESA" deprecated="3.1">
+        <param name="v" type="const GLint *" count="4"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4sMESA" offset="assign" deprecated="3.1">
+    <function name="WindowPos4sMESA" deprecated="3.1">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="WindowPos4svMESA" offset="assign" deprecated="3.1">
-        <param name="v" type="const GLshort *"/>
+    <function name="WindowPos4svMESA" deprecated="3.1">
+        <param name="v" type="const GLshort *" count="4"/>
         <glx ignore="true"/>
     </function>
 </category>
 </category>
 
 <category name="GL_IBM_multimode_draw_arrays" number="200">
-    <function name="MultiModeDrawArraysIBM" offset="assign" static_dispatch="false">
-        <param name="mode" type="const GLenum *"/>
-        <param name="first" type="const GLint *"/>
-        <param name="count" type="const GLsizei *"/>
+    <function name="MultiModeDrawArraysIBM" marshal="draw"
+              marshal_sync="_mesa_glthread_has_non_vbo_vertices(ctx)">
+        <param name="mode" type="const GLenum *" count="primcount"/>
+        <param name="first" type="const GLint *" count="primcount"/>
+        <param name="count" type="const GLsizei *" count="primcount"/>
         <param name="primcount" type="GLsizei"/>
         <param name="modestride" type="GLint"/>
         <glx handcode="true" ignore="true"/>
     </function>
 
-    <function name="MultiModeDrawElementsIBM" offset="assign" static_dispatch="false">
-        <param name="mode" type="const GLenum *"/>
-        <param name="count" type="const GLsizei *"/>
+    <function name="MultiModeDrawElementsIBM" marshal="draw"
+              marshal_sync="_mesa_glthread_has_non_vbo_vertices_or_indices(ctx)">
+        <param name="mode" type="const GLenum *" count="primcount"/>
+        <param name="count" type="const GLsizei *" count="primcount"/>
         <param name="type" type="GLenum"/>
-        <param name="indices" type="const GLvoid * const *"/>
+        <param name="indices" type="const GLvoid * const *" count="(sizeof(GLvoid *) * primcount)"/>
         <param name="primcount" type="GLsizei"/>
         <param name="modestride" type="GLint"/>
         <glx handcode="true" ignore="true"/>
 </category>
 
 <category name="GL_EXT_multisample" number="209">
-    <function name="SampleMaskEXT" alias="SampleMaskSGIS" static_dispatch="false">
+    <function name="SampleMaskEXT" alias="SampleMaskSGIS">
         <param name="value" type="GLclampf"/>
         <param name="invert" type="GLboolean"/>
     </function>
 
-    <function name="SamplePatternEXT" alias="SamplePatternSGIS" static_dispatch="false">
+    <function name="SamplePatternEXT" alias="SamplePatternSGIS">
         <param name="pattern" type="GLenum"/>
     </function>
 </category>
     <enum name="MAP2_VERTEX_ATTRIB14_4_NV"                value="0x867E"/>
     <enum name="MAP2_VERTEX_ATTRIB15_4_NV"                value="0x867F"/>
 
-    <function name="AreProgramsResidentNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="AreProgramsResidentNV" deprecated="3.1" exec="skip">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="ids" type="const GLuint *" count="n"/>
         <param name="residences" type="GLboolean *" output="true" count="n"/>
         <param name="programs" type="const GLuint *"/>
     </function>
 
-    <function name="ExecuteProgramNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="ExecuteProgramNV" deprecated="3.1" exec="skip">
         <param name="target" type="GLenum"/>
         <param name="id" type="GLuint"/>
         <param name="params" type="const GLfloat *" count="4"/>
          of these functions.
       -->
 
-    <function name="GetProgramParameterdvNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="GetProgramParameterdvNV" deprecated="3.1" exec="skip">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <glx vendorpriv="1297"/>
     </function>
 
-    <function name="GetProgramParameterfvNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="GetProgramParameterfvNV" deprecated="3.1" exec="skip">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <glx vendorpriv="1296"/>
     </function>
 
-    <function name="GetProgramivNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="GetProgramivNV" deprecated="3.1" exec="skip">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <glx vendorpriv="1298"/>
     </function>
 
-    <function name="GetProgramStringNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="GetProgramStringNV" deprecated="3.1" exec="skip">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="program" type="GLubyte *" output="true"/>
         <glx vendorpriv="1299" handcode="server" always_array="true"/>
     </function>
 
-    <function name="GetTrackMatrixivNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="GetTrackMatrixivNV" deprecated="3.1" exec="skip">
         <param name="target" type="GLenum"/>
         <param name="address" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <glx vendorpriv="1300"/>
     </function>
 
-    <function name="GetVertexAttribdvNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="GetVertexAttribdvNV" deprecated="3.1" exec="skip">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLdouble *" output="true" variable_param="pname"/>
         <glx vendorpriv="1301"/>
     </function>
 
-    <function name="GetVertexAttribfvNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="GetVertexAttribfvNV" deprecated="3.1" exec="skip">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLfloat *" output="true" variable_param="pname"/>
         <glx vendorpriv="1302"/>
     </function>
 
-    <function name="GetVertexAttribivNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="GetVertexAttribivNV" deprecated="3.1" exec="skip">
         <param name="index" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint *" output="true" variable_param="pname"/>
         <return type="GLboolean"/>
     </function>
 
-    <function name="LoadProgramNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="LoadProgramNV" deprecated="3.1" exec="skip">
         <param name="target" type="GLenum"/>
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei" counter="true"/>
         <param name="params" type="const GLfloat *"/>
     </function>
 
-    <function name="ProgramParameters4dvNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="ProgramParameters4dvNV" deprecated="3.1" exec="skip">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="num" type="GLsizei" counter="true"/>
         <glx rop="4187"/>
     </function>
 
-    <function name="ProgramParameters4fvNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="ProgramParameters4fvNV" deprecated="3.1" exec="skip">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="num" type="GLsizei" counter="true"/>
         <glx rop="4186"/>
     </function>
 
-    <function name="RequestResidentProgramsNV" offset="assign"
-              deprecated="3.1" exec="skip">
+    <function name="RequestResidentProgramsNV" deprecated="3.1" exec="skip">
         <param name="n" type="GLsizei" counter="true"/>
         <param name="ids" type="const GLuint *" count="n"/>
         <glx rop="4182"/>
     </function>
 
-    <function name="TrackMatrixNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="TrackMatrixNV" deprecated="3.1" exec="skip">
         <param name="target" type="GLenum"/>
         <param name="address" type="GLuint"/>
         <param name="matrix" type="GLenum"/>
         <glx rop="4188"/>
     </function>
 
-    <function name="VertexAttribPointerNV" offset="assign" deprecated="3.1"
-              exec="skip">
+    <function name="VertexAttribPointerNV" deprecated="3.1" exec="skip">
         <param name="index" type="GLuint"/>
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="VertexAttrib1sNV" offset="assign"
+    <function name="VertexAttrib1sNV"
               vectorequiv="VertexAttrib1svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib1svNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttrib1svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="1"/>
         <glx rop="4265"/>
     </function>
 
-    <function name="VertexAttrib2sNV" offset="assign"
+    <function name="VertexAttrib2sNV"
               vectorequiv="VertexAttrib2svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib2svNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttrib2svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="2"/>
         <glx rop="4266"/>
     </function>
 
-    <function name="VertexAttrib3sNV" offset="assign"
+    <function name="VertexAttrib3sNV"
               vectorequiv="VertexAttrib3svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="z" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib3svNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttrib3svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="4267"/>
     </function>
 
-    <function name="VertexAttrib4sNV" offset="assign"
+    <function name="VertexAttrib4sNV"
               vectorequiv="VertexAttrib4svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="w" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib4svNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttrib4svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="4268"/>
     </function>
 
-    <function name="VertexAttrib1fNV" offset="assign"
-              vectorequiv="VertexAttrib1fvNV" deprecated="3.1"
-              exec="dynamic">
+    <function name="VertexAttrib1fNV"
+              vectorequiv="VertexAttrib1fvNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib1fvNV" offset="assign" deprecated="3.1"
-              exec="dynamic">
+    <function name="VertexAttrib1fvNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="1"/>
         <glx rop="4269"/>
     </function>
 
-    <function name="VertexAttrib2fNV" offset="assign"
-              vectorequiv="VertexAttrib2fvNV" deprecated="3.1"
-              exec="dynamic">
+    <function name="VertexAttrib2fNV"
+              vectorequiv="VertexAttrib2fvNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib2fvNV" offset="assign" deprecated="3.1"
-              exec="dynamic">
+    <function name="VertexAttrib2fvNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="2"/>
         <glx rop="4270"/>
     </function>
 
-    <function name="VertexAttrib3fNV" offset="assign"
-              vectorequiv="VertexAttrib3fvNV" deprecated="3.1"
-              exec="dynamic">
+    <function name="VertexAttrib3fNV"
+              vectorequiv="VertexAttrib3fvNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="z" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib3fvNV" offset="assign" deprecated="3.1"
-              exec="dynamic">
+    <function name="VertexAttrib3fvNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="3"/>
         <glx rop="4271"/>
     </function>
 
-    <function name="VertexAttrib4fNV" offset="assign"
-              vectorequiv="VertexAttrib4fvNV" deprecated="3.1"
-              exec="dynamic">
+    <function name="VertexAttrib4fNV"
+              vectorequiv="VertexAttrib4fvNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLfloat"/>
         <param name="y" type="GLfloat"/>
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="VertexAttrib4fvNV" offset="assign" deprecated="3.1"
-              exec="dynamic">
+    <function name="VertexAttrib4fvNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *" count="4"/>
         <glx rop="4272"/>
     </function>
 
-    <function name="VertexAttrib1dNV" offset="assign"
+    <function name="VertexAttrib1dNV"
               vectorequiv="VertexAttrib1dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib1dvNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttrib1dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="1"/>
         <glx rop="4273" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib2dNV" offset="assign"
+    <function name="VertexAttrib2dNV"
               vectorequiv="VertexAttrib2dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib2dvNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttrib2dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="2"/>
         <glx rop="4274" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib3dNV" offset="assign"
+    <function name="VertexAttrib3dNV"
               vectorequiv="VertexAttrib3dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib3dvNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttrib3dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="4275" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4dNV" offset="assign"
+    <function name="VertexAttrib4dNV"
               vectorequiv="VertexAttrib4dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib4dvNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttrib4dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="4"/>
         <glx rop="4276" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4ubNV" offset="assign"
+    <function name="VertexAttrib4ubNV"
               vectorequiv="VertexAttrib4ubvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLubyte"/>
         <param name="w" type="GLubyte"/>
     </function>
 
-    <function name="VertexAttrib4ubvNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttrib4ubvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
         <glx rop="4277"/>
     </function>
 
-    <function name="VertexAttribs1svNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttribs1svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLshort *" count="n"/>
         <glx rop="4202"/>
     </function>
 
-    <function name="VertexAttribs2svNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttribs2svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLshort *" count="n" count_scale="2"/>
         <glx rop="4203"/>
     </function>
 
-    <function name="VertexAttribs3svNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttribs3svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLshort *" count="n" count_scale="3"/>
         <glx rop="4204"/>
     </function>
 
-    <function name="VertexAttribs4svNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttribs4svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLshort *" count="n" count_scale="4"/>
         <glx rop="4205"/>
     </function>
 
-    <function name="VertexAttribs1fvNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttribs1fvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLfloat *" count="n"/>
         <glx rop="4206"/>
     </function>
 
-    <function name="VertexAttribs2fvNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttribs2fvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLfloat *" count="n" count_scale="2"/>
         <glx rop="4207"/>
     </function>
 
-    <function name="VertexAttribs3fvNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttribs3fvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLfloat *" count="n" count_scale="3"/>
         <glx rop="4208"/>
     </function>
 
-    <function name="VertexAttribs4fvNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttribs4fvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLfloat *" count="n" count_scale="4"/>
         <glx rop="4209"/>
     </function>
 
-    <function name="VertexAttribs1dvNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttribs1dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLdouble *" count="n"/>
         <glx rop="4210" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttribs2dvNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttribs2dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLdouble *" count="n" count_scale="2"/>
         <glx rop="4211" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttribs3dvNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttribs3dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLdouble *" count="n" count_scale="3"/>
         <glx rop="4212" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttribs4dvNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttribs4dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLdouble *" count="n" count_scale="4"/>
         <glx rop="4213" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttribs4ubvNV" offset="assign" deprecated="3.1">
+    <function name="VertexAttribs4ubvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLubyte *" count="n" count_scale="4"/>
         <size name="GetTexEnviv" mode="get"/>
         <size name="GetTexEnvfv" mode="get"/>
     </enum>
-    <function name="TexBumpParameterfvATI" offset="assign" deprecated="3.1" exec="skip">
+    <function name="TexBumpParameterfvATI" deprecated="3.1" exec="skip">
       <param name="pname" type="GLenum"/>
       <param name="param" type="const GLfloat *" variable_param="pname"/>
       <glx ignore="true"/>
     </function>
-    <function name="TexBumpParameterivATI" offset="assign" deprecated="3.1" exec="skip">
+    <function name="TexBumpParameterivATI" deprecated="3.1" exec="skip">
       <param name="pname" type="GLenum"/>
       <param name="param" type="const GLint *" variable_param="pname"/>
       <glx ignore="true"/>
     </function>
-    <function name="GetTexBumpParameterfvATI" offset="assign" deprecated="3.1" exec="skip">
+    <function name="GetTexBumpParameterfvATI" deprecated="3.1" exec="skip">
       <param name="pname" type="GLenum"/>
       <param name="param" type="GLfloat *" variable_param="pname"/>
       <glx ignore="true"/>
     </function>
-    <function name="GetTexBumpParameterivATI" offset="assign" deprecated="3.1" exec="skip">
+    <function name="GetTexBumpParameterivATI" deprecated="3.1" exec="skip">
       <param name="pname" type="GLenum"/>
       <param name="param" type="GLint *" variable_param="pname"/>
       <glx ignore="true"/>
     redudndant garbage.  There are a lot of enums with the value 0x00000001.
     -->
 
-    <function name="GenFragmentShadersATI" offset="assign" deprecated="3.1">
+    <function name="GenFragmentShadersATI" deprecated="3.1">
       <return type="GLuint"/>
       <param name="range" type="GLuint"/>
       <glx ignore="true"/>
     </function>
     
-    <function name="BindFragmentShaderATI" offset="assign" deprecated="3.1">
+    <function name="BindFragmentShaderATI" deprecated="3.1">
       <param name="id" type="GLuint"/>
       <glx ignore="true"/>
     </function>
 
-    <function name="DeleteFragmentShaderATI" offset="assign" deprecated="3.1">
+    <function name="DeleteFragmentShaderATI" deprecated="3.1">
       <param name="id" type="GLuint"/>
       <glx ignore="true"/>
     </function>
 
-    <function name="BeginFragmentShaderATI" offset="assign" deprecated="3.1">
+    <function name="BeginFragmentShaderATI" deprecated="3.1">
       <glx ignore="true"/>
     </function>
 
-    <function name="EndFragmentShaderATI" offset="assign" deprecated="3.1">
+    <function name="EndFragmentShaderATI" deprecated="3.1">
       <glx ignore="true"/>
     </function>
     
-    <function name="PassTexCoordATI" offset="assign" deprecated="3.1">
+    <function name="PassTexCoordATI" deprecated="3.1">
       <param name="dst" type="GLuint"/>
       <param name="coord" type="GLuint"/>
       <param name="swizzle" type="GLenum"/>
       <glx ignore="true"/>
     </function>
 
-    <function name="SampleMapATI" offset="assign" deprecated="3.1">
+    <function name="SampleMapATI" deprecated="3.1">
       <param name="dst" type="GLuint"/>
       <param name="interp" type="GLuint"/>
       <param name="swizzle" type="GLenum"/>
       <glx ignore="true"/>
     </function>
 
-    <function name="ColorFragmentOp1ATI" offset="assign" deprecated="3.1">
+    <function name="ColorFragmentOp1ATI" deprecated="3.1">
       <param name="op" type="GLenum"/>
       <param name="dst" type="GLuint"/>
       <param name="dstMask" type="GLuint"/>
       <glx ignore="true"/>
     </function>
 
-    <function name="ColorFragmentOp2ATI" offset="assign" deprecated="3.1">
+    <function name="ColorFragmentOp2ATI" deprecated="3.1">
       <param name="op" type="GLenum"/>
       <param name="dst" type="GLuint"/>
       <param name="dstMask" type="GLuint"/>
       <glx ignore="true"/>
     </function>
 
-    <function name="ColorFragmentOp3ATI" offset="assign" deprecated="3.1">
+    <function name="ColorFragmentOp3ATI" deprecated="3.1">
       <param name="op" type="GLenum"/>
       <param name="dst" type="GLuint"/>
       <param name="dstMask" type="GLuint"/>
       <glx ignore="true"/>
     </function>
 
-    <function name="AlphaFragmentOp1ATI" offset="assign" deprecated="3.1">
+    <function name="AlphaFragmentOp1ATI" deprecated="3.1">
       <param name="op" type="GLenum"/>
       <param name="dst" type="GLuint"/>
       <param name="dstMod" type="GLuint"/>
       <glx ignore="true"/>
     </function>
 
-    <function name="AlphaFragmentOp2ATI" offset="assign" deprecated="3.1">
+    <function name="AlphaFragmentOp2ATI" deprecated="3.1">
       <param name="op" type="GLenum"/>
       <param name="dst" type="GLuint"/>
       <param name="dstMod" type="GLuint"/>
       <glx ignore="true"/>
     </function>
 
-    <function name="AlphaFragmentOp3ATI" offset="assign" deprecated="3.1">
+    <function name="AlphaFragmentOp3ATI" deprecated="3.1">
       <param name="op" type="GLenum"/>
       <param name="dst" type="GLuint"/>
       <param name="dstMod" type="GLuint"/>
       <glx ignore="true"/>
     </function>
 
-    <function name="SetFragmentShaderConstantATI" offset="assign"
-              deprecated="3.1">
+    <function name="SetFragmentShaderConstantATI" deprecated="3.1">
       <param name="dst" type="GLuint"/>
-      <param name="value" type="const GLfloat *"/>
+      <param name="value" type="const GLfloat *" count="4"/>
       <glx ignore="true"/>
     </function>
 </category>
         <size name="Get" mode="get"/>
     </enum>
 
-    <function name="ActiveStencilFaceEXT" offset="assign"
-              static_dispatch="false" deprecated="3.1">
+    <function name="ActiveStencilFaceEXT" deprecated="3.1">
         <param name="face" type="GLenum"/>
         <glx rop="4220"/>
     </function>
     <enum name="MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV" value="0x8868"/>
     <enum name="PROGRAM_ERROR_STRING_NV"                  value="0x8874"/>
 
-    <function name="ProgramNamedParameter4fNV" offset="assign"
+    <function name="ProgramNamedParameter4fNV"
               vectorequiv="ProgramNamedParameter4fvNV" deprecated="3.1"
               exec="skip">
         <param name="id" type="GLuint"/>
         <param name="w" type="GLfloat"/>
     </function>
 
-    <function name="ProgramNamedParameter4dNV" offset="assign"
+    <function name="ProgramNamedParameter4dNV"
               vectorequiv="ProgramNamedParameter4dvNV" deprecated="3.1"
               exec="skip">
         <param name="id" type="GLuint"/>
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="ProgramNamedParameter4fvNV" offset="assign"
-              deprecated="3.1" exec="skip">
+    <function name="ProgramNamedParameter4fvNV" deprecated="3.1" exec="skip">
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei" counter="true"/>
         <param name="name" type="const GLubyte *" count="len"/>
         <glx rop="4218"/>
     </function>
 
-    <function name="ProgramNamedParameter4dvNV" offset="assign"
-              deprecated="3.1" exec="skip">
+    <function name="ProgramNamedParameter4dvNV" deprecated="3.1" exec="skip">
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei" counter="true"/>
         <param name="name" type="const GLubyte *" count="len"/>
         <glx rop="4219"/>
     </function>
 
-    <function name="GetProgramNamedParameterfvNV" offset="assign"
-              deprecated="3.1" exec="skip">
+    <function name="GetProgramNamedParameterfvNV" deprecated="3.1" exec="skip">
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei" counter="true"/>
         <param name="name" type="const GLubyte *" count="len"/>
         <glx vendorpriv="1310" always_array="true"/>
     </function>
 
-    <function name="GetProgramNamedParameterdvNV" offset="assign"
-              deprecated="3.1" exec="skip">
+    <function name="GetProgramNamedParameterdvNV" deprecated="3.1" exec="skip">
         <param name="id" type="GLuint"/>
         <param name="len" type="GLsizei" counter="true"/>
         <param name="name" type="const GLubyte *" count="len"/>
         <size name="Get" mode="get"/>
     </enum>
 
-    <function name="DepthBoundsEXT" offset="assign" static_dispatch="false">
+    <function name="DepthBoundsEXT">
         <param name="zmin" type="GLclampd"/>
         <param name="zmax" type="GLclampd"/>
         <glx rop="4229" ignore="true"/>
         <size name="Get" mode="get"/>
     </enum>
 
-    <function name="BlendEquationSeparateEXT" static_dispatch="false" alias="BlendEquationSeparate">
+    <function name="BlendEquationSeparateEXT" alias="BlendEquationSeparate">
         <param name="modeRGB" type="GLenum"/>
         <param name="modeA" type="GLenum"/>
     </function>
 
 <xi:include href="EXT_framebuffer_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
+<xi:include href="GREMEDY_string_marker.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
 <xi:include href="EXT_packed_depth_stencil.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <xi:include href="EXT_provoking_vertex.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
     <enum name="BUFFER_FLUSHING_UNMAP_APPLE" count="1" value="0x8A13">
         <size name="GetBufferParameteriv" mode="get"/>
     </enum>
-    <function name="BufferParameteriAPPLE" offset="assign"
-              static_dispatch="false" exec="skip">
+    <function name="BufferParameteriAPPLE" exec="skip">
         <param name="target" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
     </function>
-    <function name="FlushMappedBufferRangeAPPLE" offset="assign"
-              static_dispatch="false" exec="skip">
+    <function name="FlushMappedBufferRangeAPPLE" exec="skip">
         <param name="target" type="GLenum"/>
         <param name="offset" type="GLintptr"/>
         <param name="size" type="GLsizeiptr"/>
     <enum name="FRAMEBUFFER_SRGB_CAPABLE_EXT"      value="0x8DBA"/>
 </category>
 
+<category name="GL_ATI_meminfo" number="359">
+    <enum name="VBO_FREE_MEMORY_ATI"          value="0x87FB" />
+    <enum name="TEXTURE_FREE_MEMORY_ATI"      value="0x87FC" />
+    <enum name="RENDERBUFFER_FREE_MEMORY_ATI" value="0x87FD" />
+</category>
+
 <xi:include href="AMD_performance_monitor.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <category name="GL_APPLE_texture_range" number="367">
 <xi:include href="EXT_separate_shader_objects.xml"
            xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
+<xi:include href="NV_copy_image.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<xi:include href="EXT_vertex_attrib_64bit.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<xi:include href="AMD_depth_clamp_separate.xml"
+           xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<xi:include href="EXT_direct_state_access.xml"
+            xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<xi:include href="EXT_shader_image_load_store.xml"
+            xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
 <category name="GL_EXT_texture_sRGB_decode" number="402">
     <enum name="TEXTURE_SRGB_DECODE_EXT"              value="0x8A48"/>
     <enum name="DECODE_EXT"                           value="0x8A49"/>
     <enum name="SKIP_DECODE_EXT"                      value="0x8A4A"/>
 </category>
 
+<category name="GL_AMD_pinned_memory" number="411">
+    <enum name="EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD"   value="0x9160"/>
+</category>
+
+<category name="GL_NVX_gpu_memory_info" number="438">
+    <enum name="GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX"         value="0x9047" />
+    <enum name="GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX"   value="0x9048" />
+    <enum name="GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX" value="0x9049" />
+    <enum name="GPU_MEMORY_INFO_EVICTION_COUNT_NVX"           value="0x904A" />
+    <enum name="GPU_MEMORY_INFO_EVICTED_MEMORY_NVX"           value="0x904B" />
+</category>
+
+<xi:include href="AMD_gpu_shader_int64.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<category name="GL_NV_fill_rectangle" number="466">
+    <enum name="FILL_RECTANGLE_NV" value="0x933C"/>
+</category>
+
+<category name="GL_INTEL_conservative_rasterization" number="491">
+  <enum name="CONSERVATIVE_RASTERIZATION_INTEL" value="0x83FE"/>
+</category>
+
+<category name="GL_NV_conservative_raster" number="465">
+    <enum name="CONSERVATIVE_RASTERIZATION_NV"       value="0x9346">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SUBPIXEL_PRECISION_BIAS_X_BITS_NV"   value="0x9347">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="SUBPIXEL_PRECISION_BIAS_Y_BITS_NV"   value="0x9348">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV" value="0x9349">
+        <size name="Get" mode="get"/>
+    </enum>
+    <function name="SubpixelPrecisionBiasNV" es1="1.0" es2="2.0" no_error="true">
+        <param name="xbits" type="GLuint"/>
+        <param name="ybits" type="GLuint"/>
+    </function>
+</category>
+
+<category name="GL_NV_conservative_raster_dilate" number="480">
+    <enum name="CONSERVATIVE_RASTER_DILATE_NV"             value="0x9379">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CONSERVATIVE_RASTER_DILATE_RANGE_NV"       value="0x937A">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV" value="0x937B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <function name="ConservativeRasterParameterfNV" es1="1.0" es2="2.0" no_error="true">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLfloat"/>
+    </function>
+</category>
+
+<category name="GL_NV_conservative_pre_snap_triangles" number="487">
+    <enum name="CONSERVATIVE_RASTER_MODE_NV"       value="0x954D">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="CONSERVATIVE_RASTER_MODE_POST_SNAP_NV"   value="0x954E"/>
+    <enum name="CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV"   value="0x954F"/>
+    <function name="ConservativeRasterParameteriNV" es1="1.0" es2="2.0" no_error="true">
+        <param name="pname" type="GLenum"/>
+        <param name="param" type="GLint"/>
+    </function>
+</category>
+
 <xi:include href="INTEL_performance_query.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
+<xi:include href="NV_alpha_to_coverage_dither_control.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<category name="GL_EXT_polygon_offset_clamp" number="460">
+    <enum name="POLYGON_OFFSET_CLAMP_EXT"             value="0x8E1B">
+        <size name="Get" mode="get"/>
+    </enum>
+    <function name="PolygonOffsetClampEXT" es1="1.0" es2="2.0">
+        <param name="factor" type="GLfloat"/>
+        <param name="units"  type="GLfloat"/>
+        <param name="clamp"  type="GLfloat"/>
+    </function>
+</category>
+
+<xi:include href="EXT_window_rectangles.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<!-- 520. GL_EXT_shader_framebuffer_fetch -->
+<category name="GL_EXT_shader_framebuffer_fetch" number="520">
+    <enum name="FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT" value="0x8A52"/>
+    <function name="FramebufferFetchBarrierEXT" es2="2.0"/>
+</category>
+
 <!-- Unnumbered extensions sorted by name. -->
 
+<category name="GL_AMD_framebuffer_multisample_advanced">
+    <enum name="RENDERBUFFER_STORAGE_SAMPLES_AMD"          value="0x91B2"/>
+    <enum name="MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD"         value="0x91B3"/>
+    <enum name="MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD" value="0x91B4"/>
+    <enum name="MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD" value="0x91B5"/>
+    <enum name="NUM_SUPPORTED_MULTISAMPLE_MODES_AMD"       value="0x91B6"/>
+    <enum name="SUPPORTED_MULTISAMPLE_MODES_AMD"           value="0x91B7"/>
+
+    <function name="RenderbufferStorageMultisampleAdvancedAMD" es2="3.0">
+        <param name="target" type="GLenum"/>
+        <param name="samples" type="GLsizei"/>
+        <param name="storageSamples" type="GLsizei"/>
+        <param name="internalformat" type="GLenum"/>
+        <param name="width" type="GLsizei"/>
+        <param name="height" type="GLsizei"/>
+    </function>
+
+    <function name="NamedRenderbufferStorageMultisampleAdvancedAMD" es2="3.0">
+       <param name="renderbuffer" type="GLuint" />
+       <param name="samples" type="GLsizei" />
+       <param name="storageSamples" type="GLsizei"/>
+       <param name="internalformat" type="GLenum" />
+       <param name="width" type="GLsizei" />
+       <param name="height" type="GLsizei" />
+    </function>
+</category>
+
 <category name="GL_ATI_blend_equation_separate">
-    <function name="BlendEquationSeparateATI" alias="BlendEquationSeparate" static_dispatch="false">
+    <function name="BlendEquationSeparateATI" alias="BlendEquationSeparate">
         <param name="modeRGB" type="GLenum"/>
         <param name="modeA" type="GLenum"/>
     </function>
         <size name="Get" mode="get"/>
     </enum>
 
-    <function name="StencilOpSeparateATI" alias="StencilOpSeparate" static_dispatch="false">
+    <function name="StencilOpSeparateATI" alias="StencilOpSeparate">
         <param name="face" type="GLenum"/>
         <param name="sfail" type="GLenum"/>
         <param name="zfail" type="GLenum"/>
         <param name="zpass" type="GLenum"/>
     </function>
-    <function name="StencilFuncSeparateATI" offset="assign"
-              static_dispatch="false" deprecated="3.1">
+    <function name="StencilFuncSeparateATI" deprecated="3.1">
         <param name="frontfunc" type="GLenum"/>
         <param name="backfunc" type="GLenum"/>
         <param name="ref" type="GLint"/>
 </category>
 
 <category name="GL_EXT_gpu_program_parameters">
-    <function name="ProgramEnvParameters4fvEXT" offset="assign"
-              static_dispatch="false" deprecated="3.1">
+    <function name="ProgramEnvParameters4fvEXT" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="count" type="GLsizei"/>
-        <param name="params" type="const GLfloat *"/>
+        <param name="params" type="const GLfloat *" count="4"/>
     </function>
 
-    <function name="ProgramLocalParameters4fvEXT" offset="assign"
-              static_dispatch="false" deprecated="3.1">
+    <function name="ProgramLocalParameters4fvEXT" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="count" type="GLsizei"/>
-        <param name="params" type="const GLfloat *"/>
+        <param name="params" type="const GLfloat *" count="4"/>
     </function>
 </category>
 
     <enum name="TIME_ELAPSED_EXT" value="0x88BF"/>
     <type name="int64EXT"                  size="8"/>
     <type name="uint64EXT" unsigned="true" size="8"/>
-    <function name="GetQueryObjecti64vEXT" static_dispatch="false" alias="GetQueryObjecti64v">
+    <function name="GetQueryObjecti64vEXT" alias="GetQueryObjecti64v" es2="2.0">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLint64EXT *"/>
     </function>
-    <function name="GetQueryObjectui64vEXT" static_dispatch="false" alias="GetQueryObjectui64v">
+    <function name="GetQueryObjectui64vEXT" alias="GetQueryObjectui64v" es2="2.0">
         <param name="id" type="GLuint"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLuint64EXT *"/>
 </category>
 
 <category name="GL_INGR_blend_func_separate">
-    <function name="BlendFuncSeparateINGR" alias="BlendFuncSeparate" static_dispatch="false">
+    <function name="BlendFuncSeparateINGR" alias="BlendFuncSeparate">
         <param name="sfactorRGB" type="GLenum"/>
         <param name="dfactorRGB" type="GLenum"/>
         <param name="sfactorAlpha" type="GLenum"/>
         <size name="PointParameterfv"/>
     </enum>
 
-    <function name="PointParameterfSGIS" alias="PointParameterf" static_dispatch="false">
+    <function name="PointParameterfSGIS" alias="PointParameterf">
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
     </function>
 
-    <function name="PointParameterfvSGIS" alias="PointParameterfv" static_dispatch="false">
+    <function name="PointParameterfvSGIS" alias="PointParameterfv">
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLfloat *"/>
     </function>
     </function>
 </category>
 
+<category name="GL_MESA_internal_functions">
+    <!-- Internal function for glthread to implement BufferSubData as a GPU copy. -->
+    <function name="InternalBufferSubDataCopyMESA" es2="2.0">
+        <param name="srcBuffer" type="GLintptr"/> <!-- "struct gl_buffer_object *" really -->
+        <param name="srcOffset" type="GLuint"/>
+        <param name="dstTargetOrName" type="GLuint"/>
+        <param name="dstOffset" type="GLintptr"/>
+        <param name="size" type="GLsizeiptr"/>
+        <param name="named" type="GLboolean"/>
+        <param name="ext_dsa" type="GLboolean"/>
+    </function>
+</category>
+
 <xi:include href="OES_EGL_image.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+<xi:include href="EXT_EGL_image_storage.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <xi:include href="EXT_texture_integer.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 
 <xi:include href="NV_vdpau_interop.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
+<xi:include href="EXT_external_objects.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+<xi:include href="EXT_external_objects_fd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+<xi:include href="NV_viewport_swizzle.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
 <xi:include href="GL4x.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 </OpenGLAPI>