mesa: remove api_loopback to remove call indirections

This is an optimization for SPECviewperf.

The increase in lines of code is only 14%.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6874>
diff --git a/src/mapi/glapi/gen/GL3x.xml b/src/mapi/glapi/gen/GL3x.xml
index 6c25692..f950646 100644
--- a/src/mapi/glapi/gen/GL3x.xml
+++ b/src/mapi/glapi/gen/GL3x.xml
@@ -330,7 +330,7 @@
     <param name="w" type="GLuint"/>
   </function>
 
-  <function name="VertexAttribI1iv">
+  <function name="VertexAttribI1iv" exec="dynamic">
     <param name="index" type="GLuint"/>
     <param name="v" type="const GLint *" count="1"/>
   </function>
@@ -350,7 +350,7 @@
     <param name="v" type="const GLint *"/>
   </function>
 
-  <function name="VertexAttribI1uiv">
+  <function name="VertexAttribI1uiv" exec="dynamic">
     <param name="index" type="GLuint"/>
     <param name="v" type="const GLuint *" count="1"/>
   </function>
@@ -370,22 +370,22 @@
     <param name="v" type="const GLuint *"/>
   </function>
 
-  <function name="VertexAttribI4bv">
+  <function name="VertexAttribI4bv" exec="dynamic">
     <param name="index" type="GLuint"/>
     <param name="v" type="const GLbyte *" count="4"/>
   </function>
 
-  <function name="VertexAttribI4sv">
+  <function name="VertexAttribI4sv" exec="dynamic">
     <param name="index" type="GLuint"/>
     <param name="v" type="const GLshort *" count="4"/>
   </function>
 
-  <function name="VertexAttribI4ubv">
+  <function name="VertexAttribI4ubv" exec="dynamic">
     <param name="index" type="GLuint"/>
     <param name="v" type="const GLubyte *" count="4"/>
   </function>
 
-  <function name="VertexAttribI4usv">
+  <function name="VertexAttribI4usv" exec="dynamic">
     <param name="index" type="GLuint"/>
     <param name="v" type="const GLushort *" count="4"/>
   </function>
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index 432749a..e172c8c 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -1168,24 +1168,24 @@
         <glx rop="5" large="true"/>
     </function>
 
-    <function name="Color3b" vectorequiv="Color3bv" deprecated="3.1">
+    <function name="Color3b" vectorequiv="Color3bv" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLbyte"/>
         <param name="green" type="GLbyte"/>
         <param name="blue" type="GLbyte"/>
     </function>
 
-    <function name="Color3bv" deprecated="3.1">
+    <function name="Color3bv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLbyte *" count="3"/>
         <glx rop="6"/>
     </function>
 
-    <function name="Color3d" vectorequiv="Color3dv" deprecated="3.1">
+    <function name="Color3d" vectorequiv="Color3dv" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLdouble"/>
         <param name="green" type="GLdouble"/>
         <param name="blue" type="GLdouble"/>
     </function>
 
-    <function name="Color3dv" deprecated="3.1">
+    <function name="Color3dv" deprecated="3.1"  exec="dynamic">
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="7"/>
     </function>
@@ -1202,81 +1202,81 @@
         <glx rop="8"/>
     </function>
 
-    <function name="Color3i" vectorequiv="Color3iv" deprecated="3.1">
+    <function name="Color3i" vectorequiv="Color3iv" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLint"/>
         <param name="green" type="GLint"/>
         <param name="blue" type="GLint"/>
     </function>
 
-    <function name="Color3iv" deprecated="3.1">
+    <function name="Color3iv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLint *" count="3"/>
         <glx rop="9"/>
     </function>
 
-    <function name="Color3s" vectorequiv="Color3sv" deprecated="3.1">
+    <function name="Color3s" vectorequiv="Color3sv" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLshort"/>
         <param name="green" type="GLshort"/>
         <param name="blue" type="GLshort"/>
     </function>
 
-    <function name="Color3sv" deprecated="3.1">
+    <function name="Color3sv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="10"/>
     </function>
 
-    <function name="Color3ub" vectorequiv="Color3ubv" deprecated="3.1">
+    <function name="Color3ub" vectorequiv="Color3ubv" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLubyte"/>
         <param name="green" type="GLubyte"/>
         <param name="blue" type="GLubyte"/>
     </function>
 
-    <function name="Color3ubv" deprecated="3.1">
+    <function name="Color3ubv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLubyte *" count="3"/>
         <glx rop="11"/>
     </function>
 
-    <function name="Color3ui" vectorequiv="Color3uiv" deprecated="3.1">
+    <function name="Color3ui" vectorequiv="Color3uiv" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLuint"/>
         <param name="green" type="GLuint"/>
         <param name="blue" type="GLuint"/>
     </function>
 
-    <function name="Color3uiv" deprecated="3.1">
+    <function name="Color3uiv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLuint *" count="3"/>
         <glx rop="12"/>
     </function>
 
-    <function name="Color3us" vectorequiv="Color3usv" deprecated="3.1">
+    <function name="Color3us" vectorequiv="Color3usv" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLushort"/>
         <param name="green" type="GLushort"/>
         <param name="blue" type="GLushort"/>
     </function>
 
-    <function name="Color3usv" deprecated="3.1">
+    <function name="Color3usv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLushort *" count="3"/>
         <glx rop="13"/>
     </function>
 
-    <function name="Color4b" vectorequiv="Color4bv" deprecated="3.1">
+    <function name="Color4b" vectorequiv="Color4bv" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLbyte"/>
         <param name="green" type="GLbyte"/>
         <param name="blue" type="GLbyte"/>
         <param name="alpha" type="GLbyte"/>
     </function>
 
-    <function name="Color4bv" deprecated="3.1">
+    <function name="Color4bv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLbyte *" count="4"/>
         <glx rop="14"/>
     </function>
 
-    <function name="Color4d" vectorequiv="Color4dv" deprecated="3.1">
+    <function name="Color4d" vectorequiv="Color4dv" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLdouble"/>
         <param name="green" type="GLdouble"/>
         <param name="blue" type="GLdouble"/>
         <param name="alpha" type="GLdouble"/>
     </function>
 
-    <function name="Color4dv" deprecated="3.1">
+    <function name="Color4dv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLdouble *" count="4"/>
         <glx rop="15"/>
     </function>
@@ -1294,31 +1294,31 @@
         <glx rop="16"/>
     </function>
 
-    <function name="Color4i" vectorequiv="Color4iv" deprecated="3.1">
+    <function name="Color4i" vectorequiv="Color4iv" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLint"/>
         <param name="green" type="GLint"/>
         <param name="blue" type="GLint"/>
         <param name="alpha" type="GLint"/>
     </function>
 
-    <function name="Color4iv" deprecated="3.1">
+    <function name="Color4iv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="17"/>
     </function>
 
-    <function name="Color4s" vectorequiv="Color4sv" deprecated="3.1">
+    <function name="Color4s" vectorequiv="Color4sv" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLshort"/>
         <param name="green" type="GLshort"/>
         <param name="blue" type="GLshort"/>
         <param name="alpha" type="GLshort"/>
     </function>
 
-    <function name="Color4sv" deprecated="3.1">
+    <function name="Color4sv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="18"/>
     </function>
 
-    <function name="Color4ub" vectorequiv="Color4ubv" es1="1.1"
+    <function name="Color4ub" vectorequiv="Color4ubv" es1="1.1" exec="dynamic"
               deprecated="3.1">
         <param name="red" type="GLubyte"/>
         <param name="green" type="GLubyte"/>
@@ -1326,31 +1326,31 @@
         <param name="alpha" type="GLubyte"/>
     </function>
 
-    <function name="Color4ubv" deprecated="3.1">
+    <function name="Color4ubv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLubyte *" count="4"/>
         <glx rop="19"/>
     </function>
 
-    <function name="Color4ui" vectorequiv="Color4uiv" deprecated="3.1">
+    <function name="Color4ui" vectorequiv="Color4uiv" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLuint"/>
         <param name="green" type="GLuint"/>
         <param name="blue" type="GLuint"/>
         <param name="alpha" type="GLuint"/>
     </function>
 
-    <function name="Color4uiv" deprecated="3.1">
+    <function name="Color4uiv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLuint *" count="4"/>
         <glx rop="20"/>
     </function>
 
-    <function name="Color4us" vectorequiv="Color4usv" deprecated="3.1">
+    <function name="Color4us" vectorequiv="Color4usv" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLushort"/>
         <param name="green" type="GLushort"/>
         <param name="blue" type="GLushort"/>
         <param name="alpha" type="GLushort"/>
     </function>
 
-    <function name="Color4usv" deprecated="3.1">
+    <function name="Color4usv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLushort *" count="4"/>
         <glx rop="21"/>
     </function>
@@ -1360,7 +1360,7 @@
         <param name="flag" type="GLboolean"/>
     </function>
 
-    <function name="EdgeFlagv" deprecated="3.1">
+    <function name="EdgeFlagv" deprecated="3.1" exec="dynamic">
         <param name="flag" type="const GLboolean *" count="1"/>
         <glx rop="22"/>
     </function>
@@ -1369,11 +1369,11 @@
         <glx rop="23"/>
     </function>
 
-    <function name="Indexd" vectorequiv="Indexdv" deprecated="3.1">
+    <function name="Indexd" vectorequiv="Indexdv" deprecated="3.1" exec="dynamic">
         <param name="c" type="GLdouble"/>
     </function>
 
-    <function name="Indexdv" deprecated="3.1">
+    <function name="Indexdv" deprecated="3.1" exec="dynamic">
         <param name="c" type="const GLdouble *" count="1"/>
         <glx rop="24"/>
     </function>
@@ -1388,42 +1388,42 @@
         <glx rop="25"/>
     </function>
 
-    <function name="Indexi" vectorequiv="Indexiv" deprecated="3.1">
+    <function name="Indexi" vectorequiv="Indexiv" deprecated="3.1" exec="dynamic">
         <param name="c" type="GLint"/>
     </function>
 
-    <function name="Indexiv" deprecated="3.1">
+    <function name="Indexiv" deprecated="3.1" exec="dynamic">
         <param name="c" type="const GLint *" count="1"/>
         <glx rop="26"/>
     </function>
 
-    <function name="Indexs" vectorequiv="Indexsv" deprecated="3.1">
+    <function name="Indexs" vectorequiv="Indexsv" deprecated="3.1" exec="dynamic">
         <param name="c" type="GLshort"/>
     </function>
 
-    <function name="Indexsv" deprecated="3.1">
+    <function name="Indexsv" deprecated="3.1" exec="dynamic">
         <param name="c" type="const GLshort *" count="1"/>
         <glx rop="27"/>
     </function>
 
-    <function name="Normal3b" vectorequiv="Normal3bv" deprecated="3.1">
+    <function name="Normal3b" vectorequiv="Normal3bv" deprecated="3.1" exec="dynamic">
         <param name="nx" type="GLbyte"/>
         <param name="ny" type="GLbyte"/>
         <param name="nz" type="GLbyte"/>
     </function>
 
-    <function name="Normal3bv" deprecated="3.1">
+    <function name="Normal3bv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLbyte *" count="3"/>
         <glx rop="28"/>
     </function>
 
-    <function name="Normal3d" vectorequiv="Normal3dv" deprecated="3.1">
+    <function name="Normal3d" vectorequiv="Normal3dv" deprecated="3.1" exec="dynamic">
         <param name="nx" type="GLdouble"/>
         <param name="ny" type="GLdouble"/>
         <param name="nz" type="GLdouble"/>
     </function>
 
-    <function name="Normal3dv" deprecated="3.1">
+    <function name="Normal3dv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="29"/>
     </function>
@@ -1440,24 +1440,24 @@
         <glx rop="30"/>
     </function>
 
-    <function name="Normal3i" vectorequiv="Normal3iv" deprecated="3.1">
+    <function name="Normal3i" vectorequiv="Normal3iv" deprecated="3.1" exec="dynamic">
         <param name="nx" type="GLint"/>
         <param name="ny" type="GLint"/>
         <param name="nz" type="GLint"/>
     </function>
 
-    <function name="Normal3iv" deprecated="3.1">
+    <function name="Normal3iv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLint *" count="3"/>
         <glx rop="31"/>
     </function>
 
-    <function name="Normal3s" vectorequiv="Normal3sv" deprecated="3.1">
+    <function name="Normal3s" vectorequiv="Normal3sv" deprecated="3.1" exec="dynamic">
         <param name="nx" type="GLshort"/>
         <param name="ny" type="GLshort"/>
         <param name="nz" type="GLshort"/>
     </function>
 
-    <function name="Normal3sv" deprecated="3.1">
+    <function name="Normal3sv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="32"/>
     </function>
@@ -1594,14 +1594,14 @@
         <glx rop="44"/>
     </function>
 
-    <function name="Rectd" vectorequiv="Rectdv" deprecated="3.1">
+    <function name="Rectd" vectorequiv="Rectdv" deprecated="3.1" exec="dynamic">
         <param name="x1" type="GLdouble"/>
         <param name="y1" type="GLdouble"/>
         <param name="x2" type="GLdouble"/>
         <param name="y2" type="GLdouble"/>
     </function>
 
-    <function name="Rectdv" deprecated="3.1">
+    <function name="Rectdv" deprecated="3.1" exec="dynamic">
         <param name="v1" type="const GLdouble *" count="2"/>
         <param name="v2" type="const GLdouble *" count="2"/>
         <glx rop="45"/>
@@ -1614,43 +1614,43 @@
         <param name="y2" type="GLfloat"/>
     </function>
 
-    <function name="Rectfv" deprecated="3.1">
+    <function name="Rectfv" deprecated="3.1" exec="dynamic">
         <param name="v1" type="const GLfloat *" count="2"/>
         <param name="v2" type="const GLfloat *" count="2"/>
         <glx rop="46"/>
     </function>
 
-    <function name="Recti" vectorequiv="Rectiv" deprecated="3.1">
+    <function name="Recti" vectorequiv="Rectiv" deprecated="3.1" exec="dynamic">
         <param name="x1" type="GLint"/>
         <param name="y1" type="GLint"/>
         <param name="x2" type="GLint"/>
         <param name="y2" type="GLint"/>
     </function>
 
-    <function name="Rectiv" deprecated="3.1">
+    <function name="Rectiv" deprecated="3.1" exec="dynamic">
         <param name="v1" type="const GLint *" count="2"/>
         <param name="v2" type="const GLint *" count="2"/>
         <glx rop="47"/>
     </function>
 
-    <function name="Rects" vectorequiv="Rectsv" deprecated="3.1">
+    <function name="Rects" vectorequiv="Rectsv" deprecated="3.1" exec="dynamic">
         <param name="x1" type="GLshort"/>
         <param name="y1" type="GLshort"/>
         <param name="x2" type="GLshort"/>
         <param name="y2" type="GLshort"/>
     </function>
 
-    <function name="Rectsv" deprecated="3.1">
+    <function name="Rectsv" deprecated="3.1" exec="dynamic">
         <param name="v1" type="const GLshort *" count="2"/>
         <param name="v2" type="const GLshort *" count="2"/>
         <glx rop="48"/>
     </function>
 
-    <function name="TexCoord1d" vectorequiv="TexCoord1dv" deprecated="3.1">
+    <function name="TexCoord1d" vectorequiv="TexCoord1dv" deprecated="3.1" exec="dynamic">
         <param name="s" type="GLdouble"/>
     </function>
 
-    <function name="TexCoord1dv" deprecated="3.1">
+    <function name="TexCoord1dv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLdouble *" count="1"/>
         <glx rop="49"/>
     </function>
@@ -1665,30 +1665,30 @@
         <glx rop="50"/>
     </function>
 
-    <function name="TexCoord1i" vectorequiv="TexCoord1iv" deprecated="3.1">
+    <function name="TexCoord1i" vectorequiv="TexCoord1iv" deprecated="3.1" exec="dynamic">
         <param name="s" type="GLint"/>
     </function>
 
-    <function name="TexCoord1iv" deprecated="3.1">
+    <function name="TexCoord1iv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLint *" count="1"/>
         <glx rop="51"/>
     </function>
 
-    <function name="TexCoord1s" vectorequiv="TexCoord1sv" deprecated="3.1">
+    <function name="TexCoord1s" vectorequiv="TexCoord1sv" deprecated="3.1" exec="dynamic">
         <param name="s" type="GLshort"/>
     </function>
 
-    <function name="TexCoord1sv" deprecated="3.1">
+    <function name="TexCoord1sv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLshort *" count="1"/>
         <glx rop="52"/>
     </function>
 
-    <function name="TexCoord2d" vectorequiv="TexCoord2dv" deprecated="3.1">
+    <function name="TexCoord2d" vectorequiv="TexCoord2dv" deprecated="3.1" exec="dynamic">
         <param name="s" type="GLdouble"/>
         <param name="t" type="GLdouble"/>
     </function>
 
-    <function name="TexCoord2dv" deprecated="3.1">
+    <function name="TexCoord2dv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLdouble *" count="2"/>
         <glx rop="53"/>
     </function>
@@ -1704,33 +1704,33 @@
         <glx rop="54"/>
     </function>
 
-    <function name="TexCoord2i" vectorequiv="TexCoord2iv" deprecated="3.1">
+    <function name="TexCoord2i" vectorequiv="TexCoord2iv" deprecated="3.1" exec="dynamic">
         <param name="s" type="GLint"/>
         <param name="t" type="GLint"/>
     </function>
 
-    <function name="TexCoord2iv" deprecated="3.1">
+    <function name="TexCoord2iv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLint *" count="2"/>
         <glx rop="55"/>
     </function>
 
-    <function name="TexCoord2s" vectorequiv="TexCoord2sv" deprecated="3.1">
+    <function name="TexCoord2s" vectorequiv="TexCoord2sv" deprecated="3.1" exec="dynamic">
         <param name="s" type="GLshort"/>
         <param name="t" type="GLshort"/>
     </function>
 
-    <function name="TexCoord2sv" deprecated="3.1">
+    <function name="TexCoord2sv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLshort *" count="2"/>
         <glx rop="56"/>
     </function>
 
-    <function name="TexCoord3d" vectorequiv="TexCoord3dv" deprecated="3.1">
+    <function name="TexCoord3d" vectorequiv="TexCoord3dv" deprecated="3.1" exec="dynamic">
         <param name="s" type="GLdouble"/>
         <param name="t" type="GLdouble"/>
         <param name="r" type="GLdouble"/>
     </function>
 
-    <function name="TexCoord3dv" deprecated="3.1">
+    <function name="TexCoord3dv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="57"/>
     </function>
@@ -1747,36 +1747,36 @@
         <glx rop="58"/>
     </function>
 
-    <function name="TexCoord3i" vectorequiv="TexCoord3iv" deprecated="3.1">
+    <function name="TexCoord3i" vectorequiv="TexCoord3iv" deprecated="3.1" exec="dynamic">
         <param name="s" type="GLint"/>
         <param name="t" type="GLint"/>
         <param name="r" type="GLint"/>
     </function>
 
-    <function name="TexCoord3iv" deprecated="3.1">
+    <function name="TexCoord3iv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLint *" count="3"/>
         <glx rop="59"/>
     </function>
 
-    <function name="TexCoord3s" vectorequiv="TexCoord3sv" deprecated="3.1">
+    <function name="TexCoord3s" vectorequiv="TexCoord3sv" deprecated="3.1" exec="dynamic">
         <param name="s" type="GLshort"/>
         <param name="t" type="GLshort"/>
         <param name="r" type="GLshort"/>
     </function>
 
-    <function name="TexCoord3sv" deprecated="3.1">
+    <function name="TexCoord3sv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="60"/>
     </function>
 
-    <function name="TexCoord4d" vectorequiv="TexCoord4dv" deprecated="3.1">
+    <function name="TexCoord4d" vectorequiv="TexCoord4dv" deprecated="3.1" exec="dynamic">
         <param name="s" type="GLdouble"/>
         <param name="t" type="GLdouble"/>
         <param name="r" type="GLdouble"/>
         <param name="q" type="GLdouble"/>
     </function>
 
-    <function name="TexCoord4dv" deprecated="3.1">
+    <function name="TexCoord4dv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLdouble *" count="4"/>
         <glx rop="61"/>
     </function>
@@ -1794,36 +1794,36 @@
         <glx rop="62"/>
     </function>
 
-    <function name="TexCoord4i" vectorequiv="TexCoord4iv" deprecated="3.1">
+    <function name="TexCoord4i" vectorequiv="TexCoord4iv" deprecated="3.1" exec="dynamic">
         <param name="s" type="GLint"/>
         <param name="t" type="GLint"/>
         <param name="r" type="GLint"/>
         <param name="q" type="GLint"/>
     </function>
 
-    <function name="TexCoord4iv" deprecated="3.1">
+    <function name="TexCoord4iv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="63"/>
     </function>
 
-    <function name="TexCoord4s" vectorequiv="TexCoord4sv" deprecated="3.1">
+    <function name="TexCoord4s" vectorequiv="TexCoord4sv" deprecated="3.1" exec="dynamic">
         <param name="s" type="GLshort"/>
         <param name="t" type="GLshort"/>
         <param name="r" type="GLshort"/>
         <param name="q" type="GLshort"/>
     </function>
 
-    <function name="TexCoord4sv" deprecated="3.1">
+    <function name="TexCoord4sv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="64"/>
     </function>
 
-    <function name="Vertex2d" vectorequiv="Vertex2dv" deprecated="3.1">
+    <function name="Vertex2d" vectorequiv="Vertex2dv" deprecated="3.1" exec="dynamic">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
     </function>
 
-    <function name="Vertex2dv" deprecated="3.1">
+    <function name="Vertex2dv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLdouble *" count="2"/>
         <glx rop="65"/>
     </function>
@@ -1839,33 +1839,33 @@
         <glx rop="66"/>
     </function>
 
-    <function name="Vertex2i" vectorequiv="Vertex2iv" deprecated="3.1">
+    <function name="Vertex2i" vectorequiv="Vertex2iv" deprecated="3.1" exec="dynamic">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
     </function>
 
-    <function name="Vertex2iv" deprecated="3.1">
+    <function name="Vertex2iv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLint *" count="2"/>
         <glx rop="67"/>
     </function>
 
-    <function name="Vertex2s" vectorequiv="Vertex2sv" deprecated="3.1">
+    <function name="Vertex2s" vectorequiv="Vertex2sv" deprecated="3.1" exec="dynamic">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
     </function>
 
-    <function name="Vertex2sv" deprecated="3.1">
+    <function name="Vertex2sv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLshort *" count="2"/>
         <glx rop="68"/>
     </function>
 
-    <function name="Vertex3d" vectorequiv="Vertex3dv" deprecated="3.1">
+    <function name="Vertex3d" vectorequiv="Vertex3dv" deprecated="3.1" exec="dynamic">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
     </function>
 
-    <function name="Vertex3dv" deprecated="3.1">
+    <function name="Vertex3dv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="69"/>
     </function>
@@ -1882,36 +1882,36 @@
         <glx rop="70"/>
     </function>
 
-    <function name="Vertex3i" vectorequiv="Vertex3iv" deprecated="3.1">
+    <function name="Vertex3i" vectorequiv="Vertex3iv" deprecated="3.1" exec="dynamic">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="z" type="GLint"/>
     </function>
 
-    <function name="Vertex3iv" deprecated="3.1">
+    <function name="Vertex3iv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLint *" count="3"/>
         <glx rop="71"/>
     </function>
 
-    <function name="Vertex3s" vectorequiv="Vertex3sv" deprecated="3.1">
+    <function name="Vertex3s" vectorequiv="Vertex3sv" deprecated="3.1" exec="dynamic">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
     </function>
 
-    <function name="Vertex3sv" deprecated="3.1">
+    <function name="Vertex3sv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="72"/>
     </function>
 
-    <function name="Vertex4d" vectorequiv="Vertex4dv" deprecated="3.1">
+    <function name="Vertex4d" vectorequiv="Vertex4dv" deprecated="3.1" exec="dynamic">
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="Vertex4dv" deprecated="3.1">
+    <function name="Vertex4dv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLdouble *" count="4"/>
         <glx rop="73"/>
     </function>
@@ -1929,26 +1929,26 @@
         <glx rop="74"/>
     </function>
 
-    <function name="Vertex4i" vectorequiv="Vertex4iv" deprecated="3.1">
+    <function name="Vertex4i" vectorequiv="Vertex4iv" deprecated="3.1" exec="dynamic">
         <param name="x" type="GLint"/>
         <param name="y" type="GLint"/>
         <param name="z" type="GLint"/>
         <param name="w" type="GLint"/>
     </function>
 
-    <function name="Vertex4iv" deprecated="3.1">
+    <function name="Vertex4iv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="75"/>
     </function>
 
-    <function name="Vertex4s" vectorequiv="Vertex4sv" deprecated="3.1">
+    <function name="Vertex4s" vectorequiv="Vertex4sv" deprecated="3.1" exec="dynamic">
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
         <param name="w" type="GLshort"/>
     </function>
 
-    <function name="Vertex4sv" deprecated="3.1">
+    <function name="Vertex4sv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="76"/>
     </function>
@@ -2074,7 +2074,7 @@
         <glx rop="95"/>
     </function>
 
-    <function name="Materialf" es1="1.0" deprecated="3.1">
+    <function name="Materialf" es1="1.0" deprecated="3.1" exec="dynamic">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLfloat"/>
@@ -2089,14 +2089,14 @@
         <glx rop="97"/>
     </function>
 
-    <function name="Materiali" deprecated="3.1">
+    <function name="Materiali" deprecated="3.1" exec="dynamic">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="param" type="GLint"/>
         <glx rop="98"/>
     </function>
 
-    <function name="Materialiv" deprecated="3.1">
+    <function name="Materialiv" deprecated="3.1" exec="dynamic">
         <param name="face" type="GLenum"/>
         <param name="pname" type="GLenum"/>
         <param name="params" type="const GLint *" variable_param="pname"
@@ -2493,11 +2493,11 @@
         <glx rop="150"/>
     </function>
 
-    <function name="EvalCoord1d" vectorequiv="EvalCoord1dv" deprecated="3.1">
+    <function name="EvalCoord1d" vectorequiv="EvalCoord1dv" deprecated="3.1" exec="dynamic">
         <param name="u" type="GLdouble"/>
     </function>
 
-    <function name="EvalCoord1dv" deprecated="3.1">
+    <function name="EvalCoord1dv" deprecated="3.1" exec="dynamic">
         <param name="u" type="const GLdouble *" count="1"/>
         <glx rop="151"/>
     </function>
@@ -2512,12 +2512,12 @@
         <glx rop="152"/>
     </function>
 
-    <function name="EvalCoord2d" vectorequiv="EvalCoord2dv" deprecated="3.1">
+    <function name="EvalCoord2d" vectorequiv="EvalCoord2dv" deprecated="3.1" exec="dynamic">
         <param name="u" type="GLdouble"/>
         <param name="v" type="GLdouble"/>
     </function>
 
-    <function name="EvalCoord2dv" deprecated="3.1">
+    <function name="EvalCoord2dv" deprecated="3.1" exec="dynamic">
         <param name="u" type="const GLdouble *" count="2"/>
         <glx rop="153"/>
     </function>
@@ -3386,11 +3386,11 @@
         <glx rop="4118"/>
     </function>
 
-    <function name="Indexub" vectorequiv="Indexubv" deprecated="3.1">
+    <function name="Indexub" vectorequiv="Indexubv" deprecated="3.1" exec="dynamic">
         <param name="c" type="GLubyte"/>
     </function>
 
-    <function name="Indexubv" deprecated="3.1">
+    <function name="Indexubv" deprecated="3.1" exec="dynamic">
         <param name="c" type="const GLubyte *" count="1"/>
         <glx rop="194"/>
     </function>
@@ -4302,12 +4302,12 @@
         <glx handcode="true"/>
     </function>
 
-    <function name="MultiTexCoord1d" deprecated="3.1">
+    <function name="MultiTexCoord1d" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLdouble"/>
     </function>
 
-    <function name="MultiTexCoord1dv" deprecated="3.1">
+    <function name="MultiTexCoord1dv" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLdouble *" count="1"/>
         <glx rop="198"/>
@@ -4324,35 +4324,35 @@
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="MultiTexCoord1i" deprecated="3.1">
+    <function name="MultiTexCoord1i" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLint"/>
     </function>
 
-    <function name="MultiTexCoord1iv" deprecated="3.1">
+    <function name="MultiTexCoord1iv" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLint *" count="1"/>
         <glx rop="200"/>
     </function>
 
-    <function name="MultiTexCoord1s" deprecated="3.1">
+    <function name="MultiTexCoord1s" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLshort"/>
     </function>
 
-    <function name="MultiTexCoord1sv" deprecated="3.1">
+    <function name="MultiTexCoord1sv" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLshort *" count="1"/>
         <glx rop="201"/>
     </function>
 
-    <function name="MultiTexCoord2d" deprecated="3.1">
+    <function name="MultiTexCoord2d" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLdouble"/>
         <param name="t" type="GLdouble"/>
     </function>
 
-    <function name="MultiTexCoord2dv" deprecated="3.1">
+    <function name="MultiTexCoord2dv" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLdouble *" count="2"/>
         <glx rop="202"/>
@@ -4371,38 +4371,38 @@
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="MultiTexCoord2i" deprecated="3.1">
+    <function name="MultiTexCoord2i" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLint"/>
         <param name="t" type="GLint"/>
     </function>
 
-    <function name="MultiTexCoord2iv" deprecated="3.1">
+    <function name="MultiTexCoord2iv" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLint *" count="2"/>
         <glx rop="204"/>
     </function>
 
-    <function name="MultiTexCoord2s" deprecated="3.1">
+    <function name="MultiTexCoord2s" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLshort"/>
         <param name="t" type="GLshort"/>
     </function>
 
-    <function name="MultiTexCoord2sv" deprecated="3.1">
+    <function name="MultiTexCoord2sv" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLshort *" count="2"/>
         <glx rop="205"/>
     </function>
 
-    <function name="MultiTexCoord3d" deprecated="3.1">
+    <function name="MultiTexCoord3d" deprecated="3.1" exec="dynamic">
         <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">
+    <function name="MultiTexCoord3dv" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="206"/>
@@ -4422,33 +4422,33 @@
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="MultiTexCoord3i" deprecated="3.1">
+    <function name="MultiTexCoord3i" deprecated="3.1" exec="dynamic">
         <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">
+    <function name="MultiTexCoord3iv" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLint *" count="3"/>
         <glx rop="208"/>
     </function>
 
-    <function name="MultiTexCoord3s" deprecated="3.1">
+    <function name="MultiTexCoord3s" deprecated="3.1" exec="dynamic">
         <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">
+    <function name="MultiTexCoord3sv" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="209"/>
     </function>
 
-    <function name="MultiTexCoord4d" deprecated="3.1">
+    <function name="MultiTexCoord4d" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLdouble"/>
         <param name="t" type="GLdouble"/>
@@ -4456,7 +4456,7 @@
         <param name="q" type="GLdouble"/>
     </function>
 
-    <function name="MultiTexCoord4dv" deprecated="3.1">
+    <function name="MultiTexCoord4dv" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLdouble *" count="4"/>
         <glx rop="210"/>
@@ -4477,7 +4477,7 @@
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="MultiTexCoord4i" deprecated="3.1">
+    <function name="MultiTexCoord4i" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLint"/>
         <param name="t" type="GLint"/>
@@ -4485,13 +4485,13 @@
         <param name="q" type="GLint"/>
     </function>
 
-    <function name="MultiTexCoord4iv" deprecated="3.1">
+    <function name="MultiTexCoord4iv" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="212"/>
     </function>
 
-    <function name="MultiTexCoord4s" deprecated="3.1">
+    <function name="MultiTexCoord4s" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="s" type="GLshort"/>
         <param name="t" type="GLshort"/>
@@ -4499,7 +4499,7 @@
         <param name="q" type="GLshort"/>
     </function>
 
-    <function name="MultiTexCoord4sv" deprecated="3.1">
+    <function name="MultiTexCoord4sv" deprecated="3.1" exec="dynamic">
         <param name="target" type="GLenum"/>
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="213"/>
@@ -4749,11 +4749,11 @@
         <param name="coord" type="const GLfloat *"/>
     </function>
 
-    <function name="FogCoordd" deprecated="3.1">
+    <function name="FogCoordd" deprecated="3.1" exec="dynamic">
         <param name="coord" type="GLdouble"/>
     </function>
 
-    <function name="FogCoorddv" deprecated="3.1">
+    <function name="FogCoorddv" deprecated="3.1" exec="dynamic">
         <param name="coord" type="const GLdouble *" count="1"/>
         <glx rop="4125"/>
     </function>
@@ -4809,24 +4809,24 @@
         <glx rop="4222"/>
     </function>
 
-    <function name="SecondaryColor3b" deprecated="3.1">
+    <function name="SecondaryColor3b" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLbyte"/>
         <param name="green" type="GLbyte"/>
         <param name="blue" type="GLbyte"/>
     </function>
 
-    <function name="SecondaryColor3bv" deprecated="3.1">
+    <function name="SecondaryColor3bv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLbyte *" count="3"/>
         <glx rop="4126"/>
     </function>
 
-    <function name="SecondaryColor3d" deprecated="3.1">
+    <function name="SecondaryColor3d" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLdouble"/>
         <param name="green" type="GLdouble"/>
         <param name="blue" type="GLdouble"/>
     </function>
 
-    <function name="SecondaryColor3dv" deprecated="3.1">
+    <function name="SecondaryColor3dv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="4130"/>
     </function>
@@ -4843,57 +4843,57 @@
         <param name="v" type="const GLfloat *"/>
     </function>
 
-    <function name="SecondaryColor3i" deprecated="3.1">
+    <function name="SecondaryColor3i" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLint"/>
         <param name="green" type="GLint"/>
         <param name="blue" type="GLint"/>
     </function>
 
-    <function name="SecondaryColor3iv" deprecated="3.1">
+    <function name="SecondaryColor3iv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLint *" count="3"/>
         <glx rop="4128"/>
     </function>
 
-    <function name="SecondaryColor3s" deprecated="3.1">
+    <function name="SecondaryColor3s" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLshort"/>
         <param name="green" type="GLshort"/>
         <param name="blue" type="GLshort"/>
     </function>
 
-    <function name="SecondaryColor3sv" deprecated="3.1">
+    <function name="SecondaryColor3sv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="4127"/>
     </function>
 
-    <function name="SecondaryColor3ub" deprecated="3.1">
+    <function name="SecondaryColor3ub" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLubyte"/>
         <param name="green" type="GLubyte"/>
         <param name="blue" type="GLubyte"/>
     </function>
 
-    <function name="SecondaryColor3ubv" deprecated="3.1">
+    <function name="SecondaryColor3ubv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLubyte *" count="3"/>
         <glx rop="4131"/>
     </function>
 
-    <function name="SecondaryColor3ui" deprecated="3.1">
+    <function name="SecondaryColor3ui" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLuint"/>
         <param name="green" type="GLuint"/>
         <param name="blue" type="GLuint"/>
     </function>
 
-    <function name="SecondaryColor3uiv" deprecated="3.1">
+    <function name="SecondaryColor3uiv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLuint *" count="3"/>
         <glx rop="4133"/>
     </function>
 
-    <function name="SecondaryColor3us" deprecated="3.1">
+    <function name="SecondaryColor3us" deprecated="3.1" exec="dynamic">
         <param name="red" type="GLushort"/>
         <param name="green" type="GLushort"/>
         <param name="blue" type="GLushort"/>
     </function>
 
-    <function name="SecondaryColor3usv" deprecated="3.1">
+    <function name="SecondaryColor3usv" deprecated="3.1" exec="dynamic">
         <param name="v" type="const GLushort *" count="3"/>
         <glx rop="4132"/>
     </function>
@@ -5671,11 +5671,11 @@
         <glx ignore="true"/>
     </function>
 
-    <function name="VertexAttrib1d">
+    <function name="VertexAttrib1d" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
     </function>
-    <function name="VertexAttrib1dv">
+    <function name="VertexAttrib1dv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="1"/>
         <glx rop="4197" doubles_in_order="true"/>
@@ -5688,22 +5688,22 @@
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *"/>
     </function>
-    <function name="VertexAttrib1s">
+    <function name="VertexAttrib1s" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
     </function>
-    <function name="VertexAttrib1sv">
+    <function name="VertexAttrib1sv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="1"/>
         <glx rop="4189"/>
     </function>
 
-    <function name="VertexAttrib2d">
+    <function name="VertexAttrib2d" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
     </function>
-    <function name="VertexAttrib2dv">
+    <function name="VertexAttrib2dv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="2"/>
         <glx rop="4198" doubles_in_order="true"/>
@@ -5717,24 +5717,24 @@
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *"/>
     </function>
-    <function name="VertexAttrib2s">
+    <function name="VertexAttrib2s" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
     </function>
-    <function name="VertexAttrib2sv">
+    <function name="VertexAttrib2sv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="2"/>
         <glx rop="4190"/>
     </function>
 
-    <function name="VertexAttrib3d">
+    <function name="VertexAttrib3d" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
         <param name="z" type="GLdouble"/>
     </function>
-    <function name="VertexAttrib3dv">
+    <function name="VertexAttrib3dv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="4199" doubles_in_order="true"/>
@@ -5749,68 +5749,68 @@
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *"/>
     </function>
-    <function name="VertexAttrib3s">
+    <function name="VertexAttrib3s" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
         <param name="z" type="GLshort"/>
     </function>
-    <function name="VertexAttrib3sv">
+    <function name="VertexAttrib3sv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="4191"/>
     </function>
 
-    <function name="VertexAttrib4Nbv">
+    <function name="VertexAttrib4Nbv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLbyte *" count="4"/>
         <glx rop="4235"/>
     </function>
-    <function name="VertexAttrib4Niv">
+    <function name="VertexAttrib4Niv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="4237"/>
     </function>
-    <function name="VertexAttrib4Nsv">
+    <function name="VertexAttrib4Nsv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="4236"/>
     </function>
-    <function name="VertexAttrib4Nub">
+    <function name="VertexAttrib4Nub" exec="dynamic">
         <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">
+    <function name="VertexAttrib4Nubv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
         <glx rop="4201"/>
     </function>
-    <function name="VertexAttrib4Nuiv">
+    <function name="VertexAttrib4Nuiv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLuint *" count="4"/>
         <glx rop="4239"/>
     </function>
-    <function name="VertexAttrib4Nusv">
+    <function name="VertexAttrib4Nusv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLushort *" count="4"/>
         <glx rop="4238"/>
     </function>
-    <function name="VertexAttrib4bv">
+    <function name="VertexAttrib4bv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLbyte *" count="4"/>
         <glx rop="4230"/>
     </function>
-    <function name="VertexAttrib4d">
+    <function name="VertexAttrib4d" exec="dynamic">
         <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">
+    <function name="VertexAttrib4dv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="4"/>
         <glx rop="4200" doubles_in_order="true"/>
@@ -5826,34 +5826,34 @@
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLfloat *"/>
     </function>
-    <function name="VertexAttrib4iv">
+    <function name="VertexAttrib4iv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLint *" count="4"/>
         <glx rop="4231"/>
     </function>
-    <function name="VertexAttrib4s">
+    <function name="VertexAttrib4s" exec="dynamic">
         <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">
+    <function name="VertexAttrib4sv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="4192"/>
     </function>
-    <function name="VertexAttrib4ubv">
+    <function name="VertexAttrib4ubv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
         <glx rop="4232"/>
     </function>
-    <function name="VertexAttrib4uiv">
+    <function name="VertexAttrib4uiv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLuint *" count="4"/>
         <glx rop="4234"/>
     </function>
-    <function name="VertexAttrib4usv">
+    <function name="VertexAttrib4usv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLushort *" count="4"/>
         <glx rop="4233"/>
@@ -11998,32 +11998,32 @@
         <glx handcode="true"/>
     </function>
 
-    <function name="VertexAttrib1sNV"
+    <function name="VertexAttrib1sNV" exec="dynamic"
               vectorequiv="VertexAttrib1svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib1svNV" deprecated="3.1">
+    <function name="VertexAttrib1svNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="1"/>
         <glx rop="4265"/>
     </function>
 
-    <function name="VertexAttrib2sNV"
+    <function name="VertexAttrib2sNV" exec="dynamic"
               vectorequiv="VertexAttrib2svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
         <param name="y" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib2svNV" deprecated="3.1">
+    <function name="VertexAttrib2svNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="2"/>
         <glx rop="4266"/>
     </function>
 
-    <function name="VertexAttrib3sNV"
+    <function name="VertexAttrib3sNV" exec="dynamic"
               vectorequiv="VertexAttrib3svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
@@ -12031,13 +12031,13 @@
         <param name="z" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib3svNV" deprecated="3.1">
+    <function name="VertexAttrib3svNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="3"/>
         <glx rop="4267"/>
     </function>
 
-    <function name="VertexAttrib4sNV"
+    <function name="VertexAttrib4sNV" exec="dynamic"
               vectorequiv="VertexAttrib4svNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLshort"/>
@@ -12046,7 +12046,7 @@
         <param name="w" type="GLshort"/>
     </function>
 
-    <function name="VertexAttrib4svNV" deprecated="3.1">
+    <function name="VertexAttrib4svNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLshort *" count="4"/>
         <glx rop="4268"/>
@@ -12106,32 +12106,32 @@
         <glx rop="4272"/>
     </function>
 
-    <function name="VertexAttrib1dNV"
+    <function name="VertexAttrib1dNV" exec="dynamic"
               vectorequiv="VertexAttrib1dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib1dvNV" deprecated="3.1">
+    <function name="VertexAttrib1dvNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="1"/>
         <glx rop="4273" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib2dNV"
+    <function name="VertexAttrib2dNV" exec="dynamic"
               vectorequiv="VertexAttrib2dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
         <param name="y" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib2dvNV" deprecated="3.1">
+    <function name="VertexAttrib2dvNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="2"/>
         <glx rop="4274" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib3dNV"
+    <function name="VertexAttrib3dNV" exec="dynamic"
               vectorequiv="VertexAttrib3dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
@@ -12139,13 +12139,13 @@
         <param name="z" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib3dvNV" deprecated="3.1">
+    <function name="VertexAttrib3dvNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="3"/>
         <glx rop="4275" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4dNV"
+    <function name="VertexAttrib4dNV" exec="dynamic"
               vectorequiv="VertexAttrib4dvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLdouble"/>
@@ -12154,13 +12154,13 @@
         <param name="w" type="GLdouble"/>
     </function>
 
-    <function name="VertexAttrib4dvNV" deprecated="3.1">
+    <function name="VertexAttrib4dvNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLdouble *" count="4"/>
         <glx rop="4276" doubles_in_order="true"/>
     </function>
 
-    <function name="VertexAttrib4ubNV"
+    <function name="VertexAttrib4ubNV" exec="dynamic"
               vectorequiv="VertexAttrib4ubvNV" deprecated="3.1">
         <param name="index" type="GLuint"/>
         <param name="x" type="GLubyte"/>
@@ -12169,97 +12169,97 @@
         <param name="w" type="GLubyte"/>
     </function>
 
-    <function name="VertexAttrib4ubvNV" deprecated="3.1">
+    <function name="VertexAttrib4ubvNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="v" type="const GLubyte *" count="4"/>
         <glx rop="4277"/>
     </function>
 
-    <function name="VertexAttribs1svNV" deprecated="3.1">
+    <function name="VertexAttribs1svNV" deprecated="3.1" exec="dynamic">
         <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" deprecated="3.1">
+    <function name="VertexAttribs2svNV" deprecated="3.1" exec="dynamic">
         <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" deprecated="3.1">
+    <function name="VertexAttribs3svNV" deprecated="3.1" exec="dynamic">
         <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" deprecated="3.1">
+    <function name="VertexAttribs4svNV" deprecated="3.1" exec="dynamic">
         <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" deprecated="3.1">
+    <function name="VertexAttribs1fvNV" deprecated="3.1" exec="dynamic">
         <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" deprecated="3.1">
+    <function name="VertexAttribs2fvNV" deprecated="3.1" exec="dynamic">
         <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" deprecated="3.1">
+    <function name="VertexAttribs3fvNV" deprecated="3.1" exec="dynamic">
         <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" deprecated="3.1">
+    <function name="VertexAttribs4fvNV" deprecated="3.1" exec="dynamic">
         <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" deprecated="3.1">
+    <function name="VertexAttribs1dvNV" deprecated="3.1" exec="dynamic">
         <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" deprecated="3.1">
+    <function name="VertexAttribs2dvNV" deprecated="3.1" exec="dynamic">
         <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" deprecated="3.1">
+    <function name="VertexAttribs3dvNV" deprecated="3.1" exec="dynamic">
         <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" deprecated="3.1">
+    <function name="VertexAttribs4dvNV" deprecated="3.1" exec="dynamic">
         <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" deprecated="3.1">
+    <function name="VertexAttribs4ubvNV" deprecated="3.1" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="n" type="GLsizei" counter="true"/>
         <param name="v" type="const GLubyte *" count="n" count_scale="4"/>
diff --git a/src/mapi/glapi/gen/gl_genexec.py b/src/mapi/glapi/gen/gl_genexec.py
index cb70782..9f7c8ca 100644
--- a/src/mapi/glapi/gen/gl_genexec.py
+++ b/src/mapi/glapi/gen/gl_genexec.py
@@ -48,7 +48,6 @@
 
 
 #include "main/accum.h"
-#include "main/api_loopback.h"
 #include "main/api_exec.h"
 #include "main/arbprogram.h"
 #include "main/atifragshader.h"
diff --git a/src/mesa/Makefile.sources b/src/mesa/Makefile.sources
index 345ea9c..05c809c 100644
--- a/src/mesa/Makefile.sources
+++ b/src/mesa/Makefile.sources
@@ -12,8 +12,6 @@
 	main/api_arrayelt.h \
 	main/api_exec.c \
 	main/api_exec.h \
-	main/api_loopback.c \
-	main/api_loopback.h \
 	main/arbprogram.c \
 	main/arbprogram.h \
 	main/arrayobj.c \
diff --git a/src/mesa/main/api_loopback.c b/src/mesa/main/api_loopback.c
deleted file mode 100644
index cb7e1d3..0000000
--- a/src/mesa/main/api_loopback.c
+++ /dev/null
@@ -1,1718 +0,0 @@
-/**
- * \file api_loopback.c
- *
- * \author Keith Whitwell <keithw@vmware.com>
- */
-
-/*
- * Mesa 3-D graphics library
- *
- * Copyright (C) 1999-2004  Brian Paul   All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-#include "glheader.h"
-#include "macros.h"
-#include "api_loopback.h"
-#include "mtypes.h"
-#include "glapi/glapi.h"
-#include "main/dispatch.h"
-#include "main/context.h"
-
-static struct _glapi_table *
-get_dispatch(void)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   return ctx->CurrentServerDispatch;
-}
-
-
-/* KW: A set of functions to convert unusual Color/Normal/Vertex/etc
- * calls to a smaller set of driver-provided formats.  Currently just
- * go back to dispatch to find these (eg. call glNormal3f directly),
- * hence 'loopback'.
- *
- * The driver must supply all of the remaining entry points, which are
- * listed in dd.h.  The easiest way for a driver to do this is to
- * install the supplied software t&l module.
- */
-#define COLORF(r,g,b,a)             CALL_Color4f(get_dispatch(), (r,g,b,a))
-#define VERTEX2(x,y)	            CALL_Vertex2f(get_dispatch(), (x,y))
-#define VERTEX3(x,y,z)	            CALL_Vertex3f(get_dispatch(), (x,y,z))
-#define VERTEX4(x,y,z,w)            CALL_Vertex4f(get_dispatch(), (x,y,z,w))
-#define NORMAL(x,y,z)               CALL_Normal3f(get_dispatch(), (x,y,z))
-#define TEXCOORD1(s)                CALL_TexCoord1f(get_dispatch(), (s))
-#define TEXCOORD2(s,t)              CALL_TexCoord2f(get_dispatch(), (s,t))
-#define TEXCOORD3(s,t,u)            CALL_TexCoord3f(get_dispatch(), (s,t,u))
-#define TEXCOORD4(s,t,u,v)          CALL_TexCoord4f(get_dispatch(), (s,t,u,v))
-#define INDEX(c)		    CALL_Indexf(get_dispatch(), (c))
-#define MULTI_TEXCOORD1(z,s)	    CALL_MultiTexCoord1fARB(get_dispatch(), (z,s))
-#define MULTI_TEXCOORD2(z,s,t)	    CALL_MultiTexCoord2fARB(get_dispatch(), (z,s,t))
-#define MULTI_TEXCOORD3(z,s,t,u)    CALL_MultiTexCoord3fARB(get_dispatch(), (z,s,t,u))
-#define MULTI_TEXCOORD4(z,s,t,u,v)  CALL_MultiTexCoord4fARB(get_dispatch(), (z,s,t,u,v))
-#define EVALCOORD1(x)               CALL_EvalCoord1f(get_dispatch(), (x))
-#define EVALCOORD2(x,y)             CALL_EvalCoord2f(get_dispatch(), (x,y))
-#define MATERIALFV(a,b,c)           CALL_Materialfv(get_dispatch(), (a,b,c))
-#define RECTF(a,b,c,d)              CALL_Rectf(get_dispatch(), (a,b,c,d))
-
-#define FOGCOORDF(x)                CALL_FogCoordfEXT(get_dispatch(), (x))
-#define SECONDARYCOLORF(a,b,c)      CALL_SecondaryColor3fEXT(get_dispatch(), (a,b,c))
-
-#define ATTRIB1NV(index,x)          CALL_VertexAttrib1fNV(get_dispatch(), (index,x))
-#define ATTRIB2NV(index,x,y)        CALL_VertexAttrib2fNV(get_dispatch(), (index,x,y))
-#define ATTRIB3NV(index,x,y,z)      CALL_VertexAttrib3fNV(get_dispatch(), (index,x,y,z))
-#define ATTRIB4NV(index,x,y,z,w)    CALL_VertexAttrib4fNV(get_dispatch(), (index,x,y,z,w))
-
-#define ATTRIB1ARB(index,x)         CALL_VertexAttrib1fARB(get_dispatch(), (index,x))
-#define ATTRIB2ARB(index,x,y)       CALL_VertexAttrib2fARB(get_dispatch(), (index,x,y))
-#define ATTRIB3ARB(index,x,y,z)     CALL_VertexAttrib3fARB(get_dispatch(), (index,x,y,z))
-#define ATTRIB4ARB(index,x,y,z,w)   CALL_VertexAttrib4fARB(get_dispatch(), (index,x,y,z,w))
-
-#define ATTRIBI_1I(index,x)   CALL_VertexAttribI1iEXT(get_dispatch(), (index,x))
-#define ATTRIBI_1UI(index,x)   CALL_VertexAttribI1uiEXT(get_dispatch(), (index,x))
-#define ATTRIBI_4I(index,x,y,z,w)   CALL_VertexAttribI4iEXT(get_dispatch(), (index,x,y,z,w))
-
-#define ATTRIBI_4UI(index,x,y,z,w)   CALL_VertexAttribI4uiEXT(get_dispatch(), (index,x,y,z,w))
-
-void GLAPIENTRY
-_mesa_Color3b( GLbyte red, GLbyte green, GLbyte blue )
-{
-   COLORF( BYTE_TO_FLOAT(red),
-	   BYTE_TO_FLOAT(green),
-	   BYTE_TO_FLOAT(blue),
-	   1.0 );
-}
-
-void GLAPIENTRY
-_mesa_Color3d( GLdouble red, GLdouble green, GLdouble blue )
-{
-   COLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue, 1.0 );
-}
-
-void GLAPIENTRY
-_mesa_Color3i( GLint red, GLint green, GLint blue )
-{
-   COLORF( INT_TO_FLOAT(red), INT_TO_FLOAT(green),
-	   INT_TO_FLOAT(blue), 1.0);
-}
-
-void GLAPIENTRY
-_mesa_Color3s( GLshort red, GLshort green, GLshort blue )
-{
-   COLORF( SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green),
-	   SHORT_TO_FLOAT(blue), 1.0);
-}
-
-void GLAPIENTRY
-_mesa_Color3ui( GLuint red, GLuint green, GLuint blue )
-{
-   COLORF( UINT_TO_FLOAT(red), UINT_TO_FLOAT(green),
-	   UINT_TO_FLOAT(blue), 1.0 );
-}
-
-void GLAPIENTRY
-_mesa_Color3us( GLushort red, GLushort green, GLushort blue )
-{
-   COLORF( USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green),
-	   USHORT_TO_FLOAT(blue), 1.0 );
-}
-
-void GLAPIENTRY
-_mesa_Color3ub( GLubyte red, GLubyte green, GLubyte blue )
-{
-   COLORF( UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green),
-	   UBYTE_TO_FLOAT(blue), 1.0 );
-}
-
-
-void GLAPIENTRY
-_mesa_Color3bv( const GLbyte *v )
-{
-   COLORF( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]),
-	   BYTE_TO_FLOAT(v[2]), 1.0 );
-}
-
-void GLAPIENTRY
-_mesa_Color3dv( const GLdouble *v )
-{
-   COLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1.0 );
-}
-
-void GLAPIENTRY
-_mesa_Color3iv( const GLint *v )
-{
-   COLORF( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]),
-	   INT_TO_FLOAT(v[2]), 1.0 );
-}
-
-void GLAPIENTRY
-_mesa_Color3sv( const GLshort *v )
-{
-   COLORF( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]),
-	   SHORT_TO_FLOAT(v[2]), 1.0 );
-}
-
-void GLAPIENTRY
-_mesa_Color3uiv( const GLuint *v )
-{
-   COLORF( UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]),
-	   UINT_TO_FLOAT(v[2]), 1.0 );
-}
-
-void GLAPIENTRY
-_mesa_Color3usv( const GLushort *v )
-{
-   COLORF( USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]),
-	   USHORT_TO_FLOAT(v[2]), 1.0 );
-}
-
-void GLAPIENTRY
-_mesa_Color3ubv( const GLubyte *v )
-{
-   COLORF( UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
-	   UBYTE_TO_FLOAT(v[2]), 1.0 );
-}
-
-
-void GLAPIENTRY
-_mesa_Color4b( GLbyte red, GLbyte green, GLbyte blue,
-			      GLbyte alpha )
-{
-   COLORF( BYTE_TO_FLOAT(red), BYTE_TO_FLOAT(green),
-	   BYTE_TO_FLOAT(blue), BYTE_TO_FLOAT(alpha) );
-}
-
-void GLAPIENTRY
-_mesa_Color4d( GLdouble red, GLdouble green, GLdouble blue,
-			      GLdouble alpha )
-{
-   COLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue, (GLfloat) alpha );
-}
-
-void GLAPIENTRY
-_mesa_Color4i( GLint red, GLint green, GLint blue, GLint alpha )
-{
-   COLORF( INT_TO_FLOAT(red), INT_TO_FLOAT(green),
-	   INT_TO_FLOAT(blue), INT_TO_FLOAT(alpha) );
-}
-
-void GLAPIENTRY
-_mesa_Color4s( GLshort red, GLshort green, GLshort blue,
-			      GLshort alpha )
-{
-   COLORF( SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green),
-	   SHORT_TO_FLOAT(blue), SHORT_TO_FLOAT(alpha) );
-}
-
-void GLAPIENTRY
-_mesa_Color4ui( GLuint red, GLuint green, GLuint blue, GLuint alpha )
-{
-   COLORF( UINT_TO_FLOAT(red), UINT_TO_FLOAT(green),
-	   UINT_TO_FLOAT(blue), UINT_TO_FLOAT(alpha) );
-}
-
-void GLAPIENTRY
-_mesa_Color4us( GLushort red, GLushort green, GLushort blue, GLushort alpha )
-{
-   COLORF( USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green),
-	   USHORT_TO_FLOAT(blue), USHORT_TO_FLOAT(alpha) );
-}
-
-void GLAPIENTRY
-_mesa_Color4ub( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha )
-{
-   COLORF( UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green),
-	   UBYTE_TO_FLOAT(blue), UBYTE_TO_FLOAT(alpha) );
-}
-
-
-void GLAPIENTRY
-_mesa_Color4iv( const GLint *v )
-{
-   COLORF( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]),
-	   INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3]) );
-}
-
-
-void GLAPIENTRY
-_mesa_Color4bv( const GLbyte *v )
-{
-   COLORF( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]),
-	   BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3]) );
-}
-
-void GLAPIENTRY
-_mesa_Color4dv( const GLdouble *v )
-{
-   COLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3] );
-}
-
-
-void GLAPIENTRY
-_mesa_Color4sv( const GLshort *v)
-{
-   COLORF( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]),
-	   SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3]) );
-}
-
-
-void GLAPIENTRY
-_mesa_Color4uiv( const GLuint *v)
-{
-   COLORF( UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]),
-	   UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3]) );
-}
-
-void GLAPIENTRY
-_mesa_Color4usv( const GLushort *v)
-{
-   COLORF( USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]),
-	   USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3]) );
-}
-
-void GLAPIENTRY
-_mesa_Color4ubv( const GLubyte *v)
-{
-   COLORF( UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
-	   UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]) );
-}
-
-
-void GLAPIENTRY
-_mesa_FogCoordd( GLdouble d )
-{
-   FOGCOORDF( (GLfloat) d );
-}
-
-void GLAPIENTRY
-_mesa_FogCoorddv( const GLdouble *v )
-{
-   FOGCOORDF( (GLfloat) *v );
-}
-
-
-void GLAPIENTRY
-_mesa_Indexd( GLdouble c )
-{
-   INDEX( (GLfloat) c );
-}
-
-void GLAPIENTRY
-_mesa_Indexi( GLint c )
-{
-   INDEX( (GLfloat) c );
-}
-
-void GLAPIENTRY
-_mesa_Indexs( GLshort c )
-{
-   INDEX( (GLfloat) c );
-}
-
-void GLAPIENTRY
-_mesa_Indexub( GLubyte c )
-{
-   INDEX( (GLfloat) c );
-}
-
-void GLAPIENTRY
-_mesa_Indexdv( const GLdouble *c )
-{
-   INDEX( (GLfloat) *c );
-}
-
-void GLAPIENTRY
-_mesa_Indexiv( const GLint *c )
-{
-   INDEX( (GLfloat) *c );
-}
-
-void GLAPIENTRY
-_mesa_Indexsv( const GLshort *c )
-{
-   INDEX( (GLfloat) *c );
-}
-
-void GLAPIENTRY
-_mesa_Indexubv( const GLubyte *c )
-{
-   INDEX( (GLfloat) *c );
-}
-
-
-void GLAPIENTRY
-_mesa_EdgeFlagv(const GLboolean *flag)
-{
-   CALL_EdgeFlag(get_dispatch(), (*flag));
-}
-
-
-void GLAPIENTRY
-_mesa_Normal3b( GLbyte nx, GLbyte ny, GLbyte nz )
-{
-   NORMAL( BYTE_TO_FLOAT(nx), BYTE_TO_FLOAT(ny), BYTE_TO_FLOAT(nz) );
-}
-
-void GLAPIENTRY
-_mesa_Normal3d( GLdouble nx, GLdouble ny, GLdouble nz )
-{
-   NORMAL((GLfloat) nx, (GLfloat) ny, (GLfloat) nz);
-}
-
-void GLAPIENTRY
-_mesa_Normal3i( GLint nx, GLint ny, GLint nz )
-{
-   NORMAL( INT_TO_FLOAT(nx), INT_TO_FLOAT(ny), INT_TO_FLOAT(nz) );
-}
-
-void GLAPIENTRY
-_mesa_Normal3s( GLshort nx, GLshort ny, GLshort nz )
-{
-   NORMAL( SHORT_TO_FLOAT(nx), SHORT_TO_FLOAT(ny), SHORT_TO_FLOAT(nz) );
-}
-
-void GLAPIENTRY
-_mesa_Normal3bv( const GLbyte *v )
-{
-   NORMAL( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]) );
-}
-
-void GLAPIENTRY
-_mesa_Normal3dv( const GLdouble *v )
-{
-   NORMAL( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
-}
-
-void GLAPIENTRY
-_mesa_Normal3iv( const GLint *v )
-{
-   NORMAL( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2]) );
-}
-
-void GLAPIENTRY
-_mesa_Normal3sv( const GLshort *v )
-{
-   NORMAL( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2]) );
-}
-
-void GLAPIENTRY
-_mesa_TexCoord1d( GLdouble s )
-{
-   TEXCOORD1((GLfloat) s);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord1i( GLint s )
-{
-   TEXCOORD1((GLfloat) s);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord1s( GLshort s )
-{
-   TEXCOORD1((GLfloat) s);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord2d( GLdouble s, GLdouble t )
-{
-   TEXCOORD2((GLfloat) s,(GLfloat) t);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord2s( GLshort s, GLshort t )
-{
-   TEXCOORD2((GLfloat) s,(GLfloat) t);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord2i( GLint s, GLint t )
-{
-   TEXCOORD2((GLfloat) s,(GLfloat) t);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord3d( GLdouble s, GLdouble t, GLdouble r )
-{
-   TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord3i( GLint s, GLint t, GLint r )
-{
-   TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord3s( GLshort s, GLshort t, GLshort r )
-{
-   TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q )
-{
-   TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord4i( GLint s, GLint t, GLint r, GLint q )
-{
-   TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q )
-{
-   TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord1dv( const GLdouble *v )
-{
-   TEXCOORD1((GLfloat) v[0]);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord1iv( const GLint *v )
-{
-   TEXCOORD1((GLfloat) v[0]);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord1sv( const GLshort *v )
-{
-   TEXCOORD1((GLfloat) v[0]);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord2dv( const GLdouble *v )
-{
-   TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord2iv( const GLint *v )
-{
-   TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord2sv( const GLshort *v )
-{
-   TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord3dv( const GLdouble *v )
-{
-   TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord3iv( const GLint *v )
-{
-   TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord3sv( const GLshort *v )
-{
-   TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord4dv( const GLdouble *v )
-{
-   TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord4iv( const GLint *v )
-{
-   TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]);
-}
-
-void GLAPIENTRY
-_mesa_TexCoord4sv( const GLshort *v )
-{
-   TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]);
-}
-
-void GLAPIENTRY
-_mesa_Vertex2d( GLdouble x, GLdouble y )
-{
-   VERTEX2( (GLfloat) x, (GLfloat) y );
-}
-
-void GLAPIENTRY
-_mesa_Vertex2i( GLint x, GLint y )
-{
-   VERTEX2( (GLfloat) x, (GLfloat) y );
-}
-
-void GLAPIENTRY
-_mesa_Vertex2s( GLshort x, GLshort y )
-{
-   VERTEX2( (GLfloat) x, (GLfloat) y );
-}
-
-void GLAPIENTRY
-_mesa_Vertex3d( GLdouble x, GLdouble y, GLdouble z )
-{
-   VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z );
-}
-
-void GLAPIENTRY
-_mesa_Vertex3i( GLint x, GLint y, GLint z )
-{
-   VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z );
-}
-
-void GLAPIENTRY
-_mesa_Vertex3s( GLshort x, GLshort y, GLshort z )
-{
-   VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z );
-}
-
-void GLAPIENTRY
-_mesa_Vertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-   VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w );
-}
-
-void GLAPIENTRY
-_mesa_Vertex4i( GLint x, GLint y, GLint z, GLint w )
-{
-   VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w );
-}
-
-void GLAPIENTRY
-_mesa_Vertex4s( GLshort x, GLshort y, GLshort z, GLshort w )
-{
-   VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w );
-}
-
-void GLAPIENTRY
-_mesa_Vertex2dv( const GLdouble *v )
-{
-   VERTEX2( (GLfloat) v[0], (GLfloat) v[1] );
-}
-
-void GLAPIENTRY
-_mesa_Vertex2iv( const GLint *v )
-{
-   VERTEX2( (GLfloat) v[0], (GLfloat) v[1] );
-}
-
-void GLAPIENTRY
-_mesa_Vertex2sv( const GLshort *v )
-{
-   VERTEX2( (GLfloat) v[0], (GLfloat) v[1] );
-}
-
-void GLAPIENTRY
-_mesa_Vertex3dv( const GLdouble *v )
-{
-   VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
-}
-
-void GLAPIENTRY
-_mesa_Vertex3iv( const GLint *v )
-{
-   VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
-}
-
-void GLAPIENTRY
-_mesa_Vertex3sv( const GLshort *v )
-{
-   VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
-}
-
-void GLAPIENTRY
-_mesa_Vertex4dv( const GLdouble *v )
-{
-   VERTEX4( (GLfloat) v[0], (GLfloat) v[1],
-	    (GLfloat) v[2], (GLfloat) v[3] );
-}
-
-void GLAPIENTRY
-_mesa_Vertex4iv( const GLint *v )
-{
-   VERTEX4( (GLfloat) v[0], (GLfloat) v[1],
-	    (GLfloat) v[2], (GLfloat) v[3] );
-}
-
-void GLAPIENTRY
-_mesa_Vertex4sv( const GLshort *v )
-{
-   VERTEX4( (GLfloat) v[0], (GLfloat) v[1],
-	    (GLfloat) v[2], (GLfloat) v[3] );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord1d(GLenum target, GLdouble s)
-{
-   MULTI_TEXCOORD1( target, (GLfloat) s );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord1dv(GLenum target, const GLdouble *v)
-{
-   MULTI_TEXCOORD1( target, (GLfloat) v[0] );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord1i(GLenum target, GLint s)
-{
-   MULTI_TEXCOORD1( target, (GLfloat) s );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord1iv(GLenum target, const GLint *v)
-{
-   MULTI_TEXCOORD1( target, (GLfloat) v[0] );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord1s(GLenum target, GLshort s)
-{
-   MULTI_TEXCOORD1( target, (GLfloat) s );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord1sv(GLenum target, const GLshort *v)
-{
-   MULTI_TEXCOORD1( target, (GLfloat) v[0] );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord2d(GLenum target, GLdouble s, GLdouble t)
-{
-   MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord2dv(GLenum target, const GLdouble *v)
-{
-   MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord2i(GLenum target, GLint s, GLint t)
-{
-   MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord2iv(GLenum target, const GLint *v)
-{
-   MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord2s(GLenum target, GLshort s, GLshort t)
-{
-   MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord2sv(GLenum target, const GLshort *v)
-{
-   MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r)
-{
-   MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord3dv(GLenum target, const GLdouble *v)
-{
-   MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r)
-{
-   MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord3iv(GLenum target, const GLint *v)
-{
-   MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r)
-{
-   MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord3sv(GLenum target, const GLshort *v)
-{
-   MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
-{
-   MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t, 
-		    (GLfloat) r, (GLfloat) q );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord4dv(GLenum target, const GLdouble *v)
-{
-   MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1], 
-		    (GLfloat) v[2], (GLfloat) v[3] );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q)
-{
-   MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t,
-		    (GLfloat) r, (GLfloat) q );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord4iv(GLenum target, const GLint *v)
-{
-   MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1],
-		    (GLfloat) v[2], (GLfloat) v[3] );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
-{
-   MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t,
-		    (GLfloat) r, (GLfloat) q );
-}
-
-void GLAPIENTRY
-_mesa_MultiTexCoord4sv(GLenum target, const GLshort *v)
-{
-   MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1],
-		    (GLfloat) v[2], (GLfloat) v[3] );
-}
-
-void GLAPIENTRY
-_mesa_EvalCoord2dv( const GLdouble *u )
-{
-   EVALCOORD2( (GLfloat) u[0], (GLfloat) u[1] );
-}
-
-void GLAPIENTRY
-_mesa_EvalCoord2d( GLdouble u, GLdouble v )
-{
-   EVALCOORD2( (GLfloat) u, (GLfloat) v );
-}
-
-void GLAPIENTRY
-_mesa_EvalCoord1dv( const GLdouble *u )
-{
-   EVALCOORD1( (GLfloat) *u );
-}
-
-void GLAPIENTRY
-_mesa_EvalCoord1d( GLdouble u )
-{
-   EVALCOORD1( (GLfloat) u );
-}
-
-void GLAPIENTRY
-_mesa_Materialf( GLenum face, GLenum pname, GLfloat param )
-{
-   GLfloat fparam[4];
-   fparam[0] = param;
-   MATERIALFV( face, pname, fparam );
-}
-
-void GLAPIENTRY
-_mesa_Materiali(GLenum face, GLenum pname, GLint param )
-{
-   GLfloat p[4];
-   p[0] = (GLfloat) param;
-   MATERIALFV(face, pname, p);
-}
-
-void GLAPIENTRY
-_mesa_Materialiv(GLenum face, GLenum pname, const GLint *params )
-{
-   GLfloat fparam[4];
-   switch (pname) {
-   case GL_AMBIENT:
-   case GL_DIFFUSE:
-   case GL_SPECULAR:
-   case GL_EMISSION:
-   case GL_AMBIENT_AND_DIFFUSE:
-      fparam[0] = INT_TO_FLOAT( params[0] );
-      fparam[1] = INT_TO_FLOAT( params[1] );
-      fparam[2] = INT_TO_FLOAT( params[2] );
-      fparam[3] = INT_TO_FLOAT( params[3] );
-      break;
-   case GL_SHININESS:
-      fparam[0] = (GLfloat) params[0];
-      break;
-   case GL_COLOR_INDEXES:
-      fparam[0] = (GLfloat) params[0];
-      fparam[1] = (GLfloat) params[1];
-      fparam[2] = (GLfloat) params[2];
-      break;
-   default:
-      ;
-   }
-   MATERIALFV(face, pname, fparam);
-}
-
-
-void GLAPIENTRY
-_mesa_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
-{
-   RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
-}
-
-void GLAPIENTRY
-_mesa_Rectdv(const GLdouble *v1, const GLdouble *v2)
-{
-   RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
-}
-
-void GLAPIENTRY
-_mesa_Rectfv(const GLfloat *v1, const GLfloat *v2)
-{
-   RECTF(v1[0], v1[1], v2[0], v2[1]);
-}
-
-void GLAPIENTRY
-_mesa_Recti(GLint x1, GLint y1, GLint x2, GLint y2)
-{
-   RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
-}
-
-void GLAPIENTRY
-_mesa_Rectiv(const GLint *v1, const GLint *v2)
-{
-   RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
-}
-
-void GLAPIENTRY
-_mesa_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2)
-{
-   RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
-}
-
-void GLAPIENTRY
-_mesa_Rectsv(const GLshort *v1, const GLshort *v2)
-{
-   RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
-}
-
-void GLAPIENTRY
-_mesa_SecondaryColor3b( GLbyte red, GLbyte green, GLbyte blue )
-{
-   SECONDARYCOLORF( BYTE_TO_FLOAT(red),
-		    BYTE_TO_FLOAT(green),
-		    BYTE_TO_FLOAT(blue) );
-}
-
-void GLAPIENTRY
-_mesa_SecondaryColor3d( GLdouble red, GLdouble green, GLdouble blue )
-{
-   SECONDARYCOLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue );
-}
-
-void GLAPIENTRY
-_mesa_SecondaryColor3i( GLint red, GLint green, GLint blue )
-{
-   SECONDARYCOLORF( INT_TO_FLOAT(red),
-		    INT_TO_FLOAT(green),
-		    INT_TO_FLOAT(blue));
-}
-
-void GLAPIENTRY
-_mesa_SecondaryColor3s( GLshort red, GLshort green, GLshort blue )
-{
-   SECONDARYCOLORF(SHORT_TO_FLOAT(red),
-                   SHORT_TO_FLOAT(green),
-                   SHORT_TO_FLOAT(blue));
-}
-
-void GLAPIENTRY
-_mesa_SecondaryColor3ui( GLuint red, GLuint green, GLuint blue )
-{
-   SECONDARYCOLORF(UINT_TO_FLOAT(red),
-                   UINT_TO_FLOAT(green),
-                   UINT_TO_FLOAT(blue));
-}
-
-void GLAPIENTRY
-_mesa_SecondaryColor3us( GLushort red, GLushort green, GLushort blue )
-{
-   SECONDARYCOLORF(USHORT_TO_FLOAT(red),
-                   USHORT_TO_FLOAT(green),
-                   USHORT_TO_FLOAT(blue));
-}
-
-void GLAPIENTRY
-_mesa_SecondaryColor3ub( GLubyte red, GLubyte green, GLubyte blue )
-{
-   SECONDARYCOLORF(UBYTE_TO_FLOAT(red),
-                   UBYTE_TO_FLOAT(green),
-                   UBYTE_TO_FLOAT(blue));
-}
-
-void GLAPIENTRY
-_mesa_SecondaryColor3bv( const GLbyte *v )
-{
-   SECONDARYCOLORF(BYTE_TO_FLOAT(v[0]),
-                   BYTE_TO_FLOAT(v[1]),
-                   BYTE_TO_FLOAT(v[2]));
-}
-
-void GLAPIENTRY
-_mesa_SecondaryColor3dv( const GLdouble *v )
-{
-   SECONDARYCOLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
-}
-void GLAPIENTRY
-_mesa_SecondaryColor3iv( const GLint *v )
-{
-   SECONDARYCOLORF(INT_TO_FLOAT(v[0]),
-                   INT_TO_FLOAT(v[1]),
-                   INT_TO_FLOAT(v[2]));
-}
-
-void GLAPIENTRY
-_mesa_SecondaryColor3sv( const GLshort *v )
-{
-   SECONDARYCOLORF(SHORT_TO_FLOAT(v[0]),
-                   SHORT_TO_FLOAT(v[1]),
-                   SHORT_TO_FLOAT(v[2]));
-}
-
-void GLAPIENTRY
-_mesa_SecondaryColor3uiv( const GLuint *v )
-{
-   SECONDARYCOLORF(UINT_TO_FLOAT(v[0]),
-                   UINT_TO_FLOAT(v[1]),
-                   UINT_TO_FLOAT(v[2]));
-}
-
-void GLAPIENTRY
-_mesa_SecondaryColor3usv( const GLushort *v )
-{
-   SECONDARYCOLORF(USHORT_TO_FLOAT(v[0]),
-                   USHORT_TO_FLOAT(v[1]),
-                   USHORT_TO_FLOAT(v[2]));
-}
-
-void GLAPIENTRY
-_mesa_SecondaryColor3ubv( const GLubyte *v )
-{
-   SECONDARYCOLORF(UBYTE_TO_FLOAT(v[0]),
-                   UBYTE_TO_FLOAT(v[1]),
-                   UBYTE_TO_FLOAT(v[2]));
-}
-
-
-/*
- * GL_NV_vertex_program:
- * Always loop-back to one of the VertexAttrib[1234]f[v]NV functions.
- * Note that attribute indexes DO alias conventional vertex attributes.
- */
-
-void GLAPIENTRY
-_mesa_VertexAttrib1sNV(GLuint index, GLshort x)
-{
-   ATTRIB1NV(index, (GLfloat) x);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib1dNV(GLuint index, GLdouble x)
-{
-   ATTRIB1NV(index, (GLfloat) x);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib2sNV(GLuint index, GLshort x, GLshort y)
-{
-   ATTRIB2NV(index, (GLfloat) x, y);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y)
-{
-   ATTRIB2NV(index, (GLfloat) x, (GLfloat) y);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z)
-{
-   ATTRIB3NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z)
-{
-   ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
-{
-   ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
-{
-   ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
-{
-   ATTRIB4NV(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y),
-	UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w));
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib1svNV(GLuint index, const GLshort *v)
-{
-   ATTRIB1NV(index, (GLfloat) v[0]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib1dvNV(GLuint index, const GLdouble *v)
-{
-   ATTRIB1NV(index, (GLfloat) v[0]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib2svNV(GLuint index, const GLshort *v)
-{
-   ATTRIB2NV(index, (GLfloat) v[0], (GLfloat) v[1]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib2dvNV(GLuint index, const GLdouble *v)
-{
-   ATTRIB2NV(index, (GLfloat) v[0], (GLfloat) v[1]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib3svNV(GLuint index, const GLshort *v)
-{
-   ATTRIB3NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib3dvNV(GLuint index, const GLdouble *v)
-{
-   ATTRIB3NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4svNV(GLuint index, const GLshort *v)
-{
-   ATTRIB4NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 
-	  (GLfloat)v[3]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4dvNV(GLuint index, const GLdouble *v)
-{
-   ATTRIB4NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4ubvNV(GLuint index, const GLubyte *v)
-{
-   ATTRIB4NV(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
-          UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]));
-}
-
-
-void GLAPIENTRY
-_mesa_VertexAttribs1svNV(GLuint index, GLsizei n, const GLshort *v)
-{
-   GLint i;
-   for (i = n - 1; i >= 0; i--)
-      _mesa_VertexAttrib1svNV(index + i, v + i);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat *v)
-{
-   GLint i;
-   for (i = n - 1; i >= 0; i--)
-      ATTRIB1NV(index + i, v[i]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble *v)
-{
-   GLint i;
-   for (i = n - 1; i >= 0; i--)
-      _mesa_VertexAttrib1dvNV(index + i, v + i);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribs2svNV(GLuint index, GLsizei n, const GLshort *v)
-{
-   GLint i;
-   for (i = n - 1; i >= 0; i--)
-      _mesa_VertexAttrib2svNV(index + i, v + 2 * i);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat *v)
-{
-   GLint i;
-   for (i = n - 1; i >= 0; i--)
-      ATTRIB2NV(index + i, v[2 * i], v[2 * i + 1]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble *v)
-{
-   GLint i;
-   for (i = n - 1; i >= 0; i--)
-      _mesa_VertexAttrib2dvNV(index + i, v + 2 * i);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribs3svNV(GLuint index, GLsizei n, const GLshort *v)
-{
-   GLint i;
-   for (i = n - 1; i >= 0; i--)
-      _mesa_VertexAttrib3svNV(index + i, v + 3 * i);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat *v)
-{
-   GLint i;
-   for (i = n - 1; i >= 0; i--)
-      ATTRIB3NV(index + i, v[3 * i], v[3 * i + 1], v[3 * i + 2]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble *v)
-{
-   GLint i;
-   for (i = n - 1; i >= 0; i--)
-      _mesa_VertexAttrib3dvNV(index + i, v + 3 * i);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribs4svNV(GLuint index, GLsizei n, const GLshort *v)
-{
-   GLint i;
-   for (i = n - 1; i >= 0; i--)
-      _mesa_VertexAttrib4svNV(index + i, v + 4 * i);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat *v)
-{
-   GLint i;
-   for (i = n - 1; i >= 0; i--)
-      ATTRIB4NV(index + i, v[4 * i], v[4 * i + 1], v[4 * i + 2], v[4 * i + 3]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble *v)
-{
-   GLint i;
-   for (i = n - 1; i >= 0; i--)
-      _mesa_VertexAttrib4dvNV(index + i, v + 4 * i);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v)
-{
-   GLint i;
-   for (i = n - 1; i >= 0; i--)
-      _mesa_VertexAttrib4ubvNV(index + i, v + 4 * i);
-}
-
-
-/*
- * GL_ARB_vertex_program
- * Always loop-back to one of the VertexAttrib[1234]f[v]ARB functions.
- * Note that attribute indexes do NOT alias conventional attributes.
- */
-
-void GLAPIENTRY
-_mesa_VertexAttrib1s(GLuint index, GLshort x)
-{
-   ATTRIB1ARB(index, (GLfloat) x);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib1d(GLuint index, GLdouble x)
-{
-   ATTRIB1ARB(index, (GLfloat) x);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib2s(GLuint index, GLshort x, GLshort y)
-{
-   ATTRIB2ARB(index, (GLfloat) x, y);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib2d(GLuint index, GLdouble x, GLdouble y)
-{
-   ATTRIB2ARB(index, (GLfloat) x, (GLfloat) y);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z)
-{
-   ATTRIB3ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z)
-{
-   ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
-{
-   ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
-{
-   ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib1sv(GLuint index, const GLshort *v)
-{
-   ATTRIB1ARB(index, (GLfloat) v[0]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib1dv(GLuint index, const GLdouble *v)
-{
-   ATTRIB1ARB(index, (GLfloat) v[0]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib2sv(GLuint index, const GLshort *v)
-{
-   ATTRIB2ARB(index, (GLfloat) v[0], (GLfloat) v[1]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib2dv(GLuint index, const GLdouble *v)
-{
-   ATTRIB2ARB(index, (GLfloat) v[0], (GLfloat) v[1]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib3sv(GLuint index, const GLshort *v)
-{
-   ATTRIB3ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib3dv(GLuint index, const GLdouble *v)
-{
-   ATTRIB3ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4sv(GLuint index, const GLshort *v)
-{
-   ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 
-	  (GLfloat)v[3]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4dv(GLuint index, const GLdouble *v)
-{
-   ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4bv(GLuint index, const GLbyte * v)
-{
-   ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4iv(GLuint index, const GLint * v)
-{
-   ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4ubv(GLuint index, const GLubyte * v)
-{
-   ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4usv(GLuint index, const GLushort * v)
-{
-   ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4uiv(GLuint index, const GLuint * v)
-{
-   ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4Nbv(GLuint index, const GLbyte * v)
-{
-   ATTRIB4ARB(index, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]),
-          BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3]));
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4Nsv(GLuint index, const GLshort * v)
-{
-   ATTRIB4ARB(index, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]),
-          SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3]));
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4Niv(GLuint index, const GLint * v)
-{
-   ATTRIB4ARB(index, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]),
-          INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3]));
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
-{
-   ATTRIB4ARB(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y),
-              UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w));
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4Nubv(GLuint index, const GLubyte * v)
-{
-   ATTRIB4ARB(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
-          UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]));
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4Nusv(GLuint index, const GLushort * v)
-{
-   ATTRIB4ARB(index, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]),
-          USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3]));
-}
-
-void GLAPIENTRY
-_mesa_VertexAttrib4Nuiv(GLuint index, const GLuint * v)
-{
-   ATTRIB4ARB(index, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]),
-          UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3]));
-}
-
-
-
-/**
- * GL_EXT_gpu_shader / GL 3.0 signed/unsigned integer-valued attributes.
- * Note that attribute indexes do NOT alias conventional attributes.
- */
-
-void GLAPIENTRY
-_mesa_VertexAttribI1iv(GLuint index, const GLint *v)
-{
-   ATTRIBI_1I(index, v[0]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribI1uiv(GLuint index, const GLuint *v)
-{
-   ATTRIBI_1UI(index, v[0]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribI4bv(GLuint index, const GLbyte *v)
-{
-   ATTRIBI_4I(index, v[0], v[1], v[2], v[3]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribI4sv(GLuint index, const GLshort *v)
-{
-   ATTRIBI_4I(index, v[0], v[1], v[2], v[3]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribI4ubv(GLuint index, const GLubyte *v)
-{
-   ATTRIBI_4UI(index, v[0], v[1], v[2], v[3]);
-}
-
-void GLAPIENTRY
-_mesa_VertexAttribI4usv(GLuint index, const GLushort *v)
-{
-   ATTRIBI_4UI(index, v[0], v[1], v[2], v[3]);
-}
-
-/*
- * This code never registers handlers for any of the entry points
- * listed in vtxfmt.h.
- */
-void
-_mesa_loopback_init_api_table(const struct gl_context *ctx,
-                              struct _glapi_table *dest)
-{
-   if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) {
-      SET_Color4ub(dest, _mesa_Color4ub);
-      SET_Materialf(dest, _mesa_Materialf);
-   }
-   if (ctx->API == API_OPENGL_COMPAT) {
-      SET_Color3b(dest, _mesa_Color3b);
-      SET_Color3d(dest, _mesa_Color3d);
-      SET_Color3i(dest, _mesa_Color3i);
-      SET_Color3s(dest, _mesa_Color3s);
-      SET_Color3ui(dest, _mesa_Color3ui);
-      SET_Color3us(dest, _mesa_Color3us);
-      SET_Color3ub(dest, _mesa_Color3ub);
-      SET_Color4b(dest, _mesa_Color4b);
-      SET_Color4d(dest, _mesa_Color4d);
-      SET_Color4i(dest, _mesa_Color4i);
-      SET_Color4s(dest, _mesa_Color4s);
-      SET_Color4ui(dest, _mesa_Color4ui);
-      SET_Color4us(dest, _mesa_Color4us);
-      SET_Color3bv(dest, _mesa_Color3bv);
-      SET_Color3dv(dest, _mesa_Color3dv);
-      SET_Color3iv(dest, _mesa_Color3iv);
-      SET_Color3sv(dest, _mesa_Color3sv);
-      SET_Color3uiv(dest, _mesa_Color3uiv);
-      SET_Color3usv(dest, _mesa_Color3usv);
-      SET_Color3ubv(dest, _mesa_Color3ubv);
-      SET_Color4bv(dest, _mesa_Color4bv);
-      SET_Color4dv(dest, _mesa_Color4dv);
-      SET_Color4iv(dest, _mesa_Color4iv);
-      SET_Color4sv(dest, _mesa_Color4sv);
-      SET_Color4uiv(dest, _mesa_Color4uiv);
-      SET_Color4usv(dest, _mesa_Color4usv);
-      SET_Color4ubv(dest, _mesa_Color4ubv);
-
-      SET_SecondaryColor3b(dest, _mesa_SecondaryColor3b);
-      SET_SecondaryColor3d(dest, _mesa_SecondaryColor3d);
-      SET_SecondaryColor3i(dest, _mesa_SecondaryColor3i);
-      SET_SecondaryColor3s(dest, _mesa_SecondaryColor3s);
-      SET_SecondaryColor3ui(dest, _mesa_SecondaryColor3ui);
-      SET_SecondaryColor3us(dest, _mesa_SecondaryColor3us);
-      SET_SecondaryColor3ub(dest, _mesa_SecondaryColor3ub);
-      SET_SecondaryColor3bv(dest, _mesa_SecondaryColor3bv);
-      SET_SecondaryColor3dv(dest, _mesa_SecondaryColor3dv);
-      SET_SecondaryColor3iv(dest, _mesa_SecondaryColor3iv);
-      SET_SecondaryColor3sv(dest, _mesa_SecondaryColor3sv);
-      SET_SecondaryColor3uiv(dest, _mesa_SecondaryColor3uiv);
-      SET_SecondaryColor3usv(dest, _mesa_SecondaryColor3usv);
-      SET_SecondaryColor3ubv(dest, _mesa_SecondaryColor3ubv);
-      
-      SET_EdgeFlagv(dest, _mesa_EdgeFlagv);
-
-      SET_Indexd(dest, _mesa_Indexd);
-      SET_Indexi(dest, _mesa_Indexi);
-      SET_Indexs(dest, _mesa_Indexs);
-      SET_Indexub(dest, _mesa_Indexub);
-      SET_Indexdv(dest, _mesa_Indexdv);
-      SET_Indexiv(dest, _mesa_Indexiv);
-      SET_Indexsv(dest, _mesa_Indexsv);
-      SET_Indexubv(dest, _mesa_Indexubv);
-      SET_Normal3b(dest, _mesa_Normal3b);
-      SET_Normal3d(dest, _mesa_Normal3d);
-      SET_Normal3i(dest, _mesa_Normal3i);
-      SET_Normal3s(dest, _mesa_Normal3s);
-      SET_Normal3bv(dest, _mesa_Normal3bv);
-      SET_Normal3dv(dest, _mesa_Normal3dv);
-      SET_Normal3iv(dest, _mesa_Normal3iv);
-      SET_Normal3sv(dest, _mesa_Normal3sv);
-      SET_TexCoord1d(dest, _mesa_TexCoord1d);
-      SET_TexCoord1i(dest, _mesa_TexCoord1i);
-      SET_TexCoord1s(dest, _mesa_TexCoord1s);
-      SET_TexCoord2d(dest, _mesa_TexCoord2d);
-      SET_TexCoord2s(dest, _mesa_TexCoord2s);
-      SET_TexCoord2i(dest, _mesa_TexCoord2i);
-      SET_TexCoord3d(dest, _mesa_TexCoord3d);
-      SET_TexCoord3i(dest, _mesa_TexCoord3i);
-      SET_TexCoord3s(dest, _mesa_TexCoord3s);
-      SET_TexCoord4d(dest, _mesa_TexCoord4d);
-      SET_TexCoord4i(dest, _mesa_TexCoord4i);
-      SET_TexCoord4s(dest, _mesa_TexCoord4s);
-      SET_TexCoord1dv(dest, _mesa_TexCoord1dv);
-      SET_TexCoord1iv(dest, _mesa_TexCoord1iv);
-      SET_TexCoord1sv(dest, _mesa_TexCoord1sv);
-      SET_TexCoord2dv(dest, _mesa_TexCoord2dv);
-      SET_TexCoord2iv(dest, _mesa_TexCoord2iv);
-      SET_TexCoord2sv(dest, _mesa_TexCoord2sv);
-      SET_TexCoord3dv(dest, _mesa_TexCoord3dv);
-      SET_TexCoord3iv(dest, _mesa_TexCoord3iv);
-      SET_TexCoord3sv(dest, _mesa_TexCoord3sv);
-      SET_TexCoord4dv(dest, _mesa_TexCoord4dv);
-      SET_TexCoord4iv(dest, _mesa_TexCoord4iv);
-      SET_TexCoord4sv(dest, _mesa_TexCoord4sv);
-      SET_Vertex2d(dest, _mesa_Vertex2d);
-      SET_Vertex2i(dest, _mesa_Vertex2i);
-      SET_Vertex2s(dest, _mesa_Vertex2s);
-      SET_Vertex3d(dest, _mesa_Vertex3d);
-      SET_Vertex3i(dest, _mesa_Vertex3i);
-      SET_Vertex3s(dest, _mesa_Vertex3s);
-      SET_Vertex4d(dest, _mesa_Vertex4d);
-      SET_Vertex4i(dest, _mesa_Vertex4i);
-      SET_Vertex4s(dest, _mesa_Vertex4s);
-      SET_Vertex2dv(dest, _mesa_Vertex2dv);
-      SET_Vertex2iv(dest, _mesa_Vertex2iv);
-      SET_Vertex2sv(dest, _mesa_Vertex2sv);
-      SET_Vertex3dv(dest, _mesa_Vertex3dv);
-      SET_Vertex3iv(dest, _mesa_Vertex3iv);
-      SET_Vertex3sv(dest, _mesa_Vertex3sv);
-      SET_Vertex4dv(dest, _mesa_Vertex4dv);
-      SET_Vertex4iv(dest, _mesa_Vertex4iv);
-      SET_Vertex4sv(dest, _mesa_Vertex4sv);
-      SET_MultiTexCoord1d(dest, _mesa_MultiTexCoord1d);
-      SET_MultiTexCoord1dv(dest, _mesa_MultiTexCoord1dv);
-      SET_MultiTexCoord1i(dest, _mesa_MultiTexCoord1i);
-      SET_MultiTexCoord1iv(dest, _mesa_MultiTexCoord1iv);
-      SET_MultiTexCoord1s(dest, _mesa_MultiTexCoord1s);
-      SET_MultiTexCoord1sv(dest, _mesa_MultiTexCoord1sv);
-      SET_MultiTexCoord2d(dest, _mesa_MultiTexCoord2d);
-      SET_MultiTexCoord2dv(dest, _mesa_MultiTexCoord2dv);
-      SET_MultiTexCoord2i(dest, _mesa_MultiTexCoord2i);
-      SET_MultiTexCoord2iv(dest, _mesa_MultiTexCoord2iv);
-      SET_MultiTexCoord2s(dest, _mesa_MultiTexCoord2s);
-      SET_MultiTexCoord2sv(dest, _mesa_MultiTexCoord2sv);
-      SET_MultiTexCoord3d(dest, _mesa_MultiTexCoord3d);
-      SET_MultiTexCoord3dv(dest, _mesa_MultiTexCoord3dv);
-      SET_MultiTexCoord3i(dest, _mesa_MultiTexCoord3i);
-      SET_MultiTexCoord3iv(dest, _mesa_MultiTexCoord3iv);
-      SET_MultiTexCoord3s(dest, _mesa_MultiTexCoord3s);
-      SET_MultiTexCoord3sv(dest, _mesa_MultiTexCoord3sv);
-      SET_MultiTexCoord4d(dest, _mesa_MultiTexCoord4d);
-      SET_MultiTexCoord4dv(dest, _mesa_MultiTexCoord4dv);
-      SET_MultiTexCoord4i(dest, _mesa_MultiTexCoord4i);
-      SET_MultiTexCoord4iv(dest, _mesa_MultiTexCoord4iv);
-      SET_MultiTexCoord4s(dest, _mesa_MultiTexCoord4s);
-      SET_MultiTexCoord4sv(dest, _mesa_MultiTexCoord4sv);
-      SET_EvalCoord2dv(dest, _mesa_EvalCoord2dv);
-      SET_EvalCoord2d(dest, _mesa_EvalCoord2d);
-      SET_EvalCoord1dv(dest, _mesa_EvalCoord1dv);
-      SET_EvalCoord1d(dest, _mesa_EvalCoord1d);
-      SET_Materiali(dest, _mesa_Materiali);
-      SET_Materialiv(dest, _mesa_Materialiv);
-      SET_Rectd(dest, _mesa_Rectd);
-      SET_Rectdv(dest, _mesa_Rectdv);
-      SET_Rectfv(dest, _mesa_Rectfv);
-      SET_Recti(dest, _mesa_Recti);
-      SET_Rectiv(dest, _mesa_Rectiv);
-      SET_Rects(dest, _mesa_Rects);
-      SET_Rectsv(dest, _mesa_Rectsv);
-      SET_FogCoordd(dest, _mesa_FogCoordd);
-      SET_FogCoorddv(dest, _mesa_FogCoorddv);
-   }
-
-   if (ctx->API == API_OPENGL_COMPAT) {
-      SET_VertexAttrib1sNV(dest, _mesa_VertexAttrib1sNV);
-      SET_VertexAttrib1dNV(dest, _mesa_VertexAttrib1dNV);
-      SET_VertexAttrib2sNV(dest, _mesa_VertexAttrib2sNV);
-      SET_VertexAttrib2dNV(dest, _mesa_VertexAttrib2dNV);
-      SET_VertexAttrib3sNV(dest, _mesa_VertexAttrib3sNV);
-      SET_VertexAttrib3dNV(dest, _mesa_VertexAttrib3dNV);
-      SET_VertexAttrib4sNV(dest, _mesa_VertexAttrib4sNV);
-      SET_VertexAttrib4dNV(dest, _mesa_VertexAttrib4dNV);
-      SET_VertexAttrib4ubNV(dest, _mesa_VertexAttrib4ubNV);
-      SET_VertexAttrib1svNV(dest, _mesa_VertexAttrib1svNV);
-      SET_VertexAttrib1dvNV(dest, _mesa_VertexAttrib1dvNV);
-      SET_VertexAttrib2svNV(dest, _mesa_VertexAttrib2svNV);
-      SET_VertexAttrib2dvNV(dest, _mesa_VertexAttrib2dvNV);
-      SET_VertexAttrib3svNV(dest, _mesa_VertexAttrib3svNV);
-      SET_VertexAttrib3dvNV(dest, _mesa_VertexAttrib3dvNV);
-      SET_VertexAttrib4svNV(dest, _mesa_VertexAttrib4svNV);
-      SET_VertexAttrib4dvNV(dest, _mesa_VertexAttrib4dvNV);
-      SET_VertexAttrib4ubvNV(dest, _mesa_VertexAttrib4ubvNV);
-      SET_VertexAttribs1svNV(dest, _mesa_VertexAttribs1svNV);
-      SET_VertexAttribs1fvNV(dest, _mesa_VertexAttribs1fvNV);
-      SET_VertexAttribs1dvNV(dest, _mesa_VertexAttribs1dvNV);
-      SET_VertexAttribs2svNV(dest, _mesa_VertexAttribs2svNV);
-      SET_VertexAttribs2fvNV(dest, _mesa_VertexAttribs2fvNV);
-      SET_VertexAttribs2dvNV(dest, _mesa_VertexAttribs2dvNV);
-      SET_VertexAttribs3svNV(dest, _mesa_VertexAttribs3svNV);
-      SET_VertexAttribs3fvNV(dest, _mesa_VertexAttribs3fvNV);
-      SET_VertexAttribs3dvNV(dest, _mesa_VertexAttribs3dvNV);
-      SET_VertexAttribs4svNV(dest, _mesa_VertexAttribs4svNV);
-      SET_VertexAttribs4fvNV(dest, _mesa_VertexAttribs4fvNV);
-      SET_VertexAttribs4dvNV(dest, _mesa_VertexAttribs4dvNV);
-      SET_VertexAttribs4ubvNV(dest, _mesa_VertexAttribs4ubvNV);
-   }
-
-   if (_mesa_is_desktop_gl(ctx)) {
-      SET_VertexAttrib1s(dest, _mesa_VertexAttrib1s);
-      SET_VertexAttrib1d(dest, _mesa_VertexAttrib1d);
-      SET_VertexAttrib2s(dest, _mesa_VertexAttrib2s);
-      SET_VertexAttrib2d(dest, _mesa_VertexAttrib2d);
-      SET_VertexAttrib3s(dest, _mesa_VertexAttrib3s);
-      SET_VertexAttrib3d(dest, _mesa_VertexAttrib3d);
-      SET_VertexAttrib4s(dest, _mesa_VertexAttrib4s);
-      SET_VertexAttrib4d(dest, _mesa_VertexAttrib4d);
-      SET_VertexAttrib1sv(dest, _mesa_VertexAttrib1sv);
-      SET_VertexAttrib1dv(dest, _mesa_VertexAttrib1dv);
-      SET_VertexAttrib2sv(dest, _mesa_VertexAttrib2sv);
-      SET_VertexAttrib2dv(dest, _mesa_VertexAttrib2dv);
-      SET_VertexAttrib3sv(dest, _mesa_VertexAttrib3sv);
-      SET_VertexAttrib3dv(dest, _mesa_VertexAttrib3dv);
-      SET_VertexAttrib4sv(dest, _mesa_VertexAttrib4sv);
-      SET_VertexAttrib4dv(dest, _mesa_VertexAttrib4dv);
-      SET_VertexAttrib4Nub(dest, _mesa_VertexAttrib4Nub);
-      SET_VertexAttrib4Nubv(dest, _mesa_VertexAttrib4Nubv);
-      SET_VertexAttrib4bv(dest, _mesa_VertexAttrib4bv);
-      SET_VertexAttrib4iv(dest, _mesa_VertexAttrib4iv);
-      SET_VertexAttrib4ubv(dest, _mesa_VertexAttrib4ubv);
-      SET_VertexAttrib4usv(dest, _mesa_VertexAttrib4usv);
-      SET_VertexAttrib4uiv(dest, _mesa_VertexAttrib4uiv);
-      SET_VertexAttrib4Nbv(dest, _mesa_VertexAttrib4Nbv);
-      SET_VertexAttrib4Nsv(dest, _mesa_VertexAttrib4Nsv);
-      SET_VertexAttrib4Nusv(dest, _mesa_VertexAttrib4Nusv);
-      SET_VertexAttrib4Niv(dest, _mesa_VertexAttrib4Niv);
-      SET_VertexAttrib4Nuiv(dest, _mesa_VertexAttrib4Nuiv);
-
-      /* GL_EXT_gpu_shader4, GL 3.0 */
-      SET_VertexAttribI1iv(dest, _mesa_VertexAttribI1iv);
-      SET_VertexAttribI1uiv(dest, _mesa_VertexAttribI1uiv);
-      SET_VertexAttribI4bv(dest, _mesa_VertexAttribI4bv);
-      SET_VertexAttribI4sv(dest, _mesa_VertexAttribI4sv);
-      SET_VertexAttribI4ubv(dest, _mesa_VertexAttribI4ubv);
-      SET_VertexAttribI4usv(dest, _mesa_VertexAttribI4usv);
-   }
-}
diff --git a/src/mesa/main/api_loopback.h b/src/mesa/main/api_loopback.h
deleted file mode 100644
index 272c7e5..0000000
--- a/src/mesa/main/api_loopback.h
+++ /dev/null
@@ -1,463 +0,0 @@
-/*
- * Mesa 3-D graphics library
- *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-
-#ifndef API_LOOPBACK_H
-#define API_LOOPBACK_H
-
-#include "main/glheader.h"
-
-struct _glapi_table;
-struct gl_context;
-
-extern void
-_mesa_loopback_init_api_table(const struct gl_context *ctx,
-                              struct _glapi_table *dest);
-void GLAPIENTRY
-_mesa_Color3b( GLbyte red, GLbyte green, GLbyte blue );
-void GLAPIENTRY
-_mesa_Color3d( GLdouble red, GLdouble green, GLdouble blue );
-void GLAPIENTRY
-_mesa_Color3i( GLint red, GLint green, GLint blue );
-void GLAPIENTRY
-_mesa_Color3s( GLshort red, GLshort green, GLshort blue );
-void GLAPIENTRY
-_mesa_Color3ui( GLuint red, GLuint green, GLuint blue );
-void GLAPIENTRY
-_mesa_Color3us( GLushort red, GLushort green, GLushort blue );
-void GLAPIENTRY
-_mesa_Color3ub( GLubyte red, GLubyte green, GLubyte blue );
-void GLAPIENTRY
-_mesa_Color3bv( const GLbyte *v );
-void GLAPIENTRY
-_mesa_Color3dv( const GLdouble *v );
-void GLAPIENTRY
-_mesa_Color3iv( const GLint *v );
-void GLAPIENTRY
-_mesa_Color3sv( const GLshort *v );
-void GLAPIENTRY
-_mesa_Color3uiv( const GLuint *v );
-void GLAPIENTRY
-_mesa_Color3usv( const GLushort *v );
-void GLAPIENTRY
-_mesa_Color3ubv( const GLubyte *v );
-void GLAPIENTRY
-_mesa_Color4b( GLbyte red, GLbyte green, GLbyte blue,
-                    GLbyte alpha );
-void GLAPIENTRY
-_mesa_Color4d( GLdouble red, GLdouble green, GLdouble blue,
-                    GLdouble alpha );
-void GLAPIENTRY
-_mesa_Color4i( GLint red, GLint green, GLint blue, GLint alpha );
-void GLAPIENTRY
-_mesa_Color4s( GLshort red, GLshort green, GLshort blue,
-                    GLshort alpha );
-void GLAPIENTRY
-_mesa_Color4ui( GLuint red, GLuint green, GLuint blue, GLuint alpha );
-void GLAPIENTRY
-_mesa_Color4us( GLushort red, GLushort green, GLushort blue,
-                     GLushort alpha );
-void GLAPIENTRY
-_mesa_Color4ub( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
-void GLAPIENTRY
-_mesa_Color4iv( const GLint *v );
-void GLAPIENTRY
-_mesa_Color4bv( const GLbyte *v );
-void GLAPIENTRY
-_mesa_Color4dv( const GLdouble *v );
-void GLAPIENTRY
-_mesa_Color4sv( const GLshort *v);
-void GLAPIENTRY
-_mesa_Color4uiv( const GLuint *v);
-void GLAPIENTRY
-_mesa_Color4usv( const GLushort *v);
-void GLAPIENTRY
-_mesa_Color4ubv( const GLubyte *v);
-void GLAPIENTRY
-_mesa_FogCoordd( GLdouble d );
-void GLAPIENTRY
-_mesa_FogCoorddv( const GLdouble *v );
-void GLAPIENTRY
-_mesa_Indexd( GLdouble c );
-void GLAPIENTRY
-_mesa_Indexi( GLint c );
-void GLAPIENTRY
-_mesa_Indexs( GLshort c );
-void GLAPIENTRY
-_mesa_Indexub( GLubyte c );
-void GLAPIENTRY
-_mesa_Indexdv( const GLdouble *c );
-void GLAPIENTRY
-_mesa_Indexiv( const GLint *c );
-void GLAPIENTRY
-_mesa_Indexsv( const GLshort *c );
-void GLAPIENTRY
-_mesa_Indexubv( const GLubyte *c );
-void GLAPIENTRY
-_mesa_EdgeFlagv(const GLboolean *flag);
-void GLAPIENTRY
-_mesa_Normal3b( GLbyte nx, GLbyte ny, GLbyte nz );
-void GLAPIENTRY
-_mesa_Normal3d( GLdouble nx, GLdouble ny, GLdouble nz );
-void GLAPIENTRY
-_mesa_Normal3i( GLint nx, GLint ny, GLint nz );
-void GLAPIENTRY
-_mesa_Normal3s( GLshort nx, GLshort ny, GLshort nz );
-void GLAPIENTRY
-_mesa_Normal3bv( const GLbyte *v );
-void GLAPIENTRY
-_mesa_Normal3dv( const GLdouble *v );
-void GLAPIENTRY
-_mesa_Normal3iv( const GLint *v );
-void GLAPIENTRY
-_mesa_Normal3sv( const GLshort *v );
-void GLAPIENTRY
-_mesa_TexCoord1d( GLdouble s );
-void GLAPIENTRY
-_mesa_TexCoord1i( GLint s );
-void GLAPIENTRY
-_mesa_TexCoord1s( GLshort s );
-void GLAPIENTRY
-_mesa_TexCoord2d( GLdouble s, GLdouble t );
-void GLAPIENTRY
-_mesa_TexCoord2s( GLshort s, GLshort t );
-void GLAPIENTRY
-_mesa_TexCoord2i( GLint s, GLint t );
-void GLAPIENTRY
-_mesa_TexCoord3d( GLdouble s, GLdouble t, GLdouble r );
-void GLAPIENTRY
-_mesa_TexCoord3i( GLint s, GLint t, GLint r );
-void GLAPIENTRY
-_mesa_TexCoord3s( GLshort s, GLshort t, GLshort r );
-void GLAPIENTRY
-_mesa_TexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q );
-void GLAPIENTRY
-_mesa_TexCoord4i( GLint s, GLint t, GLint r, GLint q );
-void GLAPIENTRY
-_mesa_TexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q );
-void GLAPIENTRY
-_mesa_TexCoord1dv( const GLdouble *v );
-void GLAPIENTRY
-_mesa_TexCoord1iv( const GLint *v );
-void GLAPIENTRY
-_mesa_TexCoord1sv( const GLshort *v );
-void GLAPIENTRY
-_mesa_TexCoord2dv( const GLdouble *v );
-void GLAPIENTRY
-_mesa_TexCoord2iv( const GLint *v );
-void GLAPIENTRY
-_mesa_TexCoord2sv( const GLshort *v );
-void GLAPIENTRY
-_mesa_TexCoord3dv( const GLdouble *v );
-void GLAPIENTRY
-_mesa_TexCoord3iv( const GLint *v );
-void GLAPIENTRY
-_mesa_TexCoord3sv( const GLshort *v );
-void GLAPIENTRY
-_mesa_TexCoord4dv( const GLdouble *v );
-void GLAPIENTRY
-_mesa_TexCoord4iv( const GLint *v );
-void GLAPIENTRY
-_mesa_TexCoord4sv( const GLshort *v );
-void GLAPIENTRY
-_mesa_Vertex2d( GLdouble x, GLdouble y );
-void GLAPIENTRY
-_mesa_Vertex2i( GLint x, GLint y );
-void GLAPIENTRY
-_mesa_Vertex2s( GLshort x, GLshort y );
-void GLAPIENTRY
-_mesa_Vertex3d( GLdouble x, GLdouble y, GLdouble z );
-void GLAPIENTRY
-_mesa_Vertex3i( GLint x, GLint y, GLint z );
-void GLAPIENTRY
-_mesa_Vertex3s( GLshort x, GLshort y, GLshort z );
-void GLAPIENTRY
-_mesa_Vertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
-void GLAPIENTRY
-_mesa_Vertex4i( GLint x, GLint y, GLint z, GLint w );
-void GLAPIENTRY
-_mesa_Vertex4s( GLshort x, GLshort y, GLshort z, GLshort w );
-void GLAPIENTRY
-_mesa_Vertex2dv( const GLdouble *v );
-void GLAPIENTRY
-_mesa_Vertex2iv( const GLint *v );
-void GLAPIENTRY
-_mesa_Vertex2sv( const GLshort *v );
-void GLAPIENTRY
-_mesa_Vertex3dv( const GLdouble *v );
-void GLAPIENTRY
-_mesa_Vertex3iv( const GLint *v );
-void GLAPIENTRY
-_mesa_Vertex3sv( const GLshort *v );
-void GLAPIENTRY
-_mesa_Vertex4dv( const GLdouble *v );
-void GLAPIENTRY
-_mesa_Vertex4iv( const GLint *v );
-void GLAPIENTRY
-_mesa_Vertex4sv( const GLshort *v );
-void GLAPIENTRY
-_mesa_MultiTexCoord1d(GLenum target, GLdouble s);
-void GLAPIENTRY
-_mesa_MultiTexCoord1dv(GLenum target, const GLdouble *v);
-void GLAPIENTRY
-_mesa_MultiTexCoord1i(GLenum target, GLint s);
-void GLAPIENTRY
-_mesa_MultiTexCoord1iv(GLenum target, const GLint *v);
-void GLAPIENTRY
-_mesa_MultiTexCoord1s(GLenum target, GLshort s);
-void GLAPIENTRY
-_mesa_MultiTexCoord1sv(GLenum target, const GLshort *v);
-void GLAPIENTRY
-_mesa_MultiTexCoord2d(GLenum target, GLdouble s, GLdouble t);
-void GLAPIENTRY
-_mesa_MultiTexCoord2dv(GLenum target, const GLdouble *v);
-void GLAPIENTRY
-_mesa_MultiTexCoord2i(GLenum target, GLint s, GLint t);
-void GLAPIENTRY
-_mesa_MultiTexCoord2iv(GLenum target, const GLint *v);
-void GLAPIENTRY
-_mesa_MultiTexCoord2s(GLenum target, GLshort s, GLshort t);
-void GLAPIENTRY
-_mesa_MultiTexCoord2sv(GLenum target, const GLshort *v);
-void GLAPIENTRY
-_mesa_MultiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r);
-void GLAPIENTRY
-_mesa_MultiTexCoord3dv(GLenum target, const GLdouble *v);
-void GLAPIENTRY
-_mesa_MultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r);
-void GLAPIENTRY
-_mesa_MultiTexCoord3iv(GLenum target, const GLint *v);
-void GLAPIENTRY
-_mesa_MultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r);
-void GLAPIENTRY
-_mesa_MultiTexCoord3sv(GLenum target, const GLshort *v);
-void GLAPIENTRY
-_mesa_MultiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r,
-                            GLdouble q);
-void GLAPIENTRY
-_mesa_MultiTexCoord4dv(GLenum target, const GLdouble *v);
-void GLAPIENTRY
-_mesa_MultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q);
-void GLAPIENTRY
-_mesa_MultiTexCoord4iv(GLenum target, const GLint *v);
-void GLAPIENTRY
-_mesa_MultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r,
-                            GLshort q);
-void GLAPIENTRY
-_mesa_MultiTexCoord4sv(GLenum target, const GLshort *v);
-void GLAPIENTRY
-_mesa_EvalCoord2dv( const GLdouble *u );
-void GLAPIENTRY
-_mesa_EvalCoord2d( GLdouble u, GLdouble v );
-void GLAPIENTRY
-_mesa_EvalCoord1dv( const GLdouble *u );
-void GLAPIENTRY
-_mesa_EvalCoord1d( GLdouble u );
-void GLAPIENTRY
-_mesa_Materialf( GLenum face, GLenum pname, GLfloat param );
-void GLAPIENTRY
-_mesa_Materiali(GLenum face, GLenum pname, GLint param );
-void GLAPIENTRY
-_mesa_Materialiv(GLenum face, GLenum pname, const GLint *params );
-void GLAPIENTRY
-_mesa_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
-void GLAPIENTRY
-_mesa_Rectdv(const GLdouble *v1, const GLdouble *v2);
-void GLAPIENTRY
-_mesa_Rectfv(const GLfloat *v1, const GLfloat *v2);
-void GLAPIENTRY
-_mesa_Recti(GLint x1, GLint y1, GLint x2, GLint y2);
-void GLAPIENTRY
-_mesa_Rectiv(const GLint *v1, const GLint *v2);
-void GLAPIENTRY
-_mesa_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
-void GLAPIENTRY
-_mesa_Rectsv(const GLshort *v1, const GLshort *v2);
-void GLAPIENTRY
-_mesa_SecondaryColor3b( GLbyte red, GLbyte green, GLbyte blue );
-void GLAPIENTRY
-_mesa_SecondaryColor3d( GLdouble red, GLdouble green, GLdouble blue );
-void GLAPIENTRY
-_mesa_SecondaryColor3i( GLint red, GLint green, GLint blue );
-void GLAPIENTRY
-_mesa_SecondaryColor3s( GLshort red, GLshort green, GLshort blue );
-void GLAPIENTRY
-_mesa_SecondaryColor3ui( GLuint red, GLuint green, GLuint blue );
-void GLAPIENTRY
-_mesa_SecondaryColor3us( GLushort red, GLushort green, GLushort blue );
-void GLAPIENTRY
-_mesa_SecondaryColor3ub( GLubyte red, GLubyte green, GLubyte blue );
-void GLAPIENTRY
-_mesa_SecondaryColor3bv( const GLbyte *v );
-void GLAPIENTRY
-_mesa_SecondaryColor3dv( const GLdouble *v );
-void GLAPIENTRY
-_mesa_SecondaryColor3iv( const GLint *v );
-void GLAPIENTRY
-_mesa_SecondaryColor3sv( const GLshort *v );
-void GLAPIENTRY
-_mesa_SecondaryColor3uiv( const GLuint *v );
-void GLAPIENTRY
-_mesa_SecondaryColor3usv( const GLushort *v );
-void GLAPIENTRY
-_mesa_SecondaryColor3ubv( const GLubyte *v );
-void GLAPIENTRY
-_mesa_VertexAttrib1sNV(GLuint index, GLshort x);
-void GLAPIENTRY
-_mesa_VertexAttrib1dNV(GLuint index, GLdouble x);
-void GLAPIENTRY
-_mesa_VertexAttrib2sNV(GLuint index, GLshort x, GLshort y);
-void GLAPIENTRY
-_mesa_VertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y);
-void GLAPIENTRY
-_mesa_VertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z);
-void GLAPIENTRY
-_mesa_VertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z);
-void GLAPIENTRY
-_mesa_VertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z,
-                          GLshort w);
-void GLAPIENTRY
-_mesa_VertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z,
-                          GLdouble w);
-void GLAPIENTRY
-_mesa_VertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z,
-                           GLubyte w);
-void GLAPIENTRY
-_mesa_VertexAttrib1svNV(GLuint index, const GLshort *v);
-void GLAPIENTRY
-_mesa_VertexAttrib1dvNV(GLuint index, const GLdouble *v);
-void GLAPIENTRY
-_mesa_VertexAttrib2svNV(GLuint index, const GLshort *v);
-void GLAPIENTRY
-_mesa_VertexAttrib2dvNV(GLuint index, const GLdouble *v);
-void GLAPIENTRY
-_mesa_VertexAttrib3svNV(GLuint index, const GLshort *v);
-void GLAPIENTRY
-_mesa_VertexAttrib3dvNV(GLuint index, const GLdouble *v);
-void GLAPIENTRY
-_mesa_VertexAttrib4svNV(GLuint index, const GLshort *v);
-void GLAPIENTRY
-_mesa_VertexAttrib4dvNV(GLuint index, const GLdouble *v);
-void GLAPIENTRY
-_mesa_VertexAttrib4ubvNV(GLuint index, const GLubyte *v);
-void GLAPIENTRY
-_mesa_VertexAttribs1svNV(GLuint index, GLsizei n, const GLshort *v);
-void GLAPIENTRY
-_mesa_VertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat *v);
-void GLAPIENTRY
-_mesa_VertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble *v);
-void GLAPIENTRY
-_mesa_VertexAttribs2svNV(GLuint index, GLsizei n, const GLshort *v);
-void GLAPIENTRY
-_mesa_VertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat *v);
-void GLAPIENTRY
-_mesa_VertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble *v);
-void GLAPIENTRY
-_mesa_VertexAttribs3svNV(GLuint index, GLsizei n, const GLshort *v);
-void GLAPIENTRY
-_mesa_VertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat *v);
-void GLAPIENTRY
-_mesa_VertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble *v);
-void GLAPIENTRY
-_mesa_VertexAttribs4svNV(GLuint index, GLsizei n, const GLshort *v);
-void GLAPIENTRY
-_mesa_VertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat *v);
-void GLAPIENTRY
-_mesa_VertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble *v);
-void GLAPIENTRY
-_mesa_VertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v);
-void GLAPIENTRY
-_mesa_VertexAttrib1s(GLuint index, GLshort x);
-void GLAPIENTRY
-_mesa_VertexAttrib1d(GLuint index, GLdouble x);
-void GLAPIENTRY
-_mesa_VertexAttrib2s(GLuint index, GLshort x, GLshort y);
-void GLAPIENTRY
-_mesa_VertexAttrib2d(GLuint index, GLdouble x, GLdouble y);
-void GLAPIENTRY
-_mesa_VertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z);
-void GLAPIENTRY
-_mesa_VertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z);
-void GLAPIENTRY
-_mesa_VertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z,
-                           GLshort w);
-void GLAPIENTRY
-_mesa_VertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z,
-                           GLdouble w);
-void GLAPIENTRY
-_mesa_VertexAttrib1sv(GLuint index, const GLshort *v);
-void GLAPIENTRY
-_mesa_VertexAttrib1dv(GLuint index, const GLdouble *v);
-void GLAPIENTRY
-_mesa_VertexAttrib2sv(GLuint index, const GLshort *v);
-void GLAPIENTRY
-_mesa_VertexAttrib2dv(GLuint index, const GLdouble *v);
-void GLAPIENTRY
-_mesa_VertexAttrib3sv(GLuint index, const GLshort *v);
-void GLAPIENTRY
-_mesa_VertexAttrib3dv(GLuint index, const GLdouble *v);
-void GLAPIENTRY
-_mesa_VertexAttrib4sv(GLuint index, const GLshort *v);
-void GLAPIENTRY
-_mesa_VertexAttrib4dv(GLuint index, const GLdouble *v);
-void GLAPIENTRY
-_mesa_VertexAttrib4bv(GLuint index, const GLbyte * v);
-void GLAPIENTRY
-_mesa_VertexAttrib4iv(GLuint index, const GLint * v);
-void GLAPIENTRY
-_mesa_VertexAttrib4ubv(GLuint index, const GLubyte * v);
-void GLAPIENTRY
-_mesa_VertexAttrib4usv(GLuint index, const GLushort * v);
-void GLAPIENTRY
-_mesa_VertexAttrib4uiv(GLuint index, const GLuint * v);
-void GLAPIENTRY
-_mesa_VertexAttrib4Nbv(GLuint index, const GLbyte * v);
-void GLAPIENTRY
-_mesa_VertexAttrib4Nsv(GLuint index, const GLshort * v);
-void GLAPIENTRY
-_mesa_VertexAttrib4Niv(GLuint index, const GLint * v);
-void GLAPIENTRY
-_mesa_VertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z,
-                             GLubyte w);
-void GLAPIENTRY
-_mesa_VertexAttrib4Nubv(GLuint index, const GLubyte * v);
-void GLAPIENTRY
-_mesa_VertexAttrib4Nusv(GLuint index, const GLushort * v);
-void GLAPIENTRY
-_mesa_VertexAttrib4Nuiv(GLuint index, const GLuint * v);
-void GLAPIENTRY
-_mesa_VertexAttribI1iv(GLuint index, const GLint *v);
-void GLAPIENTRY
-_mesa_VertexAttribI1uiv(GLuint index, const GLuint *v);
-void GLAPIENTRY
-_mesa_VertexAttribI4bv(GLuint index, const GLbyte *v);
-void GLAPIENTRY
-_mesa_VertexAttribI4sv(GLuint index, const GLshort *v);
-void GLAPIENTRY
-_mesa_VertexAttribI4ubv(GLuint index, const GLubyte *v);
-void GLAPIENTRY
-_mesa_VertexAttribI4usv(GLuint index, const GLushort *v);
-
-#endif /* API_LOOPBACK_H */
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index d72a9df..4021328 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -80,7 +80,6 @@
 
 #include "accum.h"
 #include "api_exec.h"
-#include "api_loopback.h"
 #include "arrayobj.h"
 #include "attrib.h"
 #include "bbox.h"
@@ -1084,7 +1083,7 @@
  *      OPERATION."
  *
  * The table entries for specifying vertex attributes are set up by
- * install_vtxfmt() and _mesa_loopback_init_api_table(), and End() and dlists
+ * install_vtxfmt(), and End() and dlists
  * are set by install_vtxfmt() as well.
  */
 static struct _glapi_table *
@@ -1130,8 +1129,6 @@
    COPY_DISPATCH(ObjectPurgeableAPPLE);
    COPY_DISPATCH(ObjectUnpurgeableAPPLE);
 
-   _mesa_loopback_init_api_table(ctx, table);
-
    return table;
 }
 
diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h
index 322cad3..417f259 100644
--- a/src/mesa/main/dd.h
+++ b/src/mesa/main/dd.h
@@ -1538,6 +1538,216 @@
    void (GLAPIENTRYP SecondaryColor3hNV)( GLhalfNV, GLhalfNV, GLhalfNV );
    void (GLAPIENTRYP SecondaryColor3hvNV)( const GLhalfNV * );
 
+   void (GLAPIENTRYP Color3b)( GLbyte red, GLbyte green, GLbyte blue );
+   void (GLAPIENTRYP Color3d)( GLdouble red, GLdouble green, GLdouble blue );
+   void (GLAPIENTRYP Color3i)( GLint red, GLint green, GLint blue );
+   void (GLAPIENTRYP Color3s)( GLshort red, GLshort green, GLshort blue );
+   void (GLAPIENTRYP Color3ui)( GLuint red, GLuint green, GLuint blue );
+   void (GLAPIENTRYP Color3us)( GLushort red, GLushort green, GLushort blue );
+   void (GLAPIENTRYP Color3ub)( GLubyte red, GLubyte green, GLubyte blue );
+   void (GLAPIENTRYP Color3bv)( const GLbyte *v );
+   void (GLAPIENTRYP Color3dv)( const GLdouble *v );
+   void (GLAPIENTRYP Color3iv)( const GLint *v );
+   void (GLAPIENTRYP Color3sv)( const GLshort *v );
+   void (GLAPIENTRYP Color3uiv)( const GLuint *v );
+   void (GLAPIENTRYP Color3usv)( const GLushort *v );
+   void (GLAPIENTRYP Color3ubv)( const GLubyte *v );
+   void (GLAPIENTRYP Color4b)( GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha );
+   void (GLAPIENTRYP Color4d)( GLdouble red, GLdouble green, GLdouble blue,
+                       GLdouble alpha );
+   void (GLAPIENTRYP Color4i)( GLint red, GLint green, GLint blue, GLint alpha );
+   void (GLAPIENTRYP Color4s)( GLshort red, GLshort green, GLshort blue,
+                       GLshort alpha );
+   void (GLAPIENTRYP Color4ui)( GLuint red, GLuint green, GLuint blue, GLuint alpha );
+   void (GLAPIENTRYP Color4us)( GLushort red, GLushort green, GLushort blue,
+                        GLushort alpha );
+   void (GLAPIENTRYP Color4ub)( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
+   void (GLAPIENTRYP Color4iv)( const GLint *v );
+   void (GLAPIENTRYP Color4bv)( const GLbyte *v );
+   void (GLAPIENTRYP Color4dv)( const GLdouble *v );
+   void (GLAPIENTRYP Color4sv)( const GLshort *v);
+   void (GLAPIENTRYP Color4uiv)( const GLuint *v);
+   void (GLAPIENTRYP Color4usv)( const GLushort *v);
+   void (GLAPIENTRYP Color4ubv)( const GLubyte *v);
+   void (GLAPIENTRYP FogCoordd)( GLdouble d );
+   void (GLAPIENTRYP FogCoorddv)( const GLdouble *v );
+   void (GLAPIENTRYP Indexd)( GLdouble c );
+   void (GLAPIENTRYP Indexi)( GLint c );
+   void (GLAPIENTRYP Indexs)( GLshort c );
+   void (GLAPIENTRYP Indexub)( GLubyte c );
+   void (GLAPIENTRYP Indexdv)( const GLdouble *c );
+   void (GLAPIENTRYP Indexiv)( const GLint *c );
+   void (GLAPIENTRYP Indexsv)( const GLshort *c );
+   void (GLAPIENTRYP Indexubv)( const GLubyte *c );
+   void (GLAPIENTRYP EdgeFlagv)(const GLboolean *flag);
+   void (GLAPIENTRYP Normal3b)( GLbyte nx, GLbyte ny, GLbyte nz );
+   void (GLAPIENTRYP Normal3d)( GLdouble nx, GLdouble ny, GLdouble nz );
+   void (GLAPIENTRYP Normal3i)( GLint nx, GLint ny, GLint nz );
+   void (GLAPIENTRYP Normal3s)( GLshort nx, GLshort ny, GLshort nz );
+   void (GLAPIENTRYP Normal3bv)( const GLbyte *v );
+   void (GLAPIENTRYP Normal3dv)( const GLdouble *v );
+   void (GLAPIENTRYP Normal3iv)( const GLint *v );
+   void (GLAPIENTRYP Normal3sv)( const GLshort *v );
+   void (GLAPIENTRYP TexCoord1d)( GLdouble s );
+   void (GLAPIENTRYP TexCoord1i)( GLint s );
+   void (GLAPIENTRYP TexCoord1s)( GLshort s );
+   void (GLAPIENTRYP TexCoord2d)( GLdouble s, GLdouble t );
+   void (GLAPIENTRYP TexCoord2s)( GLshort s, GLshort t );
+   void (GLAPIENTRYP TexCoord2i)( GLint s, GLint t );
+   void (GLAPIENTRYP TexCoord3d)( GLdouble s, GLdouble t, GLdouble r );
+   void (GLAPIENTRYP TexCoord3i)( GLint s, GLint t, GLint r );
+   void (GLAPIENTRYP TexCoord3s)( GLshort s, GLshort t, GLshort r );
+   void (GLAPIENTRYP TexCoord4d)( GLdouble s, GLdouble t, GLdouble r, GLdouble q );
+   void (GLAPIENTRYP TexCoord4i)( GLint s, GLint t, GLint r, GLint q );
+   void (GLAPIENTRYP TexCoord4s)( GLshort s, GLshort t, GLshort r, GLshort q );
+   void (GLAPIENTRYP TexCoord1dv)( const GLdouble *v );
+   void (GLAPIENTRYP TexCoord1iv)( const GLint *v );
+   void (GLAPIENTRYP TexCoord1sv)( const GLshort *v );
+   void (GLAPIENTRYP TexCoord2dv)( const GLdouble *v );
+   void (GLAPIENTRYP TexCoord2iv)( const GLint *v );
+   void (GLAPIENTRYP TexCoord2sv)( const GLshort *v );
+   void (GLAPIENTRYP TexCoord3dv)( const GLdouble *v );
+   void (GLAPIENTRYP TexCoord3iv)( const GLint *v );
+   void (GLAPIENTRYP TexCoord3sv)( const GLshort *v );
+   void (GLAPIENTRYP TexCoord4dv)( const GLdouble *v );
+   void (GLAPIENTRYP TexCoord4iv)( const GLint *v );
+   void (GLAPIENTRYP TexCoord4sv)( const GLshort *v );
+   void (GLAPIENTRYP Vertex2d)( GLdouble x, GLdouble y );
+   void (GLAPIENTRYP Vertex2i)( GLint x, GLint y );
+   void (GLAPIENTRYP Vertex2s)( GLshort x, GLshort y );
+   void (GLAPIENTRYP Vertex3d)( GLdouble x, GLdouble y, GLdouble z );
+   void (GLAPIENTRYP Vertex3i)( GLint x, GLint y, GLint z );
+   void (GLAPIENTRYP Vertex3s)( GLshort x, GLshort y, GLshort z );
+   void (GLAPIENTRYP Vertex4d)( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
+   void (GLAPIENTRYP Vertex4i)( GLint x, GLint y, GLint z, GLint w );
+   void (GLAPIENTRYP Vertex4s)( GLshort x, GLshort y, GLshort z, GLshort w );
+   void (GLAPIENTRYP Vertex2dv)( const GLdouble *v );
+   void (GLAPIENTRYP Vertex2iv)( const GLint *v );
+   void (GLAPIENTRYP Vertex2sv)( const GLshort *v );
+   void (GLAPIENTRYP Vertex3dv)( const GLdouble *v );
+   void (GLAPIENTRYP Vertex3iv)( const GLint *v );
+   void (GLAPIENTRYP Vertex3sv)( const GLshort *v );
+   void (GLAPIENTRYP Vertex4dv)( const GLdouble *v );
+   void (GLAPIENTRYP Vertex4iv)( const GLint *v );
+   void (GLAPIENTRYP Vertex4sv)( const GLshort *v );
+   void (GLAPIENTRYP MultiTexCoord1d)(GLenum target, GLdouble s);
+   void (GLAPIENTRYP MultiTexCoord1dv)(GLenum target, const GLdouble *v);
+   void (GLAPIENTRYP MultiTexCoord1i)(GLenum target, GLint s);
+   void (GLAPIENTRYP MultiTexCoord1iv)(GLenum target, const GLint *v);
+   void (GLAPIENTRYP MultiTexCoord1s)(GLenum target, GLshort s);
+   void (GLAPIENTRYP MultiTexCoord1sv)(GLenum target, const GLshort *v);
+   void (GLAPIENTRYP MultiTexCoord2d)(GLenum target, GLdouble s, GLdouble t);
+   void (GLAPIENTRYP MultiTexCoord2dv)(GLenum target, const GLdouble *v);
+   void (GLAPIENTRYP MultiTexCoord2i)(GLenum target, GLint s, GLint t);
+   void (GLAPIENTRYP MultiTexCoord2iv)(GLenum target, const GLint *v);
+   void (GLAPIENTRYP MultiTexCoord2s)(GLenum target, GLshort s, GLshort t);
+   void (GLAPIENTRYP MultiTexCoord2sv)(GLenum target, const GLshort *v);
+   void (GLAPIENTRYP MultiTexCoord3d)(GLenum target, GLdouble s, GLdouble t, GLdouble r);
+   void (GLAPIENTRYP MultiTexCoord3dv)(GLenum target, const GLdouble *v);
+   void (GLAPIENTRYP MultiTexCoord3i)(GLenum target, GLint s, GLint t, GLint r);
+   void (GLAPIENTRYP MultiTexCoord3iv)(GLenum target, const GLint *v);
+   void (GLAPIENTRYP MultiTexCoord3s)(GLenum target, GLshort s, GLshort t, GLshort r);
+   void (GLAPIENTRYP MultiTexCoord3sv)(GLenum target, const GLshort *v);
+   void (GLAPIENTRYP MultiTexCoord4d)(GLenum target, GLdouble s, GLdouble t, GLdouble r,
+                               GLdouble q);
+   void (GLAPIENTRYP MultiTexCoord4dv)(GLenum target, const GLdouble *v);
+   void (GLAPIENTRYP MultiTexCoord4i)(GLenum target, GLint s, GLint t, GLint r, GLint q);
+   void (GLAPIENTRYP MultiTexCoord4iv)(GLenum target, const GLint *v);
+   void (GLAPIENTRYP MultiTexCoord4s)(GLenum target, GLshort s, GLshort t, GLshort r,
+                               GLshort q);
+   void (GLAPIENTRYP MultiTexCoord4sv)(GLenum target, const GLshort *v);
+   void (GLAPIENTRYP EvalCoord2dv)( const GLdouble *u );
+   void (GLAPIENTRYP EvalCoord2d)( GLdouble u, GLdouble v );
+   void (GLAPIENTRYP EvalCoord1dv)( const GLdouble *u );
+   void (GLAPIENTRYP EvalCoord1d)( GLdouble u );
+   void (GLAPIENTRYP Materialf)( GLenum face, GLenum pname, GLfloat param );
+   void (GLAPIENTRYP Materiali)(GLenum face, GLenum pname, GLint param );
+   void (GLAPIENTRYP Materialiv)(GLenum face, GLenum pname, const GLint *params );
+   void (GLAPIENTRYP SecondaryColor3b)( GLbyte red, GLbyte green, GLbyte blue );
+   void (GLAPIENTRYP SecondaryColor3d)( GLdouble red, GLdouble green, GLdouble blue );
+   void (GLAPIENTRYP SecondaryColor3i)( GLint red, GLint green, GLint blue );
+   void (GLAPIENTRYP SecondaryColor3s)( GLshort red, GLshort green, GLshort blue );
+   void (GLAPIENTRYP SecondaryColor3ui)( GLuint red, GLuint green, GLuint blue );
+   void (GLAPIENTRYP SecondaryColor3us)( GLushort red, GLushort green, GLushort blue );
+   void (GLAPIENTRYP SecondaryColor3ub)( GLubyte red, GLubyte green, GLubyte blue );
+   void (GLAPIENTRYP SecondaryColor3bv)( const GLbyte *v );
+   void (GLAPIENTRYP SecondaryColor3dv)( const GLdouble *v );
+   void (GLAPIENTRYP SecondaryColor3iv)( const GLint *v );
+   void (GLAPIENTRYP SecondaryColor3sv)( const GLshort *v );
+   void (GLAPIENTRYP SecondaryColor3uiv)( const GLuint *v );
+   void (GLAPIENTRYP SecondaryColor3usv)( const GLushort *v );
+   void (GLAPIENTRYP SecondaryColor3ubv)( const GLubyte *v );
+   void (GLAPIENTRYP VertexAttrib1sNV)(GLuint index, GLshort x);
+   void (GLAPIENTRYP VertexAttrib1dNV)(GLuint index, GLdouble x);
+   void (GLAPIENTRYP VertexAttrib2sNV)(GLuint index, GLshort x, GLshort y);
+   void (GLAPIENTRYP VertexAttrib2dNV)(GLuint index, GLdouble x, GLdouble y);
+   void (GLAPIENTRYP VertexAttrib3sNV)(GLuint index, GLshort x, GLshort y, GLshort z);
+   void (GLAPIENTRYP VertexAttrib3dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+   void (GLAPIENTRYP VertexAttrib4sNV)(GLuint index, GLshort x, GLshort y, GLshort z,
+                             GLshort w);
+   void (GLAPIENTRYP VertexAttrib4dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z,
+                             GLdouble w);
+   void (GLAPIENTRYP VertexAttrib4ubNV)(GLuint index, GLubyte x, GLubyte y, GLubyte z,
+                              GLubyte w);
+   void (GLAPIENTRYP VertexAttrib1svNV)(GLuint index, const GLshort *v);
+   void (GLAPIENTRYP VertexAttrib1dvNV)(GLuint index, const GLdouble *v);
+   void (GLAPIENTRYP VertexAttrib2svNV)(GLuint index, const GLshort *v);
+   void (GLAPIENTRYP VertexAttrib2dvNV)(GLuint index, const GLdouble *v);
+   void (GLAPIENTRYP VertexAttrib3svNV)(GLuint index, const GLshort *v);
+   void (GLAPIENTRYP VertexAttrib3dvNV)(GLuint index, const GLdouble *v);
+   void (GLAPIENTRYP VertexAttrib4svNV)(GLuint index, const GLshort *v);
+   void (GLAPIENTRYP VertexAttrib4dvNV)(GLuint index, const GLdouble *v);
+   void (GLAPIENTRYP VertexAttrib4ubvNV)(GLuint index, const GLubyte *v);
+   void (GLAPIENTRYP VertexAttribs1svNV)(GLuint index, GLsizei n, const GLshort *v);
+   void (GLAPIENTRYP VertexAttribs1fvNV)(GLuint index, GLsizei n, const GLfloat *v);
+   void (GLAPIENTRYP VertexAttribs1dvNV)(GLuint index, GLsizei n, const GLdouble *v);
+   void (GLAPIENTRYP VertexAttribs2svNV)(GLuint index, GLsizei n, const GLshort *v);
+   void (GLAPIENTRYP VertexAttribs2fvNV)(GLuint index, GLsizei n, const GLfloat *v);
+   void (GLAPIENTRYP VertexAttribs2dvNV)(GLuint index, GLsizei n, const GLdouble *v);
+   void (GLAPIENTRYP VertexAttribs3svNV)(GLuint index, GLsizei n, const GLshort *v);
+   void (GLAPIENTRYP VertexAttribs3fvNV)(GLuint index, GLsizei n, const GLfloat *v);
+   void (GLAPIENTRYP VertexAttribs3dvNV)(GLuint index, GLsizei n, const GLdouble *v);
+   void (GLAPIENTRYP VertexAttribs4svNV)(GLuint index, GLsizei n, const GLshort *v);
+   void (GLAPIENTRYP VertexAttribs4fvNV)(GLuint index, GLsizei n, const GLfloat *v);
+   void (GLAPIENTRYP VertexAttribs4dvNV)(GLuint index, GLsizei n, const GLdouble *v);
+   void (GLAPIENTRYP VertexAttribs4ubvNV)(GLuint index, GLsizei n, const GLubyte *v);
+   void (GLAPIENTRYP VertexAttrib1s)(GLuint index, GLshort x);
+   void (GLAPIENTRYP VertexAttrib1d)(GLuint index, GLdouble x);
+   void (GLAPIENTRYP VertexAttrib2s)(GLuint index, GLshort x, GLshort y);
+   void (GLAPIENTRYP VertexAttrib2d)(GLuint index, GLdouble x, GLdouble y);
+   void (GLAPIENTRYP VertexAttrib3s)(GLuint index, GLshort x, GLshort y, GLshort z);
+   void (GLAPIENTRYP VertexAttrib3d)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+   void (GLAPIENTRYP VertexAttrib4s)(GLuint index, GLshort x, GLshort y, GLshort z,
+                              GLshort w);
+   void (GLAPIENTRYP VertexAttrib4d)(GLuint index, GLdouble x, GLdouble y, GLdouble z,
+                              GLdouble w);
+   void (GLAPIENTRYP VertexAttrib1sv)(GLuint index, const GLshort *v);
+   void (GLAPIENTRYP VertexAttrib1dv)(GLuint index, const GLdouble *v);
+   void (GLAPIENTRYP VertexAttrib2sv)(GLuint index, const GLshort *v);
+   void (GLAPIENTRYP VertexAttrib2dv)(GLuint index, const GLdouble *v);
+   void (GLAPIENTRYP VertexAttrib3sv)(GLuint index, const GLshort *v);
+   void (GLAPIENTRYP VertexAttrib3dv)(GLuint index, const GLdouble *v);
+   void (GLAPIENTRYP VertexAttrib4sv)(GLuint index, const GLshort *v);
+   void (GLAPIENTRYP VertexAttrib4dv)(GLuint index, const GLdouble *v);
+   void (GLAPIENTRYP VertexAttrib4bv)(GLuint index, const GLbyte * v);
+   void (GLAPIENTRYP VertexAttrib4iv)(GLuint index, const GLint * v);
+   void (GLAPIENTRYP VertexAttrib4ubv)(GLuint index, const GLubyte * v);
+   void (GLAPIENTRYP VertexAttrib4usv)(GLuint index, const GLushort * v);
+   void (GLAPIENTRYP VertexAttrib4uiv)(GLuint index, const GLuint * v);
+   void (GLAPIENTRYP VertexAttrib4Nbv)(GLuint index, const GLbyte * v);
+   void (GLAPIENTRYP VertexAttrib4Nsv)(GLuint index, const GLshort * v);
+   void (GLAPIENTRYP VertexAttrib4Niv)(GLuint index, const GLint * v);
+   void (GLAPIENTRYP VertexAttrib4Nub)(GLuint index, GLubyte x, GLubyte y, GLubyte z,
+                                GLubyte w);
+   void (GLAPIENTRYP VertexAttrib4Nubv)(GLuint index, const GLubyte * v);
+   void (GLAPIENTRYP VertexAttrib4Nusv)(GLuint index, const GLushort * v);
+   void (GLAPIENTRYP VertexAttrib4Nuiv)(GLuint index, const GLuint * v);
+   void (GLAPIENTRYP VertexAttribI1iv)(GLuint index, const GLint *v);
+   void (GLAPIENTRYP VertexAttribI1uiv)(GLuint index, const GLuint *v);
+   void (GLAPIENTRYP VertexAttribI4bv)(GLuint index, const GLbyte *v);
+   void (GLAPIENTRYP VertexAttribI4sv)(GLuint index, const GLshort *v);
+   void (GLAPIENTRYP VertexAttribI4ubv)(GLuint index, const GLubyte *v);
+   void (GLAPIENTRYP VertexAttribI4usv)(GLuint index, const GLushort *v);
 } GLvertexformat;
 
 
diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index c016c13..84d1be8 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -34,7 +34,6 @@
 
 #include "api_arrayelt.h"
 #include "api_exec.h"
-#include "api_loopback.h"
 #include "draw_validate.h"
 #include "atifragshader.h"
 #include "config.h"
@@ -6119,6 +6118,48 @@
 }
 
 static void GLAPIENTRY
+save_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+   save_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
+}
+
+static void GLAPIENTRY
+save_Rectdv(const GLdouble *v1, const GLdouble *v2)
+{
+   save_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
+}
+
+static void GLAPIENTRY
+save_Rectfv(const GLfloat *v1, const GLfloat *v2)
+{
+   save_Rectf(v1[0], v1[1], v2[0], v2[1]);
+}
+
+static void GLAPIENTRY
+save_Recti(GLint x1, GLint y1, GLint x2, GLint y2)
+{
+   save_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
+}
+
+static void GLAPIENTRY
+save_Rectiv(const GLint *v1, const GLint *v2)
+{
+   save_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
+}
+
+static void GLAPIENTRY
+save_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+   save_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
+}
+
+static void GLAPIENTRY
+save_Rectsv(const GLshort *v1, const GLshort *v2)
+{
+   save_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
+}
+
+static void GLAPIENTRY
 save_PrimitiveRestartNV(void)
 {
    /* Note: this is used when outside a glBegin/End pair in a display list */
@@ -13988,8 +14029,6 @@
     */
    memcpy(table, ctx->Exec, numEntries * sizeof(_glapi_proc));
 
-   _mesa_loopback_init_api_table(ctx, table);
-
    /* VBO functions */
    vbo_initialize_save_dispatch(ctx, table);
 
@@ -14104,6 +14143,13 @@
    SET_RasterPos4sv(table, save_RasterPos4sv);
    SET_ReadBuffer(table, save_ReadBuffer);
    SET_Rectf(table, save_Rectf);
+   SET_Rectd(table, save_Rectd);
+   SET_Rectdv(table, save_Rectdv);
+   SET_Rectfv(table, save_Rectfv);
+   SET_Recti(table, save_Recti);
+   SET_Rectiv(table, save_Rectiv);
+   SET_Rects(table, save_Rects);
+   SET_Rectsv(table, save_Rectsv);
    SET_Rotated(table, save_Rotated);
    SET_Rotatef(table, save_Rotatef);
    SET_Scaled(table, save_Scaled);
diff --git a/src/mesa/main/draw.c b/src/mesa/main/draw.c
index 8879fa9..74a619e 100644
--- a/src/mesa/main/draw.c
+++ b/src/mesa/main/draw.c
@@ -394,6 +394,49 @@
 }
 
 
+static void GLAPIENTRY
+_mesa_exec_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+   _mesa_exec_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
+}
+
+static void GLAPIENTRY
+_mesa_exec_Rectdv(const GLdouble *v1, const GLdouble *v2)
+{
+   _mesa_exec_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
+}
+
+static void GLAPIENTRY
+_mesa_exec_Rectfv(const GLfloat *v1, const GLfloat *v2)
+{
+   _mesa_exec_Rectf(v1[0], v1[1], v2[0], v2[1]);
+}
+
+static void GLAPIENTRY
+_mesa_exec_Recti(GLint x1, GLint y1, GLint x2, GLint y2)
+{
+   _mesa_exec_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
+}
+
+static void GLAPIENTRY
+_mesa_exec_Rectiv(const GLint *v1, const GLint *v2)
+{
+   _mesa_exec_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
+}
+
+static void GLAPIENTRY
+_mesa_exec_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+   _mesa_exec_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
+}
+
+static void GLAPIENTRY
+_mesa_exec_Rectsv(const GLshort *v1, const GLshort *v2)
+{
+   _mesa_exec_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
+}
+
+
 void GLAPIENTRY
 _mesa_EvalMesh1(GLenum mode, GLint i1, GLint i2)
 {
@@ -1904,6 +1947,13 @@
 
    if (ctx->API == API_OPENGL_COMPAT) {
       SET_Rectf(exec, _mesa_exec_Rectf);
+      SET_Rectd(exec, _mesa_exec_Rectd);
+      SET_Rectdv(exec, _mesa_exec_Rectdv);
+      SET_Rectfv(exec, _mesa_exec_Rectfv);
+      SET_Recti(exec, _mesa_exec_Recti);
+      SET_Rectiv(exec, _mesa_exec_Rectiv);
+      SET_Rects(exec, _mesa_exec_Rects);
+      SET_Rectsv(exec, _mesa_exec_Rectsv);
    }
 
    if (ctx->API != API_OPENGLES &&
diff --git a/src/mesa/main/es1_conversion.c b/src/mesa/main/es1_conversion.c
index 38d8bda..e6995a3 100644
--- a/src/mesa/main/es1_conversion.c
+++ b/src/mesa/main/es1_conversion.c
@@ -1,7 +1,6 @@
 
 #include <stdbool.h>
 
-#include "api_loopback.h"
 #include "api_exec.h"
 #include "blend.h"
 #include "clear.h"
diff --git a/src/mesa/main/vtxfmt.c b/src/mesa/main/vtxfmt.c
index 1d6a0ba..007dd75 100644
--- a/src/mesa/main/vtxfmt.c
+++ b/src/mesa/main/vtxfmt.c
@@ -257,6 +257,219 @@
       SET_VertexAttribL3dv(tab, vfmt->VertexAttribL3dv);
       SET_VertexAttribL4dv(tab, vfmt->VertexAttribL4dv);
    }
+
+   if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) {
+      SET_Color4ub(tab, vfmt->Color4ub);
+      SET_Materialf(tab, vfmt->Materialf);
+   }
+   if (ctx->API == API_OPENGL_COMPAT) {
+      SET_Color3b(tab, vfmt->Color3b);
+      SET_Color3d(tab, vfmt->Color3d);
+      SET_Color3i(tab, vfmt->Color3i);
+      SET_Color3s(tab, vfmt->Color3s);
+      SET_Color3ui(tab, vfmt->Color3ui);
+      SET_Color3us(tab, vfmt->Color3us);
+      SET_Color3ub(tab, vfmt->Color3ub);
+      SET_Color4b(tab, vfmt->Color4b);
+      SET_Color4d(tab, vfmt->Color4d);
+      SET_Color4i(tab, vfmt->Color4i);
+      SET_Color4s(tab, vfmt->Color4s);
+      SET_Color4ui(tab, vfmt->Color4ui);
+      SET_Color4us(tab, vfmt->Color4us);
+      SET_Color3bv(tab, vfmt->Color3bv);
+      SET_Color3dv(tab, vfmt->Color3dv);
+      SET_Color3iv(tab, vfmt->Color3iv);
+      SET_Color3sv(tab, vfmt->Color3sv);
+      SET_Color3uiv(tab, vfmt->Color3uiv);
+      SET_Color3usv(tab, vfmt->Color3usv);
+      SET_Color3ubv(tab, vfmt->Color3ubv);
+      SET_Color4bv(tab, vfmt->Color4bv);
+      SET_Color4dv(tab, vfmt->Color4dv);
+      SET_Color4iv(tab, vfmt->Color4iv);
+      SET_Color4sv(tab, vfmt->Color4sv);
+      SET_Color4uiv(tab, vfmt->Color4uiv);
+      SET_Color4usv(tab, vfmt->Color4usv);
+      SET_Color4ubv(tab, vfmt->Color4ubv);
+
+      SET_SecondaryColor3b(tab, vfmt->SecondaryColor3b);
+      SET_SecondaryColor3d(tab, vfmt->SecondaryColor3d);
+      SET_SecondaryColor3i(tab, vfmt->SecondaryColor3i);
+      SET_SecondaryColor3s(tab, vfmt->SecondaryColor3s);
+      SET_SecondaryColor3ui(tab, vfmt->SecondaryColor3ui);
+      SET_SecondaryColor3us(tab, vfmt->SecondaryColor3us);
+      SET_SecondaryColor3ub(tab, vfmt->SecondaryColor3ub);
+      SET_SecondaryColor3bv(tab, vfmt->SecondaryColor3bv);
+      SET_SecondaryColor3dv(tab, vfmt->SecondaryColor3dv);
+      SET_SecondaryColor3iv(tab, vfmt->SecondaryColor3iv);
+      SET_SecondaryColor3sv(tab, vfmt->SecondaryColor3sv);
+      SET_SecondaryColor3uiv(tab, vfmt->SecondaryColor3uiv);
+      SET_SecondaryColor3usv(tab, vfmt->SecondaryColor3usv);
+      SET_SecondaryColor3ubv(tab, vfmt->SecondaryColor3ubv);
+
+      SET_EdgeFlagv(tab, vfmt->EdgeFlagv);
+
+      SET_Indexd(tab, vfmt->Indexd);
+      SET_Indexi(tab, vfmt->Indexi);
+      SET_Indexs(tab, vfmt->Indexs);
+      SET_Indexub(tab, vfmt->Indexub);
+      SET_Indexdv(tab, vfmt->Indexdv);
+      SET_Indexiv(tab, vfmt->Indexiv);
+      SET_Indexsv(tab, vfmt->Indexsv);
+      SET_Indexubv(tab, vfmt->Indexubv);
+      SET_Normal3b(tab, vfmt->Normal3b);
+      SET_Normal3d(tab, vfmt->Normal3d);
+      SET_Normal3i(tab, vfmt->Normal3i);
+      SET_Normal3s(tab, vfmt->Normal3s);
+      SET_Normal3bv(tab, vfmt->Normal3bv);
+      SET_Normal3dv(tab, vfmt->Normal3dv);
+      SET_Normal3iv(tab, vfmt->Normal3iv);
+      SET_Normal3sv(tab, vfmt->Normal3sv);
+      SET_TexCoord1d(tab, vfmt->TexCoord1d);
+      SET_TexCoord1i(tab, vfmt->TexCoord1i);
+      SET_TexCoord1s(tab, vfmt->TexCoord1s);
+      SET_TexCoord2d(tab, vfmt->TexCoord2d);
+      SET_TexCoord2s(tab, vfmt->TexCoord2s);
+      SET_TexCoord2i(tab, vfmt->TexCoord2i);
+      SET_TexCoord3d(tab, vfmt->TexCoord3d);
+      SET_TexCoord3i(tab, vfmt->TexCoord3i);
+      SET_TexCoord3s(tab, vfmt->TexCoord3s);
+      SET_TexCoord4d(tab, vfmt->TexCoord4d);
+      SET_TexCoord4i(tab, vfmt->TexCoord4i);
+      SET_TexCoord4s(tab, vfmt->TexCoord4s);
+      SET_TexCoord1dv(tab, vfmt->TexCoord1dv);
+      SET_TexCoord1iv(tab, vfmt->TexCoord1iv);
+      SET_TexCoord1sv(tab, vfmt->TexCoord1sv);
+      SET_TexCoord2dv(tab, vfmt->TexCoord2dv);
+      SET_TexCoord2iv(tab, vfmt->TexCoord2iv);
+      SET_TexCoord2sv(tab, vfmt->TexCoord2sv);
+      SET_TexCoord3dv(tab, vfmt->TexCoord3dv);
+      SET_TexCoord3iv(tab, vfmt->TexCoord3iv);
+      SET_TexCoord3sv(tab, vfmt->TexCoord3sv);
+      SET_TexCoord4dv(tab, vfmt->TexCoord4dv);
+      SET_TexCoord4iv(tab, vfmt->TexCoord4iv);
+      SET_TexCoord4sv(tab, vfmt->TexCoord4sv);
+      SET_Vertex2d(tab, vfmt->Vertex2d);
+      SET_Vertex2i(tab, vfmt->Vertex2i);
+      SET_Vertex2s(tab, vfmt->Vertex2s);
+      SET_Vertex3d(tab, vfmt->Vertex3d);
+      SET_Vertex3i(tab, vfmt->Vertex3i);
+      SET_Vertex3s(tab, vfmt->Vertex3s);
+      SET_Vertex4d(tab, vfmt->Vertex4d);
+      SET_Vertex4i(tab, vfmt->Vertex4i);
+      SET_Vertex4s(tab, vfmt->Vertex4s);
+      SET_Vertex2dv(tab, vfmt->Vertex2dv);
+      SET_Vertex2iv(tab, vfmt->Vertex2iv);
+      SET_Vertex2sv(tab, vfmt->Vertex2sv);
+      SET_Vertex3dv(tab, vfmt->Vertex3dv);
+      SET_Vertex3iv(tab, vfmt->Vertex3iv);
+      SET_Vertex3sv(tab, vfmt->Vertex3sv);
+      SET_Vertex4dv(tab, vfmt->Vertex4dv);
+      SET_Vertex4iv(tab, vfmt->Vertex4iv);
+      SET_Vertex4sv(tab, vfmt->Vertex4sv);
+      SET_MultiTexCoord1d(tab, vfmt->MultiTexCoord1d);
+      SET_MultiTexCoord1dv(tab, vfmt->MultiTexCoord1dv);
+      SET_MultiTexCoord1i(tab, vfmt->MultiTexCoord1i);
+      SET_MultiTexCoord1iv(tab, vfmt->MultiTexCoord1iv);
+      SET_MultiTexCoord1s(tab, vfmt->MultiTexCoord1s);
+      SET_MultiTexCoord1sv(tab, vfmt->MultiTexCoord1sv);
+      SET_MultiTexCoord2d(tab, vfmt->MultiTexCoord2d);
+      SET_MultiTexCoord2dv(tab, vfmt->MultiTexCoord2dv);
+      SET_MultiTexCoord2i(tab, vfmt->MultiTexCoord2i);
+      SET_MultiTexCoord2iv(tab, vfmt->MultiTexCoord2iv);
+      SET_MultiTexCoord2s(tab, vfmt->MultiTexCoord2s);
+      SET_MultiTexCoord2sv(tab, vfmt->MultiTexCoord2sv);
+      SET_MultiTexCoord3d(tab, vfmt->MultiTexCoord3d);
+      SET_MultiTexCoord3dv(tab, vfmt->MultiTexCoord3dv);
+      SET_MultiTexCoord3i(tab, vfmt->MultiTexCoord3i);
+      SET_MultiTexCoord3iv(tab, vfmt->MultiTexCoord3iv);
+      SET_MultiTexCoord3s(tab, vfmt->MultiTexCoord3s);
+      SET_MultiTexCoord3sv(tab, vfmt->MultiTexCoord3sv);
+      SET_MultiTexCoord4d(tab, vfmt->MultiTexCoord4d);
+      SET_MultiTexCoord4dv(tab, vfmt->MultiTexCoord4dv);
+      SET_MultiTexCoord4i(tab, vfmt->MultiTexCoord4i);
+      SET_MultiTexCoord4iv(tab, vfmt->MultiTexCoord4iv);
+      SET_MultiTexCoord4s(tab, vfmt->MultiTexCoord4s);
+      SET_MultiTexCoord4sv(tab, vfmt->MultiTexCoord4sv);
+      SET_EvalCoord2dv(tab, vfmt->EvalCoord2dv);
+      SET_EvalCoord2d(tab, vfmt->EvalCoord2d);
+      SET_EvalCoord1dv(tab, vfmt->EvalCoord1dv);
+      SET_EvalCoord1d(tab, vfmt->EvalCoord1d);
+      SET_Materiali(tab, vfmt->Materiali);
+      SET_Materialiv(tab, vfmt->Materialiv);
+      SET_FogCoordd(tab, vfmt->FogCoordd);
+      SET_FogCoorddv(tab, vfmt->FogCoorddv);
+
+      SET_VertexAttrib1sNV(tab, vfmt->VertexAttrib1sNV);
+      SET_VertexAttrib1dNV(tab, vfmt->VertexAttrib1dNV);
+      SET_VertexAttrib2sNV(tab, vfmt->VertexAttrib2sNV);
+      SET_VertexAttrib2dNV(tab, vfmt->VertexAttrib2dNV);
+      SET_VertexAttrib3sNV(tab, vfmt->VertexAttrib3sNV);
+      SET_VertexAttrib3dNV(tab, vfmt->VertexAttrib3dNV);
+      SET_VertexAttrib4sNV(tab, vfmt->VertexAttrib4sNV);
+      SET_VertexAttrib4dNV(tab, vfmt->VertexAttrib4dNV);
+      SET_VertexAttrib4ubNV(tab, vfmt->VertexAttrib4ubNV);
+      SET_VertexAttrib1svNV(tab, vfmt->VertexAttrib1svNV);
+      SET_VertexAttrib1dvNV(tab, vfmt->VertexAttrib1dvNV);
+      SET_VertexAttrib2svNV(tab, vfmt->VertexAttrib2svNV);
+      SET_VertexAttrib2dvNV(tab, vfmt->VertexAttrib2dvNV);
+      SET_VertexAttrib3svNV(tab, vfmt->VertexAttrib3svNV);
+      SET_VertexAttrib3dvNV(tab, vfmt->VertexAttrib3dvNV);
+      SET_VertexAttrib4svNV(tab, vfmt->VertexAttrib4svNV);
+      SET_VertexAttrib4dvNV(tab, vfmt->VertexAttrib4dvNV);
+      SET_VertexAttrib4ubvNV(tab, vfmt->VertexAttrib4ubvNV);
+      SET_VertexAttribs1svNV(tab, vfmt->VertexAttribs1svNV);
+      SET_VertexAttribs1fvNV(tab, vfmt->VertexAttribs1fvNV);
+      SET_VertexAttribs1dvNV(tab, vfmt->VertexAttribs1dvNV);
+      SET_VertexAttribs2svNV(tab, vfmt->VertexAttribs2svNV);
+      SET_VertexAttribs2fvNV(tab, vfmt->VertexAttribs2fvNV);
+      SET_VertexAttribs2dvNV(tab, vfmt->VertexAttribs2dvNV);
+      SET_VertexAttribs3svNV(tab, vfmt->VertexAttribs3svNV);
+      SET_VertexAttribs3fvNV(tab, vfmt->VertexAttribs3fvNV);
+      SET_VertexAttribs3dvNV(tab, vfmt->VertexAttribs3dvNV);
+      SET_VertexAttribs4svNV(tab, vfmt->VertexAttribs4svNV);
+      SET_VertexAttribs4fvNV(tab, vfmt->VertexAttribs4fvNV);
+      SET_VertexAttribs4dvNV(tab, vfmt->VertexAttribs4dvNV);
+      SET_VertexAttribs4ubvNV(tab, vfmt->VertexAttribs4ubvNV);
+   }
+
+   if (_mesa_is_desktop_gl(ctx)) {
+      SET_VertexAttrib1s(tab, vfmt->VertexAttrib1s);
+      SET_VertexAttrib1d(tab, vfmt->VertexAttrib1d);
+      SET_VertexAttrib2s(tab, vfmt->VertexAttrib2s);
+      SET_VertexAttrib2d(tab, vfmt->VertexAttrib2d);
+      SET_VertexAttrib3s(tab, vfmt->VertexAttrib3s);
+      SET_VertexAttrib3d(tab, vfmt->VertexAttrib3d);
+      SET_VertexAttrib4s(tab, vfmt->VertexAttrib4s);
+      SET_VertexAttrib4d(tab, vfmt->VertexAttrib4d);
+      SET_VertexAttrib1sv(tab, vfmt->VertexAttrib1sv);
+      SET_VertexAttrib1dv(tab, vfmt->VertexAttrib1dv);
+      SET_VertexAttrib2sv(tab, vfmt->VertexAttrib2sv);
+      SET_VertexAttrib2dv(tab, vfmt->VertexAttrib2dv);
+      SET_VertexAttrib3sv(tab, vfmt->VertexAttrib3sv);
+      SET_VertexAttrib3dv(tab, vfmt->VertexAttrib3dv);
+      SET_VertexAttrib4sv(tab, vfmt->VertexAttrib4sv);
+      SET_VertexAttrib4dv(tab, vfmt->VertexAttrib4dv);
+      SET_VertexAttrib4Nub(tab, vfmt->VertexAttrib4Nub);
+      SET_VertexAttrib4Nubv(tab, vfmt->VertexAttrib4Nubv);
+      SET_VertexAttrib4bv(tab, vfmt->VertexAttrib4bv);
+      SET_VertexAttrib4iv(tab, vfmt->VertexAttrib4iv);
+      SET_VertexAttrib4ubv(tab, vfmt->VertexAttrib4ubv);
+      SET_VertexAttrib4usv(tab, vfmt->VertexAttrib4usv);
+      SET_VertexAttrib4uiv(tab, vfmt->VertexAttrib4uiv);
+      SET_VertexAttrib4Nbv(tab, vfmt->VertexAttrib4Nbv);
+      SET_VertexAttrib4Nsv(tab, vfmt->VertexAttrib4Nsv);
+      SET_VertexAttrib4Nusv(tab, vfmt->VertexAttrib4Nusv);
+      SET_VertexAttrib4Niv(tab, vfmt->VertexAttrib4Niv);
+      SET_VertexAttrib4Nuiv(tab, vfmt->VertexAttrib4Nuiv);
+
+      /* GL_EXT_gpu_shader4, GL 3.0 */
+      SET_VertexAttribI1iv(tab, vfmt->VertexAttribI1iv);
+      SET_VertexAttribI1uiv(tab, vfmt->VertexAttribI1uiv);
+      SET_VertexAttribI4bv(tab, vfmt->VertexAttribI4bv);
+      SET_VertexAttribI4sv(tab, vfmt->VertexAttribI4sv);
+      SET_VertexAttribI4ubv(tab, vfmt->VertexAttribI4ubv);
+      SET_VertexAttribI4usv(tab, vfmt->VertexAttribI4usv);
+   }
 }
 
 
diff --git a/src/mesa/meson.build b/src/mesa/meson.build
index c0e85cd..4910f97 100644
--- a/src/mesa/meson.build
+++ b/src/mesa/meson.build
@@ -61,8 +61,6 @@
   'main/api_arrayelt.c',
   'main/api_arrayelt.h',
   'main/api_exec.h',
-  'main/api_loopback.c',
-  'main/api_loopback.h',
   'main/arbprogram.c',
   'main/arbprogram.h',
   'main/arrayobj.c',
diff --git a/src/mesa/vbo/vbo_attrib_tmp.h b/src/mesa/vbo/vbo_attrib_tmp.h
index df61622..8d65bab 100644
--- a/src/mesa/vbo/vbo_attrib_tmp.h
+++ b/src/mesa/vbo/vbo_attrib_tmp.h
@@ -1506,6 +1506,1746 @@
    ATTR3HV(VBO_ATTRIB_COLOR1, v);
 }
 
+
+static void GLAPIENTRY
+TAG(Color3b)(GLbyte red, GLbyte green, GLbyte blue)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, BYTE_TO_FLOAT(red),
+          BYTE_TO_FLOAT(green),
+          BYTE_TO_FLOAT(blue),
+          1.0);
+}
+
+static void GLAPIENTRY
+TAG(Color3d)(GLdouble red, GLdouble green, GLdouble blue)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, (GLfloat) red, (GLfloat) green, (GLfloat) blue, 1.0);
+}
+
+static void GLAPIENTRY
+TAG(Color3i)(GLint red, GLint green, GLint blue)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, INT_TO_FLOAT(red), INT_TO_FLOAT(green),
+          INT_TO_FLOAT(blue), 1.0);
+}
+
+static void GLAPIENTRY
+TAG(Color3s)(GLshort red, GLshort green, GLshort blue)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green),
+          SHORT_TO_FLOAT(blue), 1.0);
+}
+
+static void GLAPIENTRY
+TAG(Color3ui)(GLuint red, GLuint green, GLuint blue)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, UINT_TO_FLOAT(red), UINT_TO_FLOAT(green),
+          UINT_TO_FLOAT(blue), 1.0);
+}
+
+static void GLAPIENTRY
+TAG(Color3us)(GLushort red, GLushort green, GLushort blue)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green),
+          USHORT_TO_FLOAT(blue), 1.0);
+}
+
+static void GLAPIENTRY
+TAG(Color3ub)(GLubyte red, GLubyte green, GLubyte blue)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green),
+          UBYTE_TO_FLOAT(blue), 1.0);
+}
+
+
+static void GLAPIENTRY
+TAG(Color3bv)(const GLbyte *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]),
+         BYTE_TO_FLOAT(v[2]), 1.0);
+}
+
+static void GLAPIENTRY
+TAG(Color3dv)(const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1.0);
+}
+
+static void GLAPIENTRY
+TAG(Color3iv)(const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]),
+         INT_TO_FLOAT(v[2]), 1.0);
+}
+
+static void GLAPIENTRY
+TAG(Color3sv)(const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]),
+         SHORT_TO_FLOAT(v[2]), 1.0);
+}
+
+static void GLAPIENTRY
+TAG(Color3uiv)(const GLuint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]),
+         UINT_TO_FLOAT(v[2]), 1.0);
+}
+
+static void GLAPIENTRY
+TAG(Color3usv)(const GLushort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]),
+         USHORT_TO_FLOAT(v[2]), 1.0);
+}
+
+static void GLAPIENTRY
+TAG(Color3ubv)(const GLubyte *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
+         UBYTE_TO_FLOAT(v[2]), 1.0);
+}
+
+
+static void GLAPIENTRY
+TAG(Color4b)(GLbyte red, GLbyte green, GLbyte blue,
+              GLbyte alpha)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, BYTE_TO_FLOAT(red), BYTE_TO_FLOAT(green),
+          BYTE_TO_FLOAT(blue), BYTE_TO_FLOAT(alpha));
+}
+
+static void GLAPIENTRY
+TAG(Color4d)(GLdouble red, GLdouble green, GLdouble blue,
+              GLdouble alpha)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, (GLfloat) red, (GLfloat) green, (GLfloat) blue, (GLfloat) alpha);
+}
+
+static void GLAPIENTRY
+TAG(Color4i)(GLint red, GLint green, GLint blue, GLint alpha)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, INT_TO_FLOAT(red), INT_TO_FLOAT(green),
+          INT_TO_FLOAT(blue), INT_TO_FLOAT(alpha));
+}
+
+static void GLAPIENTRY
+TAG(Color4s)(GLshort red, GLshort green, GLshort blue,
+              GLshort alpha)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green),
+          SHORT_TO_FLOAT(blue), SHORT_TO_FLOAT(alpha));
+}
+
+static void GLAPIENTRY
+TAG(Color4ui)(GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, UINT_TO_FLOAT(red), UINT_TO_FLOAT(green),
+          UINT_TO_FLOAT(blue), UINT_TO_FLOAT(alpha));
+}
+
+static void GLAPIENTRY
+TAG(Color4us)(GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green),
+          USHORT_TO_FLOAT(blue), USHORT_TO_FLOAT(alpha));
+}
+
+static void GLAPIENTRY
+TAG(Color4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green),
+          UBYTE_TO_FLOAT(blue), UBYTE_TO_FLOAT(alpha));
+}
+
+
+static void GLAPIENTRY
+TAG(Color4iv)(const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]),
+         INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3]));
+}
+
+
+static void GLAPIENTRY
+TAG(Color4bv)(const GLbyte *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]),
+         BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3]));
+}
+
+static void GLAPIENTRY
+TAG(Color4dv)(const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
+}
+
+
+static void GLAPIENTRY
+TAG(Color4sv)(const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]),
+         SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3]));
+}
+
+
+static void GLAPIENTRY
+TAG(Color4uiv)(const GLuint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]),
+         UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3]));
+}
+
+static void GLAPIENTRY
+TAG(Color4usv)(const GLushort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]),
+         USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3]));
+}
+
+static void GLAPIENTRY
+TAG(Color4ubv)(const GLubyte *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_COLOR0, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
+         UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]));
+}
+
+
+static void GLAPIENTRY
+TAG(FogCoordd)(GLdouble d)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_FOG, (GLfloat) d);
+}
+
+static void GLAPIENTRY
+TAG(FogCoorddv)(const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_FOG, (GLfloat) *v);
+}
+
+
+static void GLAPIENTRY
+TAG(Indexd)(GLdouble c)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) c);
+}
+
+static void GLAPIENTRY
+TAG(Indexi)(GLint c)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) c);
+}
+
+static void GLAPIENTRY
+TAG(Indexs)(GLshort c)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) c);
+}
+
+static void GLAPIENTRY
+TAG(Indexub)(GLubyte c)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) c);
+}
+
+static void GLAPIENTRY
+TAG(Indexdv)(const GLdouble *c)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) *c);
+}
+
+static void GLAPIENTRY
+TAG(Indexiv)(const GLint *c)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) *c);
+}
+
+static void GLAPIENTRY
+TAG(Indexsv)(const GLshort *c)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) *c);
+}
+
+static void GLAPIENTRY
+TAG(Indexubv)(const GLubyte *c)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) *c);
+}
+
+
+static void GLAPIENTRY
+TAG(EdgeFlagv)(const GLboolean *flag)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_EDGEFLAG, (GLfloat)*flag);
+}
+
+
+static void GLAPIENTRY
+TAG(Normal3b)(GLbyte nx, GLbyte ny, GLbyte nz)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_NORMAL, BYTE_TO_FLOAT(nx), BYTE_TO_FLOAT(ny), BYTE_TO_FLOAT(nz));
+}
+
+static void GLAPIENTRY
+TAG(Normal3d)(GLdouble nx, GLdouble ny, GLdouble nz)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_NORMAL, (GLfloat) nx, (GLfloat) ny, (GLfloat) nz);
+}
+
+static void GLAPIENTRY
+TAG(Normal3i)(GLint nx, GLint ny, GLint nz)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_NORMAL, INT_TO_FLOAT(nx), INT_TO_FLOAT(ny), INT_TO_FLOAT(nz));
+}
+
+static void GLAPIENTRY
+TAG(Normal3s)(GLshort nx, GLshort ny, GLshort nz)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_NORMAL, SHORT_TO_FLOAT(nx), SHORT_TO_FLOAT(ny), SHORT_TO_FLOAT(nz));
+}
+
+static void GLAPIENTRY
+TAG(Normal3bv)(const GLbyte *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_NORMAL, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]));
+}
+
+static void GLAPIENTRY
+TAG(Normal3dv)(const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_NORMAL, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
+}
+
+static void GLAPIENTRY
+TAG(Normal3iv)(const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_NORMAL, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2]));
+}
+
+static void GLAPIENTRY
+TAG(Normal3sv)(const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_NORMAL, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2]));
+}
+
+static void GLAPIENTRY
+TAG(TexCoord1d)(GLdouble s)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_TEX0, (GLfloat) s);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord1i)(GLint s)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_TEX0, (GLfloat) s);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord1s)(GLshort s)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_TEX0, (GLfloat) s);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord2d)(GLdouble s, GLdouble t)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR2F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord2s)(GLshort s, GLshort t)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR2F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord2i)(GLint s, GLint t)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR2F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord3d)(GLdouble s, GLdouble t, GLdouble r)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t,(GLfloat) r);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord3i)(GLint s, GLint t, GLint r)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t,(GLfloat) r);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord3s)(GLshort s, GLshort t, GLshort r)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t,(GLfloat) r);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord4d)(GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord4i)(GLint s, GLint t, GLint r, GLint q)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord4s)(GLshort s, GLshort t, GLshort r, GLshort q)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord1dv)(const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_TEX0, (GLfloat) v[0]);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord1iv)(const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_TEX0, (GLfloat) v[0]);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord1sv)(const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR1F(VBO_ATTRIB_TEX0, (GLfloat) v[0]);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord2dv)(const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR2F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1]);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord2iv)(const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR2F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1]);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord2sv)(const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR2F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1]);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord3dv)(const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord3iv)(const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord3sv)(const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord4dv)(const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord4iv)(const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]);
+}
+
+static void GLAPIENTRY
+TAG(TexCoord4sv)(const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]);
+}
+
+static void GLAPIENTRY
+TAG(Vertex2d)(GLdouble x, GLdouble y)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR2F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y);
+}
+
+static void GLAPIENTRY
+TAG(Vertex2i)(GLint x, GLint y)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR2F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y);
+}
+
+static void GLAPIENTRY
+TAG(Vertex2s)(GLshort x, GLshort y)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR2F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y);
+}
+
+static void GLAPIENTRY
+TAG(Vertex3d)(GLdouble x, GLdouble y, GLdouble z)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y, (GLfloat) z);
+}
+
+static void GLAPIENTRY
+TAG(Vertex3i)(GLint x, GLint y, GLint z)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y, (GLfloat) z);
+}
+
+static void GLAPIENTRY
+TAG(Vertex3s)(GLshort x, GLshort y, GLshort z)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y, (GLfloat) z);
+}
+
+static void GLAPIENTRY
+TAG(Vertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
+}
+
+static void GLAPIENTRY
+TAG(Vertex4i)(GLint x, GLint y, GLint z, GLint w)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
+}
+
+static void GLAPIENTRY
+TAG(Vertex4s)(GLshort x, GLshort y, GLshort z, GLshort w)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
+}
+
+static void GLAPIENTRY
+TAG(Vertex2dv)(const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR2F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1]);
+}
+
+static void GLAPIENTRY
+TAG(Vertex2iv)(const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR2F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1]);
+}
+
+static void GLAPIENTRY
+TAG(Vertex2sv)(const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR2F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1]);
+}
+
+static void GLAPIENTRY
+TAG(Vertex3dv)(const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
+}
+
+static void GLAPIENTRY
+TAG(Vertex3iv)(const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
+}
+
+static void GLAPIENTRY
+TAG(Vertex3sv)(const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
+}
+
+static void GLAPIENTRY
+TAG(Vertex4dv)(const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1],
+         (GLfloat) v[2], (GLfloat) v[3]);
+}
+
+static void GLAPIENTRY
+TAG(Vertex4iv)(const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1],
+         (GLfloat) v[2], (GLfloat) v[3]);
+}
+
+static void GLAPIENTRY
+TAG(Vertex4sv)(const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR4F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1],
+         (GLfloat) v[2], (GLfloat) v[3]);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord1d)(GLenum target, GLdouble s)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR1F(attr, (GLfloat) s);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord1dv)(GLenum target, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR1F(attr, (GLfloat) v[0]);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord1i)(GLenum target, GLint s)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR1F(attr, (GLfloat) s);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord1iv)(GLenum target, const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR1F(attr, (GLfloat) v[0]);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord1s)(GLenum target, GLshort s)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR1F(attr, (GLfloat) s);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord1sv)(GLenum target, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR1F(attr, (GLfloat) v[0]);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord2d)(GLenum target, GLdouble s, GLdouble t)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR2F(attr, (GLfloat) s, (GLfloat) t);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord2dv)(GLenum target, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR2F(attr, (GLfloat) v[0], (GLfloat) v[1]);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord2i)(GLenum target, GLint s, GLint t)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR2F(attr, (GLfloat) s, (GLfloat) t);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord2iv)(GLenum target, const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR2F(attr, (GLfloat) v[0], (GLfloat) v[1]);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord2s)(GLenum target, GLshort s, GLshort t)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR2F(attr, (GLfloat) s, (GLfloat) t);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord2sv)(GLenum target, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR2F(attr, (GLfloat) v[0], (GLfloat) v[1]);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord3d)(GLenum target, GLdouble s, GLdouble t, GLdouble r)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR3F(attr, (GLfloat) s, (GLfloat) t, (GLfloat) r);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord3dv)(GLenum target, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR3F(attr, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord3i)(GLenum target, GLint s, GLint t, GLint r)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR3F(attr, (GLfloat) s, (GLfloat) t, (GLfloat) r);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord3iv)(GLenum target, const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR3F(attr, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord3s)(GLenum target, GLshort s, GLshort t, GLshort r)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR3F(attr, (GLfloat) s, (GLfloat) t, (GLfloat) r);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord3sv)(GLenum target, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR3F(attr, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord4d)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR4F(attr, (GLfloat) s, (GLfloat) t, (GLfloat) r, (GLfloat) q);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord4dv)(GLenum target, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR4F(attr, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord4i)(GLenum target, GLint s, GLint t, GLint r, GLint q)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR4F(attr, (GLfloat) s, (GLfloat) t, (GLfloat) r, (GLfloat) q);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord4iv)(GLenum target, const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR4F(attr, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord4s)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR4F(attr, (GLfloat) s, (GLfloat) t, (GLfloat) r, (GLfloat) q);
+}
+
+static void GLAPIENTRY
+TAG(MultiTexCoord4sv)(GLenum target, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0;
+   ATTR4F(attr, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
+}
+
+
+static void GLAPIENTRY
+TAG(EvalCoord2dv)(const GLdouble *u)
+{
+   TAG(EvalCoord2f)((GLfloat) u[0], (GLfloat) u[1]);
+}
+
+static void GLAPIENTRY
+TAG(EvalCoord2d)(GLdouble u, GLdouble v)
+{
+   TAG(EvalCoord2f)((GLfloat) u, (GLfloat) v);
+}
+
+static void GLAPIENTRY
+TAG(EvalCoord1dv)(const GLdouble *u)
+{
+   TAG(EvalCoord1f)((GLfloat) *u);
+}
+
+static void GLAPIENTRY
+TAG(EvalCoord1d)(GLdouble u)
+{
+   TAG(EvalCoord1f)((GLfloat) u);
+}
+
+
+static void GLAPIENTRY
+TAG(Materialf)(GLenum face, GLenum pname, GLfloat param)
+{
+   GLfloat fparam[4];
+   fparam[0] = param;
+   TAG(Materialfv)(face, pname, fparam);
+}
+
+static void GLAPIENTRY
+TAG(Materiali)(GLenum face, GLenum pname, GLint param)
+{
+   GLfloat p[4];
+   p[0] = (GLfloat) param;
+   TAG(Materialfv)(face, pname, p);
+}
+
+static void GLAPIENTRY
+TAG(Materialiv)(GLenum face, GLenum pname, const GLint *params)
+{
+   GLfloat fparam[4];
+   switch (pname) {
+   case GL_AMBIENT:
+   case GL_DIFFUSE:
+   case GL_SPECULAR:
+   case GL_EMISSION:
+   case GL_AMBIENT_AND_DIFFUSE:
+      fparam[0] = INT_TO_FLOAT(params[0]);
+      fparam[1] = INT_TO_FLOAT(params[1]);
+      fparam[2] = INT_TO_FLOAT(params[2]);
+      fparam[3] = INT_TO_FLOAT(params[3]);
+      break;
+   case GL_SHININESS:
+      fparam[0] = (GLfloat) params[0];
+      break;
+   case GL_COLOR_INDEXES:
+      fparam[0] = (GLfloat) params[0];
+      fparam[1] = (GLfloat) params[1];
+      fparam[2] = (GLfloat) params[2];
+      break;
+   default:
+      ;
+   }
+   TAG(Materialfv)(face, pname, fparam);
+}
+
+
+static void GLAPIENTRY
+TAG(SecondaryColor3b)(GLbyte red, GLbyte green, GLbyte blue)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_COLOR1, BYTE_TO_FLOAT(red),
+          BYTE_TO_FLOAT(green),
+          BYTE_TO_FLOAT(blue));
+}
+
+static void GLAPIENTRY
+TAG(SecondaryColor3d)(GLdouble red, GLdouble green, GLdouble blue)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_COLOR1, (GLfloat) red, (GLfloat) green, (GLfloat) blue);
+}
+
+static void GLAPIENTRY
+TAG(SecondaryColor3i)(GLint red, GLint green, GLint blue)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_COLOR1, INT_TO_FLOAT(red),
+          INT_TO_FLOAT(green),
+          INT_TO_FLOAT(blue));
+}
+
+static void GLAPIENTRY
+TAG(SecondaryColor3s)(GLshort red, GLshort green, GLshort blue)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_COLOR1, SHORT_TO_FLOAT(red),
+          SHORT_TO_FLOAT(green),
+          SHORT_TO_FLOAT(blue));
+}
+
+static void GLAPIENTRY
+TAG(SecondaryColor3ui)(GLuint red, GLuint green, GLuint blue)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_COLOR1, UINT_TO_FLOAT(red),
+          UINT_TO_FLOAT(green),
+          UINT_TO_FLOAT(blue));
+}
+
+static void GLAPIENTRY
+TAG(SecondaryColor3us)(GLushort red, GLushort green, GLushort blue)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_COLOR1, USHORT_TO_FLOAT(red),
+          USHORT_TO_FLOAT(green),
+          USHORT_TO_FLOAT(blue));
+}
+
+static void GLAPIENTRY
+TAG(SecondaryColor3ub)(GLubyte red, GLubyte green, GLubyte blue)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_COLOR1, UBYTE_TO_FLOAT(red),
+          UBYTE_TO_FLOAT(green),
+          UBYTE_TO_FLOAT(blue));
+}
+
+static void GLAPIENTRY
+TAG(SecondaryColor3bv)(const GLbyte *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_COLOR1, BYTE_TO_FLOAT(v[0]),
+         BYTE_TO_FLOAT(v[1]),
+         BYTE_TO_FLOAT(v[2]));
+}
+
+static void GLAPIENTRY
+TAG(SecondaryColor3dv)(const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_COLOR1, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
+}
+
+static void GLAPIENTRY
+TAG(SecondaryColor3iv)(const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_COLOR1, INT_TO_FLOAT(v[0]),
+         INT_TO_FLOAT(v[1]),
+         INT_TO_FLOAT(v[2]));
+}
+
+static void GLAPIENTRY
+TAG(SecondaryColor3sv)(const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_COLOR1, SHORT_TO_FLOAT(v[0]),
+         SHORT_TO_FLOAT(v[1]),
+         SHORT_TO_FLOAT(v[2]));
+}
+
+static void GLAPIENTRY
+TAG(SecondaryColor3uiv)(const GLuint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_COLOR1, UINT_TO_FLOAT(v[0]),
+         UINT_TO_FLOAT(v[1]),
+         UINT_TO_FLOAT(v[2]));
+}
+
+static void GLAPIENTRY
+TAG(SecondaryColor3usv)(const GLushort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_COLOR1, USHORT_TO_FLOAT(v[0]),
+         USHORT_TO_FLOAT(v[1]),
+         USHORT_TO_FLOAT(v[2]));
+}
+
+static void GLAPIENTRY
+TAG(SecondaryColor3ubv)(const GLubyte *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   ATTR3F(VBO_ATTRIB_COLOR1, UBYTE_TO_FLOAT(v[0]),
+         UBYTE_TO_FLOAT(v[1]),
+         UBYTE_TO_FLOAT(v[2]));
+}
+
+
+/*
+ * GL_NV_vertex_program:
+ * Note that attribute indexes DO alias conventional vertex attributes.
+ */
+
+static void GLAPIENTRY
+TAG(VertexAttrib1sNV)(GLuint index, GLshort x)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR1F(index, (GLfloat) x);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib1dNV)(GLuint index, GLdouble x)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR1F(index, (GLfloat) x);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib2sNV)(GLuint index, GLshort x, GLshort y)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR2F(index, (GLfloat) x, y);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib2dNV)(GLuint index, GLdouble x, GLdouble y)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR2F(index, (GLfloat) x, (GLfloat) y);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib3sNV)(GLuint index, GLshort x, GLshort y, GLshort z)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR3F(index, (GLfloat) x, (GLfloat) y, (GLfloat) z);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib3dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR4F(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4sNV)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR4F(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR4F(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4ubNV)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR4F(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y),
+                                      UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w));
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib1svNV)(GLuint index, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR1F(index, (GLfloat) v[0]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib1dvNV)(GLuint index, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR1F(index, (GLfloat) v[0]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib2svNV)(GLuint index, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR2F(index, (GLfloat) v[0], (GLfloat) v[1]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib2dvNV)(GLuint index, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR2F(index, (GLfloat) v[0], (GLfloat) v[1]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib3svNV)(GLuint index, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR3F(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib3dvNV)(GLuint index, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR3F(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4svNV)(GLuint index, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR4F(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2],
+         (GLfloat)v[3]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4dvNV)(GLuint index, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR4F(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4ubvNV)(GLuint index, const GLubyte *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (index < VBO_ATTRIB_MAX) ATTR4F(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
+         UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]));
+}
+
+
+static void GLAPIENTRY
+TAG(VertexAttribs1svNV)(GLuint index, GLsizei n, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLint i;
+   n = MIN2(n, VBO_ATTRIB_MAX - index);
+   for (i = n - 1; i >= 0; i--)
+      ATTR1F(index + i, (GLfloat) v[i]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribs1fvNV)(GLuint index, GLsizei n, const GLfloat *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLint i;
+   n = MIN2(n, VBO_ATTRIB_MAX - index);
+   for (i = n - 1; i >= 0; i--)
+      ATTR1F(index + i, v[i]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribs1dvNV)(GLuint index, GLsizei n, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLint i;
+   n = MIN2(n, VBO_ATTRIB_MAX - index);
+   for (i = n - 1; i >= 0; i--)
+      ATTR1F(index + i, (GLfloat) v[i]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribs2svNV)(GLuint index, GLsizei n, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLint i;
+   n = MIN2(n, VBO_ATTRIB_MAX - index);
+   for (i = n - 1; i >= 0; i--)
+      ATTR2F(index + i, (GLfloat) v[2 * i], (GLfloat) v[2 * i + 1]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribs2fvNV)(GLuint index, GLsizei n, const GLfloat *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLint i;
+   n = MIN2(n, VBO_ATTRIB_MAX - index);
+   for (i = n - 1; i >= 0; i--)
+      ATTR2F(index + i, v[2 * i], v[2 * i + 1]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribs2dvNV)(GLuint index, GLsizei n, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLint i;
+   n = MIN2(n, VBO_ATTRIB_MAX - index);
+   for (i = n - 1; i >= 0; i--)
+      ATTR2F(index + i, (GLfloat) v[2 * i], (GLfloat) v[2 * i + 1]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribs3svNV)(GLuint index, GLsizei n, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLint i;
+   n = MIN2(n, VBO_ATTRIB_MAX - index);
+   for (i = n - 1; i >= 0; i--)
+      ATTR3F(index + i, (GLfloat) v[3 * i], (GLfloat) v[3 * i + 1], (GLfloat) v[3 * i + 2]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribs3fvNV)(GLuint index, GLsizei n, const GLfloat *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLint i;
+   n = MIN2(n, VBO_ATTRIB_MAX - index);
+   for (i = n - 1; i >= 0; i--)
+      ATTR3F(index + i, v[3 * i], v[3 * i + 1], v[3 * i + 2]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribs3dvNV)(GLuint index, GLsizei n, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLint i;
+   n = MIN2(n, VBO_ATTRIB_MAX - index);
+   for (i = n - 1; i >= 0; i--)
+      ATTR3F(index + i, (GLfloat) v[3 * i], (GLfloat) v[3 * i + 1], (GLfloat) v[3 * i + 2]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribs4svNV)(GLuint index, GLsizei n, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLint i;
+   n = MIN2(n, VBO_ATTRIB_MAX - index);
+   for (i = n - 1; i >= 0; i--)
+      ATTR4F(index + i, (GLfloat) v[4 * i], (GLfloat) v[4 * i + 1], (GLfloat) v[4 * i + 2], (GLfloat) v[4 * i + 3]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribs4fvNV)(GLuint index, GLsizei n, const GLfloat *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLint i;
+   n = MIN2(n, VBO_ATTRIB_MAX - index);
+   for (i = n - 1; i >= 0; i--)
+      ATTR4F(index + i, v[4 * i], v[4 * i + 1], v[4 * i + 2], v[4 * i + 3]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribs4dvNV)(GLuint index, GLsizei n, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLint i;
+   n = MIN2(n, VBO_ATTRIB_MAX - index);
+   for (i = n - 1; i >= 0; i--)
+      ATTR4F(index + i, (GLfloat) v[4 * i], (GLfloat) v[4 * i + 1], (GLfloat) v[4 * i + 2], (GLfloat) v[4 * i + 3]);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribs4ubvNV)(GLuint index, GLsizei n, const GLubyte *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   GLint i;
+   n = MIN2(n, VBO_ATTRIB_MAX - index);
+   for (i = n - 1; i >= 0; i--)
+      ATTR4F(index + i, UBYTE_TO_FLOAT(v[4 * i]), UBYTE_TO_FLOAT(v[4 * i + 1]),
+             UBYTE_TO_FLOAT(v[4 * i + 2]), UBYTE_TO_FLOAT(v[4 * i + 3]));
+}
+
+
+/*
+ * GL_ARB_vertex_program
+ * Note that attribute indexes do NOT alias conventional attributes.
+ */
+
+static void GLAPIENTRY
+TAG(VertexAttrib1s)(GLuint index, GLshort x)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR1F(0, (GLfloat) x);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR1F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib1d)(GLuint index, GLdouble x)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR1F(0, (GLfloat) x);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR1F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib2s)(GLuint index, GLshort x, GLshort y)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR2F(0, (GLfloat) x, (GLfloat) y);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR2F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x, (GLfloat) y);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib2d)(GLuint index, GLdouble x, GLdouble y)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR2F(0, (GLfloat) x, (GLfloat) y);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR2F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x, (GLfloat) y);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib3s)(GLuint index, GLshort x, GLshort y, GLshort z)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR3F(0, (GLfloat) x, (GLfloat) y, (GLfloat) z);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR3F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x, (GLfloat) y, (GLfloat) z);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib3d)(GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR3F(0, (GLfloat) x, (GLfloat) y, (GLfloat) z);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR3F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x, (GLfloat) y, (GLfloat) z);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4s)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4d)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib1sv)(GLuint index, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR1F(0, (GLfloat) v[0]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR1F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib1dv)(GLuint index, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR1F(0, (GLfloat) v[0]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR1F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib2sv)(GLuint index, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR2F(0, (GLfloat) v[0], (GLfloat) v[1]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR2F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib2dv)(GLuint index, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR2F(0, (GLfloat) v[0], (GLfloat) v[1]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR2F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib3sv)(GLuint index, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR3F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR3F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib3dv)(GLuint index, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR3F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR3F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4sv)(GLuint index, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4dv)(GLuint index, const GLdouble *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4bv)(GLuint index, const GLbyte * v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4iv)(GLuint index, const GLint * v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4ubv)(GLuint index, const GLubyte * v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4usv)(GLuint index, const GLushort * v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4uiv)(GLuint index, const GLuint * v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4Nbv)(GLuint index, const GLbyte * v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3]));
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3]));
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4Nsv)(GLuint index, const GLshort * v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3]));
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3]));
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4Niv)(GLuint index, const GLint * v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3]));
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3]));
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4Nub)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y), UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w));
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y), UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w));
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4Nubv)(GLuint index, const GLubyte * v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]));
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]));
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4Nusv)(GLuint index, const GLushort * v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3]));
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3]));
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttrib4Nuiv)(GLuint index, const GLuint * v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4F(0, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3]));
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4F(VBO_ATTRIB_GENERIC0 + index, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3]));
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+
+
+/**
+ * GL_EXT_gpu_shader / GL 3.0 signed/unsigned integer-valued attributes.
+ * Note that attribute indexes do NOT alias conventional attributes.
+ */
+
+static void GLAPIENTRY
+TAG(VertexAttribI1iv)(GLuint index, const GLint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR1I(0, v[0]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR1I(VBO_ATTRIB_GENERIC0 + index, v[0]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribI1uiv)(GLuint index, const GLuint *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR1UI(0, v[0]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR1UI(VBO_ATTRIB_GENERIC0 + index, v[0]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribI4bv)(GLuint index, const GLbyte *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4I(0, v[0], v[1], v[2], v[3]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4I(VBO_ATTRIB_GENERIC0 + index, v[0], v[1], v[2], v[3]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribI4sv)(GLuint index, const GLshort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4I(0, v[0], v[1], v[2], v[3]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4I(VBO_ATTRIB_GENERIC0 + index, v[0], v[1], v[2], v[3]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribI4ubv)(GLuint index, const GLubyte *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4UI(0, v[0], v[1], v[2], v[3]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4UI(VBO_ATTRIB_GENERIC0 + index, v[0], v[1], v[2], v[3]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
+static void GLAPIENTRY
+TAG(VertexAttribI4usv)(GLuint index, const GLushort *v)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   if (is_vertex_position(ctx, index))
+      ATTR4UI(0, v[0], v[1], v[2], v[3]);
+   else if (index < MAX_VERTEX_GENERIC_ATTRIBS)
+      ATTR4UI(VBO_ATTRIB_GENERIC0 + index, v[0], v[1], v[2], v[3]);
+   else
+      ERROR(GL_INVALID_VALUE);
+}
+
 #undef ATTR1FV
 #undef ATTR2FV
 #undef ATTR3FV
diff --git a/src/mesa/vbo/vbo_exec_api.c b/src/mesa/vbo/vbo_exec_api.c
index 5e90f36..f8e13cb 100644
--- a/src/mesa/vbo/vbo_exec_api.c
+++ b/src/mesa/vbo/vbo_exec_api.c
@@ -53,6 +53,16 @@
 #define IMM_BUFFER_NAME 0xaabbccdd
 
 
+static void GLAPIENTRY
+vbo_exec_Materialfv(GLenum face, GLenum pname, const GLfloat *params);
+
+static void GLAPIENTRY
+vbo_exec_EvalCoord1f(GLfloat u);
+
+static void GLAPIENTRY
+vbo_exec_EvalCoord2f(GLfloat u, GLfloat v);
+
+
 static void
 vbo_reset_all_attr(struct vbo_exec_context *exec);
 
diff --git a/src/mesa/vbo/vbo_init_tmp.h b/src/mesa/vbo/vbo_init_tmp.h
index 9ba232b..74c81d5 100644
--- a/src/mesa/vbo/vbo_init_tmp.h
+++ b/src/mesa/vbo/vbo_init_tmp.h
@@ -223,3 +223,210 @@
 
 vfmt->VertexAttribL1ui64ARB = NAME(VertexAttribL1ui64ARB);
 vfmt->VertexAttribL1ui64vARB = NAME(VertexAttribL1ui64vARB);
+
+vfmt->Color4ub = NAME(Color4ub);
+vfmt->Materialf = NAME(Materialf);
+
+vfmt->Color3b = NAME(Color3b);
+vfmt->Color3d = NAME(Color3d);
+vfmt->Color3i = NAME(Color3i);
+vfmt->Color3s = NAME(Color3s);
+vfmt->Color3ui = NAME(Color3ui);
+vfmt->Color3us = NAME(Color3us);
+vfmt->Color3ub = NAME(Color3ub);
+vfmt->Color4b = NAME(Color4b);
+vfmt->Color4d = NAME(Color4d);
+vfmt->Color4i = NAME(Color4i);
+vfmt->Color4s = NAME(Color4s);
+vfmt->Color4ui = NAME(Color4ui);
+vfmt->Color4us = NAME(Color4us);
+vfmt->Color3bv = NAME(Color3bv);
+vfmt->Color3dv = NAME(Color3dv);
+vfmt->Color3iv = NAME(Color3iv);
+vfmt->Color3sv = NAME(Color3sv);
+vfmt->Color3uiv = NAME(Color3uiv);
+vfmt->Color3usv = NAME(Color3usv);
+vfmt->Color3ubv = NAME(Color3ubv);
+vfmt->Color4bv = NAME(Color4bv);
+vfmt->Color4dv = NAME(Color4dv);
+vfmt->Color4iv = NAME(Color4iv);
+vfmt->Color4sv = NAME(Color4sv);
+vfmt->Color4uiv = NAME(Color4uiv);
+vfmt->Color4usv = NAME(Color4usv);
+vfmt->Color4ubv = NAME(Color4ubv);
+
+vfmt->SecondaryColor3b = NAME(SecondaryColor3b);
+vfmt->SecondaryColor3d = NAME(SecondaryColor3d);
+vfmt->SecondaryColor3i = NAME(SecondaryColor3i);
+vfmt->SecondaryColor3s = NAME(SecondaryColor3s);
+vfmt->SecondaryColor3ui = NAME(SecondaryColor3ui);
+vfmt->SecondaryColor3us = NAME(SecondaryColor3us);
+vfmt->SecondaryColor3ub = NAME(SecondaryColor3ub);
+vfmt->SecondaryColor3bv = NAME(SecondaryColor3bv);
+vfmt->SecondaryColor3dv = NAME(SecondaryColor3dv);
+vfmt->SecondaryColor3iv = NAME(SecondaryColor3iv);
+vfmt->SecondaryColor3sv = NAME(SecondaryColor3sv);
+vfmt->SecondaryColor3uiv = NAME(SecondaryColor3uiv);
+vfmt->SecondaryColor3usv = NAME(SecondaryColor3usv);
+vfmt->SecondaryColor3ubv = NAME(SecondaryColor3ubv);
+
+vfmt->EdgeFlagv = NAME(EdgeFlagv);
+
+vfmt->Indexd = NAME(Indexd);
+vfmt->Indexi = NAME(Indexi);
+vfmt->Indexs = NAME(Indexs);
+vfmt->Indexub = NAME(Indexub);
+vfmt->Indexdv = NAME(Indexdv);
+vfmt->Indexiv = NAME(Indexiv);
+vfmt->Indexsv = NAME(Indexsv);
+vfmt->Indexubv = NAME(Indexubv);
+vfmt->Normal3b = NAME(Normal3b);
+vfmt->Normal3d = NAME(Normal3d);
+vfmt->Normal3i = NAME(Normal3i);
+vfmt->Normal3s = NAME(Normal3s);
+vfmt->Normal3bv = NAME(Normal3bv);
+vfmt->Normal3dv = NAME(Normal3dv);
+vfmt->Normal3iv = NAME(Normal3iv);
+vfmt->Normal3sv = NAME(Normal3sv);
+vfmt->TexCoord1d = NAME(TexCoord1d);
+vfmt->TexCoord1i = NAME(TexCoord1i);
+vfmt->TexCoord1s = NAME(TexCoord1s);
+vfmt->TexCoord2d = NAME(TexCoord2d);
+vfmt->TexCoord2s = NAME(TexCoord2s);
+vfmt->TexCoord2i = NAME(TexCoord2i);
+vfmt->TexCoord3d = NAME(TexCoord3d);
+vfmt->TexCoord3i = NAME(TexCoord3i);
+vfmt->TexCoord3s = NAME(TexCoord3s);
+vfmt->TexCoord4d = NAME(TexCoord4d);
+vfmt->TexCoord4i = NAME(TexCoord4i);
+vfmt->TexCoord4s = NAME(TexCoord4s);
+vfmt->TexCoord1dv = NAME(TexCoord1dv);
+vfmt->TexCoord1iv = NAME(TexCoord1iv);
+vfmt->TexCoord1sv = NAME(TexCoord1sv);
+vfmt->TexCoord2dv = NAME(TexCoord2dv);
+vfmt->TexCoord2iv = NAME(TexCoord2iv);
+vfmt->TexCoord2sv = NAME(TexCoord2sv);
+vfmt->TexCoord3dv = NAME(TexCoord3dv);
+vfmt->TexCoord3iv = NAME(TexCoord3iv);
+vfmt->TexCoord3sv = NAME(TexCoord3sv);
+vfmt->TexCoord4dv = NAME(TexCoord4dv);
+vfmt->TexCoord4iv = NAME(TexCoord4iv);
+vfmt->TexCoord4sv = NAME(TexCoord4sv);
+vfmt->Vertex2d = NAME(Vertex2d);
+vfmt->Vertex2i = NAME(Vertex2i);
+vfmt->Vertex2s = NAME(Vertex2s);
+vfmt->Vertex3d = NAME(Vertex3d);
+vfmt->Vertex3i = NAME(Vertex3i);
+vfmt->Vertex3s = NAME(Vertex3s);
+vfmt->Vertex4d = NAME(Vertex4d);
+vfmt->Vertex4i = NAME(Vertex4i);
+vfmt->Vertex4s = NAME(Vertex4s);
+vfmt->Vertex2dv = NAME(Vertex2dv);
+vfmt->Vertex2iv = NAME(Vertex2iv);
+vfmt->Vertex2sv = NAME(Vertex2sv);
+vfmt->Vertex3dv = NAME(Vertex3dv);
+vfmt->Vertex3iv = NAME(Vertex3iv);
+vfmt->Vertex3sv = NAME(Vertex3sv);
+vfmt->Vertex4dv = NAME(Vertex4dv);
+vfmt->Vertex4iv = NAME(Vertex4iv);
+vfmt->Vertex4sv = NAME(Vertex4sv);
+vfmt->MultiTexCoord1d = NAME(MultiTexCoord1d);
+vfmt->MultiTexCoord1dv = NAME(MultiTexCoord1dv);
+vfmt->MultiTexCoord1i = NAME(MultiTexCoord1i);
+vfmt->MultiTexCoord1iv = NAME(MultiTexCoord1iv);
+vfmt->MultiTexCoord1s = NAME(MultiTexCoord1s);
+vfmt->MultiTexCoord1sv = NAME(MultiTexCoord1sv);
+vfmt->MultiTexCoord2d = NAME(MultiTexCoord2d);
+vfmt->MultiTexCoord2dv = NAME(MultiTexCoord2dv);
+vfmt->MultiTexCoord2i = NAME(MultiTexCoord2i);
+vfmt->MultiTexCoord2iv = NAME(MultiTexCoord2iv);
+vfmt->MultiTexCoord2s = NAME(MultiTexCoord2s);
+vfmt->MultiTexCoord2sv = NAME(MultiTexCoord2sv);
+vfmt->MultiTexCoord3d = NAME(MultiTexCoord3d);
+vfmt->MultiTexCoord3dv = NAME(MultiTexCoord3dv);
+vfmt->MultiTexCoord3i = NAME(MultiTexCoord3i);
+vfmt->MultiTexCoord3iv = NAME(MultiTexCoord3iv);
+vfmt->MultiTexCoord3s = NAME(MultiTexCoord3s);
+vfmt->MultiTexCoord3sv = NAME(MultiTexCoord3sv);
+vfmt->MultiTexCoord4d = NAME(MultiTexCoord4d);
+vfmt->MultiTexCoord4dv = NAME(MultiTexCoord4dv);
+vfmt->MultiTexCoord4i = NAME(MultiTexCoord4i);
+vfmt->MultiTexCoord4iv = NAME(MultiTexCoord4iv);
+vfmt->MultiTexCoord4s = NAME(MultiTexCoord4s);
+vfmt->MultiTexCoord4sv = NAME(MultiTexCoord4sv);
+vfmt->EvalCoord2dv = NAME(EvalCoord2dv);
+vfmt->EvalCoord2d = NAME(EvalCoord2d);
+vfmt->EvalCoord1dv = NAME(EvalCoord1dv);
+vfmt->EvalCoord1d = NAME(EvalCoord1d);
+vfmt->Materiali = NAME(Materiali);
+vfmt->Materialiv = NAME(Materialiv);
+vfmt->FogCoordd = NAME(FogCoordd);
+vfmt->FogCoorddv = NAME(FogCoorddv);
+
+vfmt->VertexAttrib1sNV = NAME(VertexAttrib1sNV);
+vfmt->VertexAttrib1dNV = NAME(VertexAttrib1dNV);
+vfmt->VertexAttrib2sNV = NAME(VertexAttrib2sNV);
+vfmt->VertexAttrib2dNV = NAME(VertexAttrib2dNV);
+vfmt->VertexAttrib3sNV = NAME(VertexAttrib3sNV);
+vfmt->VertexAttrib3dNV = NAME(VertexAttrib3dNV);
+vfmt->VertexAttrib4sNV = NAME(VertexAttrib4sNV);
+vfmt->VertexAttrib4dNV = NAME(VertexAttrib4dNV);
+vfmt->VertexAttrib4ubNV = NAME(VertexAttrib4ubNV);
+vfmt->VertexAttrib1svNV = NAME(VertexAttrib1svNV);
+vfmt->VertexAttrib1dvNV = NAME(VertexAttrib1dvNV);
+vfmt->VertexAttrib2svNV = NAME(VertexAttrib2svNV);
+vfmt->VertexAttrib2dvNV = NAME(VertexAttrib2dvNV);
+vfmt->VertexAttrib3svNV = NAME(VertexAttrib3svNV);
+vfmt->VertexAttrib3dvNV = NAME(VertexAttrib3dvNV);
+vfmt->VertexAttrib4svNV = NAME(VertexAttrib4svNV);
+vfmt->VertexAttrib4dvNV = NAME(VertexAttrib4dvNV);
+vfmt->VertexAttrib4ubvNV = NAME(VertexAttrib4ubvNV);
+vfmt->VertexAttribs1svNV = NAME(VertexAttribs1svNV);
+vfmt->VertexAttribs1fvNV = NAME(VertexAttribs1fvNV);
+vfmt->VertexAttribs1dvNV = NAME(VertexAttribs1dvNV);
+vfmt->VertexAttribs2svNV = NAME(VertexAttribs2svNV);
+vfmt->VertexAttribs2fvNV = NAME(VertexAttribs2fvNV);
+vfmt->VertexAttribs2dvNV = NAME(VertexAttribs2dvNV);
+vfmt->VertexAttribs3svNV = NAME(VertexAttribs3svNV);
+vfmt->VertexAttribs3fvNV = NAME(VertexAttribs3fvNV);
+vfmt->VertexAttribs3dvNV = NAME(VertexAttribs3dvNV);
+vfmt->VertexAttribs4svNV = NAME(VertexAttribs4svNV);
+vfmt->VertexAttribs4fvNV = NAME(VertexAttribs4fvNV);
+vfmt->VertexAttribs4dvNV = NAME(VertexAttribs4dvNV);
+vfmt->VertexAttribs4ubvNV = NAME(VertexAttribs4ubvNV);
+
+vfmt->VertexAttrib1s = NAME(VertexAttrib1s);
+vfmt->VertexAttrib1d = NAME(VertexAttrib1d);
+vfmt->VertexAttrib2s = NAME(VertexAttrib2s);
+vfmt->VertexAttrib2d = NAME(VertexAttrib2d);
+vfmt->VertexAttrib3s = NAME(VertexAttrib3s);
+vfmt->VertexAttrib3d = NAME(VertexAttrib3d);
+vfmt->VertexAttrib4s = NAME(VertexAttrib4s);
+vfmt->VertexAttrib4d = NAME(VertexAttrib4d);
+vfmt->VertexAttrib1sv = NAME(VertexAttrib1sv);
+vfmt->VertexAttrib1dv = NAME(VertexAttrib1dv);
+vfmt->VertexAttrib2sv = NAME(VertexAttrib2sv);
+vfmt->VertexAttrib2dv = NAME(VertexAttrib2dv);
+vfmt->VertexAttrib3sv = NAME(VertexAttrib3sv);
+vfmt->VertexAttrib3dv = NAME(VertexAttrib3dv);
+vfmt->VertexAttrib4sv = NAME(VertexAttrib4sv);
+vfmt->VertexAttrib4dv = NAME(VertexAttrib4dv);
+vfmt->VertexAttrib4Nub = NAME(VertexAttrib4Nub);
+vfmt->VertexAttrib4Nubv = NAME(VertexAttrib4Nubv);
+vfmt->VertexAttrib4bv = NAME(VertexAttrib4bv);
+vfmt->VertexAttrib4iv = NAME(VertexAttrib4iv);
+vfmt->VertexAttrib4ubv = NAME(VertexAttrib4ubv);
+vfmt->VertexAttrib4usv = NAME(VertexAttrib4usv);
+vfmt->VertexAttrib4uiv = NAME(VertexAttrib4uiv);
+vfmt->VertexAttrib4Nbv = NAME(VertexAttrib4Nbv);
+vfmt->VertexAttrib4Nsv = NAME(VertexAttrib4Nsv);
+vfmt->VertexAttrib4Nusv = NAME(VertexAttrib4Nusv);
+vfmt->VertexAttrib4Niv = NAME(VertexAttrib4Niv);
+vfmt->VertexAttrib4Nuiv = NAME(VertexAttrib4Nuiv);
+
+vfmt->VertexAttribI1iv = NAME(VertexAttribI1iv);
+vfmt->VertexAttribI1uiv = NAME(VertexAttribI1uiv);
+vfmt->VertexAttribI4bv = NAME(VertexAttribI4bv);
+vfmt->VertexAttribI4sv = NAME(VertexAttribI4sv);
+vfmt->VertexAttribI4ubv = NAME(VertexAttribI4ubv);
+vfmt->VertexAttribI4usv = NAME(VertexAttribI4usv);
diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c
index 33ad61e..0203199 100644
--- a/src/mesa/vbo/vbo_save_api.c
+++ b/src/mesa/vbo/vbo_save_api.c
@@ -101,6 +101,14 @@
 /* An interesting VBO number/name to help with debugging */
 #define VBO_BUF_ID  12345
 
+static void GLAPIENTRY
+_save_Materialfv(GLenum face, GLenum pname, const GLfloat *params);
+
+static void GLAPIENTRY
+_save_EvalCoord1f(GLfloat u);
+
+static void GLAPIENTRY
+_save_EvalCoord2f(GLfloat u, GLfloat v);
 
 /*
  * NOTE: Old 'parity' issue is gone, but copying can still be
@@ -1254,6 +1262,49 @@
 
 
 static void GLAPIENTRY
+_save_OBE_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+   _save_OBE_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
+}
+
+static void GLAPIENTRY
+_save_OBE_Rectdv(const GLdouble *v1, const GLdouble *v2)
+{
+   _save_OBE_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
+}
+
+static void GLAPIENTRY
+_save_OBE_Rectfv(const GLfloat *v1, const GLfloat *v2)
+{
+   _save_OBE_Rectf(v1[0], v1[1], v2[0], v2[1]);
+}
+
+static void GLAPIENTRY
+_save_OBE_Recti(GLint x1, GLint y1, GLint x2, GLint y2)
+{
+   _save_OBE_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
+}
+
+static void GLAPIENTRY
+_save_OBE_Rectiv(const GLint *v1, const GLint *v2)
+{
+   _save_OBE_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
+}
+
+static void GLAPIENTRY
+_save_OBE_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+   _save_OBE_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
+}
+
+static void GLAPIENTRY
+_save_OBE_Rectsv(const GLshort *v1, const GLshort *v2)
+{
+   _save_OBE_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
+}
+
+
+static void GLAPIENTRY
 _save_OBE_DrawArrays(GLenum mode, GLint start, GLsizei count)
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -1522,6 +1573,14 @@
    SET_MultiDrawElementsEXT(exec, _save_OBE_MultiDrawElements);
    SET_MultiDrawElementsBaseVertex(exec, _save_OBE_MultiDrawElementsBaseVertex);
    SET_Rectf(exec, _save_OBE_Rectf);
+   SET_Rectd(exec, _save_OBE_Rectd);
+   SET_Rectdv(exec, _save_OBE_Rectdv);
+   SET_Rectfv(exec, _save_OBE_Rectfv);
+   SET_Recti(exec, _save_OBE_Recti);
+   SET_Rectiv(exec, _save_OBE_Rectiv);
+   SET_Rects(exec, _save_OBE_Rects);
+   SET_Rectsv(exec, _save_OBE_Rectsv);
+
    /* Note: other glDraw functins aren't compiled into display lists */
 }